RE: text grammar for DAWG ql AndyS 2004-09-20

Thanks Dave - when I diff'ed the grammar below with that in 0524 as you
suggested I got a 185 line diff file.  It will take some time to sort
out the language changes from the grammar changes that do not effect the
language.

	Andy

-------- Original Message --------
> From: Dave Beckett <mailto:dave.beckett@bristol.ac.uk>
> Date: 24 September 2004 12:29
> 
> Here's a text version of the original grammar AndyS had in
>
http://lists.w3.org/Archives/Public/public-rdf-dawg/2004JulSep/0511.html
> (pretty much lynx -nolinks -dump dawg.html with some line wrapping,
plus
> grepping out the terminals)
> 
> You can diff this and what I had in
>  
>
http://lists.w3.org/Archives/Public/public-rdf-dawg/2004JulSep/0524.html
> to see what I changed
> 
> Dave
> 
>                            BNF for DAWG QL
> 
>                             NON-TERMINALS
> 
> CompilationUnit ::= Query <EOF>
> 
> CommaOpt ::= ( <COMMA> )?
> 
> Query ::= ( PrefixDecl )* ( SelectClause |
>          ConstructClause |
>          DescribeClause |
>          AskClause ) ( PrefixDecl )* ( FromClause )? ( <WHERE>
> GraphPattern )? 
> 
> SelectClause ::= ( <SELECT> VarAsNode ( CommaOpt VarAsNode )* |
>          <SELECT> <STAR> )
> 
> DescribeClause ::= ( <DESCRIBE> VarOrURI ( CommaOpt VarOrURI )* |
>          <DESCRIBE> <STAR> )
> 
> ConstructClause ::= ( <CONSTRUCT> ConstructPattern |
>          <CONSTRUCT> <STAR> )
> 
> ConstructPattern ::= TriplePatternList
> 
> AskClause ::= <ASK>
> 
> FromClause ::= <FROM> FromSelector ( CommaOpt FromSelector )*
> 
> FromSelector ::= URL
> 
> GraphPattern ::= PatternGroup
> 
> SourceGraphPattern ::= ( <SOURCE> <STAR> PatternGroup1 |
>          <SOURCE> VarOrURI PatternGroup1 )
> 
> OptionalGraphPattern ::= ( <OPTIONAL> PatternGroup1 |
>          <LBRACKET> PatternGroup <RBRACKET> )
> 
> PatternGroup ::= PatternElement ( PatternElement )*
> 
> PatternElement ::= ( TriplePatternList |
>          ExplicitGroup |
>          PatternElementForms )
> 
> PatternGroup1 ::= PatternElement1
> 
> PatternElement1 ::= ( SingleTriplePatternOrGroup |
>          PatternElementForms )
> 
> PatternElementForms ::= ( SourceGraphPattern |
>          OptionalGraphPattern |
>          <AND> Expression )
> 
> SingleTriplePatternOrGroup ::= ( TriplePattern |
>          ExplicitGroup )
> 
> ExplicitGroup ::= <LPAREN> PatternGroup <RPAREN>
> 
> TriplePatternList ::= TriplePattern ( TriplePattern )*
> 
> TriplePattern ::= <LPAREN> VarOrURI VarOrURI VarOrLiteral <RPAREN>
> 
> VarOrURI ::= ( VarAsNode |
>          URI )
> 
> VarOrLiteral ::= ( VarAsNode |
>          Literal )
> 
> VarAsNode ::= <VAR>
> 
> VarAsExpr ::= <VAR>
> 
> PrefixDecl ::= ( <PREFIX> <NCNAME> <COLON> QuotedURI |
>          <PREFIX> <COLON> QuotedURI )
> 
> Expression ::= ConditionalOrExpression
> 
> ConditionalOrExpression ::= ConditionalXorExpression ( <SC_OR>
> ConditionalXorExpression )* 
> 
> ConditionalXorExpression ::= ConditionalAndExpression
> 
> ConditionalAndExpression ::= ValueLogical ( <SC_AND> ValueLogical )*
> 
> ValueLogical ::= StringEqualityExpression
> 
> StringEqualityExpression ::= NumericalLogical ( <STR_EQ>
>          NumericalLogical | <STR_NE> NumericalLogical |
>          <STR_MATCH> PatternLiteral |
>          <STR_NMATCH> PatternLiteral )*
> 
> NumericalLogical ::= EqualityExpression
> 
> EqualityExpression ::= RelationalExpression ( <EQ>
RelationalExpression
>          | <NEQ> RelationalExpression )?
> 
> RelationalExpression ::= NumericExpression ( <LT> NumericExpression |
>          <GT> NumericExpression |
>          <LE> NumericExpression |
>          <GE> NumericExpression )?
> 
> NumericExpression ::= ShiftExpression
> 
> ShiftExpression ::= AdditiveExpression
> 
> AdditiveExpression ::= MultiplicativeExpression ( <PLUS>
>          MultiplicativeExpression | <MINUS> MultiplicativeExpression
)*
> 
> MultiplicativeExpression ::= UnaryExpression ( <STAR> UnaryExpression
|
>          <SLASH> UnaryExpression |
>          <REM> UnaryExpression )*
> 
> UnaryExpression ::= ( <PLUS> UnaryExpressionNotPlusMinus |
>          <MINUS> UnaryExpressionNotPlusMinus |
>          UnaryExpressionNotPlusMinus )
> 
> UnaryExpressionNotPlusMinus ::= ( <TILDE> |
>          <BANG> ) UnaryExpression |
>          PrimaryExpression
> 
> PrimaryExpression ::= ( VarAsExpr |
>          Literal |
>          FunctionCall |
>          <LPAREN> Expression <RPAREN> )
> 
> FunctionCall ::= <AMP> <QNAME> <LPAREN> ArgList <RPAREN>
> 
> ArgList ::= ( VarOrLiteral ( <COMMA> VarOrLiteral )* )?
> 
> Literal ::= URI |
>          NumericLiteral |
>          TextLiteral
> 
> NumericLiteral ::= <INTEGER_LITERAL> |
>          <FLOATING_POINT_LITERAL>
> 
> TextLiteral ::= ( <STRING_LITERAL1> |
>          <STRING_LITERAL2> ) ( <LANG> )? ( <DATATYPE> URI )?
> 
> PatternLiteral ::=
> 
> URL ::= URI
> 
> URI ::= QuotedURI |
>          QName
> 
> QName ::= <QNAME>
> 
> QuotedURI ::= <URI>
> 
> 
> Terminals
> 
> <AMP>
> <AND>
> <ASK>
> <BANG>
> <COLON>
> <COMMA>
> <CONSTRUCT>
> <DATATYPE>
> <DESCRIBE>
> <EOF>
> <EQ>
> <FLOATING_POINT_LITERAL>
> <FROM>
> <GE>
> <GT>
> <INTEGER_LITERAL>
> <LANG>
> <LBRACKET>
> <LE>
> <LPAREN>
> <LT>
> <MINUS>
> <NCNAME>
> <NEQ>
> <OPTIONAL>
> <PLUS>
> <PREFIX>
> <QNAME>
> <RBRACKET>
> <REM>
> <RPAREN>
> <SC_AND>
> <SC_OR>
> <SELECT>
> <SLASH>
> <SOURCE>
> <STAR>
> <STRING_LITERAL1>
> <STRING_LITERAL2>
> <STR_EQ>
> <STR_MATCH>
> <STR_NE>
> <STR_NMATCH>
> <TILDE>
> <URI>
> <VAR>
> <WHERE>

Received on Friday, 24 September 2004 12:07:28 UTC