Home My Page Projects Code Snippets Project Openings SML/NJ
Summary Activity Forums Tracker Lists Tasks Docs Surveys News SCM Files

SCM Repository

[smlnj] Diff of /sml/trunk/src/MLRISC/Tools/Parser/mdl.grm
ViewVC logotype

Diff of /sml/trunk/src/MLRISC/Tools/Parser/mdl.grm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 998, Sat Nov 24 23:40:39 2001 UTC revision 999, Tue Nov 27 06:28:37 2001 UTC
# Line 102  Line 102 
102  fun clause(pats, guard, NONE, e) = CLAUSE(pats, guard, e)  fun clause(pats, guard, NONE, e) = CLAUSE(pats, guard, e)
103    | clause(pats, guard, SOME x, e) = CLAUSE(pats, guard, CONTexp(e, x))    | clause(pats, guard, SOME x, e) = CLAUSE(pats, guard, CONTexp(e, x))
104    
105    fun seqdecl [d] = d
106      | seqdecl ds  = SEQdecl ds
107    
108    fun idty(IDENT([],"unit")) = TUPLEty []
109      | idty x = IDty x
110    
111  %%  %%
112  %header (functor MDLParser(structure Token   : TOKEN  %header (functor MDLParser(structure Token   : TOKEN
113                             structure AstPP   : MDL_AST_PRETTY_PRINTER                             structure AstPP   : MDL_AST_PRETTY_PRINTER
# Line 120  Line 126 
126          LPAREN | RPAREN | LBRACKET | RBRACKET | LBRACE | RBRACE | SEMICOLON |          LPAREN | RPAREN | LBRACKET | RBRACKET | LBRACE | RBRACE | SEMICOLON |
127          LDQUOTE | RDQUOTE | LMETA | RMETA |          LDQUOTE | RDQUOTE | LMETA | RMETA |
128          CELLSET | FN | STORAGE | LOCATIONS | HASH |          CELLSET | FN | STORAGE | LOCATIONS | HASH |
129          COMMA | COLON | DOT | DOTDOT | AT | BAR | ARROW | DARROW | PAR | BITS |          COMMA | COLON | COLONGREATER |
130            DOT | DOTDOT | AT | BAR | ARROW | DARROW | PAR | BITS |
131          IF | THEN | ELSE | TRUE | FALSE | WILD | RAISE |          IF | THEN | ELSE | TRUE | FALSE | WILD | RAISE |
132          HANDLE | LET | STRUCTURE | FUNCTOR | SIGNATURE | SIG | STRUCT | WHERE |          HANDLE | LET | STRUCTURE | FUNCTOR | SIGNATURE | SIG | STRUCT | WHERE |
133          SHARING | INSTRUCTION | REGISTER | CELL | CELLS | ORDERING |          SHARING | INSTRUCTION | REGISTER | CELL | CELLS | ORDERING |
# Line 149  Line 156 
156    
157  %nonterm architecture of decl list |  %nonterm architecture of decl list |
158           structexp of structexp |           structexp of structexp |
159             sigcon of sigconstraint |
160           opt_of of unit |           opt_of of unit |
161           id of id |           id of id |
162           sym of id |           sym of id |
# Line 359  Line 367 
367  decl:           mldecl optsemi  (mldecl)  decl:           mldecl optsemi  (mldecl)
368  |               mddecl optsemi  (mddecl)  |               mddecl optsemi  (mddecl)
369  |               INCLUDE string optsemi  |               INCLUDE string optsemi
370                  (SEQdecl(import                  (seqdecl(import
371                    (SourceMapping.location srcMap                    (SourceMapping.location srcMap
372                        (INCLUDEleft,stringright), string)))                        (INCLUDEleft,stringright), string)))
373    
# Line 464  Line 472 
472  |               TYPE tyvarseq tid (TYPESIGdecl(tid,tyvarseq))  |               TYPE tyvarseq tid (TYPESIGdecl(tid,tyvarseq))
473  |               LOCAL scopeddecls IN scopeddecls END  |               LOCAL scopeddecls IN scopeddecls END
474                          (LOCALdecl(scopeddecls1,scopeddecls2))                          (LOCALdecl(scopeddecls1,scopeddecls2))
475  |               STRUCTURE id EQ structexp (STRUCTUREdecl(id,[],NONE,structexp))  |               STRUCTURE id EQ structexp
476  |               STRUCTURE id COLON sigexp EQ structexp                          (STRUCTUREdecl(id,[],NONE,structexp))
477                          (STRUCTUREdecl(id,[],SOME sigexp,structexp))  |               STRUCTURE id sigcon EQ structexp
478                            (STRUCTUREdecl(id,[],SOME sigcon,structexp))
479  |               STRUCTURE id COLON sigexp (STRUCTURESIGdecl(id,sigexp))  |               STRUCTURE id COLON sigexp (STRUCTURESIGdecl(id,sigexp))
480  |               SIGNATURE id EQ sigexp (SIGNATUREdecl(id,sigexp))  |               SIGNATURE id EQ sigexp (SIGNATUREdecl(id,sigexp))
481  |               FUNCTOR id LPAREN functorarg RPAREN EQ structexp  |               FUNCTOR id LPAREN functorarg RPAREN EQ structexp
482                          (STRUCTUREdecl(id,functorarg,NONE,structexp))                          (STRUCTUREdecl(id,functorarg,NONE,structexp))
483  |               FUNCTOR id LPAREN functorarg RPAREN COLON sigexp EQ structexp  |               FUNCTOR id LPAREN functorarg RPAREN sigcon EQ structexp
484                          (STRUCTUREdecl(id,functorarg,SOME sigexp,structexp))                          (STRUCTUREdecl(id,functorarg,SOME sigcon,structexp))
485  |               FUNCTOR id EQ structexp (FUNCTORdecl(id,[],NONE,structexp))  |               FUNCTOR id EQ structexp
486                            (FUNCTORdecl(id,[],NONE,structexp))
487  |               SHARING sharingdecls (SHARINGdecl sharingdecls)  |               SHARING sharingdecls (SHARINGdecl sharingdecls)
488  |               INFIX intopt syms (Infix precStack (intopt,syms); INFIXdecl(intopt,syms))  |               INFIX intopt syms (Infix precStack (intopt,syms); INFIXdecl(intopt,syms))
489  |               INFIXR intopt syms (Infixr precStack (intopt,syms); INFIXRdecl(intopt,syms))  |               INFIXR intopt syms (Infixr precStack (intopt,syms); INFIXRdecl(intopt,syms))
# Line 491  Line 501 
501    
502    
503  functorarg:     scopeddecls             (scopeddecls)  functorarg:     scopeddecls             (scopeddecls)
504  |               id COLON sigexp         ([FUNCTORARGdecl(id,sigexp)])  |               id sigcon               ([FUNCTORARGdecl(id,sigcon)])
505    
506  sigexp:         ident                   (IDsig ident)  sigexp:         ident                   (IDsig ident)
507  |               SIG decls END           (DECLsig decls)  |               SIG decls END           (DECLsig decls)
508  |               sigexp WHERE sigsubs    (sigsubs sigexp)  |               sigexp WHERE sigsubs    (sigsubs sigexp)
509    
510    sigcon:         COLON sigexp            ({abstract=false,sigexp=sigexp})
511    |               COLONGREATER sigexp     ({abstract=true,sigexp=sigexp})
512    
513  sigsubs:        sigsub                  (sigsub)  sigsubs:        sigsub                  (sigsub)
514  |               sigsub AND sigsubs      (sigsub o sigsubs)  |               sigsub AND sigsubs      (sigsub o sigsubs)
515    
# Line 936  Line 949 
949  funclauses:     funclause               (#1 funclause,[#2 funclause])  funclauses:     funclause               (#1 funclause,[#2 funclause])
950  |               funclause BAR funclauses (#1 funclause,#2 funclause:: #2 funclauses)  |               funclause BAR funclauses (#1 funclause,#2 funclause:: #2 funclauses)
951    
952  aty:            tident                  (IDty tident)  aty:            tident                  (idty(tident))
953  |               HASH int                (INTVARty int)  |               HASH int                (INTVARty int)
954  |               tyvar                   (TYVARty tyvar)  |               tyvar                   (TYVARty tyvar)
955  |               DOLLAR id               (CELLty id)  |               DOLLAR id               (CELLty id)
956  |               LPAREN RPAREN           (IDty(IDENT([],"unit")))  |               LPAREN RPAREN           (TUPLEty [])
957  |               LPAREN ty RPAREN        (ty)  |               LPAREN ty RPAREN        (ty)
958  |               LBRACE labtys RBRACE    (RECORDty labtys)  |               LBRACE labtys RBRACE    (RECORDty labtys)
959    

Legend:
Removed from v.998  
changed lines
  Added in v.999

root@smlnj-gforge.cs.uchicago.edu
ViewVC Help
Powered by ViewVC 1.0.0