| QT { let s = str lexbuf in
out s; TP.TEXT s }
| NUM as s { out s; TP.NUM (int_of_string s) }
+ | "(*" { block lexbuf; token lexbuf }
| "{" { out "{"; TP.OC }
| "}" { out "}"; TP.CC }
| "[" { out "["; TP.OB }
| "]" { out "]"; TP.CB }
| "*" { out "*"; TP.SR }
+ | "^" { out "^"; TP.CF }
| "+" { out "+"; TP.PS }
+ | "(" { out "("; TP.OP }
+ | ")" { out ")"; TP.CP }
+ | "@" { out ")"; TP.AT }
+ | "space" { out "space"; TP.SPACE }
| "name" { out "name"; TP.NAME }
| "table" { out "table"; TP.TABLE }
| "class" { out "class"; TP.CSS }
- | "(*" { block lexbuf; token lexbuf }
+ | "uri" { out "uri"; TP.URI }
+ | "ext" { out "ext"; TP.EXT }
| eof { TP.EOF }
and str = parse
| QT { "" }
+ | "\\\\" { "\\" ^ str lexbuf }
| "\\\"" { "\"" ^ str lexbuf }
| _ as c { S.make 1 c ^ str lexbuf }
and block = parse