Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- %{
- (* File Expr/ExprPar.fsy
- Parser specification for the simple expression language.
- *)
- open Absyn
- %}
- %token LPAR RPAR
- %token <char> RE
- %token STAR
- %token PIPE
- %token EOF
- %start Main
- %type <Absyn.re> Main
- %right LPAR
- %left RPAR
- %right PIPE
- %left STAR
- %%
- Main:
- Re EOF { $1 }
- ;
- Re:
- LPAR Re RPAR { $2 }
- | Re STAR { Star ($1) }
- | Concat { $1 }
- | Union { $1 }
- | RE { Char ($1) }
- ;
- Concat:
- Re Re { Seq ($1, $2) }
- ;
- Union:
- Re PIPE Re { Choice ($1, $3) }
- ;
- // vim: set ts=4 sw=4 et:
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement