From 58417b0684f351a8a24e4e3ad54bde715036209d Mon Sep 17 00:00:00 2001 From: =?utf8?q?Kim=20Nguy=E1=BB=85n?= Date: Wed, 13 Mar 2013 14:44:53 +0100 Subject: [PATCH] Add .. and . to the path syntax. --- src/xpath/ulexer.ml | 4 +++- src/xpath/xpath_internal_parser.mly | 8 +++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/xpath/ulexer.ml b/src/xpath/ulexer.ml index dbde490..7a7d2a7 100644 --- a/src/xpath/ulexer.ml +++ b/src/xpath/ulexer.ml @@ -14,7 +14,7 @@ (***********************************************************************) (* - Time-stamp: + Time-stamp: *) open Xpath_internal_parser @@ -121,6 +121,8 @@ let rec token = lexer | ">=" -> GTE | "=" -> EQ | "!=" -> NEQ + | ".." -> DOTDOT + | "." -> DOT | "node()" -> NODE | "text()" -> TEXT | "comment()" -> COMMENT diff --git a/src/xpath/xpath_internal_parser.mly b/src/xpath/xpath_internal_parser.mly index a40eea9..9830e76 100644 --- a/src/xpath/xpath_internal_parser.mly +++ b/src/xpath/xpath_internal_parser.mly @@ -15,7 +15,7 @@ (***********************************************************************) (* - Time-stamp: + Time-stamp: *) open Ast @@ -30,7 +30,7 @@ %token FLOAT %token AXIS %token RB LB LP RP -%token SLASH SLASHSLASH COLONCOLON STAR PIPE +%token SLASH SLASHSLASH COLONCOLON STAR PIPE DOT DOTDOT %token EQ NEQ LT GT LTE GTE OR AND ADD SUB DIV MOD %token NODE TEXT COMMENT %token COMMA @@ -91,7 +91,9 @@ relative_path: ; step: - axis_test pred_list { + DOT { [ (Self, (node, NodeKind.Node), []) ] } +| DOTDOT { [ (Parent, (node, NodeKind.Node), []) ] } +| axis_test pred_list { match $1 with (a,b) :: r -> (a,b,$2) :: (List.map (fun (a,b) -> (a,b,[])) r) | [] -> assert false -- 2.17.1