@@ -292,43 +292,42 @@ select_result =
292
292
{ return r[1 ] }
293
293
294
294
join_source =
295
- s : ( single_source ( join_op single_source join_constraint )* )
296
- { var acc = [s[0 ]];
297
- var cdr = s[1 ];
295
+ s : ( whitespace single_source
296
+ ( join_op whitespace single_source join_constraint )* )
297
+ { var acc = [s[1 ]];
298
+ var cdr = s[2 ];
298
299
for (var i = 0 ; cdr != null && i < cdr .length ; i++ ) {
299
- acc[i ] = merge (merge (cdr[i][0 ], cdr[i][1 ]), cdr[i][2 ]);
300
+ acc[acc . length ] = merge (merge (cdr[i][0 ], cdr[i][2 ]), cdr[i][3 ]);
300
301
}
301
302
return acc;
302
303
}
303
304
304
305
single_source =
305
- r : ( whitespace
306
- ( ( s : ( ( t : ( table_ref ( a : ( AS whitespace table_alias )
307
- { return { alias: a[2 ] } } )? )
308
- { return merge (t[1 ], t[0 ]) } )
309
- ( ( idx : ( INDEXED BY whitespace index_name )
310
- { return { indexed_by: idx[3 ] } } )
311
- / ( ( NOT INDEXED )
312
- { return { indexed_by: null } } ) )? )
313
- { return merge (s[1 ], s[0 ]) } )
314
- / ( p : ( lparen select_stmt rparen
315
- ( a : ( AS whitespace table_alias )
316
- { return { alias: a[2 ] } } )? )
317
- { return merge (p[3 ], p[1 ]) } )
318
- / ( j : ( lparen join_source rparen )
319
- { return j[1 ] } )
320
- ) )
321
- { return r[1 ] }
306
+ ( ( s : ( ( t : ( table_ref ( a : ( AS whitespace table_alias )
307
+ { return { alias: a[2 ] } } )? )
308
+ { return merge (t[1 ], t[0 ]) } )
309
+ ( ( idx : ( INDEXED BY whitespace index_name )
310
+ { return { indexed_by: idx[3 ] } } )
311
+ / ( ( NOT INDEXED )
312
+ { return { indexed_by: null } } ) )? )
313
+ { return merge (s[1 ], s[0 ]) } )
314
+ / ( p : ( lparen select_stmt rparen
315
+ ( a : ( AS whitespace table_alias )
316
+ { return { alias: a[2 ] } } )? )
317
+ { return merge (p[3 ], p[1 ]) } )
318
+ / ( j : ( lparen join_source rparen )
319
+ { return j[1 ] } )
320
+ )
322
321
323
322
join_op =
324
- r : ( ( ( j : ( NATURAL ?
323
+ r : ( ( ( ( whitespace comma )
324
+ { return " JOIN" } )
325
+ / ( j : ( NATURAL ?
325
326
( ( LEFT ( OUTER )? )
326
327
/ INNER
327
328
/ CROSS )?
328
329
JOIN )
329
- { return flatstr (j) } )
330
- / ( ( whitespace comma )
331
- { return " JOIN" } ) ) )
330
+ { return flatstr (j) } ) ) )
332
331
{ return { join_op: r } }
333
332
334
333
join_constraint =
0 commit comments