about summary refs log tree commit diff
path: root/grammar.ebnf
diff options
context:
space:
mode:
authorBaitinq <[email protected]>2025-05-23 00:10:48 +0200
committerBaitinq <[email protected]>2025-05-23 00:10:48 +0200
commit1833c90d53422bee88a2061a0f226c8c96877c76 (patch)
tree40636c7dc99d4643c8be10ae113a28b42d4c5668 /grammar.ebnf
parentCodegen: Typecheck function return types and change null type (diff)
downloadpry-lang-1833c90d53422bee88a2061a0f226c8c96877c76.tar.gz
pry-lang-1833c90d53422bee88a2061a0f226c8c96877c76.tar.bz2
pry-lang-1833c90d53422bee88a2061a0f226c8c96877c76.zip
Parser: Fix cast statement parsing
Diffstat (limited to 'grammar.ebnf')
-rw-r--r--grammar.ebnf8
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