blob: b423f6dfb17bd81704fca688a5d2d15da8486e4d [file] [log] [blame]
vinayakb38b7ca42012-03-05 05:44:15 +00001<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
2<HTML>
3<HEAD>
4<TITLE>BNF for AQL.jj</TITLE>
5</HEAD>
6<BODY>
7<H1 ALIGN=CENTER>BNF for AQL.jj</H1>
8<H2 ALIGN=CENTER>TOKENS</H2>
9<TABLE>
10 <!-- Token -->
11 <TR>
12 <TD>
13 <PRE>
buyingyi2fd7fa62014-11-24 19:31:55 -080014&lt;DEFAULT,IN_DBL_BRACE&gt; TOKEN : {
15&lt;ASC: "asc"&gt;
16| &lt;AT: "at"&gt;
17| &lt;BY: "by"&gt;
18| &lt;DATASET: "dataset"&gt;
19| &lt;DECOR: "decor"&gt;
20| &lt;DESC: "desc"&gt;
21| &lt;DISTINCT: "distinct"&gt;
22| &lt;ELSE: "else"&gt;
23| &lt;EVERY: "every"&gt;
24| &lt;FOR: "for"&gt;
25| &lt;FROM: "from"&gt;
26| &lt;GROUP: "group"&gt;
27| &lt;IF: "if"&gt;
28| &lt;IN: "in"&gt;
29| &lt;LET: "let"&gt;
30| &lt;LIMIT: "limit"&gt;
31| &lt;OFFSET: "offset"&gt;
32| &lt;ORDER: "order"&gt;
33| &lt;RETURN: "return"&gt;
34| &lt;SATISFIES: "satisfies"&gt;
35| &lt;SELECT: "select"&gt;
36| &lt;SOME: "some"&gt;
37| &lt;THEN: "then"&gt;
38| &lt;UNION: "union"&gt;
39| &lt;WHERE: "where"&gt;
40| &lt;WITH: "with"&gt;
buyingyiccd67fe2015-05-19 11:53:39 -070041| &lt;KEEPING: "keeping"&gt;
buyingyi2fd7fa62014-11-24 19:31:55 -080042}
43
44 </PRE>
45 </TD>
46 </TR>
47 <!-- Token -->
48 <TR>
49 <TD>
50 <PRE>
51&lt;DEFAULT,IN_DBL_BRACE&gt; TOKEN : {
vinayakb38b7ca42012-03-05 05:44:15 +000052&lt;CARET: "^"&gt;
buyingyi2fd7fa62014-11-24 19:31:55 -080053| &lt;DIV: "/"&gt;
54| &lt;IDIV: "idiv"&gt;
55| &lt;MINUS: "-"&gt;
56| &lt;MOD: "%"&gt;
57| &lt;MUL: "*"&gt;
58| &lt;PLUS: "+"&gt;
59| &lt;LEFTPAREN: "("&gt;
60| &lt;RIGHTPAREN: ")"&gt;
61| &lt;LEFTBRACKET: "["&gt;
62| &lt;RIGHTBRACKET: "]"&gt;
63| &lt;COLON: ":"&gt;
64| &lt;COMMA: ","&gt;
65| &lt;DOT: "."&gt;
66| &lt;QUES: "?"&gt;
67| &lt;LT: "&lt;"&gt;
68| &lt;GT: "&gt;"&gt;
69| &lt;LE: "&lt;="&gt;
70| &lt;GE: "&gt;="&gt;
71| &lt;EQ: "="&gt;
72| &lt;NE: "!="&gt;
73| &lt;SIMILAR: "~="&gt;
74| &lt;ASSIGN: ":="&gt;
75| &lt;AND: "and"&gt;
76| &lt;OR: "or"&gt;
77}
78
79 </PRE>
80 </TD>
81 </TR>
82 <!-- Token -->
83 <TR>
84 <TD>
85 <PRE>
86&lt;DEFAULT,IN_DBL_BRACE&gt; TOKEN : {
87&lt;LEFTBRACE: "{"&gt; : DEFAULT
vinayakb38b7ca42012-03-05 05:44:15 +000088}
89
90 </PRE>
91 </TD>
92 </TR>
93 <!-- Token -->
94 <TR>
95 <TD>
96 <PRE>
97&lt;DEFAULT&gt; TOKEN : {
buyingyi2fd7fa62014-11-24 19:31:55 -080098&lt;RIGHTBRACE: "}"&gt; : {
vinayakb38b7ca42012-03-05 05:44:15 +000099}
100
101 </PRE>
102 </TD>
103 </TR>
104 <!-- Token -->
105 <TR>
106 <TD>
107 <PRE>
buyingyi2fd7fa62014-11-24 19:31:55 -0800108&lt;DEFAULT,IN_DBL_BRACE&gt; TOKEN : {
109&lt;LEFTDBLBRACE: "{{"&gt; : IN_DBL_BRACE
vinayakb38b7ca42012-03-05 05:44:15 +0000110}
111
112 </PRE>
113 </TD>
114 </TR>
115 <!-- Token -->
116 <TR>
117 <TD>
118 <PRE>
buyingyi2fd7fa62014-11-24 19:31:55 -0800119&lt;IN_DBL_BRACE&gt; TOKEN : {
120&lt;RIGHTDBLBRACE: "}}"&gt; : {
vinayakb38b7ca42012-03-05 05:44:15 +0000121}
122
123 </PRE>
124 </TD>
125 </TR>
126 <!-- Token -->
127 <TR>
128 <TD>
129 <PRE>
buyingyi2fd7fa62014-11-24 19:31:55 -0800130&lt;DEFAULT,IN_DBL_BRACE&gt; TOKEN : {
vinayakb38b7ca42012-03-05 05:44:15 +0000131&lt;INTEGER_LITERAL: (&lt;DIGIT&gt;)+&gt;
132}
133
134 </PRE>
135 </TD>
136 </TR>
137 <!-- Token -->
138 <TR>
139 <TD>
140 <PRE>
buyingyi2fd7fa62014-11-24 19:31:55 -0800141&lt;DEFAULT,IN_DBL_BRACE&gt; TOKEN : {
vinayakb38b7ca42012-03-05 05:44:15 +0000142&lt;NULL: "null"&gt;
buyingyi2fd7fa62014-11-24 19:31:55 -0800143| &lt;TRUE: "true"&gt;
144| &lt;FALSE: "false"&gt;
vinayakb38b7ca42012-03-05 05:44:15 +0000145}
146
147 </PRE>
148 </TD>
149 </TR>
150 <!-- Token -->
151 <TR>
152 <TD>
153 <PRE>
buyingyi2fd7fa62014-11-24 19:31:55 -0800154&lt;DEFAULT,IN_DBL_BRACE&gt; TOKEN : {
vinayakb38b7ca42012-03-05 05:44:15 +0000155&lt;#DIGIT: ["0"-"9"]&gt;
156}
157
158 </PRE>
159 </TD>
160 </TR>
161 <!-- Token -->
162 <TR>
163 <TD>
164 <PRE>
buyingyi2fd7fa62014-11-24 19:31:55 -0800165&lt;DEFAULT,IN_DBL_BRACE&gt; TOKEN : {
166&lt;DOUBLE_LITERAL: &lt;DIGITS&gt; | &lt;DIGITS&gt; ("." &lt;DIGITS&gt;)? | "." &lt;DIGITS&gt;&gt;
167| &lt;FLOAT_LITERAL: &lt;DIGITS&gt; ("f" | "F") | &lt;DIGITS&gt; ("." &lt;DIGITS&gt; ("f" | "F"))? | "." &lt;DIGITS&gt; ("f" | "F")&gt;
168| &lt;DIGITS: (&lt;DIGIT&gt;)+&gt;
vinayakb38b7ca42012-03-05 05:44:15 +0000169}
170
171 </PRE>
172 </TD>
173 </TR>
174 <!-- Token -->
175 <TR>
176 <TD>
177 <PRE>
buyingyi2fd7fa62014-11-24 19:31:55 -0800178&lt;DEFAULT,IN_DBL_BRACE&gt; TOKEN : {
vinayakb38b7ca42012-03-05 05:44:15 +0000179&lt;#LETTER: ["A"-"Z","a"-"z"]&gt;
buyingyi2fd7fa62014-11-24 19:31:55 -0800180| &lt;SPECIALCHARS: ["$","_","-"]&gt;
vinayakb38b7ca42012-03-05 05:44:15 +0000181}
182
183 </PRE>
184 </TD>
185 </TR>
186 <!-- Token -->
187 <TR>
188 <TD>
189 <PRE>
buyingyi2fd7fa62014-11-24 19:31:55 -0800190&lt;DEFAULT,IN_DBL_BRACE&gt; TOKEN : {
191&lt;STRING_LITERAL: "\"" (&lt;EscapeQuot&gt; | &lt;EscapeBslash&gt; | &lt;EscapeSlash&gt; | &lt;EscapeBspace&gt; | &lt;EscapeFormf&gt; | &lt;EscapeNl&gt; | &lt;EscapeCr&gt; | &lt;EscapeTab&gt; | ~["\"","\\"])* "\"" | "\'" (&lt;EscapeApos&gt; | &lt;EscapeBslash&gt; | &lt;EscapeSlash&gt; | &lt;EscapeBspace&gt; | &lt;EscapeFormf&gt; | &lt;EscapeNl&gt; | &lt;EscapeCr&gt; | &lt;EscapeTab&gt; | ~["\'","\\"])* "\'"&gt;
vinayakb38b7ca42012-03-05 05:44:15 +0000192| &lt;#EscapeQuot: "\\\""&gt;
193| &lt;#EscapeApos: "\\\'"&gt;
buyingyi2fd7fa62014-11-24 19:31:55 -0800194| &lt;#EscapeBslash: "\\\\"&gt;
195| &lt;#EscapeSlash: "\\/"&gt;
196| &lt;#EscapeBspace: "\\b"&gt;
197| &lt;#EscapeFormf: "\\f"&gt;
198| &lt;#EscapeNl: "\\n"&gt;
199| &lt;#EscapeCr: "\\r"&gt;
200| &lt;#EscapeTab: "\\t"&gt;
vinayakb38b7ca42012-03-05 05:44:15 +0000201}
202
203 </PRE>
204 </TD>
205 </TR>
206 <!-- Token -->
207 <TR>
208 <TD>
209 <PRE>
buyingyi2fd7fa62014-11-24 19:31:55 -0800210&lt;DEFAULT,IN_DBL_BRACE&gt; TOKEN : {
211&lt;IDENTIFIER: &lt;LETTER&gt; (&lt;LETTER&gt; | &lt;DIGIT&gt; | &lt;SPECIALCHARS&gt;)*&gt;
vinayakb38b7ca42012-03-05 05:44:15 +0000212}
213
214 </PRE>
215 </TD>
216 </TR>
217 <!-- Token -->
218 <TR>
219 <TD>
220 <PRE>
buyingyi2fd7fa62014-11-24 19:31:55 -0800221&lt;DEFAULT,IN_DBL_BRACE&gt; TOKEN : {
222&lt;VARIABLE: "$" &lt;LETTER&gt; (&lt;LETTER&gt; | &lt;DIGIT&gt; | "_")*&gt;
vinayakb38b7ca42012-03-05 05:44:15 +0000223}
224
225 </PRE>
226 </TD>
227 </TR>
228 <!-- Token -->
229 <TR>
230 <TD>
231 <PRE>
buyingyi2fd7fa62014-11-24 19:31:55 -0800232&lt;DEFAULT,IN_DBL_BRACE&gt; SKIP : {
vinayakb38b7ca42012-03-05 05:44:15 +0000233" "
234| "\t"
235| "\r"
236| "\n"
237}
238
239 </PRE>
240 </TD>
241 </TR>
242 <!-- Token -->
243 <TR>
244 <TD>
245 <PRE>
buyingyi2fd7fa62014-11-24 19:31:55 -0800246&lt;DEFAULT,IN_DBL_BRACE&gt; SKIP : {
vinayakb38b7ca42012-03-05 05:44:15 +0000247&lt;"//" (~["\n"])* "\n"&gt;
248}
249
250 </PRE>
251 </TD>
252 </TR>
253 <!-- Token -->
254 <TR>
255 <TD>
256 <PRE>
buyingyi2fd7fa62014-11-24 19:31:55 -0800257&lt;DEFAULT,IN_DBL_BRACE&gt; SKIP : {
vinayakb38b7ca42012-03-05 05:44:15 +0000258&lt;"//" (~["\n","\r"])* ("\n" | "\r" | "\r\n")?&gt;
259}
260
261 </PRE>
262 </TD>
263 </TR>
264 <!-- Token -->
265 <TR>
266 <TD>
267 <PRE>
buyingyi2fd7fa62014-11-24 19:31:55 -0800268&lt;DEFAULT,IN_DBL_BRACE&gt; SKIP : {
vinayakb38b7ca42012-03-05 05:44:15 +0000269"/*" : INSIDE_COMMENT
270}
271
272 </PRE>
273 </TD>
274 </TR>
275 <!-- Token -->
276 <TR>
277 <TD>
278 <PRE>
279&lt;INSIDE_COMMENT&gt; SPECIAL : {
280&lt;"+" (" ")* (~["*"])*&gt;
281}
282
283 </PRE>
284 </TD>
285 </TR>
286 <!-- Token -->
287 <TR>
288 <TD>
289 <PRE>
290&lt;INSIDE_COMMENT&gt; SKIP : {
291"/*" : {
292}
293
294 </PRE>
295 </TD>
296 </TR>
297 <!-- Token -->
298 <TR>
299 <TD>
300 <PRE>
301&lt;INSIDE_COMMENT&gt; SKIP : {
302"*/" : {
303| &lt;~[]&gt;
304}
305
306 </PRE>
307 </TD>
308 </TR>
309</TABLE>
310<H2 ALIGN=CENTER>NON-TERMINALS</H2>
311<TABLE>
312<TR>
313<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod1">Statement</A></TD>
314<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800315<TD ALIGN=LEFT VALIGN=BASELINE>( <A HREF="#prod2">SingleStatement</A> ( ";" )? )* &lt;EOF&gt;</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000316</TR>
317<TR>
buyingyi2fd7fa62014-11-24 19:31:55 -0800318<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod2">SingleStatement</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000319<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700320<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>
vinayakb38b7ca42012-03-05 05:44:15 +0000321</TR>
322<TR>
buyingyi2fd7fa62014-11-24 19:31:55 -0800323<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod3">DataverseDeclaration</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000324<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700325<TD ALIGN=LEFT VALIGN=BASELINE>"use" "dataverse" <A HREF="#prod18">Identifier</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000326</TR>
327<TR>
buyingyi2fd7fa62014-11-24 19:31:55 -0800328<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod5">CreateStatement</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000329<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700330<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>
vinayakb38b7ca42012-03-05 05:44:15 +0000331</TR>
332<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700333<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod19">TypeSpecification</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000334<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700335<TD ALIGN=LEFT VALIGN=BASELINE>"type" <A HREF="#prod26">TypeName</A> <A HREF="#prod27">IfNotExists</A> "as" <A HREF="#prod28">TypeExpr</A></TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800336</TR>
337<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700338<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod20">NodegroupSpecification</A></TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800339<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700340<TD ALIGN=LEFT VALIGN=BASELINE>"nodegroup" <A HREF="#prod18">Identifier</A> <A HREF="#prod27">IfNotExists</A> "on" <A HREF="#prod18">Identifier</A> ( &lt;COMMA&gt; <A HREF="#prod18">Identifier</A> )*</TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800341</TR>
342<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700343<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod21">DatasetSpecification</A></TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800344<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700345<TD ALIGN=LEFT VALIGN=BASELINE>( "external" &lt;DATASET&gt; <A HREF="#prod29">QualifiedName</A> &lt;LEFTPAREN&gt; <A HREF="#prod18">Identifier</A> &lt;RIGHTPAREN&gt; <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" )? &lt;DATASET&gt; <A HREF="#prod29">QualifiedName</A> &lt;LEFTPAREN&gt; <A HREF="#prod18">Identifier</A> &lt;RIGHTPAREN&gt; <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>
buyingyi2fd7fa62014-11-24 19:31:55 -0800346</TR>
347<TR>
348<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod16">RefreshExternalDatasetStatement</A></TD>
349<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700350<TD ALIGN=LEFT VALIGN=BASELINE>"refresh external" &lt;DATASET&gt; <A HREF="#prod29">QualifiedName</A></TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800351</TR>
352<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700353<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod17">RunStatement</A></TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800354<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700355<TD ALIGN=LEFT VALIGN=BASELINE>"run" <A HREF="#prod18">Identifier</A> &lt;LEFTPAREN&gt; ( <A HREF="#prod18">Identifier</A> ( &lt;COMMA&gt; )? )* &lt;RIGHTPAREN&gt; &lt;FROM&gt; &lt;DATASET&gt; <A HREF="#prod29">QualifiedName</A> "to" &lt;DATASET&gt; <A HREF="#prod29">QualifiedName</A></TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800356</TR>
357<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700358<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod22">IndexSpecification</A></TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800359<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700360<TD ALIGN=LEFT VALIGN=BASELINE>"index" <A HREF="#prod18">Identifier</A> <A HREF="#prod27">IfNotExists</A> "on" <A HREF="#prod29">QualifiedName</A> &lt;LEFTPAREN&gt; ( <A HREF="#prod18">Identifier</A> ) ( &lt;COMMA&gt; <A HREF="#prod18">Identifier</A> )* &lt;RIGHTPAREN&gt; ( "type" <A HREF="#prod36">IndexType</A> )?</TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800361</TR>
362<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700363<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod33">CompactionPolicy</A></TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800364<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700365<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod18">Identifier</A></TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800366</TR>
367<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700368<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod35">FilterField</A></TD>
369<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
370<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod18">Identifier</A></TD>
371</TR>
372<TR>
373<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod36">IndexType</A></TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800374<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
375<TD ALIGN=LEFT VALIGN=BASELINE>( "btree" | "rtree" | "keyword" | "ngram" &lt;LEFTPAREN&gt; &lt;INTEGER_LITERAL&gt; &lt;RIGHTPAREN&gt; )</TD>
376</TR>
377<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700378<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod23">DataverseSpecification</A></TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800379<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700380<TD ALIGN=LEFT VALIGN=BASELINE>"dataverse" <A HREF="#prod18">Identifier</A> <A HREF="#prod27">IfNotExists</A> ( "with format" <A HREF="#prod37">StringLiteral</A> )?</TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800381</TR>
382<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700383<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod24">FunctionSpecification</A></TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800384<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700385<TD ALIGN=LEFT VALIGN=BASELINE>"function" <A HREF="#prod38">FunctionName</A> <A HREF="#prod27">IfNotExists</A> <A HREF="#prod39">ParameterList</A> &lt;LEFTBRACE&gt; <A HREF="#prod40">Expression</A> &lt;RIGHTBRACE&gt;</TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800386</TR>
387<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700388<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod25">FeedSpecification</A></TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800389<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700390<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>
buyingyi2fd7fa62014-11-24 19:31:55 -0800391</TR>
392<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700393<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod39">ParameterList</A></TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800394<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
395<TD ALIGN=LEFT VALIGN=BASELINE>&lt;LEFTPAREN&gt; ( &lt;VARIABLE&gt; ( &lt;COMMA&gt; &lt;VARIABLE&gt; )* )? &lt;RIGHTPAREN&gt;</TD>
396</TR>
397<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700398<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod27">IfNotExists</A></TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800399<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
400<TD ALIGN=LEFT VALIGN=BASELINE>( "if not exists" )?</TD>
401</TR>
402<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700403<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod41">ApplyFunction</A></TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800404<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700405<TD ALIGN=LEFT VALIGN=BASELINE>"apply" "function" <A HREF="#prod38">FunctionName</A></TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800406</TR>
407<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700408<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod42">GetPolicy</A></TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800409<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700410<TD ALIGN=LEFT VALIGN=BASELINE>"using" "policy" <A HREF="#prod18">Identifier</A></TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800411</TR>
412<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700413<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod43">FunctionSignature</A></TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800414<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700415<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod38">FunctionName</A> "@" &lt;INTEGER_LITERAL&gt;</TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800416</TR>
417<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700418<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod34">PrimaryKey</A></TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800419<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700420<TD ALIGN=LEFT VALIGN=BASELINE>"primary" "key" <A HREF="#prod18">Identifier</A> ( &lt;COMMA&gt; <A HREF="#prod18">Identifier</A> )*</TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800421</TR>
422<TR>
423<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod7">DropStatement</A></TD>
424<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700425<TD ALIGN=LEFT VALIGN=BASELINE>"drop" ( &lt;DATASET&gt; <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>
buyingyi2fd7fa62014-11-24 19:31:55 -0800426</TR>
427<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700428<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod44">IfExists</A></TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800429<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
430<TD ALIGN=LEFT VALIGN=BASELINE>( &lt;IF&gt; "exists" )?</TD>
431</TR>
432<TR>
433<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod10">InsertStatement</A></TD>
434<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700435<TD ALIGN=LEFT VALIGN=BASELINE>"insert" "into" &lt;DATASET&gt; <A HREF="#prod29">QualifiedName</A> <A HREF="#prod15">Query</A></TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800436</TR>
437<TR>
438<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod11">DeleteStatement</A></TD>
439<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700440<TD ALIGN=LEFT VALIGN=BASELINE>"delete" <A HREF="#prod46">Variable</A> &lt;FROM&gt; &lt;DATASET&gt; <A HREF="#prod29">QualifiedName</A> ( &lt;WHERE&gt; <A HREF="#prod40">Expression</A> )?</TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800441</TR>
442<TR>
443<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod12">UpdateStatement</A></TD>
444<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700445<TD ALIGN=LEFT VALIGN=BASELINE>"update" <A HREF="#prod46">Variable</A> &lt;IN&gt; <A HREF="#prod40">Expression</A> &lt;WHERE&gt; <A HREF="#prod40">Expression</A> &lt;LEFTPAREN&gt; ( <A HREF="#prod47">UpdateClause</A> ( &lt;COMMA&gt; <A HREF="#prod47">UpdateClause</A> )* ) &lt;RIGHTPAREN&gt;</TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800446</TR>
447<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700448<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod47">UpdateClause</A></TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800449<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700450<TD ALIGN=LEFT VALIGN=BASELINE>"set" <A HREF="#prod40">Expression</A> &lt;ASSIGN&gt; <A HREF="#prod40">Expression</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000451</TR>
452<TR>
453<TD ALIGN=RIGHT VALIGN=BASELINE></TD>
454<TD ALIGN=CENTER VALIGN=BASELINE>|</TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800455<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod10">InsertStatement</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000456</TR>
457<TR>
458<TD ALIGN=RIGHT VALIGN=BASELINE></TD>
459<TD ALIGN=CENTER VALIGN=BASELINE>|</TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800460<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod11">DeleteStatement</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000461</TR>
462<TR>
463<TD ALIGN=RIGHT VALIGN=BASELINE></TD>
464<TD ALIGN=CENTER VALIGN=BASELINE>|</TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800465<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod12">UpdateStatement</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000466</TR>
467<TR>
468<TD ALIGN=RIGHT VALIGN=BASELINE></TD>
469<TD ALIGN=CENTER VALIGN=BASELINE>|</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700470<TD ALIGN=LEFT VALIGN=BASELINE>&lt;IF&gt; &lt;LEFTPAREN&gt; <A HREF="#prod40">Expression</A> &lt;RIGHTPAREN&gt; &lt;THEN&gt; <A HREF="#prod47">UpdateClause</A> ( &lt;ELSE&gt; <A HREF="#prod47">UpdateClause</A> )?</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000471</TR>
472<TR>
473<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod9">SetStatement</A></TD>
474<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700475<TD ALIGN=LEFT VALIGN=BASELINE>"set" <A HREF="#prod18">Identifier</A> <A HREF="#prod37">StringLiteral</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000476</TR>
477<TR>
buyingyi2fd7fa62014-11-24 19:31:55 -0800478<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod8">WriteStatement</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000479<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700480<TD ALIGN=LEFT VALIGN=BASELINE>"write" "output" "to" <A HREF="#prod18">Identifier</A> &lt;COLON&gt; <A HREF="#prod37">StringLiteral</A> ( "using" <A HREF="#prod37">StringLiteral</A> )?</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000481</TR>
482<TR>
buyingyi2fd7fa62014-11-24 19:31:55 -0800483<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod6">LoadStatement</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000484<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700485<TD ALIGN=LEFT VALIGN=BASELINE>"load" &lt;DATASET&gt; <A HREF="#prod29">QualifiedName</A> "using" <A HREF="#prod30">AdapterName</A> <A HREF="#prod31">Configuration</A> ( "pre-sorted" )?</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000486</TR>
487<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700488<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod30">AdapterName</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000489<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700490<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod18">Identifier</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000491</TR>
492<TR>
buyingyi2fd7fa62014-11-24 19:31:55 -0800493<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod14">CompactStatement</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000494<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700495<TD ALIGN=LEFT VALIGN=BASELINE>"compact" &lt;DATASET&gt; <A HREF="#prod29">QualifiedName</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000496</TR>
497<TR>
buyingyi2fd7fa62014-11-24 19:31:55 -0800498<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod13">FeedStatement</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000499<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700500<TD ALIGN=LEFT VALIGN=BASELINE>( "connect" "feed" <A HREF="#prod29">QualifiedName</A> "to" &lt;DATASET&gt; <A HREF="#prod29">QualifiedName</A> ( <A HREF="#prod42">GetPolicy</A> )? | "disconnect" "feed" <A HREF="#prod29">QualifiedName</A> &lt;FROM&gt; &lt;DATASET&gt; <A HREF="#prod29">QualifiedName</A> )</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000501</TR>
502<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700503<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod31">Configuration</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000504<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700505<TD ALIGN=LEFT VALIGN=BASELINE>&lt;LEFTPAREN&gt; ( <A HREF="#prod48">KeyValuePair</A> ( &lt;COMMA&gt; <A HREF="#prod48">KeyValuePair</A> )* )? &lt;RIGHTPAREN&gt;</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000506</TR>
507<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700508<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod48">KeyValuePair</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000509<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700510<TD ALIGN=LEFT VALIGN=BASELINE>&lt;LEFTPAREN&gt; <A HREF="#prod37">StringLiteral</A> &lt;EQ&gt; <A HREF="#prod37">StringLiteral</A> &lt;RIGHTPAREN&gt;</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000511</TR>
512<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700513<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod32">Properties</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000514<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700515<TD ALIGN=LEFT VALIGN=BASELINE>( &lt;LEFTPAREN&gt; <A HREF="#prod49">Property</A> ( &lt;COMMA&gt; <A HREF="#prod49">Property</A> )* &lt;RIGHTPAREN&gt; )?</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000516</TR>
517<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700518<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod49">Property</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000519<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700520<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod18">Identifier</A> &lt;EQ&gt; ( <A HREF="#prod37">StringLiteral</A> | &lt;INTEGER_LITERAL&gt; )</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000521</TR>
522<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700523<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod28">TypeExpr</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000524<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700525<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>
vinayakb38b7ca42012-03-05 05:44:15 +0000526</TR>
527<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700528<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod50">RecordTypeDef</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000529<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700530<TD ALIGN=LEFT VALIGN=BASELINE>( "closed" | "open" )? &lt;LEFTBRACE&gt; ( <A HREF="#prod54">RecordField</A> ( &lt;COMMA&gt; <A HREF="#prod54">RecordField</A> )* )? &lt;RIGHTBRACE&gt;</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000531</TR>
532<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700533<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod54">RecordField</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000534<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700535<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod18">Identifier</A> &lt;COLON&gt; <A HREF="#prod28">TypeExpr</A> ( &lt;QUES&gt; )?</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000536</TR>
537<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700538<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod51">TypeReference</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000539<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700540<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod18">Identifier</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000541</TR>
542<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700543<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod52">OrderedListTypeDef</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000544<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700545<TD ALIGN=LEFT VALIGN=BASELINE>&lt;LEFTBRACKET&gt; ( <A HREF="#prod28">TypeExpr</A> ) &lt;RIGHTBRACKET&gt;</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000546</TR>
547<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700548<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod53">UnorderedListTypeDef</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000549<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700550<TD ALIGN=LEFT VALIGN=BASELINE>&lt;LEFTDBLBRACE&gt; ( <A HREF="#prod28">TypeExpr</A> ) &lt;RIGHTDBLBRACE&gt;</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000551</TR>
552<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700553<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod38">FunctionName</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000554<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700555<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod18">Identifier</A> ( &lt;DOT&gt; <A HREF="#prod18">Identifier</A> ( "#" <A HREF="#prod18">Identifier</A> )? | "#" <A HREF="#prod18">Identifier</A> )?</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000556</TR>
557<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700558<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod26">TypeName</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000559<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700560<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod29">QualifiedName</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000561</TR>
562<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700563<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod18">Identifier</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000564<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
565<TD ALIGN=LEFT VALIGN=BASELINE>&lt;IDENTIFIER&gt;</TD>
566</TR>
567<TR>
buyingyi2fd7fa62014-11-24 19:31:55 -0800568<TD ALIGN=RIGHT VALIGN=BASELINE></TD>
569<TD ALIGN=CENTER VALIGN=BASELINE>|</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700570<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod37">StringLiteral</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000571</TR>
572<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700573<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod37">StringLiteral</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000574<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800575<TD ALIGN=LEFT VALIGN=BASELINE>&lt;STRING_LITERAL&gt;</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000576</TR>
577<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700578<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod29">QualifiedName</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000579<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700580<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod18">Identifier</A> ( &lt;DOT&gt; <A HREF="#prod18">Identifier</A> )?</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000581</TR>
582<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700583<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod45">DoubleQualifiedName</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000584<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700585<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod18">Identifier</A> &lt;DOT&gt; <A HREF="#prod18">Identifier</A> ( &lt;DOT&gt; <A HREF="#prod18">Identifier</A> )?</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000586</TR>
587<TR>
buyingyi2fd7fa62014-11-24 19:31:55 -0800588<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod4">FunctionDeclaration</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000589<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700590<TD ALIGN=LEFT VALIGN=BASELINE>"declare" "function" <A HREF="#prod18">Identifier</A> <A HREF="#prod39">ParameterList</A> &lt;LEFTBRACE&gt; <A HREF="#prod40">Expression</A> &lt;RIGHTBRACE&gt;</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000591</TR>
592<TR>
buyingyi2fd7fa62014-11-24 19:31:55 -0800593<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod15">Query</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000594<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700595<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod40">Expression</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000596</TR>
597<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700598<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod40">Expression</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000599<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700600<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>
vinayakb38b7ca42012-03-05 05:44:15 +0000601</TR>
602<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700603<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod55">OperatorExpr</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000604<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700605<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod59">AndExpr</A> ( &lt;OR&gt; <A HREF="#prod59">AndExpr</A> )*</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000606</TR>
607<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700608<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod59">AndExpr</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000609<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700610<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod60">RelExpr</A> ( &lt;AND&gt; <A HREF="#prod60">RelExpr</A> )*</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000611</TR>
612<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700613<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod60">RelExpr</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000614<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700615<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod61">AddExpr</A> ( ( &lt;LT&gt; | &lt;GT&gt; | &lt;LE&gt; | &lt;GE&gt; | &lt;EQ&gt; | &lt;NE&gt; | &lt;SIMILAR&gt; ) <A HREF="#prod61">AddExpr</A> )?</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000616</TR>
617<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700618<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod61">AddExpr</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000619<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700620<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod62">MultExpr</A> ( ( &lt;PLUS&gt; | &lt;MINUS&gt; ) <A HREF="#prod62">MultExpr</A> )*</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000621</TR>
622<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700623<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod62">MultExpr</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000624<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700625<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod63">UnionExpr</A> ( ( &lt;MUL&gt; | &lt;DIV&gt; | &lt;MOD&gt; | &lt;CARET&gt; | &lt;IDIV&gt; ) <A HREF="#prod63">UnionExpr</A> )*</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000626</TR>
627<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700628<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod63">UnionExpr</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000629<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700630<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod64">UnaryExpr</A> ( &lt;UNION&gt; ( <A HREF="#prod64">UnaryExpr</A> ) )*</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000631</TR>
632<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700633<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod64">UnaryExpr</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000634<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700635<TD ALIGN=LEFT VALIGN=BASELINE>( ( &lt;PLUS&gt; | &lt;MINUS&gt; ) )? <A HREF="#prod65">ValueExpr</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000636</TR>
637<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700638<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod65">ValueExpr</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000639<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700640<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod66">PrimaryExpr</A> ( <A HREF="#prod67">Field</A> | <A HREF="#prod68">Index</A> )*</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000641</TR>
642<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700643<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod67">Field</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000644<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700645<TD ALIGN=LEFT VALIGN=BASELINE>&lt;DOT&gt; <A HREF="#prod18">Identifier</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000646</TR>
647<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700648<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod68">Index</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000649<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700650<TD ALIGN=LEFT VALIGN=BASELINE>&lt;LEFTBRACKET&gt; ( <A HREF="#prod40">Expression</A> | &lt;QUES&gt; ) &lt;RIGHTBRACKET&gt;</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000651</TR>
652<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700653<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod66">PrimaryExpr</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000654<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700655<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>
vinayakb38b7ca42012-03-05 05:44:15 +0000656</TR>
657<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700658<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod70">Literal</A></TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800659<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700660<TD ALIGN=LEFT VALIGN=BASELINE>( <A HREF="#prod37">StringLiteral</A> | &lt;INTEGER_LITERAL&gt; | &lt;FLOAT_LITERAL&gt; | &lt;DOUBLE_LITERAL&gt; | &lt;NULL&gt; | &lt;TRUE&gt; | &lt;FALSE&gt; )</TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800661</TR>
662<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700663<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod72">VariableRef</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000664<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
665<TD ALIGN=LEFT VALIGN=BASELINE>&lt;VARIABLE&gt;</TD>
666</TR>
667<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700668<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod46">Variable</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000669<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
670<TD ALIGN=LEFT VALIGN=BASELINE>&lt;VARIABLE&gt;</TD>
671</TR>
672<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700673<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod73">ListConstructor</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000674<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700675<TD ALIGN=LEFT VALIGN=BASELINE>( <A HREF="#prod76">OrderedListConstructor</A> | <A HREF="#prod77">UnorderedListConstructor</A> )</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000676</TR>
677<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700678<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod76">OrderedListConstructor</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000679<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700680<TD ALIGN=LEFT VALIGN=BASELINE>&lt;LEFTBRACKET&gt; ( <A HREF="#prod40">Expression</A> ( &lt;COMMA&gt; <A HREF="#prod40">Expression</A> )* )? &lt;RIGHTBRACKET&gt;</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000681</TR>
682<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700683<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod77">UnorderedListConstructor</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000684<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700685<TD ALIGN=LEFT VALIGN=BASELINE>&lt;LEFTDBLBRACE&gt; ( <A HREF="#prod40">Expression</A> ( &lt;COMMA&gt; <A HREF="#prod40">Expression</A> )* )? &lt;RIGHTDBLBRACE&gt;</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000686</TR>
687<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700688<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod74">RecordConstructor</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000689<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700690<TD ALIGN=LEFT VALIGN=BASELINE>&lt;LEFTBRACE&gt; ( <A HREF="#prod78">FieldBinding</A> ( &lt;COMMA&gt; <A HREF="#prod78">FieldBinding</A> )* )? &lt;RIGHTBRACE&gt;</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000691</TR>
692<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700693<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod78">FieldBinding</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000694<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700695<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod40">Expression</A> &lt;COLON&gt; <A HREF="#prod40">Expression</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000696</TR>
697<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700698<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod69">FunctionCallExpr</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000699<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700700<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod38">FunctionName</A> &lt;LEFTPAREN&gt; ( <A HREF="#prod40">Expression</A> ( &lt;COMMA&gt; <A HREF="#prod40">Expression</A> )* )? &lt;RIGHTPAREN&gt;</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000701</TR>
702<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700703<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod71">DatasetAccessExpression</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000704<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700705<TD ALIGN=LEFT VALIGN=BASELINE>&lt;DATASET&gt; ( ( <A HREF="#prod18">Identifier</A> ( &lt;DOT&gt; <A HREF="#prod18">Identifier</A> )? ) | ( &lt;LEFTPAREN&gt; <A HREF="#prod40">Expression</A> &lt;RIGHTPAREN&gt; ) )</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000706</TR>
707<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700708<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod75">ParenthesizedExpression</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000709<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700710<TD ALIGN=LEFT VALIGN=BASELINE>&lt;LEFTPAREN&gt; <A HREF="#prod40">Expression</A> &lt;RIGHTPAREN&gt;</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000711</TR>
712<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700713<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod56">IfThenElse</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000714<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700715<TD ALIGN=LEFT VALIGN=BASELINE>&lt;IF&gt; &lt;LEFTPAREN&gt; <A HREF="#prod40">Expression</A> &lt;RIGHTPAREN&gt; &lt;THEN&gt; <A HREF="#prod40">Expression</A> &lt;ELSE&gt; <A HREF="#prod40">Expression</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000716</TR>
717<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700718<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod57">FLWOGR</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000719<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700720<TD ALIGN=LEFT VALIGN=BASELINE>( <A HREF="#prod79">ForClause</A> | <A HREF="#prod80">LetClause</A> ) ( <A HREF="#prod81">Clause</A> )* ( &lt;RETURN&gt; | &lt;SELECT&gt; ) <A HREF="#prod40">Expression</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000721</TR>
722<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700723<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod81">Clause</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000724<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700725<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>
vinayakb38b7ca42012-03-05 05:44:15 +0000726</TR>
727<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700728<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod79">ForClause</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000729<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700730<TD ALIGN=LEFT VALIGN=BASELINE>( &lt;FOR&gt; | &lt;FROM&gt; ) <A HREF="#prod46">Variable</A> ( &lt;AT&gt; <A HREF="#prod46">Variable</A> )? &lt;IN&gt; ( <A HREF="#prod40">Expression</A> )</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000731</TR>
732<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700733<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod80">LetClause</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000734<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700735<TD ALIGN=LEFT VALIGN=BASELINE>( &lt;LET&gt; | &lt;WITH&gt; ) <A HREF="#prod46">Variable</A> &lt;ASSIGN&gt; <A HREF="#prod40">Expression</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000736</TR>
737<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700738<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod82">WhereClause</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000739<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700740<TD ALIGN=LEFT VALIGN=BASELINE>&lt;WHERE&gt; <A HREF="#prod40">Expression</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000741</TR>
742<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700743<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod83">OrderbyClause</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000744<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700745<TD ALIGN=LEFT VALIGN=BASELINE>( &lt;ORDER&gt; &lt;BY&gt; <A HREF="#prod40">Expression</A> ( ( &lt;ASC&gt; ) | ( &lt;DESC&gt; ) )? ( &lt;COMMA&gt; <A HREF="#prod40">Expression</A> ( ( &lt;ASC&gt; ) | ( &lt;DESC&gt; ) )? )* )</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000746</TR>
747<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700748<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod84">GroupClause</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000749<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700750<TD ALIGN=LEFT VALIGN=BASELINE>&lt;GROUP&gt; &lt;BY&gt; ( <A HREF="#prod46">Variable</A> &lt;ASSIGN&gt; )? <A HREF="#prod40">Expression</A> ( &lt;COMMA&gt; ( <A HREF="#prod46">Variable</A> &lt;ASSIGN&gt; )? <A HREF="#prod40">Expression</A> )* ( &lt;DECOR&gt; <A HREF="#prod46">Variable</A> &lt;ASSIGN&gt; <A HREF="#prod40">Expression</A> ( &lt;COMMA&gt; &lt;DECOR&gt; <A HREF="#prod46">Variable</A> &lt;ASSIGN&gt; <A HREF="#prod40">Expression</A> )* )? ( &lt;WITH&gt; | &lt;KEEPING&gt; ) <A HREF="#prod72">VariableRef</A> ( &lt;COMMA&gt; <A HREF="#prod72">VariableRef</A> )*</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000751</TR>
752<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700753<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod85">LimitClause</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000754<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700755<TD ALIGN=LEFT VALIGN=BASELINE>&lt;LIMIT&gt; <A HREF="#prod40">Expression</A> ( &lt;OFFSET&gt; <A HREF="#prod40">Expression</A> )?</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000756</TR>
757<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700758<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod86">DistinctClause</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000759<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700760<TD ALIGN=LEFT VALIGN=BASELINE>&lt;DISTINCT&gt; &lt;BY&gt; <A HREF="#prod40">Expression</A> ( &lt;COMMA&gt; <A HREF="#prod40">Expression</A> )*</TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800761</TR>
762<TR>
buyingyiccd67fe2015-05-19 11:53:39 -0700763<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod58">QuantifiedExpression</A></TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800764<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyiccd67fe2015-05-19 11:53:39 -0700765<TD ALIGN=LEFT VALIGN=BASELINE>( ( &lt;SOME&gt; ) | ( &lt;EVERY&gt; ) ) <A HREF="#prod46">Variable</A> &lt;IN&gt; <A HREF="#prod40">Expression</A> ( &lt;COMMA&gt; <A HREF="#prod46">Variable</A> &lt;IN&gt; <A HREF="#prod40">Expression</A> )* &lt;SATISFIES&gt; <A HREF="#prod40">Expression</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000766</TR>
767</TABLE>
768</BODY>
769</HTML>