add optional semicolon
This commit is contained in:
@@ -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
+1335
-1322
File diff suppressed because it is too large
Load Diff
@@ -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):
|
||||
|
||||
Reference in New Issue
Block a user