blob: 994b1c77f2e8304c7e89e2d196f733ef10057344 [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;
41}
42
43 </PRE>
44 </TD>
45 </TR>
46 <!-- Token -->
47 <TR>
48 <TD>
49 <PRE>
50&lt;DEFAULT,IN_DBL_BRACE&gt; TOKEN : {
vinayakb38b7ca42012-03-05 05:44:15 +000051&lt;CARET: "^"&gt;
buyingyi2fd7fa62014-11-24 19:31:55 -080052| &lt;DIV: "/"&gt;
53| &lt;IDIV: "idiv"&gt;
54| &lt;MINUS: "-"&gt;
55| &lt;MOD: "%"&gt;
56| &lt;MUL: "*"&gt;
57| &lt;PLUS: "+"&gt;
58| &lt;LEFTPAREN: "("&gt;
59| &lt;RIGHTPAREN: ")"&gt;
60| &lt;LEFTBRACKET: "["&gt;
61| &lt;RIGHTBRACKET: "]"&gt;
62| &lt;COLON: ":"&gt;
63| &lt;COMMA: ","&gt;
64| &lt;DOT: "."&gt;
65| &lt;QUES: "?"&gt;
66| &lt;LT: "&lt;"&gt;
67| &lt;GT: "&gt;"&gt;
68| &lt;LE: "&lt;="&gt;
69| &lt;GE: "&gt;="&gt;
70| &lt;EQ: "="&gt;
71| &lt;NE: "!="&gt;
72| &lt;SIMILAR: "~="&gt;
73| &lt;ASSIGN: ":="&gt;
74| &lt;AND: "and"&gt;
75| &lt;OR: "or"&gt;
76}
77
78 </PRE>
79 </TD>
80 </TR>
81 <!-- Token -->
82 <TR>
83 <TD>
84 <PRE>
85&lt;DEFAULT,IN_DBL_BRACE&gt; TOKEN : {
86&lt;LEFTBRACE: "{"&gt; : DEFAULT
vinayakb38b7ca42012-03-05 05:44:15 +000087}
88
89 </PRE>
90 </TD>
91 </TR>
92 <!-- Token -->
93 <TR>
94 <TD>
95 <PRE>
96&lt;DEFAULT&gt; TOKEN : {
buyingyi2fd7fa62014-11-24 19:31:55 -080097&lt;RIGHTBRACE: "}"&gt; : {
vinayakb38b7ca42012-03-05 05:44:15 +000098}
99
100 </PRE>
101 </TD>
102 </TR>
103 <!-- Token -->
104 <TR>
105 <TD>
106 <PRE>
buyingyi2fd7fa62014-11-24 19:31:55 -0800107&lt;DEFAULT,IN_DBL_BRACE&gt; TOKEN : {
108&lt;LEFTDBLBRACE: "{{"&gt; : IN_DBL_BRACE
vinayakb38b7ca42012-03-05 05:44:15 +0000109}
110
111 </PRE>
112 </TD>
113 </TR>
114 <!-- Token -->
115 <TR>
116 <TD>
117 <PRE>
buyingyi2fd7fa62014-11-24 19:31:55 -0800118&lt;IN_DBL_BRACE&gt; TOKEN : {
119&lt;RIGHTDBLBRACE: "}}"&gt; : {
vinayakb38b7ca42012-03-05 05:44:15 +0000120}
121
122 </PRE>
123 </TD>
124 </TR>
125 <!-- Token -->
126 <TR>
127 <TD>
128 <PRE>
buyingyi2fd7fa62014-11-24 19:31:55 -0800129&lt;DEFAULT,IN_DBL_BRACE&gt; TOKEN : {
vinayakb38b7ca42012-03-05 05:44:15 +0000130&lt;INTEGER_LITERAL: (&lt;DIGIT&gt;)+&gt;
131}
132
133 </PRE>
134 </TD>
135 </TR>
136 <!-- Token -->
137 <TR>
138 <TD>
139 <PRE>
buyingyi2fd7fa62014-11-24 19:31:55 -0800140&lt;DEFAULT,IN_DBL_BRACE&gt; TOKEN : {
vinayakb38b7ca42012-03-05 05:44:15 +0000141&lt;NULL: "null"&gt;
buyingyi2fd7fa62014-11-24 19:31:55 -0800142| &lt;TRUE: "true"&gt;
143| &lt;FALSE: "false"&gt;
vinayakb38b7ca42012-03-05 05:44:15 +0000144}
145
146 </PRE>
147 </TD>
148 </TR>
149 <!-- Token -->
150 <TR>
151 <TD>
152 <PRE>
buyingyi2fd7fa62014-11-24 19:31:55 -0800153&lt;DEFAULT,IN_DBL_BRACE&gt; TOKEN : {
vinayakb38b7ca42012-03-05 05:44:15 +0000154&lt;#DIGIT: ["0"-"9"]&gt;
155}
156
157 </PRE>
158 </TD>
159 </TR>
160 <!-- Token -->
161 <TR>
162 <TD>
163 <PRE>
buyingyi2fd7fa62014-11-24 19:31:55 -0800164&lt;DEFAULT,IN_DBL_BRACE&gt; TOKEN : {
165&lt;DOUBLE_LITERAL: &lt;DIGITS&gt; | &lt;DIGITS&gt; ("." &lt;DIGITS&gt;)? | "." &lt;DIGITS&gt;&gt;
166| &lt;FLOAT_LITERAL: &lt;DIGITS&gt; ("f" | "F") | &lt;DIGITS&gt; ("." &lt;DIGITS&gt; ("f" | "F"))? | "." &lt;DIGITS&gt; ("f" | "F")&gt;
167| &lt;DIGITS: (&lt;DIGIT&gt;)+&gt;
vinayakb38b7ca42012-03-05 05:44:15 +0000168}
169
170 </PRE>
171 </TD>
172 </TR>
173 <!-- Token -->
174 <TR>
175 <TD>
176 <PRE>
buyingyi2fd7fa62014-11-24 19:31:55 -0800177&lt;DEFAULT,IN_DBL_BRACE&gt; TOKEN : {
vinayakb38b7ca42012-03-05 05:44:15 +0000178&lt;#LETTER: ["A"-"Z","a"-"z"]&gt;
buyingyi2fd7fa62014-11-24 19:31:55 -0800179| &lt;SPECIALCHARS: ["$","_","-"]&gt;
vinayakb38b7ca42012-03-05 05:44:15 +0000180}
181
182 </PRE>
183 </TD>
184 </TR>
185 <!-- Token -->
186 <TR>
187 <TD>
188 <PRE>
buyingyi2fd7fa62014-11-24 19:31:55 -0800189&lt;DEFAULT,IN_DBL_BRACE&gt; TOKEN : {
190&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 +0000191| &lt;#EscapeQuot: "\\\""&gt;
192| &lt;#EscapeApos: "\\\'"&gt;
buyingyi2fd7fa62014-11-24 19:31:55 -0800193| &lt;#EscapeBslash: "\\\\"&gt;
194| &lt;#EscapeSlash: "\\/"&gt;
195| &lt;#EscapeBspace: "\\b"&gt;
196| &lt;#EscapeFormf: "\\f"&gt;
197| &lt;#EscapeNl: "\\n"&gt;
198| &lt;#EscapeCr: "\\r"&gt;
199| &lt;#EscapeTab: "\\t"&gt;
vinayakb38b7ca42012-03-05 05:44:15 +0000200}
201
202 </PRE>
203 </TD>
204 </TR>
205 <!-- Token -->
206 <TR>
207 <TD>
208 <PRE>
buyingyi2fd7fa62014-11-24 19:31:55 -0800209&lt;DEFAULT,IN_DBL_BRACE&gt; TOKEN : {
210&lt;IDENTIFIER: &lt;LETTER&gt; (&lt;LETTER&gt; | &lt;DIGIT&gt; | &lt;SPECIALCHARS&gt;)*&gt;
vinayakb38b7ca42012-03-05 05:44:15 +0000211}
212
213 </PRE>
214 </TD>
215 </TR>
216 <!-- Token -->
217 <TR>
218 <TD>
219 <PRE>
buyingyi2fd7fa62014-11-24 19:31:55 -0800220&lt;DEFAULT,IN_DBL_BRACE&gt; TOKEN : {
221&lt;VARIABLE: "$" &lt;LETTER&gt; (&lt;LETTER&gt; | &lt;DIGIT&gt; | "_")*&gt;
vinayakb38b7ca42012-03-05 05:44:15 +0000222}
223
224 </PRE>
225 </TD>
226 </TR>
227 <!-- Token -->
228 <TR>
229 <TD>
230 <PRE>
buyingyi2fd7fa62014-11-24 19:31:55 -0800231&lt;DEFAULT,IN_DBL_BRACE&gt; SKIP : {
vinayakb38b7ca42012-03-05 05:44:15 +0000232" "
233| "\t"
234| "\r"
235| "\n"
236}
237
238 </PRE>
239 </TD>
240 </TR>
241 <!-- Token -->
242 <TR>
243 <TD>
244 <PRE>
buyingyi2fd7fa62014-11-24 19:31:55 -0800245&lt;DEFAULT,IN_DBL_BRACE&gt; SKIP : {
vinayakb38b7ca42012-03-05 05:44:15 +0000246&lt;"//" (~["\n"])* "\n"&gt;
247}
248
249 </PRE>
250 </TD>
251 </TR>
252 <!-- Token -->
253 <TR>
254 <TD>
255 <PRE>
buyingyi2fd7fa62014-11-24 19:31:55 -0800256&lt;DEFAULT,IN_DBL_BRACE&gt; SKIP : {
vinayakb38b7ca42012-03-05 05:44:15 +0000257&lt;"//" (~["\n","\r"])* ("\n" | "\r" | "\r\n")?&gt;
258}
259
260 </PRE>
261 </TD>
262 </TR>
263 <!-- Token -->
264 <TR>
265 <TD>
266 <PRE>
buyingyi2fd7fa62014-11-24 19:31:55 -0800267&lt;DEFAULT,IN_DBL_BRACE&gt; SKIP : {
vinayakb38b7ca42012-03-05 05:44:15 +0000268"/*" : INSIDE_COMMENT
269}
270
271 </PRE>
272 </TD>
273 </TR>
274 <!-- Token -->
275 <TR>
276 <TD>
277 <PRE>
278&lt;INSIDE_COMMENT&gt; SPECIAL : {
279&lt;"+" (" ")* (~["*"])*&gt;
280}
281
282 </PRE>
283 </TD>
284 </TR>
285 <!-- Token -->
286 <TR>
287 <TD>
288 <PRE>
289&lt;INSIDE_COMMENT&gt; SKIP : {
290"/*" : {
291}
292
293 </PRE>
294 </TD>
295 </TR>
296 <!-- Token -->
297 <TR>
298 <TD>
299 <PRE>
300&lt;INSIDE_COMMENT&gt; SKIP : {
301"*/" : {
302| &lt;~[]&gt;
303}
304
305 </PRE>
306 </TD>
307 </TR>
308</TABLE>
309<H2 ALIGN=CENTER>NON-TERMINALS</H2>
310<TABLE>
311<TR>
312<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod1">Statement</A></TD>
313<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800314<TD ALIGN=LEFT VALIGN=BASELINE>( <A HREF="#prod2">SingleStatement</A> ( ";" )? )* &lt;EOF&gt;</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000315</TR>
316<TR>
buyingyi2fd7fa62014-11-24 19:31:55 -0800317<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod2">SingleStatement</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000318<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800319<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> )</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000320</TR>
321<TR>
buyingyi2fd7fa62014-11-24 19:31:55 -0800322<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod3">DataverseDeclaration</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000323<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800324<TD ALIGN=LEFT VALIGN=BASELINE>"use" "dataverse" <A HREF="#prod17">Identifier</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000325</TR>
326<TR>
buyingyi2fd7fa62014-11-24 19:31:55 -0800327<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod5">CreateStatement</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000328<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800329<TD ALIGN=LEFT VALIGN=BASELINE>"create" ( <A HREF="#prod18">TypeSpecification</A> | <A HREF="#prod19">NodegroupSpecification</A> | <A HREF="#prod20">DatasetSpecification</A> | <A HREF="#prod21">IndexSpecification</A> | <A HREF="#prod22">DataverseSpecification</A> | <A HREF="#prod23">FunctionSpecification</A> | <A HREF="#prod24">FeedSpecification</A> )</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000330</TR>
331<TR>
buyingyi2fd7fa62014-11-24 19:31:55 -0800332<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod18">TypeSpecification</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000333<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800334<TD ALIGN=LEFT VALIGN=BASELINE>"type" <A HREF="#prod25">TypeName</A> <A HREF="#prod26">IfNotExists</A> "as" <A HREF="#prod27">TypeExpr</A></TD>
335</TR>
336<TR>
337<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod19">NodegroupSpecification</A></TD>
338<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
339<TD ALIGN=LEFT VALIGN=BASELINE>"nodegroup" <A HREF="#prod17">Identifier</A> <A HREF="#prod26">IfNotExists</A> "on" <A HREF="#prod17">Identifier</A> ( &lt;COMMA&gt; <A HREF="#prod17">Identifier</A> )*</TD>
340</TR>
341<TR>
342<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod20">DatasetSpecification</A></TD>
343<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
344<TD ALIGN=LEFT VALIGN=BASELINE>( "external" &lt;DATASET&gt; <A HREF="#prod28">QualifiedName</A> &lt;LEFTPAREN&gt; <A HREF="#prod17">Identifier</A> &lt;RIGHTPAREN&gt; <A HREF="#prod26">IfNotExists</A> "using" <A HREF="#prod29">AdapterName</A> <A HREF="#prod30">Configuration</A> ( "on" <A HREF="#prod17">Identifier</A> )? ( "hints" <A HREF="#prod31">Properties</A> )? ( "using" "compaction" "policy" <A HREF="#prod32">CompactionPolicy</A> ( <A HREF="#prod30">Configuration</A> )? )? | ( "internal" )? &lt;DATASET&gt; <A HREF="#prod28">QualifiedName</A> &lt;LEFTPAREN&gt; <A HREF="#prod17">Identifier</A> &lt;RIGHTPAREN&gt; <A HREF="#prod26">IfNotExists</A> <A HREF="#prod33">PrimaryKey</A> ( "autogenerated" )? ( "on" <A HREF="#prod17">Identifier</A> )? ( "hints" <A HREF="#prod31">Properties</A> )? ( "using" "compaction" "policy" <A HREF="#prod32">CompactionPolicy</A> ( <A HREF="#prod30">Configuration</A> )? )? ( "with filter on" <A HREF="#prod34">FilterField</A> )? )</TD>
345</TR>
346<TR>
347<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod16">RefreshExternalDatasetStatement</A></TD>
348<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
349<TD ALIGN=LEFT VALIGN=BASELINE>"refresh external" &lt;DATASET&gt; <A HREF="#prod28">QualifiedName</A></TD>
350</TR>
351<TR>
352<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod21">IndexSpecification</A></TD>
353<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
354<TD ALIGN=LEFT VALIGN=BASELINE>"index" <A HREF="#prod17">Identifier</A> <A HREF="#prod26">IfNotExists</A> "on" <A HREF="#prod28">QualifiedName</A> &lt;LEFTPAREN&gt; ( <A HREF="#prod17">Identifier</A> ) ( &lt;COMMA&gt; <A HREF="#prod17">Identifier</A> )* &lt;RIGHTPAREN&gt; ( "type" <A HREF="#prod35">IndexType</A> )?</TD>
355</TR>
356<TR>
357<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod32">CompactionPolicy</A></TD>
358<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
359<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod17">Identifier</A></TD>
360</TR>
361<TR>
362<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod34">FilterField</A></TD>
363<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
364<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod17">Identifier</A></TD>
365</TR>
366<TR>
367<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod35">IndexType</A></TD>
368<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
369<TD ALIGN=LEFT VALIGN=BASELINE>( "btree" | "rtree" | "keyword" | "ngram" &lt;LEFTPAREN&gt; &lt;INTEGER_LITERAL&gt; &lt;RIGHTPAREN&gt; )</TD>
370</TR>
371<TR>
372<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod22">DataverseSpecification</A></TD>
373<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
374<TD ALIGN=LEFT VALIGN=BASELINE>"dataverse" <A HREF="#prod17">Identifier</A> <A HREF="#prod26">IfNotExists</A> ( "with format" <A HREF="#prod36">StringLiteral</A> )?</TD>
375</TR>
376<TR>
377<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod23">FunctionSpecification</A></TD>
378<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
379<TD ALIGN=LEFT VALIGN=BASELINE>"function" <A HREF="#prod37">FunctionName</A> <A HREF="#prod26">IfNotExists</A> <A HREF="#prod38">ParameterList</A> &lt;LEFTBRACE&gt; <A HREF="#prod39">Expression</A> &lt;RIGHTBRACE&gt;</TD>
380</TR>
381<TR>
382<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod24">FeedSpecification</A></TD>
383<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
384<TD ALIGN=LEFT VALIGN=BASELINE>( "feed" <A HREF="#prod28">QualifiedName</A> <A HREF="#prod26">IfNotExists</A> "using" <A HREF="#prod29">AdapterName</A> <A HREF="#prod30">Configuration</A> ( <A HREF="#prod40">ApplyFunction</A> )? )</TD>
385</TR>
386<TR>
387<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod38">ParameterList</A></TD>
388<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
389<TD ALIGN=LEFT VALIGN=BASELINE>&lt;LEFTPAREN&gt; ( &lt;VARIABLE&gt; ( &lt;COMMA&gt; &lt;VARIABLE&gt; )* )? &lt;RIGHTPAREN&gt;</TD>
390</TR>
391<TR>
392<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod26">IfNotExists</A></TD>
393<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
394<TD ALIGN=LEFT VALIGN=BASELINE>( "if not exists" )?</TD>
395</TR>
396<TR>
397<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod40">ApplyFunction</A></TD>
398<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
399<TD ALIGN=LEFT VALIGN=BASELINE>"apply" "function" <A HREF="#prod37">FunctionName</A></TD>
400</TR>
401<TR>
402<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod41">GetPolicy</A></TD>
403<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
404<TD ALIGN=LEFT VALIGN=BASELINE>"using" "policy" <A HREF="#prod17">Identifier</A></TD>
405</TR>
406<TR>
407<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod42">FunctionSignature</A></TD>
408<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
409<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod37">FunctionName</A> "@" &lt;INTEGER_LITERAL&gt;</TD>
410</TR>
411<TR>
412<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod33">PrimaryKey</A></TD>
413<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
414<TD ALIGN=LEFT VALIGN=BASELINE>"primary" "key" <A HREF="#prod17">Identifier</A> ( &lt;COMMA&gt; <A HREF="#prod17">Identifier</A> )*</TD>
415</TR>
416<TR>
417<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod7">DropStatement</A></TD>
418<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
419<TD ALIGN=LEFT VALIGN=BASELINE>"drop" ( &lt;DATASET&gt; <A HREF="#prod28">QualifiedName</A> <A HREF="#prod43">IfExists</A> | "index" <A HREF="#prod44">DoubleQualifiedName</A> <A HREF="#prod43">IfExists</A> | "nodegroup" <A HREF="#prod17">Identifier</A> <A HREF="#prod43">IfExists</A> | "type" <A HREF="#prod25">TypeName</A> <A HREF="#prod43">IfExists</A> | "dataverse" <A HREF="#prod17">Identifier</A> <A HREF="#prod43">IfExists</A> | "function" <A HREF="#prod42">FunctionSignature</A> <A HREF="#prod43">IfExists</A> | "feed" <A HREF="#prod28">QualifiedName</A> <A HREF="#prod43">IfExists</A> )</TD>
420</TR>
421<TR>
422<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod43">IfExists</A></TD>
423<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
424<TD ALIGN=LEFT VALIGN=BASELINE>( &lt;IF&gt; "exists" )?</TD>
425</TR>
426<TR>
427<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod10">InsertStatement</A></TD>
428<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
429<TD ALIGN=LEFT VALIGN=BASELINE>"insert" "into" &lt;DATASET&gt; <A HREF="#prod28">QualifiedName</A> <A HREF="#prod15">Query</A></TD>
430</TR>
431<TR>
432<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod11">DeleteStatement</A></TD>
433<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
434<TD ALIGN=LEFT VALIGN=BASELINE>"delete" <A HREF="#prod45">Variable</A> &lt;FROM&gt; &lt;DATASET&gt; <A HREF="#prod28">QualifiedName</A> ( &lt;WHERE&gt; <A HREF="#prod39">Expression</A> )?</TD>
435</TR>
436<TR>
437<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod12">UpdateStatement</A></TD>
438<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
439<TD ALIGN=LEFT VALIGN=BASELINE>"update" <A HREF="#prod45">Variable</A> &lt;IN&gt; <A HREF="#prod39">Expression</A> &lt;WHERE&gt; <A HREF="#prod39">Expression</A> &lt;LEFTPAREN&gt; ( <A HREF="#prod46">UpdateClause</A> ( &lt;COMMA&gt; <A HREF="#prod46">UpdateClause</A> )* ) &lt;RIGHTPAREN&gt;</TD>
440</TR>
441<TR>
442<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod46">UpdateClause</A></TD>
443<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
444<TD ALIGN=LEFT VALIGN=BASELINE>"set" <A HREF="#prod39">Expression</A> &lt;ASSIGN&gt; <A HREF="#prod39">Expression</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000445</TR>
446<TR>
447<TD ALIGN=RIGHT VALIGN=BASELINE></TD>
448<TD ALIGN=CENTER VALIGN=BASELINE>|</TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800449<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod10">InsertStatement</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000450</TR>
451<TR>
452<TD ALIGN=RIGHT VALIGN=BASELINE></TD>
453<TD ALIGN=CENTER VALIGN=BASELINE>|</TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800454<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod11">DeleteStatement</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000455</TR>
456<TR>
457<TD ALIGN=RIGHT VALIGN=BASELINE></TD>
458<TD ALIGN=CENTER VALIGN=BASELINE>|</TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800459<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod12">UpdateStatement</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000460</TR>
461<TR>
462<TD ALIGN=RIGHT VALIGN=BASELINE></TD>
463<TD ALIGN=CENTER VALIGN=BASELINE>|</TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800464<TD ALIGN=LEFT VALIGN=BASELINE>&lt;IF&gt; &lt;LEFTPAREN&gt; <A HREF="#prod39">Expression</A> &lt;RIGHTPAREN&gt; &lt;THEN&gt; <A HREF="#prod46">UpdateClause</A> ( &lt;ELSE&gt; <A HREF="#prod46">UpdateClause</A> )?</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000465</TR>
466<TR>
467<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod9">SetStatement</A></TD>
468<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800469<TD ALIGN=LEFT VALIGN=BASELINE>"set" <A HREF="#prod17">Identifier</A> <A HREF="#prod36">StringLiteral</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000470</TR>
471<TR>
buyingyi2fd7fa62014-11-24 19:31:55 -0800472<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod8">WriteStatement</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000473<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800474<TD ALIGN=LEFT VALIGN=BASELINE>"write" "output" "to" <A HREF="#prod17">Identifier</A> &lt;COLON&gt; <A HREF="#prod36">StringLiteral</A> ( "using" <A HREF="#prod36">StringLiteral</A> )?</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000475</TR>
476<TR>
buyingyi2fd7fa62014-11-24 19:31:55 -0800477<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod6">LoadStatement</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000478<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800479<TD ALIGN=LEFT VALIGN=BASELINE>"load" &lt;DATASET&gt; <A HREF="#prod28">QualifiedName</A> "using" <A HREF="#prod29">AdapterName</A> <A HREF="#prod30">Configuration</A> ( "pre-sorted" )?</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000480</TR>
481<TR>
buyingyi2fd7fa62014-11-24 19:31:55 -0800482<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod29">AdapterName</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000483<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800484<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod17">Identifier</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000485</TR>
486<TR>
buyingyi2fd7fa62014-11-24 19:31:55 -0800487<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod14">CompactStatement</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000488<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800489<TD ALIGN=LEFT VALIGN=BASELINE>"compact" &lt;DATASET&gt; <A HREF="#prod28">QualifiedName</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000490</TR>
491<TR>
buyingyi2fd7fa62014-11-24 19:31:55 -0800492<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod13">FeedStatement</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000493<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800494<TD ALIGN=LEFT VALIGN=BASELINE>( "connect" "feed" <A HREF="#prod28">QualifiedName</A> "to" &lt;DATASET&gt; <A HREF="#prod28">QualifiedName</A> ( <A HREF="#prod41">GetPolicy</A> )? | "disconnect" "feed" <A HREF="#prod28">QualifiedName</A> &lt;FROM&gt; &lt;DATASET&gt; <A HREF="#prod28">QualifiedName</A> )</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000495</TR>
496<TR>
buyingyi2fd7fa62014-11-24 19:31:55 -0800497<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod30">Configuration</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000498<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800499<TD ALIGN=LEFT VALIGN=BASELINE>&lt;LEFTPAREN&gt; ( <A HREF="#prod47">KeyValuePair</A> ( &lt;COMMA&gt; <A HREF="#prod47">KeyValuePair</A> )* )? &lt;RIGHTPAREN&gt;</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000500</TR>
501<TR>
buyingyi2fd7fa62014-11-24 19:31:55 -0800502<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod47">KeyValuePair</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000503<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800504<TD ALIGN=LEFT VALIGN=BASELINE>&lt;LEFTPAREN&gt; <A HREF="#prod36">StringLiteral</A> &lt;EQ&gt; <A HREF="#prod36">StringLiteral</A> &lt;RIGHTPAREN&gt;</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000505</TR>
506<TR>
buyingyi2fd7fa62014-11-24 19:31:55 -0800507<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod31">Properties</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000508<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800509<TD ALIGN=LEFT VALIGN=BASELINE>( &lt;LEFTPAREN&gt; <A HREF="#prod48">Property</A> ( &lt;COMMA&gt; <A HREF="#prod48">Property</A> )* &lt;RIGHTPAREN&gt; )?</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000510</TR>
511<TR>
buyingyi2fd7fa62014-11-24 19:31:55 -0800512<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod48">Property</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000513<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800514<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod17">Identifier</A> &lt;EQ&gt; ( <A HREF="#prod36">StringLiteral</A> | &lt;INTEGER_LITERAL&gt; )</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000515</TR>
516<TR>
buyingyi2fd7fa62014-11-24 19:31:55 -0800517<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod27">TypeExpr</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000518<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800519<TD ALIGN=LEFT VALIGN=BASELINE>( <A HREF="#prod49">RecordTypeDef</A> | <A HREF="#prod50">TypeReference</A> | <A HREF="#prod51">OrderedListTypeDef</A> | <A HREF="#prod52">UnorderedListTypeDef</A> )</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000520</TR>
521<TR>
buyingyi2fd7fa62014-11-24 19:31:55 -0800522<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod49">RecordTypeDef</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000523<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800524<TD ALIGN=LEFT VALIGN=BASELINE>( "closed" | "open" )? &lt;LEFTBRACE&gt; ( <A HREF="#prod53">RecordField</A> ( &lt;COMMA&gt; <A HREF="#prod53">RecordField</A> )* )? &lt;RIGHTBRACE&gt;</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000525</TR>
526<TR>
buyingyi2fd7fa62014-11-24 19:31:55 -0800527<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod53">RecordField</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000528<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800529<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod17">Identifier</A> &lt;COLON&gt; <A HREF="#prod27">TypeExpr</A> ( &lt;QUES&gt; )?</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000530</TR>
531<TR>
buyingyi2fd7fa62014-11-24 19:31:55 -0800532<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod50">TypeReference</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000533<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800534<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod17">Identifier</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000535</TR>
536<TR>
buyingyi2fd7fa62014-11-24 19:31:55 -0800537<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod51">OrderedListTypeDef</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000538<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800539<TD ALIGN=LEFT VALIGN=BASELINE>&lt;LEFTBRACKET&gt; ( <A HREF="#prod27">TypeExpr</A> ) &lt;RIGHTBRACKET&gt;</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000540</TR>
541<TR>
buyingyi2fd7fa62014-11-24 19:31:55 -0800542<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod52">UnorderedListTypeDef</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000543<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800544<TD ALIGN=LEFT VALIGN=BASELINE>&lt;LEFTDBLBRACE&gt; ( <A HREF="#prod27">TypeExpr</A> ) &lt;RIGHTDBLBRACE&gt;</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000545</TR>
546<TR>
buyingyi2fd7fa62014-11-24 19:31:55 -0800547<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod37">FunctionName</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000548<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800549<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod17">Identifier</A> ( &lt;DOT&gt; <A HREF="#prod17">Identifier</A> ( "#" <A HREF="#prod17">Identifier</A> )? | "#" <A HREF="#prod17">Identifier</A> )?</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000550</TR>
551<TR>
buyingyi2fd7fa62014-11-24 19:31:55 -0800552<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod25">TypeName</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000553<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800554<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod28">QualifiedName</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000555</TR>
556<TR>
buyingyi2fd7fa62014-11-24 19:31:55 -0800557<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod17">Identifier</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000558<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
559<TD ALIGN=LEFT VALIGN=BASELINE>&lt;IDENTIFIER&gt;</TD>
560</TR>
561<TR>
buyingyi2fd7fa62014-11-24 19:31:55 -0800562<TD ALIGN=RIGHT VALIGN=BASELINE></TD>
563<TD ALIGN=CENTER VALIGN=BASELINE>|</TD>
564<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod36">StringLiteral</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000565</TR>
566<TR>
buyingyi2fd7fa62014-11-24 19:31:55 -0800567<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod36">StringLiteral</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000568<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800569<TD ALIGN=LEFT VALIGN=BASELINE>&lt;STRING_LITERAL&gt;</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000570</TR>
571<TR>
buyingyi2fd7fa62014-11-24 19:31:55 -0800572<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod28">QualifiedName</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000573<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800574<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod17">Identifier</A> ( &lt;DOT&gt; <A HREF="#prod17">Identifier</A> )?</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000575</TR>
576<TR>
buyingyi2fd7fa62014-11-24 19:31:55 -0800577<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod44">DoubleQualifiedName</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000578<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800579<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod17">Identifier</A> &lt;DOT&gt; <A HREF="#prod17">Identifier</A> ( &lt;DOT&gt; <A HREF="#prod17">Identifier</A> )?</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000580</TR>
581<TR>
buyingyi2fd7fa62014-11-24 19:31:55 -0800582<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod4">FunctionDeclaration</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000583<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800584<TD ALIGN=LEFT VALIGN=BASELINE>"declare" "function" <A HREF="#prod17">Identifier</A> <A HREF="#prod38">ParameterList</A> &lt;LEFTBRACE&gt; <A HREF="#prod39">Expression</A> &lt;RIGHTBRACE&gt;</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000585</TR>
586<TR>
buyingyi2fd7fa62014-11-24 19:31:55 -0800587<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod15">Query</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000588<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800589<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod39">Expression</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000590</TR>
591<TR>
buyingyi2fd7fa62014-11-24 19:31:55 -0800592<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod39">Expression</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000593<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800594<TD ALIGN=LEFT VALIGN=BASELINE>( <A HREF="#prod54">OperatorExpr</A> | <A HREF="#prod55">IfThenElse</A> | <A HREF="#prod56">FLWOGR</A> | <A HREF="#prod57">QuantifiedExpression</A> )</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000595</TR>
596<TR>
buyingyi2fd7fa62014-11-24 19:31:55 -0800597<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod54">OperatorExpr</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000598<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800599<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod58">AndExpr</A> ( &lt;OR&gt; <A HREF="#prod58">AndExpr</A> )*</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000600</TR>
601<TR>
buyingyi2fd7fa62014-11-24 19:31:55 -0800602<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod58">AndExpr</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000603<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800604<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod59">RelExpr</A> ( &lt;AND&gt; <A HREF="#prod59">RelExpr</A> )*</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000605</TR>
606<TR>
buyingyi2fd7fa62014-11-24 19:31:55 -0800607<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod59">RelExpr</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000608<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800609<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod60">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="#prod60">AddExpr</A> )?</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000610</TR>
611<TR>
buyingyi2fd7fa62014-11-24 19:31:55 -0800612<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod60">AddExpr</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000613<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800614<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod61">MultExpr</A> ( ( &lt;PLUS&gt; | &lt;MINUS&gt; ) <A HREF="#prod61">MultExpr</A> )*</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000615</TR>
616<TR>
buyingyi2fd7fa62014-11-24 19:31:55 -0800617<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod61">MultExpr</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000618<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800619<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod62">UnionExpr</A> ( ( &lt;MUL&gt; | &lt;DIV&gt; | &lt;MOD&gt; | &lt;CARET&gt; | &lt;IDIV&gt; ) <A HREF="#prod62">UnionExpr</A> )*</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000620</TR>
621<TR>
buyingyi2fd7fa62014-11-24 19:31:55 -0800622<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod62">UnionExpr</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000623<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800624<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod63">UnaryExpr</A> ( &lt;UNION&gt; ( <A HREF="#prod63">UnaryExpr</A> ) )*</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000625</TR>
626<TR>
buyingyi2fd7fa62014-11-24 19:31:55 -0800627<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod63">UnaryExpr</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000628<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800629<TD ALIGN=LEFT VALIGN=BASELINE>( ( &lt;PLUS&gt; | &lt;MINUS&gt; ) )? <A HREF="#prod64">ValueExpr</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000630</TR>
631<TR>
buyingyi2fd7fa62014-11-24 19:31:55 -0800632<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod64">ValueExpr</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000633<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800634<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod65">PrimaryExpr</A> ( <A HREF="#prod66">Field</A> | <A HREF="#prod67">Index</A> )*</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000635</TR>
636<TR>
buyingyi2fd7fa62014-11-24 19:31:55 -0800637<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod66">Field</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000638<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800639<TD ALIGN=LEFT VALIGN=BASELINE>&lt;DOT&gt; <A HREF="#prod17">Identifier</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000640</TR>
641<TR>
buyingyi2fd7fa62014-11-24 19:31:55 -0800642<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod67">Index</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000643<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800644<TD ALIGN=LEFT VALIGN=BASELINE>&lt;LEFTBRACKET&gt; ( <A HREF="#prod39">Expression</A> | &lt;QUES&gt; ) &lt;RIGHTBRACKET&gt;</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000645</TR>
646<TR>
buyingyi2fd7fa62014-11-24 19:31:55 -0800647<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod65">PrimaryExpr</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000648<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800649<TD ALIGN=LEFT VALIGN=BASELINE>( <A HREF="#prod68">FunctionCallExpr</A> | <A HREF="#prod69">Literal</A> | <A HREF="#prod70">DatasetAccessExpression</A> | <A HREF="#prod71">VariableRef</A> | <A HREF="#prod72">ListConstructor</A> | <A HREF="#prod73">RecordConstructor</A> | <A HREF="#prod74">ParenthesizedExpression</A> )</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000650</TR>
651<TR>
buyingyi2fd7fa62014-11-24 19:31:55 -0800652<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod69">Literal</A></TD>
653<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
654<TD ALIGN=LEFT VALIGN=BASELINE>( <A HREF="#prod36">StringLiteral</A> | &lt;INTEGER_LITERAL&gt; | &lt;FLOAT_LITERAL&gt; | &lt;DOUBLE_LITERAL&gt; | &lt;NULL&gt; | &lt;TRUE&gt; | &lt;FALSE&gt; )</TD>
655</TR>
656<TR>
657<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod71">VariableRef</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000658<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
659<TD ALIGN=LEFT VALIGN=BASELINE>&lt;VARIABLE&gt;</TD>
660</TR>
661<TR>
buyingyi2fd7fa62014-11-24 19:31:55 -0800662<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod45">Variable</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000663<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
664<TD ALIGN=LEFT VALIGN=BASELINE>&lt;VARIABLE&gt;</TD>
665</TR>
666<TR>
buyingyi2fd7fa62014-11-24 19:31:55 -0800667<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod72">ListConstructor</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000668<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800669<TD ALIGN=LEFT VALIGN=BASELINE>( <A HREF="#prod75">OrderedListConstructor</A> | <A HREF="#prod76">UnorderedListConstructor</A> )</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000670</TR>
671<TR>
buyingyi2fd7fa62014-11-24 19:31:55 -0800672<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod75">OrderedListConstructor</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000673<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800674<TD ALIGN=LEFT VALIGN=BASELINE>&lt;LEFTBRACKET&gt; ( <A HREF="#prod39">Expression</A> ( &lt;COMMA&gt; <A HREF="#prod39">Expression</A> )* )? &lt;RIGHTBRACKET&gt;</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000675</TR>
676<TR>
buyingyi2fd7fa62014-11-24 19:31:55 -0800677<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod76">UnorderedListConstructor</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000678<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800679<TD ALIGN=LEFT VALIGN=BASELINE>&lt;LEFTDBLBRACE&gt; ( <A HREF="#prod39">Expression</A> ( &lt;COMMA&gt; <A HREF="#prod39">Expression</A> )* )? &lt;RIGHTDBLBRACE&gt;</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000680</TR>
681<TR>
buyingyi2fd7fa62014-11-24 19:31:55 -0800682<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod73">RecordConstructor</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000683<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800684<TD ALIGN=LEFT VALIGN=BASELINE>&lt;LEFTBRACE&gt; ( <A HREF="#prod77">FieldBinding</A> ( &lt;COMMA&gt; <A HREF="#prod77">FieldBinding</A> )* )? &lt;RIGHTBRACE&gt;</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000685</TR>
686<TR>
buyingyi2fd7fa62014-11-24 19:31:55 -0800687<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod77">FieldBinding</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000688<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800689<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod39">Expression</A> &lt;COLON&gt; <A HREF="#prod39">Expression</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000690</TR>
691<TR>
buyingyi2fd7fa62014-11-24 19:31:55 -0800692<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod68">FunctionCallExpr</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000693<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800694<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod37">FunctionName</A> &lt;LEFTPAREN&gt; ( <A HREF="#prod39">Expression</A> ( &lt;COMMA&gt; <A HREF="#prod39">Expression</A> )* )? &lt;RIGHTPAREN&gt;</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000695</TR>
696<TR>
buyingyi2fd7fa62014-11-24 19:31:55 -0800697<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod70">DatasetAccessExpression</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000698<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800699<TD ALIGN=LEFT VALIGN=BASELINE>&lt;DATASET&gt; ( ( <A HREF="#prod17">Identifier</A> ( &lt;DOT&gt; <A HREF="#prod17">Identifier</A> )? ) | ( &lt;LEFTPAREN&gt; <A HREF="#prod39">Expression</A> &lt;RIGHTPAREN&gt; ) )</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000700</TR>
701<TR>
buyingyi2fd7fa62014-11-24 19:31:55 -0800702<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod74">ParenthesizedExpression</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000703<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800704<TD ALIGN=LEFT VALIGN=BASELINE>&lt;LEFTPAREN&gt; <A HREF="#prod39">Expression</A> &lt;RIGHTPAREN&gt;</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000705</TR>
706<TR>
buyingyi2fd7fa62014-11-24 19:31:55 -0800707<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod55">IfThenElse</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000708<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800709<TD ALIGN=LEFT VALIGN=BASELINE>&lt;IF&gt; &lt;LEFTPAREN&gt; <A HREF="#prod39">Expression</A> &lt;RIGHTPAREN&gt; &lt;THEN&gt; <A HREF="#prod39">Expression</A> &lt;ELSE&gt; <A HREF="#prod39">Expression</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000710</TR>
711<TR>
buyingyi2fd7fa62014-11-24 19:31:55 -0800712<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod56">FLWOGR</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000713<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800714<TD ALIGN=LEFT VALIGN=BASELINE>( <A HREF="#prod78">ForClause</A> | <A HREF="#prod79">LetClause</A> ) ( <A HREF="#prod80">Clause</A> )* ( &lt;RETURN&gt; | &lt;SELECT&gt; ) <A HREF="#prod39">Expression</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000715</TR>
716<TR>
buyingyi2fd7fa62014-11-24 19:31:55 -0800717<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod80">Clause</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000718<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800719<TD ALIGN=LEFT VALIGN=BASELINE>( <A HREF="#prod78">ForClause</A> | <A HREF="#prod79">LetClause</A> | <A HREF="#prod81">WhereClause</A> | <A HREF="#prod82">OrderbyClause</A> | <A HREF="#prod83">GroupClause</A> | <A HREF="#prod84">LimitClause</A> | <A HREF="#prod85">DistinctClause</A> )</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000720</TR>
721<TR>
buyingyi2fd7fa62014-11-24 19:31:55 -0800722<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod78">ForClause</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000723<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800724<TD ALIGN=LEFT VALIGN=BASELINE>( &lt;FOR&gt; | &lt;FROM&gt; ) <A HREF="#prod45">Variable</A> ( &lt;AT&gt; <A HREF="#prod45">Variable</A> )? &lt;IN&gt; ( <A HREF="#prod39">Expression</A> )</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000725</TR>
726<TR>
buyingyi2fd7fa62014-11-24 19:31:55 -0800727<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod79">LetClause</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000728<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800729<TD ALIGN=LEFT VALIGN=BASELINE>( &lt;LET&gt; | &lt;WITH&gt; ) <A HREF="#prod45">Variable</A> &lt;ASSIGN&gt; <A HREF="#prod39">Expression</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000730</TR>
731<TR>
buyingyi2fd7fa62014-11-24 19:31:55 -0800732<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod81">WhereClause</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000733<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800734<TD ALIGN=LEFT VALIGN=BASELINE>&lt;WHERE&gt; <A HREF="#prod39">Expression</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000735</TR>
736<TR>
buyingyi2fd7fa62014-11-24 19:31:55 -0800737<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod82">OrderbyClause</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000738<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800739<TD ALIGN=LEFT VALIGN=BASELINE>( &lt;ORDER&gt; &lt;BY&gt; <A HREF="#prod39">Expression</A> ( ( &lt;ASC&gt; ) | ( &lt;DESC&gt; ) )? ( &lt;COMMA&gt; <A HREF="#prod39">Expression</A> ( ( &lt;ASC&gt; ) | ( &lt;DESC&gt; ) )? )* )</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000740</TR>
741<TR>
buyingyi2fd7fa62014-11-24 19:31:55 -0800742<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod83">GroupClause</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000743<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800744<TD ALIGN=LEFT VALIGN=BASELINE>&lt;GROUP&gt; &lt;BY&gt; ( <A HREF="#prod45">Variable</A> &lt;ASSIGN&gt; )? <A HREF="#prod39">Expression</A> ( &lt;COMMA&gt; ( <A HREF="#prod45">Variable</A> &lt;ASSIGN&gt; )? <A HREF="#prod39">Expression</A> )* ( &lt;DECOR&gt; <A HREF="#prod45">Variable</A> &lt;ASSIGN&gt; <A HREF="#prod39">Expression</A> ( &lt;COMMA&gt; &lt;DECOR&gt; <A HREF="#prod45">Variable</A> &lt;ASSIGN&gt; <A HREF="#prod39">Expression</A> )* )? &lt;WITH&gt; <A HREF="#prod71">VariableRef</A> ( &lt;COMMA&gt; <A HREF="#prod71">VariableRef</A> )*</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000745</TR>
746<TR>
buyingyi2fd7fa62014-11-24 19:31:55 -0800747<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod84">LimitClause</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000748<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800749<TD ALIGN=LEFT VALIGN=BASELINE>&lt;LIMIT&gt; <A HREF="#prod39">Expression</A> ( &lt;OFFSET&gt; <A HREF="#prod39">Expression</A> )?</TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000750</TR>
751<TR>
buyingyi2fd7fa62014-11-24 19:31:55 -0800752<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod85">DistinctClause</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000753<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
buyingyi2fd7fa62014-11-24 19:31:55 -0800754<TD ALIGN=LEFT VALIGN=BASELINE>&lt;DISTINCT&gt; &lt;BY&gt; <A HREF="#prod39">Expression</A> ( &lt;COMMA&gt; <A HREF="#prod39">Expression</A> )*</TD>
755</TR>
756<TR>
757<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod57">QuantifiedExpression</A></TD>
758<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
759<TD ALIGN=LEFT VALIGN=BASELINE>( ( &lt;SOME&gt; ) | ( &lt;EVERY&gt; ) ) <A HREF="#prod45">Variable</A> &lt;IN&gt; <A HREF="#prod39">Expression</A> ( &lt;COMMA&gt; <A HREF="#prod45">Variable</A> &lt;IN&gt; <A HREF="#prod39">Expression</A> )* &lt;SATISFIES&gt; <A HREF="#prod39">Expression</A></TD>
vinayakb38b7ca42012-03-05 05:44:15 +0000760</TR>
761</TABLE>
762</BODY>
763</HTML>