From 36da46b242c4f6c56f55a44bba6c9ce2175893c5 Mon Sep 17 00:00:00 2001 From: Wendell Piez Date: Mon, 30 Mar 2020 12:17:04 -0400 Subject: [PATCH] Addressing #45: towards XPath parsing --- .../make-metaschema-metatron.xpl | 55 + .../xslt-proto-v04/metapath/REx/readme.md | 1 + .../metapath/REx/rex-configure-screenshot.png | Bin 0 -> 51526 bytes .../xslt-proto-v04/metapath/REx/xpath20.ebnf | 318 + .../xslt-proto-v04/metapath/REx/xpath20.xslt | 5743 +++++++++++++++++ 5 files changed, 6117 insertions(+) create mode 100644 toolchains/xslt-proto-v04/make-metaschema-metatron.xpl create mode 100644 toolchains/xslt-proto-v04/metapath/REx/readme.md create mode 100644 toolchains/xslt-proto-v04/metapath/REx/rex-configure-screenshot.png create mode 100644 toolchains/xslt-proto-v04/metapath/REx/xpath20.ebnf create mode 100644 toolchains/xslt-proto-v04/metapath/REx/xpath20.xslt diff --git a/toolchains/xslt-proto-v04/make-metaschema-metatron.xpl b/toolchains/xslt-proto-v04/make-metaschema-metatron.xpl new file mode 100644 index 000000000..e4f04cae1 --- /dev/null +++ b/toolchains/xslt-proto-v04/make-metaschema-metatron.xpl @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/toolchains/xslt-proto-v04/metapath/REx/readme.md b/toolchains/xslt-proto-v04/metapath/REx/readme.md new file mode 100644 index 000000000..81e579f0b --- /dev/null +++ b/toolchains/xslt-proto-v04/metapath/REx/readme.md @@ -0,0 +1 @@ +Using Gunther Rademacher's REx parser (https://www.bottlecaps.de/rex/) as an interim solution for XPath parsing. diff --git a/toolchains/xslt-proto-v04/metapath/REx/rex-configure-screenshot.png b/toolchains/xslt-proto-v04/metapath/REx/rex-configure-screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..0b26785166d221655a4c0ea36835a2c2835985e9 GIT binary patch literal 51526 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�m~fh?S7&BHx`5vn?e?0Iq*0M? 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 literal 0 HcmV?d00001 diff --git a/toolchains/xslt-proto-v04/metapath/REx/xpath20.ebnf b/toolchains/xslt-proto-v04/metapath/REx/xpath20.ebnf new file mode 100644 index 000000000..3fbb32884 --- /dev/null +++ b/toolchains/xslt-proto-v04/metapath/REx/xpath20.ebnf @@ -0,0 +1,318 @@ +XPath ::= Expr EOF +Expr ::= ExprSingle ( ',' ExprSingle )* +ExprSingle + ::= ForExpr + | QuantifiedExpr + | IfExpr + | OrExpr +ForExpr ::= SimpleForClause 'return' ExprSingle +SimpleForClause + ::= 'for' '$' VarName 'in' ExprSingle ( ',' '$' VarName 'in' ExprSingle )* +QuantifiedExpr + ::= ( 'some' | 'every' ) '$' VarName 'in' ExprSingle ( ',' '$' VarName 'in' ExprSingle )* 'satisfies' ExprSingle +IfExpr ::= 'if' '(' Expr ')' 'then' ExprSingle 'else' ExprSingle +OrExpr ::= AndExpr ( 'or' AndExpr )* +AndExpr ::= ComparisonExpr ( 'and' ComparisonExpr )* +ComparisonExpr + ::= RangeExpr ( ( ValueComp | GeneralComp | NodeComp ) RangeExpr )? +RangeExpr + ::= AdditiveExpr ( 'to' AdditiveExpr )? +AdditiveExpr + ::= MultiplicativeExpr ( ( '+' | '-' ) MultiplicativeExpr )* +MultiplicativeExpr + ::= UnionExpr ( ( '*' | 'div' | 'idiv' | 'mod' ) UnionExpr )* +UnionExpr + ::= IntersectExceptExpr ( ( 'union' | '|' ) IntersectExceptExpr )* +IntersectExceptExpr + ::= InstanceofExpr ( ( 'intersect' | 'except' ) InstanceofExpr )* +InstanceofExpr + ::= TreatExpr ( 'instance' 'of' SequenceType )? +TreatExpr + ::= CastableExpr ( 'treat' 'as' SequenceType )? +CastableExpr + ::= CastExpr ( 'castable' 'as' SingleType )? +CastExpr ::= UnaryExpr ( 'cast' 'as' SingleType )? +UnaryExpr + ::= ( '-' | '+' )* ValueExpr +ValueExpr + ::= PathExpr +GeneralComp + ::= '=' + | '!=' + | '<' + | '<=' + | '>' + | '>=' +ValueComp + ::= 'eq' + | 'ne' + | 'lt' + | 'le' + | 'gt' + | 'ge' +NodeComp ::= 'is' + | '<<' + | '>>' +PathExpr ::= '/' ( RelativePathExpr / ) + | '//' RelativePathExpr + | RelativePathExpr +RelativePathExpr + ::= StepExpr ( ( '/' | '//' ) StepExpr )* +StepExpr ::= FilterExpr + | AxisStep +AxisStep ::= ( ReverseStep | ForwardStep ) PredicateList +ForwardStep + ::= ForwardAxis NodeTest + | AbbrevForwardStep +ForwardAxis + ::= 'child' '::' + | 'descendant' '::' + | 'attribute' '::' + | 'self' '::' + | 'descendant-or-self' '::' + | 'following-sibling' '::' + | 'following' '::' + | 'namespace' '::' +AbbrevForwardStep + ::= '@'? NodeTest +ReverseStep + ::= ReverseAxis NodeTest + | AbbrevReverseStep +ReverseAxis + ::= 'parent' '::' + | 'ancestor' '::' + | 'preceding-sibling' '::' + | 'preceding' '::' + | 'ancestor-or-self' '::' +AbbrevReverseStep + ::= '..' +NodeTest ::= KindTest + | NameTest +NameTest ::= QName + | Wildcard +FilterExpr + ::= PrimaryExpr PredicateList +PredicateList + ::= Predicate* +Predicate + ::= '[' Expr ']' +PrimaryExpr + ::= Literal + | VarRef + | ParenthesizedExpr + | ContextItemExpr + | FunctionCall +Literal ::= NumericLiteral + | StringLiteral +NumericLiteral + ::= IntegerLiteral + | DecimalLiteral + | DoubleLiteral +VarRef ::= '$' VarName +VarName ::= QName +ParenthesizedExpr + ::= '(' Expr? ')' +ContextItemExpr + ::= '.' +FunctionCall + ::= FunctionName '(' ( ExprSingle ( ',' ExprSingle )* )? ')' +SingleType + ::= AtomicType '?'? +SequenceType + ::= 'empty-sequence' '(' ')' + | ItemType OccurrenceIndicator? +OccurrenceIndicator + ::= '?' + | '*'^OccurrenceIndicator + | '+'^OccurrenceIndicator +ItemType ::= KindTest + | 'item' '(' ')' + | AtomicType +AtomicType + ::= QName +KindTest ::= DocumentTest + | ElementTest + | AttributeTest + | SchemaElementTest + | SchemaAttributeTest + | PITest + | CommentTest + | TextTest + | AnyKindTest +AnyKindTest + ::= 'node' '(' ')' +DocumentTest + ::= 'document-node' '(' ( ElementTest | SchemaElementTest )? ')' +TextTest ::= 'text' '(' ')' +CommentTest + ::= 'comment' '(' ')' +PITest ::= 'processing-instruction' '(' ( NCName | StringLiteral )? ')' +AttributeTest + ::= 'attribute' '(' ( AttribNameOrWildcard ( ',' TypeName )? )? ')' +AttribNameOrWildcard + ::= AttributeName + | '*' +SchemaAttributeTest + ::= 'schema-attribute' '(' AttributeDeclaration ')' +AttributeDeclaration + ::= AttributeName +ElementTest + ::= 'element' '(' ( ElementNameOrWildcard ( ',' TypeName '?'? )? )? ')' +ElementNameOrWildcard + ::= ElementName + | '*' +SchemaElementTest + ::= 'schema-element' '(' ElementDeclaration ')' +ElementDeclaration + ::= ElementName +AttributeName + ::= QName +ElementName + ::= QName +TypeName ::= QName +QName ::= FunctionName + | 'attribute' + | 'comment' + | 'document-node' + | 'element' + | 'empty-sequence' + | 'if' + | 'item' + | 'node' + | 'processing-instruction' + | 'schema-attribute' + | 'schema-element' + | 'text' + | 'typeswitch' +FunctionName + ::= QName^Token + | 'ancestor' + | 'ancestor-or-self' + | 'and' + | 'cast' + | 'castable' + | 'child' + | 'descendant' + | 'descendant-or-self' + | 'div' + | 'else' + | 'eq' + | 'every' + | 'except' + | 'following' + | 'following-sibling' + | 'for' + | 'ge' + | 'gt' + | 'idiv' + | 'instance' + | 'intersect' + | 'is' + | 'le' + | 'lt' + | 'mod' + | 'namespace' + | 'ne' + | 'or' + | 'parent' + | 'preceding' + | 'preceding-sibling' + | 'return' + | 'satisfies' + | 'self' + | 'some' + | 'to' + | 'treat' + | 'union' +WhiteSpace + ::= ( S^WhiteSpace | Comment )+ + /* ws: definition */ +Comment ::= '(:' ( CommentContents | Comment )* ':)' + /* ws: explicit */ + + + +EOF ::= $ +IntegerLiteral + ::= Digits +DecimalLiteral + ::= '.' Digits + | Digits '.' [0-9]* + /* ws: explicit */ +DoubleLiteral + ::= ( '.' Digits | Digits ( '.' [0-9]* )? ) [eE] [+#x2D]? Digits + /* ws: explicit */ +StringLiteral + ::= '"' ( EscapeQuot | [^"] )* '"' + | "'" ( EscapeApos | [^'] )* "'" + /* ws: explicit */ +EscapeQuot + ::= '""' +EscapeApos + ::= "''" +Wildcard ::= '*' + | NCName ':' '*' + | '*' ':' NCName + /* ws: explicit */ +NameStartChar + ::= ':' + | [A-Z] + | '_' + | [a-z] + | [#x00C0-#x00D6] + | [#x00D8-#x00F6] + | [#x00F8-#x02FF] + | [#x0370-#x037D] + | [#x037F-#x1FFF] + | [#x200C-#x200D] + | [#x2070-#x218F] + | [#x2C00-#x2FEF] + | [#x3001-#xD7FF] + | [#xF900-#xFDCF] + | [#xFDF0-#xFFFD] + | [#x10000-#xEFFFF] +NameChar ::= NameStartChar + | '-' + | '.' + | [0-9] + | #x00B7 + | [#x0300-#x036F] + | [#x203F-#x2040] +Name ::= NameStartChar NameChar* +NCName ::= Name - ( Char* ':' Char* ) +QName ::= PrefixedName + | UnprefixedName +PrefixedName + ::= Prefix ':' LocalPart +UnprefixedName + ::= LocalPart +Prefix ::= NCName +LocalPart + ::= NCName +Char ::= #x0009 + | #x000A + | #x000D + | [#x0020-#xD7FF] + | [#xE000-#xFFFD] + | [#x10000-#x10FFFF] +Digits ::= [0-9]+ +S ::= ( #x0020 | #x0009 | #x000D | #x000A )+ +CommentContents + ::= ( ( Char+ - ( Char* ( '(:' | ':)' ) Char* ) ) - ( Char* '(' ) ) &':' + | ( Char+ - ( Char* ( '(:' | ':)' ) Char* ) ) &'(' +'+' << '+'^OccurrenceIndicator +'*' << Wildcard '*'^OccurrenceIndicator +QName^Token + << 'ancestor' 'ancestor-or-self' 'and' 'attribute' 'cast' 'castable' 'child' 'comment' 'descendant' 'descendant-or-self' 'div' 'document-node' 'element' 'else' 'empty-sequence' 'eq' 'every' 'except' 'following' 'following-sibling' 'for' 'ge' 'gt' 'idiv' 'if' 'instance' 'intersect' 'is' 'item' 'le' 'lt' 'mod' 'namespace' 'ne' 'node' 'or' 'parent' 'preceding' 'preceding-sibling' 'processing-instruction' 'return' 'satisfies' 'schema-attribute' 'schema-element' 'self' 'some' 'text' 'to' 'treat' 'typeswitch' 'union' +NonNCNameChar + ::= $ + | ':' + | Char - NameChar +DelimitingChar + ::= NonNCNameChar + | '-' + | '.' +DelimitingChar + \\ DecimalLiteral DoubleLiteral IntegerLiteral +NonNCNameChar + \\ NCName QName^Token 'ancestor' 'ancestor-or-self' 'and' 'as' 'attribute' 'cast' 'castable' 'child' 'comment' 'descendant' 'descendant-or-self' 'div' 'document-node' 'element' 'else' 'empty-sequence' 'eq' 'every' 'except' 'following' 'following-sibling' 'for' 'ge' 'gt' 'idiv' 'if' 'in' 'instance' 'intersect' 'is' 'item' 'le' 'lt' 'mod' 'namespace' 'ne' 'node' 'of' 'or' 'parent' 'preceding' 'preceding-sibling' 'processing-instruction' 'return' 'satisfies' 'schema-attribute' 'schema-element' 'self' 'some' 'text' 'then' 'to' 'treat' 'typeswitch' 'union' \ No newline at end of file diff --git a/toolchains/xslt-proto-v04/metapath/REx/xpath20.xslt b/toolchains/xslt-proto-v04/metapath/REx/xpath20.xslt new file mode 100644 index 000000000..6d1a187e7 --- /dev/null +++ b/toolchains/xslt-proto-v04/metapath/REx/xpath20.xslt @@ -0,0 +1,5743 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file