| <!-- |
| ! Licensed to the Apache Software Foundation (ASF) under one |
| ! or more contributor license agreements. See the NOTICE file |
| ! distributed with this work for additional information |
| ! regarding copyright ownership. The ASF licenses this file |
| ! to you under the Apache License, Version 2.0 (the |
| ! "License"); you may not use this file except in compliance |
| ! with the License. You may obtain a copy of the License at |
| ! |
| ! http://www.apache.org/licenses/LICENSE-2.0 |
| ! |
| ! Unless required by applicable law or agreed to in writing, |
| ! software distributed under the License is distributed on an |
| ! "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| ! KIND, either express or implied. See the License for the |
| ! specific language governing permissions and limitations |
| ! under the License. |
| !--> |
| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> |
| <HTML> |
| <HEAD> |
| <TITLE>BNF for AQL.jj</TITLE> |
| </HEAD> |
| <BODY> |
| <H1 ALIGN=CENTER>BNF for AQL.jj</H1> |
| <H2 ALIGN=CENTER>TOKENS</H2> |
| <TABLE> |
| <!-- Token --> |
| <TR> |
| <TD> |
| <PRE> |
| <DEFAULT,IN_DBL_BRACE> TOKEN : { |
| <ASC: "asc"> |
| | <AT: "at"> |
| | <BY: "by"> |
| | <DATASET: "dataset"> |
| | <DECOR: "decor"> |
| | <DESC: "desc"> |
| | <DISTINCT: "distinct"> |
| | <ELSE: "else"> |
| | <EVERY: "every"> |
| | <FOR: "for"> |
| | <FROM: "from"> |
| | <GROUP: "group"> |
| | <IF: "if"> |
| | <IN: "in"> |
| | <LET: "let"> |
| | <LIMIT: "limit"> |
| | <OFFSET: "offset"> |
| | <ORDER: "order"> |
| | <RETURN: "return"> |
| | <SATISFIES: "satisfies"> |
| | <SELECT: "select"> |
| | <SOME: "some"> |
| | <THEN: "then"> |
| | <UNION: "union"> |
| | <WHERE: "where"> |
| | <WITH: "with"> |
| | <KEEPING: "keeping"> |
| } |
| |
| </PRE> |
| </TD> |
| </TR> |
| <!-- Token --> |
| <TR> |
| <TD> |
| <PRE> |
| <DEFAULT,IN_DBL_BRACE> TOKEN : { |
| <CARET: "^"> |
| | <DIV: "/"> |
| | <IDIV: "idiv"> |
| | <MINUS: "-"> |
| | <MOD: "%"> |
| | <MUL: "*"> |
| | <PLUS: "+"> |
| | <LEFTPAREN: "("> |
| | <RIGHTPAREN: ")"> |
| | <LEFTBRACKET: "["> |
| | <RIGHTBRACKET: "]"> |
| | <COLON: ":"> |
| | <COMMA: ","> |
| | <DOT: "."> |
| | <QUES: "?"> |
| | <LT: "<"> |
| | <GT: ">"> |
| | <LE: "<="> |
| | <GE: ">="> |
| | <EQ: "="> |
| | <NE: "!="> |
| | <SIMILAR: "~="> |
| | <ASSIGN: ":="> |
| | <AND: "and"> |
| | <OR: "or"> |
| } |
| |
| </PRE> |
| </TD> |
| </TR> |
| <!-- Token --> |
| <TR> |
| <TD> |
| <PRE> |
| <DEFAULT,IN_DBL_BRACE> TOKEN : { |
| <LEFTBRACE: "{"> : DEFAULT |
| } |
| |
| </PRE> |
| </TD> |
| </TR> |
| <!-- Token --> |
| <TR> |
| <TD> |
| <PRE> |
| <DEFAULT> TOKEN : { |
| <RIGHTBRACE: "}"> : { |
| } |
| |
| </PRE> |
| </TD> |
| </TR> |
| <!-- Token --> |
| <TR> |
| <TD> |
| <PRE> |
| <DEFAULT,IN_DBL_BRACE> TOKEN : { |
| <LEFTDBLBRACE: "{{"> : IN_DBL_BRACE |
| } |
| |
| </PRE> |
| </TD> |
| </TR> |
| <!-- Token --> |
| <TR> |
| <TD> |
| <PRE> |
| <IN_DBL_BRACE> TOKEN : { |
| <RIGHTDBLBRACE: "}}"> : { |
| } |
| |
| </PRE> |
| </TD> |
| </TR> |
| <!-- Token --> |
| <TR> |
| <TD> |
| <PRE> |
| <DEFAULT,IN_DBL_BRACE> TOKEN : { |
| <INTEGER_LITERAL: (<DIGIT>)+> |
| } |
| |
| </PRE> |
| </TD> |
| </TR> |
| <!-- Token --> |
| <TR> |
| <TD> |
| <PRE> |
| <DEFAULT,IN_DBL_BRACE> TOKEN : { |
| <NULL: "null"> |
| | <TRUE: "true"> |
| | <FALSE: "false"> |
| } |
| |
| </PRE> |
| </TD> |
| </TR> |
| <!-- Token --> |
| <TR> |
| <TD> |
| <PRE> |
| <DEFAULT,IN_DBL_BRACE> TOKEN : { |
| <#DIGIT: ["0"-"9"]> |
| } |
| |
| </PRE> |
| </TD> |
| </TR> |
| <!-- Token --> |
| <TR> |
| <TD> |
| <PRE> |
| <DEFAULT,IN_DBL_BRACE> TOKEN : { |
| <DOUBLE_LITERAL: <DIGITS> | <DIGITS> ("." <DIGITS>)? | "." <DIGITS>> |
| | <FLOAT_LITERAL: <DIGITS> ("f" | "F") | <DIGITS> ("." <DIGITS> ("f" | "F"))? | "." <DIGITS> ("f" | "F")> |
| | <DIGITS: (<DIGIT>)+> |
| } |
| |
| </PRE> |
| </TD> |
| </TR> |
| <!-- Token --> |
| <TR> |
| <TD> |
| <PRE> |
| <DEFAULT,IN_DBL_BRACE> TOKEN : { |
| <#LETTER: ["A"-"Z","a"-"z"]> |
| | <SPECIALCHARS: ["$","_","-"]> |
| } |
| |
| </PRE> |
| </TD> |
| </TR> |
| <!-- Token --> |
| <TR> |
| <TD> |
| <PRE> |
| <DEFAULT,IN_DBL_BRACE> TOKEN : { |
| <STRING_LITERAL: "\"" (<EscapeQuot> | <EscapeBslash> | <EscapeSlash> | <EscapeBspace> | <EscapeFormf> | <EscapeNl> | <EscapeCr> | <EscapeTab> | ~["\"","\\"])* "\"" | "\'" (<EscapeApos> | <EscapeBslash> | <EscapeSlash> | <EscapeBspace> | <EscapeFormf> | <EscapeNl> | <EscapeCr> | <EscapeTab> | ~["\'","\\"])* "\'"> |
| | <#EscapeQuot: "\\\""> |
| | <#EscapeApos: "\\\'"> |
| | <#EscapeBslash: "\\\\"> |
| | <#EscapeSlash: "\\/"> |
| | <#EscapeBspace: "\\b"> |
| | <#EscapeFormf: "\\f"> |
| | <#EscapeNl: "\\n"> |
| | <#EscapeCr: "\\r"> |
| | <#EscapeTab: "\\t"> |
| } |
| |
| </PRE> |
| </TD> |
| </TR> |
| <!-- Token --> |
| <TR> |
| <TD> |
| <PRE> |
| <DEFAULT,IN_DBL_BRACE> TOKEN : { |
| <IDENTIFIER: <LETTER> (<LETTER> | <DIGIT> | <SPECIALCHARS>)*> |
| } |
| |
| </PRE> |
| </TD> |
| </TR> |
| <!-- Token --> |
| <TR> |
| <TD> |
| <PRE> |
| <DEFAULT,IN_DBL_BRACE> TOKEN : { |
| <VARIABLE: "$" <LETTER> (<LETTER> | <DIGIT> | "_")*> |
| } |
| |
| </PRE> |
| </TD> |
| </TR> |
| <!-- Token --> |
| <TR> |
| <TD> |
| <PRE> |
| <DEFAULT,IN_DBL_BRACE> SKIP : { |
| " " |
| | "\t" |
| | "\r" |
| | "\n" |
| } |
| |
| </PRE> |
| </TD> |
| </TR> |
| <!-- Token --> |
| <TR> |
| <TD> |
| <PRE> |
| <DEFAULT,IN_DBL_BRACE> SKIP : { |
| <"//" (~["\n"])* "\n"> |
| } |
| |
| </PRE> |
| </TD> |
| </TR> |
| <!-- Token --> |
| <TR> |
| <TD> |
| <PRE> |
| <DEFAULT,IN_DBL_BRACE> SKIP : { |
| <"//" (~["\n","\r"])* ("\n" | "\r" | "\r\n")?> |
| } |
| |
| </PRE> |
| </TD> |
| </TR> |
| <!-- Token --> |
| <TR> |
| <TD> |
| <PRE> |
| <DEFAULT,IN_DBL_BRACE> SKIP : { |
| "/*" : INSIDE_COMMENT |
| } |
| |
| </PRE> |
| </TD> |
| </TR> |
| <!-- Token --> |
| <TR> |
| <TD> |
| <PRE> |
| <INSIDE_COMMENT> SPECIAL : { |
| <"+" (" ")* (~["*"])*> |
| } |
| |
| </PRE> |
| </TD> |
| </TR> |
| <!-- Token --> |
| <TR> |
| <TD> |
| <PRE> |
| <INSIDE_COMMENT> SKIP : { |
| "/*" : { |
| } |
| |
| </PRE> |
| </TD> |
| </TR> |
| <!-- Token --> |
| <TR> |
| <TD> |
| <PRE> |
| <INSIDE_COMMENT> SKIP : { |
| "*/" : { |
| | <~[]> |
| } |
| |
| </PRE> |
| </TD> |
| </TR> |
| </TABLE> |
| <H2 ALIGN=CENTER>NON-TERMINALS</H2> |
| <TABLE> |
| <TR> |
| <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod1">Statement</A></TD> |
| <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
| <TD ALIGN=LEFT VALIGN=BASELINE>( <A HREF="#prod2">SingleStatement</A> ( ";" )? )* <EOF></TD> |
| </TR> |
| <TR> |
| <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod2">SingleStatement</A></TD> |
| <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
| <TD ALIGN=LEFT VALIGN=BASELINE>( <A HREF="#prod3">DataverseDeclaration</A> | <A HREF="#prod4">FunctionDeclaration</A> | <A HREF="#prod5">CreateStatement</A> | <A HREF="#prod6">LoadStatement</A> | <A HREF="#prod7">DropStatement</A> | <A HREF="#prod8">WriteStatement</A> | <A HREF="#prod9">SetStatement</A> | <A HREF="#prod10">InsertStatement</A> | <A HREF="#prod11">DeleteStatement</A> | <A HREF="#prod12">UpdateStatement</A> | <A HREF="#prod13">FeedStatement</A> | <A HREF="#prod14">CompactStatement</A> | <A HREF="#prod15">Query</A> | <A HREF="#prod16">RefreshExternalDatasetStatement</A> | <A HREF="#prod17">RunStatement</A> )</TD> |
| </TR> |
| <TR> |
| <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod3">DataverseDeclaration</A></TD> |
| <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
| <TD ALIGN=LEFT VALIGN=BASELINE>"use" "dataverse" <A HREF="#prod18">Identifier</A></TD> |
| </TR> |
| <TR> |
| <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod5">CreateStatement</A></TD> |
| <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
| <TD ALIGN=LEFT VALIGN=BASELINE>"create" ( <A HREF="#prod19">TypeSpecification</A> | <A HREF="#prod20">NodegroupSpecification</A> | <A HREF="#prod21">DatasetSpecification</A> | <A HREF="#prod22">IndexSpecification</A> | <A HREF="#prod23">DataverseSpecification</A> | <A HREF="#prod24">FunctionSpecification</A> | <A HREF="#prod25">FeedSpecification</A> )</TD> |
| </TR> |
| <TR> |
| <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod19">TypeSpecification</A></TD> |
| <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
| <TD ALIGN=LEFT VALIGN=BASELINE>"type" <A HREF="#prod26">TypeName</A> <A HREF="#prod27">IfNotExists</A> "as" <A HREF="#prod28">TypeExpr</A></TD> |
| </TR> |
| <TR> |
| <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod20">NodegroupSpecification</A></TD> |
| <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
| <TD ALIGN=LEFT VALIGN=BASELINE>"nodegroup" <A HREF="#prod18">Identifier</A> <A HREF="#prod27">IfNotExists</A> "on" <A HREF="#prod18">Identifier</A> ( <COMMA> <A HREF="#prod18">Identifier</A> )*</TD> |
| </TR> |
| <TR> |
| <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod21">DatasetSpecification</A></TD> |
| <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
| <TD ALIGN=LEFT VALIGN=BASELINE>( "external" <DATASET> <A HREF="#prod29">QualifiedName</A> <LEFTPAREN> <A HREF="#prod18">Identifier</A> <RIGHTPAREN> <A HREF="#prod27">IfNotExists</A> "using" <A HREF="#prod30">AdapterName</A> <A HREF="#prod31">Configuration</A> ( "on" <A HREF="#prod18">Identifier</A> )? ( "hints" <A HREF="#prod32">Properties</A> )? ( "using" "compaction" "policy" <A HREF="#prod33">CompactionPolicy</A> ( <A HREF="#prod31">Configuration</A> )? )? | ( "internal" | "temporary" )? <DATASET> <A HREF="#prod29">QualifiedName</A> <LEFTPAREN> <A HREF="#prod18">Identifier</A> <RIGHTPAREN> <A HREF="#prod27">IfNotExists</A> <A HREF="#prod34">PrimaryKey</A> ( "autogenerated" )? ( "on" <A HREF="#prod18">Identifier</A> )? ( "hints" <A HREF="#prod32">Properties</A> )? ( "using" "compaction" "policy" <A HREF="#prod33">CompactionPolicy</A> ( <A HREF="#prod31">Configuration</A> )? )? ( "with filter on" <A HREF="#prod35">FilterField</A> )? )</TD> |
| </TR> |
| <TR> |
| <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod16">RefreshExternalDatasetStatement</A></TD> |
| <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
| <TD ALIGN=LEFT VALIGN=BASELINE>"refresh external" <DATASET> <A HREF="#prod29">QualifiedName</A></TD> |
| </TR> |
| <TR> |
| <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod17">RunStatement</A></TD> |
| <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
| <TD ALIGN=LEFT VALIGN=BASELINE>"run" <A HREF="#prod18">Identifier</A> <LEFTPAREN> ( <A HREF="#prod18">Identifier</A> ( <COMMA> )? )* <RIGHTPAREN> <FROM> <DATASET> <A HREF="#prod29">QualifiedName</A> "to" <DATASET> <A HREF="#prod29">QualifiedName</A></TD> |
| </TR> |
| <TR> |
| <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod22">IndexSpecification</A></TD> |
| <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
| <TD ALIGN=LEFT VALIGN=BASELINE>"index" <A HREF="#prod18">Identifier</A> <A HREF="#prod27">IfNotExists</A> "on" <A HREF="#prod29">QualifiedName</A> <LEFTPAREN> ( <A HREF="#prod18">Identifier</A> ) ( <COMMA> <A HREF="#prod18">Identifier</A> )* <RIGHTPAREN> ( "type" <A HREF="#prod36">IndexType</A> )?</TD> |
| </TR> |
| <TR> |
| <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod33">CompactionPolicy</A></TD> |
| <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
| <TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod18">Identifier</A></TD> |
| </TR> |
| <TR> |
| <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod35">FilterField</A></TD> |
| <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
| <TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod18">Identifier</A></TD> |
| </TR> |
| <TR> |
| <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod36">IndexType</A></TD> |
| <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
| <TD ALIGN=LEFT VALIGN=BASELINE>( "btree" | "rtree" | "keyword" | "ngram" <LEFTPAREN> <INTEGER_LITERAL> <RIGHTPAREN> )</TD> |
| </TR> |
| <TR> |
| <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod23">DataverseSpecification</A></TD> |
| <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
| <TD ALIGN=LEFT VALIGN=BASELINE>"dataverse" <A HREF="#prod18">Identifier</A> <A HREF="#prod27">IfNotExists</A> ( "with format" <A HREF="#prod37">StringLiteral</A> )?</TD> |
| </TR> |
| <TR> |
| <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod24">FunctionSpecification</A></TD> |
| <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
| <TD ALIGN=LEFT VALIGN=BASELINE>"function" <A HREF="#prod38">FunctionName</A> <A HREF="#prod27">IfNotExists</A> <A HREF="#prod39">ParameterList</A> <LEFTBRACE> <A HREF="#prod40">Expression</A> <RIGHTBRACE></TD> |
| </TR> |
| <TR> |
| <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod25">FeedSpecification</A></TD> |
| <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
| <TD ALIGN=LEFT VALIGN=BASELINE>( "feed" <A HREF="#prod29">QualifiedName</A> <A HREF="#prod27">IfNotExists</A> "using" <A HREF="#prod30">AdapterName</A> <A HREF="#prod31">Configuration</A> ( <A HREF="#prod41">ApplyFunction</A> )? )</TD> |
| </TR> |
| <TR> |
| <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod39">ParameterList</A></TD> |
| <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
| <TD ALIGN=LEFT VALIGN=BASELINE><LEFTPAREN> ( <VARIABLE> ( <COMMA> <VARIABLE> )* )? <RIGHTPAREN></TD> |
| </TR> |
| <TR> |
| <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod27">IfNotExists</A></TD> |
| <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
| <TD ALIGN=LEFT VALIGN=BASELINE>( "if not exists" )?</TD> |
| </TR> |
| <TR> |
| <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod41">ApplyFunction</A></TD> |
| <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
| <TD ALIGN=LEFT VALIGN=BASELINE>"apply" "function" <A HREF="#prod38">FunctionName</A></TD> |
| </TR> |
| <TR> |
| <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod42">GetPolicy</A></TD> |
| <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
| <TD ALIGN=LEFT VALIGN=BASELINE>"using" "policy" <A HREF="#prod18">Identifier</A></TD> |
| </TR> |
| <TR> |
| <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod43">FunctionSignature</A></TD> |
| <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
| <TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod38">FunctionName</A> "@" <INTEGER_LITERAL></TD> |
| </TR> |
| <TR> |
| <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod34">PrimaryKey</A></TD> |
| <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
| <TD ALIGN=LEFT VALIGN=BASELINE>"primary" "key" <A HREF="#prod18">Identifier</A> ( <COMMA> <A HREF="#prod18">Identifier</A> )*</TD> |
| </TR> |
| <TR> |
| <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod7">DropStatement</A></TD> |
| <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
| <TD ALIGN=LEFT VALIGN=BASELINE>"drop" ( <DATASET> <A HREF="#prod29">QualifiedName</A> <A HREF="#prod44">IfExists</A> | "index" <A HREF="#prod45">DoubleQualifiedName</A> <A HREF="#prod44">IfExists</A> | "nodegroup" <A HREF="#prod18">Identifier</A> <A HREF="#prod44">IfExists</A> | "type" <A HREF="#prod26">TypeName</A> <A HREF="#prod44">IfExists</A> | "dataverse" <A HREF="#prod18">Identifier</A> <A HREF="#prod44">IfExists</A> | "function" <A HREF="#prod43">FunctionSignature</A> <A HREF="#prod44">IfExists</A> | "feed" <A HREF="#prod29">QualifiedName</A> <A HREF="#prod44">IfExists</A> )</TD> |
| </TR> |
| <TR> |
| <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod44">IfExists</A></TD> |
| <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
| <TD ALIGN=LEFT VALIGN=BASELINE>( <IF> "exists" )?</TD> |
| </TR> |
| <TR> |
| <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod10">InsertStatement</A></TD> |
| <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
| <TD ALIGN=LEFT VALIGN=BASELINE>"insert" "into" <DATASET> <A HREF="#prod29">QualifiedName</A> <A HREF="#prod15">Query</A></TD> |
| </TR> |
| <TR> |
| <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod11">DeleteStatement</A></TD> |
| <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
| <TD ALIGN=LEFT VALIGN=BASELINE>"delete" <A HREF="#prod46">Variable</A> <FROM> <DATASET> <A HREF="#prod29">QualifiedName</A> ( <WHERE> <A HREF="#prod40">Expression</A> )?</TD> |
| </TR> |
| <TR> |
| <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod12">UpdateStatement</A></TD> |
| <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
| <TD ALIGN=LEFT VALIGN=BASELINE>"update" <A HREF="#prod46">Variable</A> <IN> <A HREF="#prod40">Expression</A> <WHERE> <A HREF="#prod40">Expression</A> <LEFTPAREN> ( <A HREF="#prod47">UpdateClause</A> ( <COMMA> <A HREF="#prod47">UpdateClause</A> )* ) <RIGHTPAREN></TD> |
| </TR> |
| <TR> |
| <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod47">UpdateClause</A></TD> |
| <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
| <TD ALIGN=LEFT VALIGN=BASELINE>"set" <A HREF="#prod40">Expression</A> <ASSIGN> <A HREF="#prod40">Expression</A></TD> |
| </TR> |
| <TR> |
| <TD ALIGN=RIGHT VALIGN=BASELINE></TD> |
| <TD ALIGN=CENTER VALIGN=BASELINE>|</TD> |
| <TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod10">InsertStatement</A></TD> |
| </TR> |
| <TR> |
| <TD ALIGN=RIGHT VALIGN=BASELINE></TD> |
| <TD ALIGN=CENTER VALIGN=BASELINE>|</TD> |
| <TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod11">DeleteStatement</A></TD> |
| </TR> |
| <TR> |
| <TD ALIGN=RIGHT VALIGN=BASELINE></TD> |
| <TD ALIGN=CENTER VALIGN=BASELINE>|</TD> |
| <TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod12">UpdateStatement</A></TD> |
| </TR> |
| <TR> |
| <TD ALIGN=RIGHT VALIGN=BASELINE></TD> |
| <TD ALIGN=CENTER VALIGN=BASELINE>|</TD> |
| <TD ALIGN=LEFT VALIGN=BASELINE><IF> <LEFTPAREN> <A HREF="#prod40">Expression</A> <RIGHTPAREN> <THEN> <A HREF="#prod47">UpdateClause</A> ( <ELSE> <A HREF="#prod47">UpdateClause</A> )?</TD> |
| </TR> |
| <TR> |
| <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod9">SetStatement</A></TD> |
| <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
| <TD ALIGN=LEFT VALIGN=BASELINE>"set" <A HREF="#prod18">Identifier</A> <A HREF="#prod37">StringLiteral</A></TD> |
| </TR> |
| <TR> |
| <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod8">WriteStatement</A></TD> |
| <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
| <TD ALIGN=LEFT VALIGN=BASELINE>"write" "output" "to" <A HREF="#prod18">Identifier</A> <COLON> <A HREF="#prod37">StringLiteral</A> ( "using" <A HREF="#prod37">StringLiteral</A> )?</TD> |
| </TR> |
| <TR> |
| <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod6">LoadStatement</A></TD> |
| <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
| <TD ALIGN=LEFT VALIGN=BASELINE>"load" <DATASET> <A HREF="#prod29">QualifiedName</A> "using" <A HREF="#prod30">AdapterName</A> <A HREF="#prod31">Configuration</A> ( "pre-sorted" )?</TD> |
| </TR> |
| <TR> |
| <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod30">AdapterName</A></TD> |
| <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
| <TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod18">Identifier</A></TD> |
| </TR> |
| <TR> |
| <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod14">CompactStatement</A></TD> |
| <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
| <TD ALIGN=LEFT VALIGN=BASELINE>"compact" <DATASET> <A HREF="#prod29">QualifiedName</A></TD> |
| </TR> |
| <TR> |
| <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod13">FeedStatement</A></TD> |
| <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
| <TD ALIGN=LEFT VALIGN=BASELINE>( "connect" "feed" <A HREF="#prod29">QualifiedName</A> "to" <DATASET> <A HREF="#prod29">QualifiedName</A> ( <A HREF="#prod42">GetPolicy</A> )? | "disconnect" "feed" <A HREF="#prod29">QualifiedName</A> <FROM> <DATASET> <A HREF="#prod29">QualifiedName</A> )</TD> |
| </TR> |
| <TR> |
| <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod31">Configuration</A></TD> |
| <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
| <TD ALIGN=LEFT VALIGN=BASELINE><LEFTPAREN> ( <A HREF="#prod48">KeyValuePair</A> ( <COMMA> <A HREF="#prod48">KeyValuePair</A> )* )? <RIGHTPAREN></TD> |
| </TR> |
| <TR> |
| <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod48">KeyValuePair</A></TD> |
| <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
| <TD ALIGN=LEFT VALIGN=BASELINE><LEFTPAREN> <A HREF="#prod37">StringLiteral</A> <EQ> <A HREF="#prod37">StringLiteral</A> <RIGHTPAREN></TD> |
| </TR> |
| <TR> |
| <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod32">Properties</A></TD> |
| <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
| <TD ALIGN=LEFT VALIGN=BASELINE>( <LEFTPAREN> <A HREF="#prod49">Property</A> ( <COMMA> <A HREF="#prod49">Property</A> )* <RIGHTPAREN> )?</TD> |
| </TR> |
| <TR> |
| <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod49">Property</A></TD> |
| <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
| <TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod18">Identifier</A> <EQ> ( <A HREF="#prod37">StringLiteral</A> | <INTEGER_LITERAL> )</TD> |
| </TR> |
| <TR> |
| <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod28">TypeExpr</A></TD> |
| <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
| <TD ALIGN=LEFT VALIGN=BASELINE>( <A HREF="#prod50">RecordTypeDef</A> | <A HREF="#prod51">TypeReference</A> | <A HREF="#prod52">OrderedListTypeDef</A> | <A HREF="#prod53">UnorderedListTypeDef</A> )</TD> |
| </TR> |
| <TR> |
| <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod50">RecordTypeDef</A></TD> |
| <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
| <TD ALIGN=LEFT VALIGN=BASELINE>( "closed" | "open" )? <LEFTBRACE> ( <A HREF="#prod54">RecordField</A> ( <COMMA> <A HREF="#prod54">RecordField</A> )* )? <RIGHTBRACE></TD> |
| </TR> |
| <TR> |
| <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod54">RecordField</A></TD> |
| <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
| <TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod18">Identifier</A> <COLON> <A HREF="#prod28">TypeExpr</A> ( <QUES> )?</TD> |
| </TR> |
| <TR> |
| <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod51">TypeReference</A></TD> |
| <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
| <TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod18">Identifier</A></TD> |
| </TR> |
| <TR> |
| <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod52">OrderedListTypeDef</A></TD> |
| <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
| <TD ALIGN=LEFT VALIGN=BASELINE><LEFTBRACKET> ( <A HREF="#prod28">TypeExpr</A> ) <RIGHTBRACKET></TD> |
| </TR> |
| <TR> |
| <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod53">UnorderedListTypeDef</A></TD> |
| <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
| <TD ALIGN=LEFT VALIGN=BASELINE><LEFTDBLBRACE> ( <A HREF="#prod28">TypeExpr</A> ) <RIGHTDBLBRACE></TD> |
| </TR> |
| <TR> |
| <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod38">FunctionName</A></TD> |
| <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
| <TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod18">Identifier</A> ( <DOT> <A HREF="#prod18">Identifier</A> ( "#" <A HREF="#prod18">Identifier</A> )? | "#" <A HREF="#prod18">Identifier</A> )?</TD> |
| </TR> |
| <TR> |
| <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod26">TypeName</A></TD> |
| <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
| <TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod29">QualifiedName</A></TD> |
| </TR> |
| <TR> |
| <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod18">Identifier</A></TD> |
| <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
| <TD ALIGN=LEFT VALIGN=BASELINE><IDENTIFIER></TD> |
| </TR> |
| <TR> |
| <TD ALIGN=RIGHT VALIGN=BASELINE></TD> |
| <TD ALIGN=CENTER VALIGN=BASELINE>|</TD> |
| <TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod37">StringLiteral</A></TD> |
| </TR> |
| <TR> |
| <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod37">StringLiteral</A></TD> |
| <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
| <TD ALIGN=LEFT VALIGN=BASELINE><STRING_LITERAL></TD> |
| </TR> |
| <TR> |
| <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod29">QualifiedName</A></TD> |
| <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
| <TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod18">Identifier</A> ( <DOT> <A HREF="#prod18">Identifier</A> )?</TD> |
| </TR> |
| <TR> |
| <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod45">DoubleQualifiedName</A></TD> |
| <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
| <TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod18">Identifier</A> <DOT> <A HREF="#prod18">Identifier</A> ( <DOT> <A HREF="#prod18">Identifier</A> )?</TD> |
| </TR> |
| <TR> |
| <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod4">FunctionDeclaration</A></TD> |
| <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
| <TD ALIGN=LEFT VALIGN=BASELINE>"declare" "function" <A HREF="#prod18">Identifier</A> <A HREF="#prod39">ParameterList</A> <LEFTBRACE> <A HREF="#prod40">Expression</A> <RIGHTBRACE></TD> |
| </TR> |
| <TR> |
| <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod15">Query</A></TD> |
| <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
| <TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod40">Expression</A></TD> |
| </TR> |
| <TR> |
| <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod40">Expression</A></TD> |
| <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
| <TD ALIGN=LEFT VALIGN=BASELINE>( <A HREF="#prod55">OperatorExpr</A> | <A HREF="#prod56">IfThenElse</A> | <A HREF="#prod57">FLWOGR</A> | <A HREF="#prod58">QuantifiedExpression</A> )</TD> |
| </TR> |
| <TR> |
| <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod55">OperatorExpr</A></TD> |
| <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
| <TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod59">AndExpr</A> ( <OR> <A HREF="#prod59">AndExpr</A> )*</TD> |
| </TR> |
| <TR> |
| <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod59">AndExpr</A></TD> |
| <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
| <TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod60">RelExpr</A> ( <AND> <A HREF="#prod60">RelExpr</A> )*</TD> |
| </TR> |
| <TR> |
| <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod60">RelExpr</A></TD> |
| <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
| <TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod61">AddExpr</A> ( ( <LT> | <GT> | <LE> | <GE> | <EQ> | <NE> | <SIMILAR> ) <A HREF="#prod61">AddExpr</A> )?</TD> |
| </TR> |
| <TR> |
| <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod61">AddExpr</A></TD> |
| <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
| <TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod62">MultExpr</A> ( ( <PLUS> | <MINUS> ) <A HREF="#prod62">MultExpr</A> )*</TD> |
| </TR> |
| <TR> |
| <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod62">MultExpr</A></TD> |
| <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
| <TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod63">UnionExpr</A> ( ( <MUL> | <DIV> | <MOD> | <CARET> | <IDIV> ) <A HREF="#prod63">UnionExpr</A> )*</TD> |
| </TR> |
| <TR> |
| <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod63">UnionExpr</A></TD> |
| <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
| <TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod64">UnaryExpr</A> ( <UNION> ( <A HREF="#prod64">UnaryExpr</A> ) )*</TD> |
| </TR> |
| <TR> |
| <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod64">UnaryExpr</A></TD> |
| <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
| <TD ALIGN=LEFT VALIGN=BASELINE>( ( <PLUS> | <MINUS> ) )? <A HREF="#prod65">ValueExpr</A></TD> |
| </TR> |
| <TR> |
| <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod65">ValueExpr</A></TD> |
| <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
| <TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod66">PrimaryExpr</A> ( <A HREF="#prod67">Field</A> | <A HREF="#prod68">Index</A> )*</TD> |
| </TR> |
| <TR> |
| <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod67">Field</A></TD> |
| <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
| <TD ALIGN=LEFT VALIGN=BASELINE><DOT> <A HREF="#prod18">Identifier</A></TD> |
| </TR> |
| <TR> |
| <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod68">Index</A></TD> |
| <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
| <TD ALIGN=LEFT VALIGN=BASELINE><LEFTBRACKET> ( <A HREF="#prod40">Expression</A> | <QUES> ) <RIGHTBRACKET></TD> |
| </TR> |
| <TR> |
| <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod66">PrimaryExpr</A></TD> |
| <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
| <TD ALIGN=LEFT VALIGN=BASELINE>( <A HREF="#prod69">FunctionCallExpr</A> | <A HREF="#prod70">Literal</A> | <A HREF="#prod71">DatasetAccessExpression</A> | <A HREF="#prod72">VariableRef</A> | <A HREF="#prod73">ListConstructor</A> | <A HREF="#prod74">RecordConstructor</A> | <A HREF="#prod75">ParenthesizedExpression</A> )</TD> |
| </TR> |
| <TR> |
| <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod70">Literal</A></TD> |
| <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
| <TD ALIGN=LEFT VALIGN=BASELINE>( <A HREF="#prod37">StringLiteral</A> | <INTEGER_LITERAL> | <FLOAT_LITERAL> | <DOUBLE_LITERAL> | <NULL> | <TRUE> | <FALSE> )</TD> |
| </TR> |
| <TR> |
| <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod72">VariableRef</A></TD> |
| <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
| <TD ALIGN=LEFT VALIGN=BASELINE><VARIABLE></TD> |
| </TR> |
| <TR> |
| <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod46">Variable</A></TD> |
| <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
| <TD ALIGN=LEFT VALIGN=BASELINE><VARIABLE></TD> |
| </TR> |
| <TR> |
| <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod73">ListConstructor</A></TD> |
| <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
| <TD ALIGN=LEFT VALIGN=BASELINE>( <A HREF="#prod76">OrderedListConstructor</A> | <A HREF="#prod77">UnorderedListConstructor</A> )</TD> |
| </TR> |
| <TR> |
| <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod76">OrderedListConstructor</A></TD> |
| <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
| <TD ALIGN=LEFT VALIGN=BASELINE><LEFTBRACKET> ( <A HREF="#prod40">Expression</A> ( <COMMA> <A HREF="#prod40">Expression</A> )* )? <RIGHTBRACKET></TD> |
| </TR> |
| <TR> |
| <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod77">UnorderedListConstructor</A></TD> |
| <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
| <TD ALIGN=LEFT VALIGN=BASELINE><LEFTDBLBRACE> ( <A HREF="#prod40">Expression</A> ( <COMMA> <A HREF="#prod40">Expression</A> )* )? <RIGHTDBLBRACE></TD> |
| </TR> |
| <TR> |
| <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod74">RecordConstructor</A></TD> |
| <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
| <TD ALIGN=LEFT VALIGN=BASELINE><LEFTBRACE> ( <A HREF="#prod78">FieldBinding</A> ( <COMMA> <A HREF="#prod78">FieldBinding</A> )* )? <RIGHTBRACE></TD> |
| </TR> |
| <TR> |
| <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod78">FieldBinding</A></TD> |
| <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
| <TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod40">Expression</A> <COLON> <A HREF="#prod40">Expression</A></TD> |
| </TR> |
| <TR> |
| <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod69">FunctionCallExpr</A></TD> |
| <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
| <TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod38">FunctionName</A> <LEFTPAREN> ( <A HREF="#prod40">Expression</A> ( <COMMA> <A HREF="#prod40">Expression</A> )* )? <RIGHTPAREN></TD> |
| </TR> |
| <TR> |
| <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod71">DatasetAccessExpression</A></TD> |
| <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
| <TD ALIGN=LEFT VALIGN=BASELINE><DATASET> ( ( <A HREF="#prod18">Identifier</A> ( <DOT> <A HREF="#prod18">Identifier</A> )? ) | ( <LEFTPAREN> <A HREF="#prod40">Expression</A> <RIGHTPAREN> ) )</TD> |
| </TR> |
| <TR> |
| <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod75">ParenthesizedExpression</A></TD> |
| <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
| <TD ALIGN=LEFT VALIGN=BASELINE><LEFTPAREN> <A HREF="#prod40">Expression</A> <RIGHTPAREN></TD> |
| </TR> |
| <TR> |
| <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod56">IfThenElse</A></TD> |
| <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
| <TD ALIGN=LEFT VALIGN=BASELINE><IF> <LEFTPAREN> <A HREF="#prod40">Expression</A> <RIGHTPAREN> <THEN> <A HREF="#prod40">Expression</A> <ELSE> <A HREF="#prod40">Expression</A></TD> |
| </TR> |
| <TR> |
| <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod57">FLWOGR</A></TD> |
| <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
| <TD ALIGN=LEFT VALIGN=BASELINE>( <A HREF="#prod79">ForClause</A> | <A HREF="#prod80">LetClause</A> ) ( <A HREF="#prod81">Clause</A> )* ( <RETURN> | <SELECT> ) <A HREF="#prod40">Expression</A></TD> |
| </TR> |
| <TR> |
| <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod81">Clause</A></TD> |
| <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
| <TD ALIGN=LEFT VALIGN=BASELINE>( <A HREF="#prod79">ForClause</A> | <A HREF="#prod80">LetClause</A> | <A HREF="#prod82">WhereClause</A> | <A HREF="#prod83">OrderbyClause</A> | <A HREF="#prod84">GroupClause</A> | <A HREF="#prod85">LimitClause</A> | <A HREF="#prod86">DistinctClause</A> )</TD> |
| </TR> |
| <TR> |
| <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod79">ForClause</A></TD> |
| <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
| <TD ALIGN=LEFT VALIGN=BASELINE>( <FOR> | <FROM> ) <A HREF="#prod46">Variable</A> ( <AT> <A HREF="#prod46">Variable</A> )? <IN> ( <A HREF="#prod40">Expression</A> )</TD> |
| </TR> |
| <TR> |
| <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod80">LetClause</A></TD> |
| <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
| <TD ALIGN=LEFT VALIGN=BASELINE>( <LET> | <WITH> ) <A HREF="#prod46">Variable</A> <ASSIGN> <A HREF="#prod40">Expression</A></TD> |
| </TR> |
| <TR> |
| <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod82">WhereClause</A></TD> |
| <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
| <TD ALIGN=LEFT VALIGN=BASELINE><WHERE> <A HREF="#prod40">Expression</A></TD> |
| </TR> |
| <TR> |
| <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod83">OrderbyClause</A></TD> |
| <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
| <TD ALIGN=LEFT VALIGN=BASELINE>( <ORDER> <BY> <A HREF="#prod40">Expression</A> ( ( <ASC> ) | ( <DESC> ) )? ( <COMMA> <A HREF="#prod40">Expression</A> ( ( <ASC> ) | ( <DESC> ) )? )* )</TD> |
| </TR> |
| <TR> |
| <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod84">GroupClause</A></TD> |
| <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
| <TD ALIGN=LEFT VALIGN=BASELINE><GROUP> <BY> ( <A HREF="#prod46">Variable</A> <ASSIGN> )? <A HREF="#prod40">Expression</A> ( <COMMA> ( <A HREF="#prod46">Variable</A> <ASSIGN> )? <A HREF="#prod40">Expression</A> )* ( <DECOR> <A HREF="#prod46">Variable</A> <ASSIGN> <A HREF="#prod40">Expression</A> ( <COMMA> <DECOR> <A HREF="#prod46">Variable</A> <ASSIGN> <A HREF="#prod40">Expression</A> )* )? ( <WITH> | <KEEPING> ) <A HREF="#prod72">VariableRef</A> ( <COMMA> <A HREF="#prod72">VariableRef</A> )*</TD> |
| </TR> |
| <TR> |
| <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod85">LimitClause</A></TD> |
| <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
| <TD ALIGN=LEFT VALIGN=BASELINE><LIMIT> <A HREF="#prod40">Expression</A> ( <OFFSET> <A HREF="#prod40">Expression</A> )?</TD> |
| </TR> |
| <TR> |
| <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod86">DistinctClause</A></TD> |
| <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
| <TD ALIGN=LEFT VALIGN=BASELINE><DISTINCT> <BY> <A HREF="#prod40">Expression</A> ( <COMMA> <A HREF="#prod40">Expression</A> )*</TD> |
| </TR> |
| <TR> |
| <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod58">QuantifiedExpression</A></TD> |
| <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
| <TD ALIGN=LEFT VALIGN=BASELINE>( ( <SOME> ) | ( <EVERY> ) ) <A HREF="#prod46">Variable</A> <IN> <A HREF="#prod40">Expression</A> ( <COMMA> <A HREF="#prod46">Variable</A> <IN> <A HREF="#prod40">Expression</A> )* <SATISFIES> <A HREF="#prod40">Expression</A></TD> |
| </TR> |
| </TABLE> |
| </BODY> |
| </HTML> |