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

Diff of /parser/parser.ml

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

revision 16 by abate, Tue Jul 10 16:58:05 2007 UTC revision 17 by abate, Tue Jul 10 16:58:13 2007 UTC
# Line 36  Line 36 
36      "top" RIGHTA      "top" RIGHTA
37      [ "match"; e = SELF; "with"; b = branches -> mk loc (Match (e,b))      [ "match"; e = SELF; "with"; b = branches -> mk loc (Match (e,b))
38      | "map"; e = SELF; "with"; b = branches -> mk loc (Map (e,b))      | "map"; e = SELF; "with"; b = branches -> mk loc (Map (e,b))
39        | "transform"; e = SELF; "with"; b = branches ->
40            mk noloc (Op ("flatten", [mk loc (Map (e,b))]))
41      | "fun"; f = OPT LIDENT; "("; a = LIST1 arrow SEP ";"; ")";      | "fun"; f = OPT LIDENT; "("; a = LIST1 arrow SEP ";"; ")";
42        b = branches ->        b = branches ->
43          mk loc (Abstraction { fun_name = f; fun_iface = a; fun_body = b })          mk loc (Abstraction { fun_name = f; fun_iface = a; fun_body = b })
# Line 44  Line 46 
46      ]      ]
47    
48      |      |
49      [ e1 = expr; e2 = expr -> mk loc (Apply (e1,e2))      [ LIDENT "flatten"; e = expr -> mk loc (Op ("flatten",[e]))
50        | e1 = expr; e2 = expr -> mk loc (Apply (e1,e2))
51      ]      ]
52    
53      |      |
54      [ e1 = expr; "+"; e2 = expr -> mk loc (Op ("+",[e1;e2]))  ]      [ e1 = expr; "+"; e2 = expr -> mk loc (Op ("+",[e1;e2]))
55        | e1 = expr; "@"; e2 = expr -> mk loc (Op ("@",[e1;e2])) ]
56      |      |
57      [ e1 = expr; "*"; e2 = expr -> mk loc (Op ("*",[e1;e2]))  ]      [ e1 = expr; "*"; e2 = expr -> mk loc (Op ("*",[e1;e2]))  ]
58    

Legend:
Removed from v.16  
changed lines
  Added in v.17

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