Add ObjBrace token
To distinguish between objects and code bodies, an object is delimited
by curly braces, prefixed with a percent sign. Ex:
obj = %{
key = value
}
Signed-off-by: Alek Ratzloff <alekratz@gmail.com>
This commit is contained in:
@@ -95,6 +95,7 @@ impl<'t> Lexer<'t> {
|
||||
|(?P<rbracket>\])
|
||||
|(?P<lbrace>\{)
|
||||
|(?P<rbrace>\})
|
||||
|(?P<objbrace>%\{)
|
||||
|(?P<comma>,)
|
||||
|(?P<eol>;)
|
||||
|(?P<newline>\n)
|
||||
@@ -119,6 +120,7 @@ impl<'t> Lexer<'t> {
|
||||
("rbracket", TokenKind::RBracket),
|
||||
("lbrace", TokenKind::LBrace),
|
||||
("rbrace", TokenKind::RBrace),
|
||||
("objbrace", TokenKind::ObjBrace),
|
||||
("comma", TokenKind::Comma),
|
||||
("plus", TokenKind::Plus),
|
||||
("minus", TokenKind::Minus),
|
||||
@@ -281,6 +283,7 @@ mod test {
|
||||
test_token!(")", TokenKind::RParen);
|
||||
test_token!("{", TokenKind::LBrace);
|
||||
test_token!("}", TokenKind::RBrace);
|
||||
test_token!("%{", TokenKind::ObjBrace);
|
||||
test_token!("[", TokenKind::LBracket);
|
||||
test_token!("]", TokenKind::RBracket);
|
||||
test_token!(",", TokenKind::Comma);
|
||||
|
||||
@@ -16,6 +16,7 @@ pub enum TokenKind {
|
||||
RBrace,
|
||||
LBracket,
|
||||
RBracket,
|
||||
ObjBrace,
|
||||
Comma,
|
||||
|
||||
Eq,
|
||||
@@ -50,6 +51,7 @@ impl Display for TokenKind {
|
||||
RParen => "right paren",
|
||||
LBrace => "left brace",
|
||||
RBrace => "right brace",
|
||||
ObjBrace => "object brace",
|
||||
LBracket => "left bracket",
|
||||
RBracket => "right bracket",
|
||||
Comma => "comma",
|
||||
|
||||
Reference in New Issue
Block a user