Skip to content

Commit

Permalink
✨ fix(Gen): 现在多重调用已经实现了
Browse files Browse the repository at this point in the history
  • Loading branch information
wangziwenhk committed Aug 10, 2024
1 parent dd08f15 commit 1a15544
Show file tree
Hide file tree
Showing 11 changed files with 743 additions and 622 deletions.
43 changes: 24 additions & 19 deletions RiddleParser.g4
Original file line number Diff line number Diff line change
Expand Up @@ -96,17 +96,22 @@ exprPtr
| Identifier #objectExpr
| parent=exprPtr Dot child=exprPtr #blendExpr
;

exprPtrParser
: exprPtr
;

expression
: Less type=typeName Greater LeftBracket value=exprPtr RightBracket #castExpr
: Less type=typeName Greater LeftBracket value=exprPtrParser RightBracket #castExpr
| LeftBracket expr=expression RightBracket #bracketExpr // (x)
| Not expr=expression #notExpr // !x
| Add expr=expression #positiveExpr // +x
| Sub expr=expression #negativeExpr // -x
| Add Add expr=exprPtr #selfAddLeftExpr // ++x
| expr=exprPtr Add Add #selfAddRightExpr // x++
| Sub Sub expr=exprPtr #selfSubLeftExpr // ++x
| expr=exprPtr Sub Sub #selfSubRightExpr // x++
| exprPtr #ptrExpr
| Add Add expr=exprPtrParser #selfAddLeftExpr // ++x
| expr=exprPtrParser Add Add #selfAddRightExpr // x++
| Sub Sub expr=exprPtrParser #selfSubLeftExpr // ++x
| expr=exprPtrParser Sub Sub #selfSubRightExpr // x++
| exprPtrParser #ptrExpr
| left=expression Star right=expression #mulExpr // x*y
| left=expression Div right=expression #divExpr // x/y
| left=expression Mod right=expression #modExpr // x%y
Expand All @@ -126,19 +131,19 @@ expression
| left=expression Or right=expression #bitOrExpr // x|y
| left=expression And And right=expression #andExpr // x&&y
| left=expression Or Or right=expression #orExpr // x||y
| left=exprPtr Assign right=expression #assignExpr // x=y
| left=exprPtr Add Assign right=expression #addAssignExpr // x+=y
| left=exprPtr Sub Assign right=expression #subAssignExpr // x-=y
| left=exprPtr Star Assign right=expression #mulAssignExpr // x*=y
| left=exprPtr Div Assign right=expression #divAssignExpr // x/=y
| left=exprPtr Mod Assign right=expression #modAssignExpr // x%=y
| left=exprPtr Add Assign right=expression #addAssignExpr // x+=y
| left=exprPtr And Assign right=expression #andAssignExpr // x&=y
| left=exprPtr Or Assign right=expression #orAssignExpr // x|=y
| left=exprPtr Xor Assign right=expression #xorAssignExpr // x^=y
| left=exprPtr LeftLeft Assign right=expression #shlAssignExpr // x<<=y
| left=exprPtr RightRight Assign right=expression #aShrAssignExpr // x>>=y
| left=exprPtr RightRightRight Assign right=expression #lShrAssignExpr // x>>>=y
| left=exprPtrParser Assign right=expression #assignExpr // x=y
| left=exprPtrParser Add Assign right=expression #addAssignExpr // x+=y
| left=exprPtrParser Sub Assign right=expression #subAssignExpr // x-=y
| left=exprPtrParser Star Assign right=expression #mulAssignExpr // x*=y
| left=exprPtrParser Div Assign right=expression #divAssignExpr // x/=y
| left=exprPtrParser Mod Assign right=expression #modAssignExpr // x%=y
| left=exprPtrParser Add Assign right=expression #addAssignExpr // x+=y
| left=exprPtrParser And Assign right=expression #andAssignExpr // x&=y
| left=exprPtrParser Or Assign right=expression #orAssignExpr // x|=y
| left=exprPtrParser Xor Assign right=expression #xorAssignExpr // x^=y
| left=exprPtrParser LeftLeft Assign right=expression #shlAssignExpr // x<<=y
| left=exprPtrParser RightRight Assign right=expression #aShrAssignExpr // x>>=y
| left=exprPtrParser RightRightRight Assign right=expression #lShrAssignExpr // x>>>=y
| string #stringExpr
| number #numberExpr
| boolean #booleanExpr
Expand Down
Loading

0 comments on commit 1a15544

Please sign in to comment.