|
|
@ -1865,7 +1865,7 @@ parser! { |
|
|
|
l:NumericLiteral() { l.into() } / |
|
|
|
l:NumericLiteral() { l.into() } / |
|
|
|
l:BooleanLiteral() { l.into() } / |
|
|
|
l:BooleanLiteral() { l.into() } / |
|
|
|
BuiltInCall() / |
|
|
|
BuiltInCall() / |
|
|
|
TripleExpression() |
|
|
|
ExprEmbTP() |
|
|
|
|
|
|
|
|
|
|
|
//[120]
|
|
|
|
//[120]
|
|
|
|
rule BrackettedExpression() -> Expression = "(" _ e:Expression() _ ")" { e } |
|
|
|
rule BrackettedExpression() -> Expression = "(" _ e:Expression() _ ")" { e } |
|
|
@ -2224,11 +2224,20 @@ parser! { |
|
|
|
//[180]
|
|
|
|
//[180]
|
|
|
|
rule AnnotationPatternPath() -> FocusedTripleOrPathPattern<Vec<(VariableOrPropertyPath,Vec<AnnotatedTermPath>)>> = "{|" _ a: PropertyListPathNotEmpty() _ "|}" { a } |
|
|
|
rule AnnotationPatternPath() -> FocusedTripleOrPathPattern<Vec<(VariableOrPropertyPath,Vec<AnnotatedTermPath>)>> = "{|" _ a: PropertyListPathNotEmpty() _ "|}" { a } |
|
|
|
|
|
|
|
|
|
|
|
// Extra rule not yet in the spec
|
|
|
|
//[181]
|
|
|
|
rule TripleExpression() -> Expression = "<<" _ s:Expression() _ p:Expression() _ o:Expression() _ ">>" { |
|
|
|
rule ExprEmbTP() -> Expression = "<<" _ s:ExprVarOrTerm() _ p:Verb() _ o:ExprVarOrTerm() _ ">>" { |
|
|
|
Expression::FunctionCall(Function::Triple, vec![s, p, o]) |
|
|
|
Expression::FunctionCall(Function::Triple, vec![s, p.into(), o]) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//[182]
|
|
|
|
|
|
|
|
rule ExprVarOrTerm() -> Expression = |
|
|
|
|
|
|
|
i:iri() { i.into() } / |
|
|
|
|
|
|
|
l:RDFLiteral() { l.into() } / |
|
|
|
|
|
|
|
l:NumericLiteral() { l.into() } / |
|
|
|
|
|
|
|
l:BooleanLiteral() { l.into() } / |
|
|
|
|
|
|
|
v:Var() { v.into() } / |
|
|
|
|
|
|
|
ExprEmbTP() |
|
|
|
|
|
|
|
|
|
|
|
//space
|
|
|
|
//space
|
|
|
|
rule _() = quiet! { ([' ' | '\t' | '\n' | '\r'] / comment())* } |
|
|
|
rule _() = quiet! { ([' ' | '\t' | '\n' | '\r'] / comment())* } |
|
|
|
|
|
|
|
|
|
|
|