Annotation of researchv10no/cmd/sml/lib/mlyacc/ml.grm, revision 1.1

1.1     ! root        1: type Lineno = int
        !             2: val lineno = ref 0
        !             3: val error = fn x => fn (lineno : int) =>
        !             4:  (output std_out (makestring lineno ^ ": " ^ x ^ "\n"))
        !             5: %%
        !             6: %term     EOF | ID | DOT | TYVAR | INT | REAL | STRING |
        !             7:          ABSTRACTION  | ABSTYPE | AND | ARROW | AS | BAR | BARBAR |
        !             8:          CASE | 
        !             9:          DATATYPE  |
        !            10:          DOTDOTDOT | ELSE | END | EQUAL | EQTYPE | EXCEPTION |
        !            11:          EXCEPTIONX |
        !            12:          DO  | DARROW | FN | FUN | FUNCTOR | HANDLE | HANDLEX | HASH |
        !            13:          IF  | IN  | INCLUDE | INFIX | INFIXR | LET |
        !            14:          LOCAL | NONFIX | OF | OP | OPEN | OVERLOAD |
        !            15:           QUERY | RAISE |  RAISEX | REC |
        !            16:          SHARING | SIG | SIGNATURE | STRUCT | STRUCTURE |
        !            17:          THEN | TYPE | VAL | WHILE | WILD  | WITH | WITHTYPE |
        !            18:          ASTERISK | COLON | COMMA  | LBRACE |  LBRACKET | LPAREN |
        !            19:          RBRACE | RBRACKET | RPAREN | SEMICOLON |
        !            20:          ORELSE | ANDALSO
        !            21: 
        !            22: %nonterm iddot | ident | nonfix_ident | opid | qid | selector | elabel |
        !            23:         elabels | plabel | plabels | tlabel | tabels0 |  ty0 | ty0_pc |
        !            24:         ty2 | ty | withclause | match | rule | handlerx | hrulex | exp_ps |
        !            25:         exp | exp1 | exp2 | constraint | exp3 | exp4 | aexp | bexp |
        !            26:         exp_2c | pat | pat1 | pat2 | pat3 | apat | apat1 | pat_2c | pat_ps |
        !            27:         vb | rvb | fg | apat_p | clause | tb | tyvars | tyvar_pc | db | 
        !            28:         constr | eb | ebx | qid_p | fixity | ldec  | exp_pa | ldecs |
        !            29:         ops | spec_s | spec | strspec | tyspec | valspec | exnspecx |
        !            30:         exnspec | fb | tlabels | tlabels0 |
        !            31:         sharespec | patheqn | sign | sigconstraint_op | sigb |
        !            32:         str | sdecs | sdec | strb | fparam | fctb | tdec | top |
        !            33:         interdec
        !            34: 
        !            35: %verbose
        !            36: 
        !            37: %start tdec
        !            38: %eof EOF
        !            39: 
        !            40: %nonassoc WITHTYPE
        !            41: %right AND
        !            42: %right BAR
        !            43: %right ARROW
        !            44: %right DO
        !            45: %right HANDLE HANDLEX
        !            46: %right RAISE
        !            47: %left ORELSE
        !            48: %left ANDALSO
        !            49: 
        !            50: %%
        !            51: 
        !            52: iddot  : ID DOT
        !            53:           ()
        !            54: ident  : ID                                                            ()
        !            55:        | ASTERISK                                                      ()
        !            56:        | EQUAL                                                         ()
        !            57: 
        !            58: nonfix_ident   : ident                                                 ()
        !            59: 
        !            60: opid   : nonfix_ident                                                  ()
        !            61:        | OP ident                                                      ()
        !            62: 
        !            63: qid    : iddot qid                                                     ()
        !            64:        | ident                                                 ()
        !            65: 
        !            66: selector: ID                                                   ()
        !            67:        | INT                                                   ()
        !            68: 
        !            69: elabel : selector EQUAL exp                                            ()
        !            70: 
        !            71: elabels: elabel COMMA elabels                                          ()
        !            72:        | elabel                                                        ()
        !            73: 
        !            74: plabel : selector EQUAL pat                                            ()
        !            75:        | ID                                                    ()
        !            76:        | ID AS pat                                                     ()
        !            77:        | ID COLON ty AS pat                                            ()
        !            78: 
        !            79: plabels : plabel COMMA plabels                                         ()
        !            80:        | plabel                                                        ()
        !            81:        | DOTDOTDOT                                                     ()
        !            82: 
        !            83: tlabel : selector COLON ty0                                            ()
        !            84: 
        !            85: tlabels0: tlabel COMMA tlabels0                                                ()
        !            86:        | tlabel                                                        ()
        !            87: 
        !            88: tlabels : tlabels0                                                     ()
        !            89:        |                                                       ()
        !            90: 
        !            91: ty0    : ty0 ARROW ty0                                                 ()
        !            92:        | ty2 ASTERISK ty2                                              ()
        !            93:        | ty2                                                   ()
        !            94: 
        !            95: ty0_pc : ty0                                                   ()
        !            96:        | ty0 COMMA ty0_pc                                              ()
        !            97: 
        !            98: ty2    : LPAREN ty0_pc RPAREN qid                                      ()
        !            99:        | qid                                                   ()
        !           100:        | LBRACE tlabels RBRACE                                         ()
        !           101: 
        !           102: ty     : ty0                                                   ()
        !           103: 
        !           104: withclause: WITH exp                                                   ()
        !           105:        |                                                       ()
        !           106: 
        !           107: match  : rule                                                  ()
        !           108:        | match BAR match                                               ()
        !           109: 
        !           110: rule   : pat DARROW exp                                                ()
        !           111: 
        !           112: handlerx: handlerx BARBAR handlerx                                     ()
        !           113:        | hrulex                                                        ()
        !           114: 
        !           115: hrulex : qid WITH match                                                ()
        !           116:        | qid DARROW exp                                                ()
        !           117:        | QUERY DARROW exp                                              ()
        !           118: 
        !           119: exp_ps : exp                                                   ()
        !           120:        | exp SEMICOLON exp_ps                                          ()
        !           121:        
        !           122: exp    : exp1 %prec BAR                                                ()
        !           123: 
        !           124: exp1   : exp1 HANDLEX handlerx                                         ()
        !           125:        | exp1 HANDLE match                                             ()
        !           126:        | exp2 %prec HANDLE                                             ()
        !           127: 
        !           128: exp2   : exp3 constraint                                               ()
        !           129:        | exp3 bexp                                                     ()
        !           130:        | bexp                                                          ()
        !           131:        | exp2 ORELSE exp2                                              ()
        !           132:        | exp2 ANDALSO exp2                                             ()
        !           133: 
        !           134: constraint:                                                            ()
        !           135:        | COLON ty                                                      ()
        !           136: 
        !           137: exp3   : exp4                                                  ()
        !           138:        | exp3 exp4                                                     ()
        !           139: 
        !           140: exp4   : ID                                                    ()
        !           141:        | aexp                                                  ()
        !           142: 
        !           143: aexp   : OP ID                                                 ()
        !           144:        | iddot qid                                                     ()
        !           145:        | INT                                                   ()
        !           146:        | REAL                                                  ()
        !           147:        | STRING                                                        ()
        !           148:        | HASH selector                                                 ()
        !           149:        | LBRACE elabels RBRACE                                         ()
        !           150:        | LBRACE RBRACE                                                 ()
        !           151:        | LPAREN RPAREN                                                 ()
        !           152:        | LPAREN exp RPAREN                                             ()
        !           153:        | LPAREN exp_2c RPAREN                                          ()
        !           154:        | LBRACKET exp_ps RBRACKET                                      ()
        !           155:        | LBRACKET RBRACKET                                             ()
        !           156:        | LET ldecs IN exp_ps END                                       ()
        !           157: 
        !           158: bexp   : FN match                                                      ()
        !           159:        | CASE exp OF match                                             ()
        !           160:        | WHILE exp DO exp                                              ()
        !           161:        | IF exp THEN exp ELSE exp                                      ()
        !           162:        | RAISEX qid withclause                                         ()
        !           163:        | RAISE exp2                                                    ()
        !           164: 
        !           165: 
        !           166: exp_2c : exp COMMA exp_2c                                              ()
        !           167:        | exp COMMA exp                                                 ()
        !           168: 
        !           169: pat    : pat1                                                  ()
        !           170:        | pat1 AS pat1                                                  ()
        !           171: 
        !           172: pat1   : pat2                                                  ()
        !           173:        | pat2 COLON ty                                                 ()
        !           174: 
        !           175: pat2   : pat3                                                  ()
        !           176:        | pat2 pat3                                                     ()
        !           177: 
        !           178: pat3   : ID                                                    ()
        !           179:        | apat1                                                 ()
        !           180: 
        !           181: apat   : ID                                                    ()
        !           182:        | apat1                                                 ()
        !           183: 
        !           184: apat1  : OP ident                                                      ()
        !           185:        | iddot qid                                                     ()
        !           186:        | INT                                                   ()
        !           187:        | REAL                                                  ()
        !           188:        | STRING                                                        ()
        !           189:        | WILD                                                  ()
        !           190:        | LPAREN RPAREN                                                 ()
        !           191:        | LPAREN pat RPAREN                                             ()
        !           192:        | LPAREN pat_2c RPAREN                                          ()
        !           193:        | LBRACKET RBRACKET                                             ()
        !           194:        | LBRACKET pat_ps RBRACKET                                      ()
        !           195:        | LBRACE RBRACE                                                 ()
        !           196:        | LBRACE plabels RBRACE                                         ()
        !           197: 
        !           198: pat_2c : pat COMMA pat_2c                                              ()
        !           199:        | pat COMMA pat                                                 ()
        !           200: 
        !           201: pat_ps : pat                                                   ()
        !           202:        | pat SEMICOLON pat_ps                                          ()
        !           203: 
        !           204: vb     : vb AND vb                                                     ()
        !           205:        | pat EQUAL exp                                                 ()
        !           206: 
        !           207: rvb    : opid constraint EQUAL exp                                     ()
        !           208:        | rvb AND rvb                                                   ()
        !           209: 
        !           210: fb     : clause                                                        ()
        !           211:        | clause BAR fb                                                 ()
        !           212:        | fb AND fb                                                     ()
        !           213: 
        !           214: apat_p : apat                                                  ()
        !           215:        | apat_p apat                                                   ()
        !           216: 
        !           217: clause : apat_p constraint EQUAL exp                                   ()
        !           218: 
        !           219: tb     : tyvars ident EQUAL ty                                         ()
        !           220:        | tb AND tb                                                     ()
        !           221: 
        !           222: tyvars : TYVAR                                                 ()
        !           223:        | LPAREN tyvar_pc RPAREN                                        ()
        !           224:        |                                                       ()
        !           225: 
        !           226: tyvar_pc: TYVAR                                                        ()
        !           227:        | TYVAR COMMA tyvar_pc                                          ()
        !           228: 
        !           229: db     : db AND db                                                     ()
        !           230:        | db WITHTYPE tb                                                ()
        !           231:        | tyvars ident constr                                           ()
        !           232:        | db BAR constr                                                 ()
        !           233: 
        !           234: constr : opid                                                  ()
        !           235:        | opid OF ty                                                    ()
        !           236: 
        !           237: eb     : ident                                                 ()
        !           238:        | ident OF ty                                                   ()
        !           239:        | ident EQUAL qid                                               ()
        !           240:        | eb AND eb                                                     ()
        !           241: 
        !           242: ebx    : ident constraint                                              ()
        !           243:        | ident EQUAL qid                                               ()
        !           244:        | ebx AND ebx                                                   ()
        !           245: 
        !           246: qid_p  : qid                                                   ()
        !           247:        | qid qid_p                                                     ()
        !           248: 
        !           249: 
        !           250: fixity : INFIX                                                 ()
        !           251:        | INFIX INT                                                     ()
        !           252:        | INFIXR                                                        ()
        !           253:        | INFIXR INT                                                    ()
        !           254:        | NONFIX                                                        ()
        !           255: 
        !           256: ldec   : VAL vb                                                        ()
        !           257:        | VAL REC rvb                                                   ()
        !           258:        | FUN fb                                                        ()
        !           259:        | TYPE tb                                                       ()
        !           260:        | DATATYPE db                                                   ()
        !           261:        | ABSTYPE db WITH ldecs END                                     ()
        !           262:        | EXCEPTION eb                                                  ()
        !           263:        | EXCEPTIONX ebx                                                ()
        !           264:        | LOCAL ldecs IN ldecs END                                      ()
        !           265:        | OPEN qid_p                                                    ()
        !           266:        | fixity ops                                                    ()
        !           267:        | OVERLOAD ident COLON ty AS exp_pa                             ()
        !           268: 
        !           269: exp_pa : exp                                                   ()
        !           270:        | exp AND exp_pa                                                ()
        !           271: 
        !           272: ldecs  : ldec                                                  ()
        !           273:        | ldecs ldec                                                    ()
        !           274:        | ldecs SEMICOLON                                               ()
        !           275: 
        !           276: ops    : ident                                                 ()
        !           277:        | ident ops                                                     ()
        !           278: 
        !           279: spec_s :                                                       ()
        !           280:        | spec spec_s                                                   ()
        !           281:        | spec SEMICOLON spec_s                                         ()
        !           282: 
        !           283: spec   : STRUCTURE strspec                                             ()
        !           284:        | DATATYPE db                                                   ()
        !           285:        | TYPE tyspec                                                   ()
        !           286:        | EQTYPE tyspec                                                 ()
        !           287:        | VAL valspec                                                   ()
        !           288:        | EXCEPTION exnspec                                             ()
        !           289:        | EXCEPTIONX exnspecx                                           ()
        !           290:        | fixity ops                                                    ()
        !           291:        | SHARING sharespec                                             ()
        !           292:        | INCLUDE ident                                                 ()
        !           293: 
        !           294: strspec        : strspec AND strspec                                           ()
        !           295:        | ident COLON sign                                              ()
        !           296: 
        !           297: tyspec : tyspec AND tyspec                                             ()
        !           298:        | tyvars ident                                                  ()
        !           299: 
        !           300: valspec        : valspec AND valspec                                           ()
        !           301:        | opid COLON ty                                                 ()
        !           302: 
        !           303: exnspec : exnspec AND exnspec                                          ()
        !           304:        | ident                                                 ()
        !           305:        | ident OF ty                                                   ()
        !           306: 
        !           307: exnspecx: exnspecx AND exnspecx                                                ()
        !           308:        | ident                                                 ()
        !           309:        | ident COLON ty                                                ()
        !           310:        
        !           311: sharespec: sharespec AND sharespec                                     ()
        !           312:        | TYPE patheqn                                                  ()
        !           313:        | qid patheqn                                                   ()
        !           314:        
        !           315: patheqn:  qid EQUAL qid                                                        ()
        !           316:        | qid EQUAL patheqn                                             ()
        !           317: 
        !           318: sign   : ID                                                    ()
        !           319:        | SIG spec_s END                                                ()
        !           320: 
        !           321: sigconstraint_op :                                                     ()
        !           322:        | COLON sign                                                    ()
        !           323: 
        !           324: sigb   : sigb AND sigb                                                 ()
        !           325:        | ident EQUAL sign                                              ()
        !           326: 
        !           327: str    : qid                                                   ()
        !           328:        | STRUCT sdecs END                                              ()
        !           329:        | ID LPAREN sdecs RPAREN                                        ()
        !           330:        | ID LPAREN str RPAREN                                          ()
        !           331: 
        !           332: sdecs  : sdecs sdec                                                    ()
        !           333:        | sdecs sdec SEMICOLON                                          ()
        !           334:        |                                                       ()
        !           335: 
        !           336: sdec   : STRUCTURE strb                                                ()
        !           337:        | ABSTRACTION strb                                              ()
        !           338:        | SIGNATURE sigb                                                ()
        !           339:        | FUNCTOR fctb                                                  ()
        !           340:        | ldec                                                  ()
        !           341: 
        !           342: strb   : ident sigconstraint_op EQUAL str                              ()
        !           343:        | strb AND strb                                                 ()
        !           344: 
        !           345: fparam : ID COLON sign                                                 ()
        !           346:        | spec_s                                                        ()
        !           347: 
        !           348: fctb   : ident LPAREN fparam RPAREN sigconstraint_op EQUAL str         ()
        !           349:        | fctb AND fctb                                                 ()
        !           350: 
        !           351: tdec   : SIGNATURE sigb                                                ()
        !           352:        | FUNCTOR fctb                                                  ()
        !           353:        | STRUCTURE strb                                                ()
        !           354:        | ABSTRACTION strb                                              ()
        !           355:        | OPEN qid_p                                                    ()
        !           356:        | SEMICOLON tdec                                                ()
        !           357:        |                                                       ()
        !           358: 
        !           359: top    : SIGNATURE sigb                                                ()
        !           360:        | FUNCTOR fctb                                                  ()
        !           361:        | STRUCTURE strb                                                ()
        !           362:        | ABSTRACTION strb                                              ()
        !           363:        | OPEN qid_p                                                    ()
        !           364:        | ldec                                                  ()
        !           365:        | exp                                                   ()
        !           366: 
        !           367: interdec: top                                                  ()
        !           368:        | interdec top                                                  ()
        !           369:        | SEMICOLON                                                     ()

unix.superglobalmegacorp.com

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