Simplify the automaton encoding a bit (remove redundant predicates in formulae).
[tatoo.git] / src / xpath / ulexer.ml
index 3e71c5a..02b6e02 100644 (file)
 (*                                                                     *)
 (***********************************************************************)
 
-(*
-  Time-stamp: <Last modified on 2013-03-10 14:34:41 CET by Kim Nguyen>
-*)
-
 open Xpath_internal_parser
 
 module L = Ulexing
@@ -121,10 +117,18 @@ let rec token = lexer
  | ">=" -> GTE
  | "="  -> EQ
  | "!=" -> NEQ
+ | ".." -> DOTDOT
+ | "."  -> DOT
  | "node()" -> NODE
  | "text()" -> TEXT
- | '@' ncname -> ATTNAME (L.utf8_lexeme lexbuf)
-
+ | "comment()" -> COMMENT
+ | '@' ncname -> let l = L.utf8_lexeme lexbuf in
+                 ATTNAME (String.sub l 1 (String.length l - 1))
+ | "processing-instruction()" -> PI ""
+ | "processing-instruction('"ncname"')"
+ | "processing-instruction(\""ncname"\")"->
+     let s = L.utf8_lexeme lexbuf in
+     PI (String.sub s 24 (String.length s - 26))
  | ncname -> keyword_or_tag (L.utf8_lexeme lexbuf)
  | float ->
      let s = L.utf8_lexeme lexbuf in