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<rbracket>\])
|
||||||
|(?P<lbrace>\{)
|
|(?P<lbrace>\{)
|
||||||
|(?P<rbrace>\})
|
|(?P<rbrace>\})
|
||||||
|
|(?P<objbrace>%\{)
|
||||||
|(?P<comma>,)
|
|(?P<comma>,)
|
||||||
|(?P<eol>;)
|
|(?P<eol>;)
|
||||||
|(?P<newline>\n)
|
|(?P<newline>\n)
|
||||||
@@ -119,6 +120,7 @@ impl<'t> Lexer<'t> {
|
|||||||
("rbracket", TokenKind::RBracket),
|
("rbracket", TokenKind::RBracket),
|
||||||
("lbrace", TokenKind::LBrace),
|
("lbrace", TokenKind::LBrace),
|
||||||
("rbrace", TokenKind::RBrace),
|
("rbrace", TokenKind::RBrace),
|
||||||
|
("objbrace", TokenKind::ObjBrace),
|
||||||
("comma", TokenKind::Comma),
|
("comma", TokenKind::Comma),
|
||||||
("plus", TokenKind::Plus),
|
("plus", TokenKind::Plus),
|
||||||
("minus", TokenKind::Minus),
|
("minus", TokenKind::Minus),
|
||||||
@@ -281,6 +283,7 @@ mod test {
|
|||||||
test_token!(")", TokenKind::RParen);
|
test_token!(")", TokenKind::RParen);
|
||||||
test_token!("{", TokenKind::LBrace);
|
test_token!("{", TokenKind::LBrace);
|
||||||
test_token!("}", TokenKind::RBrace);
|
test_token!("}", TokenKind::RBrace);
|
||||||
|
test_token!("%{", TokenKind::ObjBrace);
|
||||||
test_token!("[", TokenKind::LBracket);
|
test_token!("[", TokenKind::LBracket);
|
||||||
test_token!("]", TokenKind::RBracket);
|
test_token!("]", TokenKind::RBracket);
|
||||||
test_token!(",", TokenKind::Comma);
|
test_token!(",", TokenKind::Comma);
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ pub enum TokenKind {
|
|||||||
RBrace,
|
RBrace,
|
||||||
LBracket,
|
LBracket,
|
||||||
RBracket,
|
RBracket,
|
||||||
|
ObjBrace,
|
||||||
Comma,
|
Comma,
|
||||||
|
|
||||||
Eq,
|
Eq,
|
||||||
@@ -50,6 +51,7 @@ impl Display for TokenKind {
|
|||||||
RParen => "right paren",
|
RParen => "right paren",
|
||||||
LBrace => "left brace",
|
LBrace => "left brace",
|
||||||
RBrace => "right brace",
|
RBrace => "right brace",
|
||||||
|
ObjBrace => "object brace",
|
||||||
LBracket => "left bracket",
|
LBracket => "left bracket",
|
||||||
RBracket => "right bracket",
|
RBracket => "right bracket",
|
||||||
Comma => "comma",
|
Comma => "comma",
|
||||||
|
|||||||
Reference in New Issue
Block a user