X-Git-Url: http://git.nguyen.vg/gitweb/?a=blobdiff_plain;f=src%2Fxpath%2Fulexer.ml;h=dbde49035c9d6ce60e86a39760696b5e5533c856;hb=e19136462d2b66532cbed3490d3b5e249f15a7a8;hp=2153e18f5fd04277d0c69954b8dae9fa37eaebcd;hpb=e13f5deae217f945b44fa345ef4f0008e1780787;p=tatoo.git diff --git a/src/xpath/ulexer.ml b/src/xpath/ulexer.ml index 2153e18..dbde490 100644 --- a/src/xpath/ulexer.ml +++ b/src/xpath/ulexer.ml @@ -14,7 +14,7 @@ (***********************************************************************) (* - Time-stamp: + Time-stamp: *) open Xpath_internal_parser @@ -54,7 +54,7 @@ let return lexbuf tok = (tok, L.loc lexbuf) let return_loc i j tok = (tok, (i,j)) let regexp ncname_char = - xml_letter | xml_digit | [ '-' '_' ] | xml_combining_char | xml_extender | "\\." + xml_letter | xml_digit | [ '-' '_' '.'] | xml_combining_char | xml_extender let hexa_digit = function | '0'..'9' as c -> (Char.code c) - (Char.code '0') @@ -123,6 +123,13 @@ let rec token = lexer | "!=" -> NEQ | "node()" -> NODE | "text()" -> TEXT + | "comment()" -> COMMENT + | '@' ncname -> ATTNAME (L.utf8_lexeme lexbuf) + | "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 @@ -165,5 +172,3 @@ and string start double = lexer | _ -> store_lexeme lexbuf; string start double lexbuf - -