diff --git a/src/backend/lexer.nim b/src/backend/lexer.nim index f6f9a20..d2e2b84 100644 --- a/src/backend/lexer.nim +++ b/src/backend/lexer.nim @@ -80,7 +80,7 @@ const reserved = to_table({ "assert": TokenType.Assert, "or": TokenType.LogicalOr, "and": TokenType.LogicalAnd, "del": TokenType.Del, "async": TokenType.Async, "await": TokenType.Await, - "dynamyc": TokenType.Dynamic + "dynamyc": TokenType.Dynamic, "foreach": TokenType.Foreach }) type diff --git a/src/backend/meta/ast.nim b/src/backend/meta/ast.nim index c6758fa..50afa1a 100644 --- a/src/backend/meta/ast.nim +++ b/src/backend/meta/ast.nim @@ -30,9 +30,11 @@ type # Declarations classDecl = 0u8, funDecl, + asyncFunDecl, varDecl, # Statements forStmt, + foreachStmt, ifStmt, returnStmt, breakStmt, @@ -44,6 +46,7 @@ type delStmt, fromStmt, importStmt, + awaitStmt, # An expression followed by a semicolon exprStmt, # Expressions diff --git a/src/backend/meta/token.nim b/src/backend/meta/token.nim index e41e58e..aadd874 100644 --- a/src/backend/meta/token.nim +++ b/src/backend/meta/token.nim @@ -36,7 +36,7 @@ type Continue, Var, Let, Const, Is, Return, Async, Class, Import, From, IsNot, Raise, Assert, Del, Await, - Dynamic + Dynamic, Foreach # Basic types diff --git a/src/backend/parser.nim b/src/backend/parser.nim index 71c6f03..214fa1d 100644 --- a/src/backend/parser.nim +++ b/src/backend/parser.nim @@ -463,8 +463,8 @@ proc statement(self: Parser): ASTNode = of TokenType.Import: discard self.step() result = self.importStmt() - of TokenType.Async, TokenType.Await, TokenType.Dynamic: - discard # TODO: Reserved for future use + of TokenType.Async, TokenType.Await, TokenType.Dynamic, TokenType.Foreach: + discard self.step() # TODO: Reserved for future use of TokenType.LeftBrace: discard self.step() result = self.blockStmt()