/[svn]/parser/parser.ml
ViewVC logotype

Diff of /parser/parser.ml

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

revision 337 by abate, Tue Jul 10 17:25:57 2007 UTC revision 338 by abate, Tue Jul 10 17:26:25 2007 UTC
# Line 93  Line 93 
93      | (p,e1) = let_binding; "in"; e2 = expr LEVEL "top"->      | (p,e1) = let_binding; "in"; e2 = expr LEVEL "top"->
94          [ mk loc (EvalStatement (exp loc (Match (e1,[p,e2])))) ]          [ mk loc (EvalStatement (exp loc (Match (e1,[p,e2])))) ]
95      | LIDENT "type"; x = UIDENT; "="; t = pat -> [ mk loc (TypeDecl (x,t)) ]      | LIDENT "type"; x = UIDENT; "="; t = pat -> [ mk loc (TypeDecl (x,t)) ]
96        | LIDENT "type"; x = LIDENT -> [ error loc "Type identifiers must be capitalized" ]
97      | LIDENT "debug"; d = debug_directive -> [ mk loc (Debug d) ]      | LIDENT "debug"; d = debug_directive -> [ mk loc (Debug d) ]
98      | LIDENT "include"; s = STRING2 ->      | LIDENT "include"; s = STRING2 ->
99          let s = get_string s in          let s = get_string s in
# Line 337  Line 338 
338    
339    pat: [    pat: [
340        [ x = pat; LIDENT "where";        [ x = pat; LIDENT "where";
341          b = LIST1 [ a = UIDENT; "="; y = pat -> (a,y)] SEP "and"          b = LIST1 [ a = UIDENT; "="; y = pat -> (a,y)
342                      | LIDENT -> error loc "Type/pattern identifiers must be capitalized"
343                      ] SEP "and"
344              -> mk loc (Recurs (x,b)) ]              -> mk loc (Recurs (x,b)) ]
345      | RIGHTA [ x = pat; "->"; y = pat -> mk loc (Arrow (x,y)) ]      | RIGHTA [ x = pat; "->"; y = pat -> mk loc (Arrow (x,y)) ]
346      | "no_arrow" [ x = pat; "|"; y = pat -> mk loc (Or (x,y)) ]      | "no_arrow" [ x = pat; "|"; y = pat -> mk loc (Or (x,y)) ]

Legend:
Removed from v.337  
changed lines
  Added in v.338

CVS Admin">CVS Admin
ViewVC Help
Powered by ViewVC 1.1.5