Commit | Line | Data |
---|---|---|
ec73ebc9 BK |
1 | %term LCURL RCURL LPAR RPAR SCOL DIGITS |
2 | %term XIF XELSE XFOR XWHILE XBREAK NEXT | |
3 | %term OLDDO NEWDO | |
4 | %term XGOK XDEFINE XINCLUDE | |
5 | %term REPEAT UNTIL | |
6 | %% | |
7 | ||
8 | statl : statl stat | |
9 | | | |
10 | ; | |
11 | stat : if stat ={ outcont($1); } | |
12 | | ifelse stat ={ outcont($1+1); } | |
13 | | while stat ={ whilestat($1); } | |
14 | | for stat ={ forstat($1); } | |
15 | | repeat stat UNTIL ={ untils($1); } | |
16 | | XBREAK ={ breakcode($1); } | |
17 | | NEXT ={ nextcode($1); } | |
18 | | newdo stat ={ dostat($1); } | |
19 | | OLDDO ={ docode(0,$1); } | |
20 | | XGOK ={ gokcode($1); } | |
21 | | SCOL | |
22 | | LCURL statl RCURL | |
23 | | label stat | |
24 | | error ={ errcode($1); yyclearin; } | |
25 | ; | |
26 | label : DIGITS ={ outcode($1); outcode("\t"); } | |
27 | ; | |
28 | if : XIF ={ ifcode($1); } | |
29 | ; | |
30 | ifelse : if stat XELSE ={ outgoto($1+1); outcont($1); } | |
31 | ; | |
32 | while : XWHILE ={ whilecode($1); } | |
33 | ; | |
34 | for : XFOR ={ forcode($1); } | |
35 | ; | |
36 | repeat : REPEAT ={ repcode($1); } | |
37 | ; | |
38 | newdo : NEWDO ={ docode(1,$1); } | |
39 | ; | |
40 | %% |