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

Diff of /parser/parser.ml

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

revision 9 by abate, Tue Jul 10 16:57:19 2007 UTC revision 10 by abate, Tue Jul 10 16:57:27 2007 UTC
# Line 1  Line 1 
1  open Location  open Location
2  open Ast  open Ast
3    
 module P = struct  
   
4    let gram    = Grammar.create (Plexer.make ())    let gram    = Grammar.create (Plexer.make ())
5      let prog    = Grammar.Entry.create gram "prog"
6    let expr    = Grammar.Entry.create gram "expression"    let expr    = Grammar.Entry.create gram "expression"
7    let pat     = Grammar.Entry.create gram "type/pattern expression"    let pat     = Grammar.Entry.create gram "type/pattern expression"
8    let regexp  = Grammar.Entry.create gram "type/pattern regexp"    let regexp  = Grammar.Entry.create gram "type/pattern regexp"
# Line 22  Line 21 
21      | [] -> assert false      | [] -> assert false
22    
23    EXTEND    EXTEND
24    GLOBAL: expr pat regexp const;    GLOBAL: prog expr pat regexp const;
25    
26      prog: [
27        [ l = LIST0 [ e = expr -> mk loc (EvalStatement e) ] SEP ";;";
28           "EOF"  -> l ]
29      ];
30    
31    expr: [    expr: [
32      "top" RIGHTA      "top" RIGHTA
# Line 173  Line 177 
177      ];      ];
178  END  END
179    
180    let pat = Grammar.Entry.parse pat
181    let expr = Grammar.Entry.parse expr
182    let prog = Grammar.Entry.parse prog
183    
184    module From_string = struct
185      let pat s = pat (Stream.of_string s)
186      let expr s = expr (Stream.of_string s)
187  end  end
188    
 let pat_or_typ s = Grammar.Entry.parse P.pat (Stream.of_string s)  
   
 let expr s =  Grammar.Entry.parse P.expr (Stream.of_string s)  

Legend:
Removed from v.9  
changed lines
  Added in v.10

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