diff --git a/src/syn/lexer.rs b/src/syn/lexer.rs index cefc634..95be49a 100644 --- a/src/syn/lexer.rs +++ b/src/syn/lexer.rs @@ -86,6 +86,7 @@ impl<'t> Lexer<'t> { |(?P-) |(?P\*) |(?P/) + |(?P\.) |(?P!) |(?P\() |(?P\)) @@ -124,6 +125,7 @@ impl<'t> Lexer<'t> { ("minus", TokenKind::Minus), ("splat", TokenKind::Splat), ("fslash", TokenKind::FSlash), + ("dot", TokenKind::Dot), ("bang", TokenKind::Bang), ("arrow", TokenKind::Arrow), ("eqeq", TokenKind::EqEq), @@ -296,6 +298,7 @@ mod test { test_token!("-", TokenKind::Minus); test_token!("*", TokenKind::Splat); test_token!("/", TokenKind::FSlash); + test_token!(".", TokenKind::Dot); test_token!("!", TokenKind::Bang); test_token!("=", TokenKind::Eq); diff --git a/src/syn/token.rs b/src/syn/token.rs index 046823d..ea5bfa2 100644 --- a/src/syn/token.rs +++ b/src/syn/token.rs @@ -31,7 +31,9 @@ pub enum TokenKind { Minus, Splat, FSlash, + Dot, Bang, + Eol, Newline, } @@ -68,6 +70,7 @@ impl Display for TokenKind { Minus => "minus", Splat => "splat (or times)", FSlash => "fslash (or divide)", + Dot => "dot", Bang => "not", Eol => "line end", Newline => "newline",