comparison src/urweb.grm @ 446:86c063fedc4d

Parsing 'let'
author Adam Chlipala <adamc@hcoop.net>
date Sat, 01 Nov 2008 10:47:10 -0400
parents dfc8c991abd0
children f542bc3133dc
comparison
equal deleted inserted replaced
445:dfc8c991abd0 446:86c063fedc4d
196 | CON | LTYPE | VAL | REC | AND | FUN | FOLD | UNIT | KUNIT | CLASS 196 | CON | LTYPE | VAL | REC | AND | FUN | FOLD | UNIT | KUNIT | CLASS
197 | DATATYPE | OF 197 | DATATYPE | OF
198 | TYPE | NAME 198 | TYPE | NAME
199 | ARROW | LARROW | DARROW | STAR | SEMI 199 | ARROW | LARROW | DARROW | STAR | SEMI
200 | FN | PLUSPLUS | MINUSMINUS | DOLLAR | TWIDDLE 200 | FN | PLUSPLUS | MINUSMINUS | DOLLAR | TWIDDLE
201 | LET | IN
201 | STRUCTURE | SIGNATURE | STRUCT | SIG | END | FUNCTOR | WHERE | EXTERN | SQL 202 | STRUCTURE | SIGNATURE | STRUCT | SIG | END | FUNCTOR | WHERE | EXTERN | SQL
202 | INCLUDE | OPEN | CONSTRAINT | CONSTRAINTS | EXPORT | TABLE | SEQUENCE 203 | INCLUDE | OPEN | CONSTRAINT | CONSTRAINTS | EXPORT | TABLE | SEQUENCE
203 | CASE | IF | THEN | ELSE 204 | CASE | IF | THEN | ELSE
204 205
205 | XML_BEGIN of string | XML_END | XML_BEGIN_END of string 206 | XML_BEGIN of string | XML_END | XML_BEGIN_END of string
270 | xml of exp 271 | xml of exp
271 | xmlOne of exp 272 | xmlOne of exp
272 | tag of string * exp 273 | tag of string * exp
273 | tagHead of string * exp 274 | tagHead of string * exp
274 | bind of string * con option * exp 275 | bind of string * con option * exp
276 | edecl of edecl
277 | edecls of edecl list
275 278
276 | earg of exp * con -> exp * con 279 | earg of exp * con -> exp * con
277 | eargp of exp * con -> exp * con 280 | eargp of exp * con -> exp * con
278 | eargs of exp * con -> exp * con 281 | eargs of exp * con -> exp * con
279 | eargl of exp * con -> exp * con 282 | eargl of exp * con -> exp * con
917 (EApp (e, sqlexp), loc) 920 (EApp (e, sqlexp), loc)
918 end) 921 end)
919 922
920 | UNDER (EWild, s (UNDERleft, UNDERright)) 923 | UNDER (EWild, s (UNDERleft, UNDERright))
921 924
925 | LET edecls IN eexp END (ELet (edecls, eexp), s (LETleft, ENDright))
926
927 edecls : ([])
928 | edecl edecls (edecl :: edecls)
929
930 edecl : VAL vali ((EDVal vali, s (VALleft, valiright)))
931 | VAL REC valis ((EDValRec valis, s (VALleft, valisright)))
932 | FUN valis ((EDValRec valis, s (FUNleft, valisright)))
933
922 enterDml : (inDml := true) 934 enterDml : (inDml := true)
923 leaveDml : (inDml := false) 935 leaveDml : (inDml := false)
924 936
925 texp : SYMBOL (EVar ([], SYMBOL, Infer), s (SYMBOLleft, SYMBOLright)) 937 texp : SYMBOL (EVar ([], SYMBOL, Infer), s (SYMBOLleft, SYMBOLright))
926 | LBRACE LBRACE eexp RBRACE RBRACE (eexp) 938 | LBRACE LBRACE eexp RBRACE RBRACE (eexp)