|
|
1.1 ! root 1: %{ ! 2: extern int transfer; ! 3: extern int indent; ! 4: %} ! 5: ! 6: %term IF ELSE FOR WHILE BREAK NEXT ! 7: %term DIGITS DO ! 8: %term GOK DEFINE INCLUDE ! 9: %term REPEAT UNTIL ! 10: %term RETURN ! 11: %term SWITCH CASE DEFAULT ! 12: %% ! 13: ! 14: statl : statl stat ! 15: | ! 16: ; ! 17: stat : if stat ={ indent--; outcont($1); } ! 18: | ifelse stat ={ indent--; outcont($1+1); } ! 19: | switch fullcase '}' ={ endsw($1, $2); } ! 20: | while stat ={ whilestat($1); } ! 21: | for stat ={ forstat($1); } ! 22: | repeat stat UNTIL ={ untils($1,1); } ! 23: | repeat stat ={ untils($1,0); } ! 24: | BREAK ={ breakcode(); } ! 25: | NEXT ={ nextcode(); } ! 26: | do stat ={ dostat($1); } ! 27: | GOK ={ gokcode($1); } ! 28: | RETURN ={ retcode(); } ! 29: | ';' ! 30: | '{' statl '}' ! 31: | label stat ! 32: | error ={ errcode(); yyclearin; } ! 33: ; ! 34: switch : sw '{' ! 35: ; ! 36: sw : SWITCH ={ swcode(); } ! 37: ; ! 38: fullcase: caselist ={ $$ = 0; } ! 39: | caselist defpart ={ $$ = 1; } ! 40: ; ! 41: caselist: casepart ! 42: | caselist casepart ! 43: ; ! 44: defpart : default statl ! 45: ; ! 46: default : DEFAULT ={ getdefault(); } ! 47: ; ! 48: casepart: case statl ! 49: ; ! 50: case : CASE ={ getcase(); } ! 51: ; ! 52: label : DIGITS ={ transfer = 0; outcode($1); } ! 53: ; ! 54: if : IF ={ ifcode(); } ! 55: ; ! 56: ifelse : if stat ELSE ={ elsecode($1); } ! 57: ; ! 58: while : WHILE ={ whilecode(); } ! 59: ; ! 60: for : FOR ={ forcode(); } ! 61: ; ! 62: repeat : REPEAT ={ repcode(); } ! 63: ; ! 64: do : DO ={ docode(); } ! 65: ; ! 66: %%
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.