add optional semicolon

This commit is contained in:
mcDandy
2026-02-01 16:45:32 +01:00
parent c4b270bc96
commit 93c4559bfd
4 changed files with 1343 additions and 1328 deletions
+1 -1
View File
@@ -1,7 +1,7 @@
grammar MathExpr;
// Top-level entry point
start: (funcDef | varDef | stmt)* expr EOF;
start: (funcDef | varDef | stmt)* expr SEMICOLON? EOF;
funcDef:
VARIABLE LPAREN paramList? RPAREN ARROW (block | expr) SEMICOLON # FunctionDef;
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large Load Diff
+6 -4
View File
@@ -1405,6 +1405,8 @@ class UnifiedMathVisitor(MathExprVisitor):
def visitStart(self, ctx):
count = ctx.getChildCount()
if count <= 1: # Only EOF or empty
return None
for i in range(count - 2):
child = ctx.getChild(i)
@@ -1417,12 +1419,12 @@ class UnifiedMathVisitor(MathExprVisitor):
final_expr_node = ctx.getChild(count - 2)
if final_expr_node:
final_result = yield final_expr_node
res = yield final_expr_node
if isinstance(final_result, ReturnSignal):
return final_result.value
if isinstance(res, ReturnSignal):
return res.value
return final_result
return res
return None
def visitExprStatement(self, ctx):