diff options
Diffstat (limited to 'grammar.ebnf')
| -rw-r--r-- | grammar.ebnf | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/grammar.ebnf b/grammar.ebnf index 3806ee6..ddb0cef 100644 --- a/grammar.ebnf +++ b/grammar.ebnf @@ -1,6 +1,6 @@ Program ::= Statement+ -Statement ::= (AssignmentStatement | ImportDeclaration | ExternDeclaration | FunctionCallStatement | IfStatement | WhileStatement | ReturnStatement | "break" | "continue") SEMICOLON +Statement ::= (AssignmentStatement | ImportDeclaration | ExternDeclaration | CastStatement| FunctionCallStatement | IfStatement | WhileStatement | ReturnStatement | "break" | "continue") SEMICOLON AssignmentStatement ::= ("let")? ("*")? Expression EQUALS Expression @@ -18,9 +18,9 @@ ReturnStatement ::= RETURN (Expression)? FunctionArguments ::= Expression ("," Expression)* -Expression ::= EqualityExpression | AdditiveExpression | CastExpression +Expression ::= EqualityExpression | AdditiveExpression -CastExpression ::= "cast" LPAREN TYPE "," Expression RPAREN +CastStatement ::= "cast" LPAREN TYPE "," Expression RPAREN EqualityExpression ::= AdditiveExpression ("==" | "!=" | "<=" | ">=" | "<" | ">") AdditiveExpression @@ -30,7 +30,7 @@ MultiplicativeExpression ::= UnaryExpression (("*" | "/" | "%") UnaryExpression) UnaryExpression ::= ("!" | "-" | "*") UnaryExpression | PrimaryExpression -PrimaryExpression ::= NULL | NUMBER | BOOLEAN | CHAR | STRING | IDENTIFIER | FunctionCallStatement | FunctionDefinition | LPAREN Expression RPAREN +PrimaryExpression ::= NULL | NUMBER | BOOLEAN | CHAR | STRING | IDENTIFIER | CastStatement | FunctionCallStatement | FunctionDefinition | LPAREN Expression RPAREN FunctionDefinition ::= LPAREN FunctionParameters? RPAREN ARROW IDENTIFIER LBRACE Statement* ReturnStatement SEMICOLON RBRACE |