|
|
1.1 ! root 1: type Lineno = int ! 2: val lineno = ref 0 ! 3: fun error e (l:Lineno) = ! 4: (output std_out ("line " ^ (makestring l) ^ ": " ^ e ^ "\n")) ! 5: %% ! 6: ! 7: %verbose ! 8: ! 9: %term ! 10: YAND | YARRAY | YBEGIN | YCASE | ! 11: YCONST | YDIV | YDO | YDOTDOT | ! 12: YTO | YELSE | YEND | YFILE | ! 13: YFOR | YFORWARD | YPROCEDURE | YGOTO | ! 14: YID | YIF | YIN | YINT | ! 15: YLABEL | YMOD | YNOT | YNUMB | ! 16: YOF | YOR | YPACKED | YNIL | ! 17: YFUNCTION | YPROG | YRECORD | YREPEAT | ! 18: YSET | YSTRING | YTHEN | YDOWNTO | ! 19: YTYPE | YUNTIL | YVAR | YWHILE | ! 20: YWITH | YBINT | YOCT | YHEX | ! 21: YCASELAB | YILLCH | YEXTERN | ! 22: YDOT | YLPAR | YRPAR | YSEMI | YCOMMA | YCOLON | YCARET | YLBRA | ! 23: YRBRA | YTILDE | ! 24: YLESS | YEQUAL | YGREATER ! 25: | YPLUS | YMINUS | YBAR ! 26: | UNARYSIGN ! 27: | YSTAR | YSLASH | YAMP ! 28: | EOF ! 29: ! 30: %eof EOF ! 31: ! 32: %nonassoc YLESS YEQUAL YGREATER YIN ! 33: %left YPLUS YMINUS YOR YBAR ! 34: %left UNARYSIGN ! 35: %left YSTAR YSLASH YDIV YMOD YAND YAMP ! 36: %left YNOT ! 37: ! 38: %nonterm goal | prog_hedr | block | decls | decl | labels | label_decl | ! 39: const_decl | type_decl | var_decl | proc_decl | pheadres | phead | ! 40: porf | params | param | ftype | param_list | const | number | const_list | ! 41: type' | simple_type | struct_type | simple_type_list | field_list | ! 42: fixed_part | field | variant_part | variant_list | variant | stat_list | ! 43: stat_lsth | cstat_list | cstat | stat | assign | expr | element_list | ! 44: element | variable | qual_var | wexpr | octhex | expr_list | wexpr_list | ! 45: relop | addop | divop | negop | var_list | id_list | const_id | type_id | ! 46: var_id | array_id | ptr_id | record_id | field_id | func_id ! 47: ! 48: %keyword ! 49: YAND YARRAY YBEGIN YCASE ! 50: YCONST YDIV YDO ! 51: YTO YELSE YEND YFILE ! 52: YFOR YFORWARD YPROCEDURE YGOTO ! 53: YIF YIN ! 54: YLABEL YMOD YNOT ! 55: YOF YOR YPACKED YNIL ! 56: YFUNCTION YPROG YRECORD YREPEAT ! 57: YSET YSTRING YTHEN YDOWNTO ! 58: YTYPE YUNTIL YVAR YWHILE ! 59: YWITH YOCT YHEX ! 60: YEXTERN YAMP ! 61: ! 62: %insert_prefer YID YSEMI YCOMMA YLBRA ! 63: ! 64: %prefer YCOMMA for YSEMI | YSEMI for YCOMMA ! 65: ! 66: %% ! 67: goal: prog_hedr decls block YDOT () ! 68: | decls () ! 69: prog_hedr: YPROG YID YLPAR id_list YRPAR YSEMI () ! 70: | YPROG YID YSEMI () ! 71: block: YBEGIN stat_list YEND () ! 72: decls: decls decl () ! 73: | () ! 74: decl: labels () ! 75: | const_decl () ! 76: | type_decl () ! 77: | var_decl () ! 78: | proc_decl () ! 79: labels: YLABEL label_decl YSEMI () ! 80: label_decl: YINT () ! 81: | label_decl YCOMMA YINT () ! 82: const_decl: YCONST YID YEQUAL const YSEMI () ! 83: | const_decl YID YEQUAL const YSEMI () ! 84: | YCONST YID YEQUAL YID YSEMI () ! 85: | const_decl YID YEQUAL YID YSEMI () ! 86: type_decl: YTYPE YID YEQUAL type' YSEMI () ! 87: | type_decl YID YEQUAL type' YSEMI () ! 88: var_decl: YVAR id_list YCOLON type' YSEMI () ! 89: | var_decl id_list YCOLON type' YSEMI () ! 90: proc_decl: phead YFORWARD YSEMI () ! 91: | phead YEXTERN YSEMI () ! 92: | pheadres decls block YSEMI () ! 93: pheadres: phead () ! 94: phead: porf YID params ftype YSEMI () ! 95: porf: YPROCEDURE () ! 96: | YFUNCTION () ! 97: params: YLPAR param_list YRPAR () ! 98: | () ! 99: param: id_list YCOLON type' () ! 100: | YVAR id_list YCOLON type' () ! 101: | YFUNCTION id_list params ftype () ! 102: | YPROCEDURE id_list params ftype () ! 103: ftype: YCOLON type' () ! 104: | () ! 105: param_list: param () ! 106: | param_list YSEMI param () ! 107: const: YSTRING () ! 108: | number () ! 109: | YPLUS number () ! 110: | YMINUS number () ! 111: | YPLUS YID () ! 112: | YMINUS YID () ! 113: number: YINT () ! 114: | YBINT () ! 115: | YNUMB () ! 116: const_list: const () ! 117: | const_list YCOMMA const () ! 118: | YID () ! 119: | const_list YCOMMA YID () ! 120: type': simple_type () ! 121: | YCARET YID () ! 122: | struct_type () ! 123: | YPACKED struct_type () ! 124: simple_type: type_id () ! 125: | YLPAR id_list YRPAR () ! 126: | const YDOTDOT const () ! 127: | YID YDOTDOT const () ! 128: | const YDOTDOT YID () ! 129: | YID YDOTDOT YID () ! 130: struct_type: YARRAY YLBRA simple_type_list YRBRA YOF type' () ! 131: | YFILE YOF type' () ! 132: | YSET YOF simple_type () ! 133: | YRECORD field_list YEND () ! 134: simple_type_list: simple_type () ! 135: | simple_type_list YCOMMA simple_type () ! 136: field_list: fixed_part variant_part () ! 137: fixed_part: field () ! 138: | fixed_part YSEMI field () ! 139: field: () ! 140: | id_list YCOLON type' () ! 141: variant_part: () ! 142: | YCASE type_id YOF variant_list () ! 143: | YCASE YID YCOLON type_id YOF variant_list () ! 144: variant_list: variant () ! 145: | variant_list YSEMI variant () ! 146: variant: () ! 147: | const_list YCOLON YLPAR field_list YRPAR () ! 148: stat_list: stat () ! 149: | stat_lsth stat () ! 150: stat_lsth: stat_list YSEMI () ! 151: cstat_list: cstat () ! 152: | cstat_list YSEMI cstat () ! 153: cstat: const_list YCOLON stat () ! 154: | YCASELAB stat () ! 155: | () ! 156: stat: () ! 157: | YINT YCOLON stat () ! 158: | YID () ! 159: | YID YLPAR wexpr_list YRPAR () ! 160: | assign () ! 161: | YBEGIN stat_list YEND () ! 162: | YCASE expr YOF cstat_list YEND () ! 163: | YWITH var_list YDO stat () ! 164: | YWHILE expr YDO stat () ! 165: | YREPEAT stat_list YUNTIL expr () ! 166: | YFOR assign YTO expr YDO stat () ! 167: | YFOR assign YDOWNTO expr YDO stat () ! 168: | YGOTO YINT () ! 169: | YIF expr YTHEN stat () ! 170: | YIF expr YTHEN stat YELSE stat () ! 171: assign: variable YCOLON YEQUAL expr () ! 172: | YID YCOLON YEQUAL expr () ! 173: expr: expr relop expr %prec YLESS () ! 174: | YPLUS expr %prec UNARYSIGN () ! 175: | YMINUS expr %prec UNARYSIGN () ! 176: | expr addop expr %prec YPLUS () ! 177: | expr divop expr %prec YSTAR () ! 178: | YNIL () ! 179: | YSTRING () ! 180: | YINT () ! 181: | YBINT () ! 182: | YNUMB () ! 183: | variable () ! 184: | YID () ! 185: | YID YLPAR wexpr_list YRPAR () ! 186: | YLPAR expr YRPAR () ! 187: | negop expr %prec YNOT () ! 188: | YLBRA element_list YRBRA () ! 189: | YLBRA YRBRA () ! 190: element_list: element () ! 191: | element_list YCOMMA element () ! 192: element: expr () ! 193: | expr YDOTDOT expr () ! 194: variable: qual_var () ! 195: qual_var: YID YLBRA expr_list YRBRA () ! 196: | qual_var YLBRA expr_list YRBRA () ! 197: | YID YDOT field_id () ! 198: | qual_var YDOT field_id () ! 199: | YID YCARET () ! 200: | qual_var YCARET () ! 201: wexpr: expr () ! 202: | expr YCOLON expr () ! 203: | expr YCOLON expr YCOLON expr () ! 204: | expr octhex () ! 205: | expr YCOLON expr octhex () ! 206: octhex: YOCT () ! 207: | YHEX () ! 208: expr_list: expr () ! 209: | expr_list YCOMMA expr () ! 210: wexpr_list: wexpr () ! 211: | wexpr_list YCOMMA wexpr () ! 212: relop: YEQUAL () ! 213: | YLESS () ! 214: | YGREATER () ! 215: | YLESS YGREATER () ! 216: | YLESS YEQUAL () ! 217: | YGREATER YEQUAL () ! 218: | YIN () ! 219: addop: YPLUS () ! 220: | YMINUS () ! 221: | YOR () ! 222: | YBAR () ! 223: divop: YSTAR () ! 224: | YSLASH () ! 225: | YDIV () ! 226: | YMOD () ! 227: | YAND () ! 228: | YAMP () ! 229: negop: YNOT () ! 230: | YTILDE () ! 231: var_list: variable () ! 232: | var_list YCOMMA variable () ! 233: | YID () ! 234: | var_list YCOMMA YID () ! 235: id_list: YID () ! 236: | id_list YCOMMA YID () ! 237: const_id: YID () ! 238: type_id: YID () ! 239: var_id: YID () ! 240: array_id: YID () ! 241: ptr_id: YID () ! 242: record_id: YID () ! 243: field_id: YID () ! 244: func_id: YID ()
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.