diff --git a/shared/xsl/zoo2xhtml.xslt b/shared/xsl/zoo2xhtml.xslt
index 618b7775..d74ea4ac 100644
--- a/shared/xsl/zoo2xhtml.xslt
+++ b/shared/xsl/zoo2xhtml.xslt
@@ -98,7 +98,7 @@
[BGF⇒BNF]
-
+
Grammar Deployment Kit:
diff --git a/topics/grammars/xpath/extracted-grammar-v1.bgf b/topics/grammars/xpath/extracted-grammar-v1.bgf
new file mode 100644
index 00000000..84cdc690
--- /dev/null
+++ b/topics/grammars/xpath/extracted-grammar-v1.bgf
@@ -0,0 +1,1001 @@
+
+
+
+
+ LocationPath
+
+
+
+ RelativeLocationPath
+
+
+ AbsoluteLocationPath
+
+
+
+
+
+
+ AbsoluteLocationPath
+
+
+
+
+
+ /
+
+
+
+
+ RelativeLocationPath
+
+
+
+
+
+
+ AbbreviatedAbsoluteLocationPath
+
+
+
+
+
+
+ RelativeLocationPath
+
+
+
+ Step
+
+
+
+
+ RelativeLocationPath
+
+
+ /
+
+
+ Step
+
+
+
+
+ AbbreviatedRelativeLocationPath
+
+
+
+
+
+
+ Step
+
+
+
+
+
+ AxisSpecifier
+
+
+ NodeTest
+
+
+
+
+ Predicate
+
+
+
+
+
+
+ AbbreviatedStep
+
+
+
+
+
+
+ AxisSpecifier
+
+
+
+
+
+ AxisName
+
+
+ ::
+
+
+
+
+ AbbreviatedAxisSpecifier
+
+
+
+
+
+
+ AxisName
+
+
+
+ ancestor
+
+
+ ancestor-or-self
+
+
+ attribute
+
+
+ child
+
+
+ descendant
+
+
+ descendant-or-self
+
+
+ following
+
+
+ following-sibling
+
+
+ namespace
+
+
+ parent
+
+
+ preceding
+
+
+ preceding-sibling
+
+
+ self
+
+
+
+
+
+
+ NodeTest
+
+
+
+ NameTest
+
+
+
+
+ NodeType
+
+
+ (
+
+
+ )
+
+
+
+
+
+
+ processing-instruction
+
+
+ (
+
+
+ Literal
+
+
+ )
+
+
+
+
+
+
+
+
+ Predicate
+
+
+
+ [
+
+
+ PredicateExpr
+
+
+ ]
+
+
+
+
+
+
+ PredicateExpr
+
+ Expr
+
+
+
+
+ AbbreviatedAbsoluteLocationPath
+
+
+
+ //
+
+
+ RelativeLocationPath
+
+
+
+
+
+
+ AbbreviatedRelativeLocationPath
+
+
+
+ RelativeLocationPath
+
+
+ //
+
+
+ Step
+
+
+
+
+
+
+ AbbreviatedStep
+
+
+
+ .
+
+
+ ..
+
+
+
+
+
+
+ AbbreviatedAxisSpecifier
+
+
+
+ @
+
+
+
+
+
+
+ Expr
+
+ OrExpr
+
+
+
+
+ PrimaryExpr
+
+
+
+ VariableReference
+
+
+
+
+ (
+
+
+ Expr
+
+
+ )
+
+
+
+
+ Literal
+
+
+ Number
+
+
+ FunctionCall
+
+
+
+
+
+
+ FunctionCall
+
+
+
+ FunctionName
+
+
+ (
+
+
+
+
+
+
+ Argument
+
+
+
+
+
+
+ ,
+
+
+ Argument
+
+
+
+
+
+
+
+
+
+
+ )
+
+
+
+
+
+
+ Argument
+
+ Expr
+
+
+
+
+ UnionExpr
+
+
+
+ PathExpr
+
+
+
+
+ UnionExpr
+
+
+ |
+
+
+ PathExpr
+
+
+
+
+
+
+
+
+ PathExpr
+
+
+
+ LocationPath
+
+
+ FilterExpr
+
+
+
+
+ FilterExpr
+
+
+ /
+
+
+ RelativeLocationPath
+
+
+
+
+
+
+ FilterExpr
+
+
+ //
+
+
+ RelativeLocationPath
+
+
+
+
+
+
+
+
+ FilterExpr
+
+
+
+ PrimaryExpr
+
+
+
+
+ FilterExpr
+
+
+ Predicate
+
+
+
+
+
+
+
+
+ OrExpr
+
+
+
+ AndExpr
+
+
+
+
+ OrExpr
+
+
+ or
+
+
+ AndExpr
+
+
+
+
+
+
+
+
+ AndExpr
+
+
+
+ EqualityExpr
+
+
+
+
+ AndExpr
+
+
+ and
+
+
+ EqualityExpr
+
+
+
+
+
+
+
+
+ EqualityExpr
+
+
+
+ RelationalExpr
+
+
+
+
+ EqualityExpr
+
+
+ =
+
+
+ RelationalExpr
+
+
+
+
+
+
+ EqualityExpr
+
+
+ !=
+
+
+ RelationalExpr
+
+
+
+
+
+
+
+
+ RelationalExpr
+
+
+
+ AdditiveExpr
+
+
+
+
+ RelationalExpr
+
+
+ <
+
+
+ AdditiveExpr
+
+
+
+
+
+
+ RelationalExpr
+
+
+ >
+
+
+ AdditiveExpr
+
+
+
+
+
+
+ RelationalExpr
+
+
+ <=
+
+
+ AdditiveExpr
+
+
+
+
+
+
+ RelationalExpr
+
+
+ >=
+
+
+ AdditiveExpr
+
+
+
+
+
+
+
+
+ AdditiveExpr
+
+
+
+ MultiplicativeExpr
+
+
+
+
+ AdditiveExpr
+
+
+ +
+
+
+ MultiplicativeExpr
+
+
+
+
+
+
+ AdditiveExpr
+
+
+ -
+
+
+ MultiplicativeExpr
+
+
+
+
+
+
+
+
+ MultiplicativeExpr
+
+
+
+ UnaryExpr
+
+
+
+
+ MultiplicativeExpr
+
+
+ MultiplyOperator
+
+
+ UnaryExpr
+
+
+
+
+
+
+ MultiplicativeExpr
+
+
+ div
+
+
+ UnaryExpr
+
+
+
+
+
+
+ MultiplicativeExpr
+
+
+ mod
+
+
+ UnaryExpr
+
+
+
+
+
+
+
+
+ UnaryExpr
+
+
+
+ UnionExpr
+
+
+
+
+ -
+
+
+ UnaryExpr
+
+
+
+
+
+
+
+
+ ExprToken
+
+
+
+ (
+
+
+ )
+
+
+ [
+
+
+ ]
+
+
+ .
+
+
+ ..
+
+
+ @
+
+
+ ,
+
+
+ ::
+
+
+ NameTest
+
+
+ NodeType
+
+
+ Operator
+
+
+ FunctionName
+
+
+ AxisName
+
+
+ Literal
+
+
+ Number
+
+
+ VariableReference
+
+
+
+
+
+
+ Number
+
+
+
+
+
+ Digits
+
+
+
+
+
+
+ .
+
+
+
+
+ Digits
+
+
+
+
+
+
+
+
+
+
+
+
+ .
+
+
+ Digits
+
+
+
+
+
+
+
+
+ Operator
+
+
+
+ OperatorName
+
+
+ MultiplyOperator
+
+
+ /
+
+
+ //
+
+
+ |
+
+
+ +
+
+
+ -
+
+
+ =
+
+
+ !=
+
+
+ <
+
+
+ <=
+
+
+ >
+
+
+ >=
+
+
+
+
+
+
+ OperatorName
+
+
+
+ and
+
+
+ or
+
+
+ mod
+
+
+ div
+
+
+
+
+
+
+ MultiplyOperator
+
+ *
+
+
+
+
+ VariableReference
+
+
+
+ $
+
+
+ QName
+
+
+
+
+
+
+ NameTest
+
+
+
+ *
+
+
+
+
+ NCName
+
+
+ :
+
+
+ *
+
+
+
+
+ QName
+
+
+
+
+
+
+ NodeType
+
+
+
+ comment
+
+
+ text
+
+
+ processing-instruction
+
+
+ node
+
+
+
+
+
+
+ ExprWhitespace
+
+ S
+
+
+
+
+ Digits
+
+
+
+
+
+ 0
+
+
+ 1
+
+
+ 2
+
+
+ 3
+
+
+ 4
+
+
+ 5
+
+
+ 6
+
+
+ 7
+
+
+ 8
+
+
+ 9
+
+
+
+
+
+
+
diff --git a/topics/grammars/xpath/xpath1.normalize.xbgf b/topics/grammars/xpath/xpath1.normalize.xbgf
index a15167ab..2099941d 100644
--- a/topics/grammars/xpath/xpath1.normalize.xbgf
+++ b/topics/grammars/xpath/xpath1.normalize.xbgf
@@ -49,4 +49,5 @@
FunctionName
-
+
+
diff --git a/www/Makefile b/www/Makefile
index 4750c83d..2df674eb 100644
--- a/www/Makefile
+++ b/www/Makefile
@@ -14,6 +14,7 @@ build:
make -f _dev/Makefile.cpp.zoo
make -f _dev/Makefile.csharp.zoo
make -f _dev/Makefile.java.zoo
+ make -f _dev/Makefile.xpath.zoo
xsltproc --stringparam date `date +"%d/%m/%Y"` ../shared/xsl/zoo2xhtml.xslt _dev/config.zoo > zoo/index.html
xsltproc ../shared/xsl/links2html.xslt _dev/java-grammars.xml | python ../shared/python/closemeta.py > zoo/java/links.html
diff --git a/www/_dev/Makefile.xpath.zoo b/www/_dev/Makefile.xpath.zoo
new file mode 100644
index 00000000..c57a51cf
--- /dev/null
+++ b/www/_dev/Makefile.xpath.zoo
@@ -0,0 +1,9 @@
+all:
+ make v1 -f _dev/Makefile.xpath.zoo
+
+%:
+ cp ../topics/grammars/xpath/extracted-grammar-$*.bgf zoo/xpath/$*.bgf
+ ../shared/tools/bgf2html zoo/xpath/$*.bgf zoo/xpath/$*.html
+ ../shared/tools/bgf2bnf zoo/xpath/$*.bgf zoo/xpath/$*.bnf
+ ../shared/tools/bgf2dms zoo/xpath/$*.bgf zoo/xpath/$*.dms
+ ../shared/tools/bgf2sdf zoo/xpath/$*.bgf zoo/xpath/$*.sdf
diff --git a/www/_dev/config.zoo b/www/_dev/config.zoo
index 1f8cdd62..a4828a65 100644
--- a/www/_dev/config.zoo
+++ b/www/_dev/config.zoo
@@ -623,4 +623,44 @@
+
+ xpath
+ XPath
+
+ XPath 1.0
+
+ 16 November 1999
+
+ http://www.w3.org/TR/1999/REC-xpath-19991116.xml
+ XML
+
+
+ http://www.w3.org/TR/1999/REC-xpath-19991116/
+ HTML
+
+
+ Extracted
+ v1
+
+
+ Extraction
+
+ http://slps.svn.sourceforge.net/viewvc/slps/topics/extraction/w3c/spec2bgf.xslt?view=markup
+ XSLT1
+
+
+ http://slps.svn.sourceforge.net/viewvc/slps/topics/extraction/w3c/postfix2confix.xslt?view=markup
+ XSLT2
+
+
+ http://slps.svn.sourceforge.net/viewvc/slps/topics/extraction/w3c/cleanup.xslt?view=markup
+ XSLT3
+
+
+ http://slps.svn.sourceforge.net/viewvc/slps/topics/grammars/xpath/xpath1.normalize.xbgf?view=markup
+ XBGF
+
+
+
+
diff --git a/www/zoo/index.html b/www/zoo/index.html
index 120effbb..ff92b16c 100644
--- a/www/zoo/index.html
+++ b/www/zoo/index.html
@@ -6,7 +6,7 @@
Software Language Processing Suite
Grammar Zoo
-
C — C++ — C# — Java
ISO C 1999
- Source: ISO/IEC 9899:1999(E) Programming languages — C (December 1999), Annex A, pages 402–416
- Extraction tools:
+
C — C++ — C# — Java — XPath
ISO C 1999
- Source: ISO/IEC 9899:1999(E) Programming languages — C (December 1999), Annex A, pages 402–416
- Extraction tools:
[PDF⇒LLL]
[LLL⇒BGF]
@@ -704,7 +704,40 @@
[Abstract]
[Slides]
-
+
XPath 1.0
- Source: XML Path Language (XPath), Version 1.0, W3C Recommendation (16 November 1999)
+ [XML]
+
+ [HTML]
+
- Extraction tools:
+ [XSLT1]
+
+ [XSLT2]
+
+ [XSLT3]
+
+ [XBGF]
+
- Extracted grammar: