Annotation of 43BSDTahoe/usr.bin/ratfor/r.y, revision 1.1.1.1

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

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.