- prot:
- | STR { Some $1 }
- | STAR { None }
- ;
- body:
- | { [] }
- | SLASH body { MQBD :: $2 }
- | QUEST body { MQBQ :: $2 }
- | SSTAR body { MQBSS :: $2 }
- | STAR body { MQBS :: $2 }
- | STR body { MQBC $1 :: $2 }
- frag:
- | { [] }
- | SLASH SSTAR frag { MQFSS :: $3 }
- | SLASH STAR frag { MQFS :: $3 }
- | SLASH STR frag { try let i = int_of_string $2 in
- if i < 1 then raise Parsing.Parse_error;
- MQFC i :: $3
- with e -> raise Parsing.Parse_error
- }
- ;
- ref:
- | prot PROT body DQT { ($1, $3, []) }
- | prot PROT body FRAG frag DQT { ($1, $3, $5) }
- ;