DELIM "\\["; some = l2_pattern; DELIM "\\]";
DELIM "\\["; none = l2_pattern; DELIM "\\]" ->
Default (some, none)
+ | SYMBOL "\\IF";
+ DELIM "\\["; guard = l2_pattern; DELIM "\\]";
+ DELIM "\\["; p = l2_pattern; DELIM "\\]" ->
+ If (guard, p)
+ | SYMBOL "\\UNLESS";
+ DELIM "\\["; guard = l2_pattern; DELIM "\\]";
+ DELIM "\\["; p = l2_pattern; DELIM "\\]" ->
+ Unless (guard, p)
]
];
l2_pattern: LEVEL "10" (* let in *)
]
];
level3_term: [
- [ u = URI -> UriPattern u
+ [ u = URI -> UriPattern (UriManager.uri_of_string u)
| id = IDENT -> VarPattern id
| SYMBOL "("; terms = LIST1 SELF; SYMBOL ")" ->
(match terms with