Commit 2a136e65 authored by gmantele's avatar gmantele
Browse files

[ADQL] Fix ADQL grammar interpretation: the keyword AS is optional in the

clause SELECT.
parent df9be4e3
Loading
Loading
Loading
Loading
+111 −102
Original line number Diff line number Diff line
@@ -68,7 +68,7 @@ import adql.translator.TranslationException;
* @see ADQLQueryFactory
*
* @author Grégory Mantelet (CDS;ARI) - gmantele@ari.uni-heidelberg.de
* @version 1.4 (04/2016)
* @version 1.4 (07/2016)
*/
public class ADQLParser implements ADQLParserConstants {

@@ -690,7 +690,7 @@ public class ADQLParser implements ADQLParserConstants {
					break;
				}
				default:
					jj_la1[11] = jj_gen;
					jj_la1[12] = jj_gen;
					if (jj_2_1(7)){
						id = Identifier();
						jj_consume_token(DOT);
@@ -785,19 +785,28 @@ public class ADQLParser implements ADQLParserConstants {
							case UNSIGNED_FLOAT:
							case UNSIGNED_INTEGER:{
								op = ValueExpression();
								switch((jj_ntk == -1) ? jj_ntk_f() : jj_ntk){
									case AS:
									case DELIMITED_IDENTIFIER:
									case REGULAR_IDENTIFIER:{
										switch((jj_ntk == -1) ? jj_ntk_f() : jj_ntk){
											case AS:{
												jj_consume_token(AS);
										label = Identifier();
												break;
											}
											default:
												jj_la1[10] = jj_gen;;
										}
										label = Identifier();
										break;
									}
									default:
										jj_la1[11] = jj_gen;;
								}
								break;
							}
							default:
								jj_la1[12] = jj_gen;
								jj_la1[13] = jj_gen;
								jj_consume_token(-1);
								throw new ParseException();
						}
@@ -840,7 +849,7 @@ public class ADQLParser implements ADQLParserConstants {
							break;
						}
						default:
							jj_la1[13] = jj_gen;
							jj_la1[14] = jj_gen;
							break label_2;
					}
					jj_consume_token(COMMA);
@@ -893,7 +902,7 @@ public class ADQLParser implements ADQLParserConstants {
						break;
					}
					default:
						jj_la1[14] = jj_gen;
						jj_la1[15] = jj_gen;
						break label_3;
				}
				jj_consume_token(COMMA);
@@ -936,7 +945,7 @@ public class ADQLParser implements ADQLParserConstants {
						break;
					}
					default:
						jj_la1[15] = jj_gen;
						jj_la1[16] = jj_gen;
						break label_4;
				}
				jj_consume_token(COMMA);
@@ -974,7 +983,7 @@ public class ADQLParser implements ADQLParserConstants {
					break;
				}
				default:
					jj_la1[16] = jj_gen;
					jj_la1[17] = jj_gen;
					jj_consume_token(-1);
					throw new ParseException();
			}
@@ -1004,7 +1013,7 @@ public class ADQLParser implements ADQLParserConstants {
					break;
				}
				default:
					jj_la1[17] = jj_gen;;
					jj_la1[18] = jj_gen;;
			}
			switch((jj_ntk == -1) ? jj_ntk_f() : jj_ntk){
				case DOT:{
@@ -1014,7 +1023,7 @@ public class ADQLParser implements ADQLParserConstants {
					break;
				}
				default:
					jj_la1[18] = jj_gen;;
					jj_la1[19] = jj_gen;;
			}
			{
				if ("" != null)
@@ -1045,7 +1054,7 @@ public class ADQLParser implements ADQLParserConstants {
					break;
				}
				default:
					jj_la1[19] = jj_gen;;
					jj_la1[20] = jj_gen;;
			}
			identifiers.append(id);
			if (table != null){
@@ -1122,7 +1131,7 @@ public class ADQLParser implements ADQLParserConstants {
					break;
				}
				default:
					jj_la1[20] = jj_gen;
					jj_la1[21] = jj_gen;
					jj_consume_token(-1);
					throw new ParseException();
			}
@@ -1139,14 +1148,14 @@ public class ADQLParser implements ADQLParserConstants {
							break;
						}
						default:
							jj_la1[21] = jj_gen;
							jj_la1[22] = jj_gen;
							jj_consume_token(-1);
							throw new ParseException();
					}
					break;
				}
				default:
					jj_la1[22] = jj_gen;;
					jj_la1[23] = jj_gen;;
			}
			try{
				ADQLOrder order = null;
@@ -1196,13 +1205,13 @@ public class ADQLParser implements ADQLParserConstants {
										break;
									}
									default:
										jj_la1[23] = jj_gen;;
										jj_la1[24] = jj_gen;;
								}
								alias = Identifier();
								break;
							}
							default:
								jj_la1[24] = jj_gen;;
								jj_la1[25] = jj_gen;;
						}
						content = queryFactory.createTable(identifiers, alias);
						if (alias == null)
@@ -1216,7 +1225,7 @@ public class ADQLParser implements ADQLParserConstants {
						break;
					}
					default:
						jj_la1[26] = jj_gen;
						jj_la1[27] = jj_gen;
						if (jj_2_2(2)){
							subQuery = SubQueryExpression();
							switch((jj_ntk == -1) ? jj_ntk_f() : jj_ntk){
@@ -1225,7 +1234,7 @@ public class ADQLParser implements ADQLParserConstants {
									break;
								}
								default:
									jj_la1[25] = jj_gen;;
									jj_la1[26] = jj_gen;;
							}
							alias = Identifier();
							content = queryFactory.createTable(subQuery, alias);
@@ -1251,7 +1260,7 @@ public class ADQLParser implements ADQLParserConstants {
									break;
								}
								default:
									jj_la1[27] = jj_gen;
									jj_la1[28] = jj_gen;
									jj_consume_token(-1);
									throw new ParseException();
							}
@@ -1310,7 +1319,7 @@ public class ADQLParser implements ADQLParserConstants {
						break;
					}
					default:
						jj_la1[28] = jj_gen;
						jj_la1[29] = jj_gen;
						break label_6;
				}
			}
@@ -1370,7 +1379,7 @@ public class ADQLParser implements ADQLParserConstants {
												break;
											}
											default:
												jj_la1[29] = jj_gen;
												jj_la1[30] = jj_gen;
												jj_consume_token(-1);
												throw new ParseException();
										}
@@ -1380,19 +1389,19 @@ public class ADQLParser implements ADQLParserConstants {
												break;
											}
											default:
												jj_la1[30] = jj_gen;;
												jj_la1[31] = jj_gen;;
										}
										break;
									}
									default:
										jj_la1[31] = jj_gen;
										jj_la1[32] = jj_gen;
										jj_consume_token(-1);
										throw new ParseException();
								}
								break;
							}
							default:
								jj_la1[32] = jj_gen;;
								jj_la1[33] = jj_gen;;
						}
						jj_consume_token(JOIN);
						rightTable = TableRef();
@@ -1439,7 +1448,7 @@ public class ADQLParser implements ADQLParserConstants {
												break;
											}
											default:
												jj_la1[33] = jj_gen;
												jj_la1[34] = jj_gen;
												jj_consume_token(-1);
												throw new ParseException();
										}
@@ -1449,19 +1458,19 @@ public class ADQLParser implements ADQLParserConstants {
												break;
											}
											default:
												jj_la1[34] = jj_gen;;
												jj_la1[35] = jj_gen;;
										}
										break;
									}
									default:
										jj_la1[35] = jj_gen;
										jj_la1[36] = jj_gen;
										jj_consume_token(-1);
										throw new ParseException();
								}
								break;
							}
							default:
								jj_la1[36] = jj_gen;;
								jj_la1[37] = jj_gen;;
						}
						jj_consume_token(JOIN);
						rightTable = TableRef();
@@ -1489,7 +1498,7 @@ public class ADQLParser implements ADQLParserConstants {
											break;
										}
										default:
											jj_la1[37] = jj_gen;
											jj_la1[38] = jj_gen;
											break label_7;
									}
									jj_consume_token(COMMA);
@@ -1506,14 +1515,14 @@ public class ADQLParser implements ADQLParserConstants {
								break;
							}
							default:
								jj_la1[38] = jj_gen;
								jj_la1[39] = jj_gen;
								jj_consume_token(-1);
								throw new ParseException();
						}
						break;
					}
					default:
						jj_la1[39] = jj_gen;
						jj_la1[40] = jj_gen;
						jj_consume_token(-1);
						throw new ParseException();
				}
@@ -1549,7 +1558,7 @@ public class ADQLParser implements ADQLParserConstants {
						break;
					}
					default:
						jj_la1[40] = jj_gen;
						jj_la1[41] = jj_gen;
						break label_8;
				}
			}
@@ -1594,7 +1603,7 @@ public class ADQLParser implements ADQLParserConstants {
					break;
				}
				default:
					jj_la1[41] = jj_gen;
					jj_la1[42] = jj_gen;
					jj_consume_token(-1);
					throw new ParseException();
			}
@@ -1632,7 +1641,7 @@ public class ADQLParser implements ADQLParserConstants {
					break;
				}
				default:
					jj_la1[42] = jj_gen;
					jj_la1[43] = jj_gen;
					jj_consume_token(-1);
					throw new ParseException();
			}
@@ -1673,14 +1682,14 @@ public class ADQLParser implements ADQLParserConstants {
							break;
						}
						default:
							jj_la1[43] = jj_gen;
							jj_la1[44] = jj_gen;
							jj_consume_token(-1);
							throw new ParseException();
					}
					break;
				}
				default:
					jj_la1[44] = jj_gen;;
					jj_la1[45] = jj_gen;;
			}
			number = jj_consume_token(UNSIGNED_INTEGER);
			try{
@@ -1764,7 +1773,7 @@ public class ADQLParser implements ADQLParserConstants {
						break;
					}
					default:
						jj_la1[45] = jj_gen;
						jj_la1[46] = jj_gen;
						jj_consume_token(-1);
						throw new ParseException();
				}
@@ -1821,7 +1830,7 @@ public class ADQLParser implements ADQLParserConstants {
						break;
					}
					default:
						jj_la1[46] = jj_gen;
						jj_la1[47] = jj_gen;
						jj_consume_token(-1);
						throw new ParseException();
				}
@@ -1867,7 +1876,7 @@ public class ADQLParser implements ADQLParserConstants {
							break;
						}
						default:
							jj_la1[47] = jj_gen;
							jj_la1[48] = jj_gen;
							if (jj_2_8(2147483647)){
								valueExpr = Column();
							}else if (jj_2_9(2147483647)){
@@ -1920,7 +1929,7 @@ public class ADQLParser implements ADQLParserConstants {
										break;
									}
									default:
										jj_la1[48] = jj_gen;
										jj_la1[49] = jj_gen;
										jj_consume_token(-1);
										throw new ParseException();
								}
@@ -1962,7 +1971,7 @@ public class ADQLParser implements ADQLParserConstants {
							break;
						}
						default:
							jj_la1[49] = jj_gen;
							jj_la1[50] = jj_gen;
							jj_consume_token(-1);
							throw new ParseException();
					}
@@ -1970,7 +1979,7 @@ public class ADQLParser implements ADQLParserConstants {
					break;
				}
				default:
					jj_la1[50] = jj_gen;;
					jj_la1[51] = jj_gen;;
			}
			if (sign == null){
				if ("" != null)
@@ -2015,7 +2024,7 @@ public class ADQLParser implements ADQLParserConstants {
							break;
						}
						default:
							jj_la1[51] = jj_gen;
							jj_la1[52] = jj_gen;
							jj_consume_token(-1);
							throw new ParseException();
					}
@@ -2023,7 +2032,7 @@ public class ADQLParser implements ADQLParserConstants {
					break;
				}
				default:
					jj_la1[52] = jj_gen;;
					jj_la1[53] = jj_gen;;
			}
			if (sign == null){
				if ("" != null)
@@ -2069,14 +2078,14 @@ public class ADQLParser implements ADQLParserConstants {
							break;
						}
						default:
							jj_la1[53] = jj_gen;
							jj_la1[54] = jj_gen;
							jj_consume_token(-1);
							throw new ParseException();
					}
					break;
				}
				default:
					jj_la1[54] = jj_gen;;
					jj_la1[55] = jj_gen;;
			}
			if (jj_2_10(2)){
				op = NumericFunction();
@@ -2097,7 +2106,7 @@ public class ADQLParser implements ADQLParserConstants {
						break;
					}
					default:
						jj_la1[55] = jj_gen;
						jj_la1[56] = jj_gen;
						jj_consume_token(-1);
						throw new ParseException();
				}
@@ -2142,7 +2151,7 @@ public class ADQLParser implements ADQLParserConstants {
						break;
					}
					default:
						jj_la1[56] = jj_gen;
						jj_la1[57] = jj_gen;
						break label_9;
				}
				jj_consume_token(CONCAT);
@@ -2185,7 +2194,7 @@ public class ADQLParser implements ADQLParserConstants {
					break;
				}
				default:
					jj_la1[57] = jj_gen;
					jj_la1[58] = jj_gen;
					if (jj_2_11(2)){
						op = UserDefinedFunction();
						((UserDefinedFunction)op).setExpectedType('S');
@@ -2199,7 +2208,7 @@ public class ADQLParser implements ADQLParserConstants {
								break;
							}
							default:
								jj_la1[58] = jj_gen;
								jj_la1[59] = jj_gen;
								jj_consume_token(-1);
								throw new ParseException();
						}
@@ -2236,7 +2245,7 @@ public class ADQLParser implements ADQLParserConstants {
					break;
				}
				default:
					jj_la1[59] = jj_gen;
					jj_la1[60] = jj_gen;
					jj_consume_token(-1);
					throw new ParseException();
			}
@@ -2273,7 +2282,7 @@ public class ADQLParser implements ADQLParserConstants {
						break;
					}
					default:
						jj_la1[60] = jj_gen;;
						jj_la1[61] = jj_gen;;
				}
				constraint = Constraint();
				if (notOp){
@@ -2295,7 +2304,7 @@ public class ADQLParser implements ADQLParserConstants {
							break;
						}
						default:
							jj_la1[61] = jj_gen;
							jj_la1[62] = jj_gen;
							break label_10;
					}
					switch((jj_ntk == -1) ? jj_ntk_f() : jj_ntk){
@@ -2308,7 +2317,7 @@ public class ADQLParser implements ADQLParserConstants {
							break;
						}
						default:
							jj_la1[62] = jj_gen;
							jj_la1[63] = jj_gen;
							jj_consume_token(-1);
							throw new ParseException();
					}
@@ -2319,7 +2328,7 @@ public class ADQLParser implements ADQLParserConstants {
							break;
						}
						default:
							jj_la1[63] = jj_gen;;
							jj_la1[64] = jj_gen;;
					}
					constraint = Constraint();
					if (notOp){
@@ -2380,7 +2389,7 @@ public class ADQLParser implements ADQLParserConstants {
						break;
					}
					default:
						jj_la1[64] = jj_gen;
						jj_la1[65] = jj_gen;
						jj_consume_token(-1);
						throw new ParseException();
				}
@@ -2418,7 +2427,7 @@ public class ADQLParser implements ADQLParserConstants {
						break;
					}
					default:
						jj_la1[69] = jj_gen;
						jj_la1[70] = jj_gen;
						if (jj_2_14(2147483647)){
							column = Column();
							jj_consume_token(IS);
@@ -2428,7 +2437,7 @@ public class ADQLParser implements ADQLParserConstants {
									break;
								}
								default:
									jj_la1[65] = jj_gen;;
									jj_la1[66] = jj_gen;;
							}
							end = jj_consume_token(NULL);
							IsNull in = queryFactory.createIsNull((notToken != null), column);
@@ -2445,7 +2454,7 @@ public class ADQLParser implements ADQLParserConstants {
									break;
								}
								default:
									jj_la1[66] = jj_gen;;
									jj_la1[67] = jj_gen;;
							}
							jj_consume_token(LIKE);
							strExpr2 = StringExpression();
@@ -2519,7 +2528,7 @@ public class ADQLParser implements ADQLParserConstants {
											break;
										}
										default:
											jj_la1[67] = jj_gen;
											jj_la1[68] = jj_gen;
											if (jj_2_13(2)){
												constraint = BetweenEnd(op);
											}else{
@@ -2530,7 +2539,7 @@ public class ADQLParser implements ADQLParserConstants {
														break;
													}
													default:
														jj_la1[68] = jj_gen;
														jj_la1[69] = jj_gen;
														jj_consume_token(-1);
														throw new ParseException();
												}
@@ -2539,7 +2548,7 @@ public class ADQLParser implements ADQLParserConstants {
									break;
								}
								default:
									jj_la1[70] = jj_gen;
									jj_la1[71] = jj_gen;
									jj_consume_token(-1);
									throw new ParseException();
							}
@@ -2592,7 +2601,7 @@ public class ADQLParser implements ADQLParserConstants {
					break;
				}
				default:
					jj_la1[71] = jj_gen;
					jj_la1[72] = jj_gen;
					jj_consume_token(-1);
					throw new ParseException();
			}
@@ -2627,7 +2636,7 @@ public class ADQLParser implements ADQLParserConstants {
					break;
				}
				default:
					jj_la1[72] = jj_gen;;
					jj_la1[73] = jj_gen;;
			}
			start = jj_consume_token(BETWEEN);
			min = ValueExpression();
@@ -2667,7 +2676,7 @@ public class ADQLParser implements ADQLParserConstants {
					break;
				}
				default:
					jj_la1[73] = jj_gen;;
					jj_la1[74] = jj_gen;;
			}
			start = jj_consume_token(IN);
			if (jj_2_16(2)){
@@ -2685,7 +2694,7 @@ public class ADQLParser implements ADQLParserConstants {
									break;
								}
								default:
									jj_la1[74] = jj_gen;
									jj_la1[75] = jj_gen;
									break label_11;
							}
							jj_consume_token(COMMA);
@@ -2696,7 +2705,7 @@ public class ADQLParser implements ADQLParserConstants {
						break;
					}
					default:
						jj_la1[75] = jj_gen;
						jj_la1[76] = jj_gen;
						jj_consume_token(-1);
						throw new ParseException();
				}
@@ -2751,7 +2760,7 @@ public class ADQLParser implements ADQLParserConstants {
								break;
							}
							default:
								jj_la1[76] = jj_gen;;
								jj_la1[77] = jj_gen;;
						}
						switch((jj_ntk == -1) ? jj_ntk_f() : jj_ntk){
							case ASTERISK:{
@@ -2812,7 +2821,7 @@ public class ADQLParser implements ADQLParserConstants {
								break;
							}
							default:
								jj_la1[77] = jj_gen;
								jj_la1[78] = jj_gen;
								jj_consume_token(-1);
								throw new ParseException();
						}
@@ -2843,7 +2852,7 @@ public class ADQLParser implements ADQLParserConstants {
								break;
							}
							default:
								jj_la1[78] = jj_gen;
								jj_la1[79] = jj_gen;
								jj_consume_token(-1);
								throw new ParseException();
						}
@@ -2854,7 +2863,7 @@ public class ADQLParser implements ADQLParserConstants {
								break;
							}
							default:
								jj_la1[79] = jj_gen;;
								jj_la1[80] = jj_gen;;
						}
						op = ValueExpression();
						end = jj_consume_token(RIGHT_PAR);
@@ -2863,7 +2872,7 @@ public class ADQLParser implements ADQLParserConstants {
						break;
					}
					default:
						jj_la1[80] = jj_gen;
						jj_la1[81] = jj_gen;
						jj_consume_token(-1);
						throw new ParseException();
				}
@@ -2926,7 +2935,7 @@ public class ADQLParser implements ADQLParserConstants {
								break;
							}
							default:
								jj_la1[81] = jj_gen;
								jj_la1[82] = jj_gen;
								jj_consume_token(-1);
								throw new ParseException();
						}
@@ -2966,7 +2975,7 @@ public class ADQLParser implements ADQLParserConstants {
								break;
							}
							default:
								jj_la1[82] = jj_gen;
								jj_la1[83] = jj_gen;
								jj_consume_token(-1);
								throw new ParseException();
						}
@@ -2990,7 +2999,7 @@ public class ADQLParser implements ADQLParserConstants {
								break;
							}
							default:
								jj_la1[83] = jj_gen;
								jj_la1[84] = jj_gen;
								jj_consume_token(-1);
								throw new ParseException();
						}
@@ -3011,7 +3020,7 @@ public class ADQLParser implements ADQLParserConstants {
								break;
							}
							default:
								jj_la1[84] = jj_gen;
								jj_la1[85] = jj_gen;
								jj_consume_token(-1);
								throw new ParseException();
						}
@@ -3033,7 +3042,7 @@ public class ADQLParser implements ADQLParserConstants {
								break;
							}
							default:
								jj_la1[85] = jj_gen;
								jj_la1[86] = jj_gen;
								jj_consume_token(-1);
								throw new ParseException();
						}
@@ -3048,7 +3057,7 @@ public class ADQLParser implements ADQLParserConstants {
						break;
					}
					default:
						jj_la1[86] = jj_gen;
						jj_la1[87] = jj_gen;
						jj_consume_token(-1);
						throw new ParseException();
				}
@@ -3159,7 +3168,7 @@ public class ADQLParser implements ADQLParserConstants {
									break;
								}
								default:
									jj_la1[87] = jj_gen;
									jj_la1[88] = jj_gen;
									break label_12;
							}
							jj_consume_token(COMMA);
@@ -3180,7 +3189,7 @@ public class ADQLParser implements ADQLParserConstants {
						break;
					}
					default:
						jj_la1[88] = jj_gen;
						jj_la1[89] = jj_gen;
						jj_consume_token(-1);
						throw new ParseException();
				}
@@ -3313,7 +3322,7 @@ public class ADQLParser implements ADQLParserConstants {
					break;
				}
				default:
					jj_la1[89] = jj_gen;
					jj_la1[90] = jj_gen;
					jj_consume_token(-1);
					throw new ParseException();
			}
@@ -3465,7 +3474,7 @@ public class ADQLParser implements ADQLParserConstants {
								break;
							}
							default:
								jj_la1[90] = jj_gen;;
								jj_la1[91] = jj_gen;;
						}
						end = jj_consume_token(RIGHT_PAR);
						break;
@@ -3481,7 +3490,7 @@ public class ADQLParser implements ADQLParserConstants {
								break;
							}
							default:
								jj_la1[91] = jj_gen;;
								jj_la1[92] = jj_gen;;
						}
						end = jj_consume_token(RIGHT_PAR);
						break;
@@ -3504,13 +3513,13 @@ public class ADQLParser implements ADQLParserConstants {
								break;
							}
							default:
								jj_la1[92] = jj_gen;;
								jj_la1[93] = jj_gen;;
						}
						end = jj_consume_token(RIGHT_PAR);
						break;
					}
					default:
						jj_la1[93] = jj_gen;
						jj_la1[94] = jj_gen;
						jj_consume_token(-1);
						throw new ParseException();
				}
@@ -3597,7 +3606,7 @@ public class ADQLParser implements ADQLParserConstants {
					break;
				}
				default:
					jj_la1[94] = jj_gen;
					jj_la1[95] = jj_gen;
					jj_consume_token(-1);
					throw new ParseException();
			}
@@ -3688,7 +3697,7 @@ public class ADQLParser implements ADQLParserConstants {
								break;
							}
							default:
								jj_la1[95] = jj_gen;
								jj_la1[96] = jj_gen;
								break label_13;
						}
						jj_consume_token(COMMA);
@@ -3698,7 +3707,7 @@ public class ADQLParser implements ADQLParserConstants {
					break;
				}
				default:
					jj_la1[96] = jj_gen;;
					jj_la1[97] = jj_gen;;
			}
			end = jj_consume_token(RIGHT_PAR);
			//System.out.println("INFO [ADQLParser]: \""+fct.image+"\" (from line "+fct.beginLine+" and column "+fct.beginColumn+" to line "+token.endLine+" and column "+(token.endColumn+1)+") is considered as an user defined function !");
@@ -5643,7 +5652,7 @@ public class ADQLParser implements ADQLParserConstants {
	private Token jj_scanpos, jj_lastpos;
	private int jj_la;
	private int jj_gen;
	final private int[] jj_la1 = new int[97];
	final private int[] jj_la1 = new int[98];
	static private int[] jj_la1_0;
	static private int[] jj_la1_1;
	static private int[] jj_la1_2;
@@ -5656,19 +5665,19 @@ public class ADQLParser implements ADQLParserConstants {
	}

	private static void jj_la1_init_0(){
		jj_la1_0 = new int[]{0x41,0x0,0x0,0x0,0x0,0x80000,0x100000,0x20,0x0,0x0,0x400000,0x400,0x304,0x20,0x20,0x20,0x0,0x10,0x10,0x10,0x0,0x0,0x0,0x400000,0x400000,0x400000,0x0,0x4,0x3d800000,0x1c000000,0x2000000,0x1d000000,0x1d000000,0x1c000000,0x2000000,0x1d000000,0x1d000000,0x20,0xc0000000,0x3d800000,0x0,0x0,0x0,0x300,0x300,0x4,0x4,0x0,0x304,0x300,0x300,0xc00,0xc00,0x300,0x300,0x4,0x80,0x0,0x4,0x0,0x0,0x0,0x0,0x0,0x4,0x0,0x0,0x3f000,0x0,0x0,0x304,0x3f000,0x0,0x0,0x20,0x4,0x80000,0x704,0x0,0x80000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20,0x0,0x0,0x304,0x20,0x20,0x0,0x0,0x20,0x304,};
		jj_la1_0 = new int[]{0x41,0x0,0x0,0x0,0x0,0x80000,0x100000,0x20,0x0,0x0,0x400000,0x400000,0x400,0x304,0x20,0x20,0x20,0x0,0x10,0x10,0x10,0x0,0x0,0x0,0x400000,0x400000,0x400000,0x0,0x4,0x3d800000,0x1c000000,0x2000000,0x1d000000,0x1d000000,0x1c000000,0x2000000,0x1d000000,0x1d000000,0x20,0xc0000000,0x3d800000,0x0,0x0,0x0,0x300,0x300,0x4,0x4,0x0,0x304,0x300,0x300,0xc00,0xc00,0x300,0x300,0x4,0x80,0x0,0x4,0x0,0x0,0x0,0x0,0x0,0x4,0x0,0x0,0x3f000,0x0,0x0,0x304,0x3f000,0x0,0x0,0x20,0x4,0x80000,0x704,0x0,0x80000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20,0x0,0x0,0x304,0x20,0x20,0x0,0x0,0x20,0x304,};
	}

	private static void jj_la1_init_1(){
		jj_la1_1 = new int[]{0x0,0x1,0x400,0x800,0x1000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffff8000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x6000,0x6000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xf8000,0x0,0x3f00000,0x7c0f8000,0x0,0x0,0x0,0x0,0x0,0x0,0xf8000,0x0,0x80000000,0x0,0x3f00000,0x8,0x6,0x6,0x8,0x0,0x8,0x8,0x0,0x108,0x200,0xffff8000,0x0,0x8,0x8,0x0,0x0,0x0,0xffff8000,0x78000,0x0,0xf8000,0xc000000,0x800000,0x800000,0x800000,0x800000,0x7c000000,0x0,0x3f00000,0x7c000000,0x7c0f8000,0x0,0x0,0x0,0x0,0x0,0xffff8000,};
		jj_la1_1 = new int[]{0x0,0x1,0x400,0x800,0x1000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffff8000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x6000,0x6000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xf8000,0x0,0x3f00000,0x7c0f8000,0x0,0x0,0x0,0x0,0x0,0x0,0xf8000,0x0,0x80000000,0x0,0x3f00000,0x8,0x6,0x6,0x8,0x0,0x8,0x8,0x0,0x108,0x200,0xffff8000,0x0,0x8,0x8,0x0,0x0,0x0,0xffff8000,0x78000,0x0,0xf8000,0xc000000,0x800000,0x800000,0x800000,0x800000,0x7c000000,0x0,0x3f00000,0x7c000000,0x7c0f8000,0x0,0x0,0x0,0x0,0x0,0xffff8000,};
	}

	private static void jj_la1_init_2(){
		jj_la1_2 = new int[]{0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20ffffff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20000000,0x0,0x0,0x0,0x0,0x0,0x20000000,0x0,0xffffff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20ffffff,0x0,0x0,0x0,0x0,0x0,0x0,0x20ffffff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0xffffff,0xffffff,0x0,0x0,0xfffe,0xff0000,0x0,0x20ffffff,};
		jj_la1_2 = new int[]{0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20ffffff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20000000,0x0,0x0,0x0,0x0,0x0,0x20000000,0x0,0xffffff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20ffffff,0x0,0x0,0x0,0x0,0x0,0x0,0x20ffffff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0xffffff,0xffffff,0x0,0x0,0xfffe,0xff0000,0x0,0x20ffffff,};
	}

	private static void jj_la1_init_3(){
		jj_la1_3 = new int[]{0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3,0x3,0x0,0x0,0x3b,0x0,0x0,0x0,0x3,0x0,0x0,0x0,0x23,0x0,0x0,0x0,0x3,0x0,0x3,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x38,0x30,0x0,0x0,0x3b,0x3,0x0,0x3b,0x0,0x0,0x0,0x0,0x0,0x0,0x3b,0x0,0x0,0x3,0x3,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3b,0x0,0x0,0x0,0x0,0x0,0x0,0x3b,0x0,0x0,0x0,0x0,0x3,0x3,0x3,0x3,0x0,0x0,0x0,0x2,0x3b,0x0,0x0,0x0,0x0,0x0,0x3b,};
		jj_la1_3 = new int[]{0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3,0x3,0x0,0x3,0x0,0x3b,0x0,0x0,0x0,0x3,0x0,0x0,0x0,0x23,0x0,0x0,0x0,0x3,0x0,0x3,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x38,0x30,0x0,0x0,0x3b,0x3,0x0,0x3b,0x0,0x0,0x0,0x0,0x0,0x0,0x3b,0x0,0x0,0x3,0x3,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3b,0x0,0x0,0x0,0x0,0x0,0x0,0x3b,0x0,0x0,0x0,0x0,0x3,0x3,0x3,0x3,0x0,0x0,0x0,0x2,0x3b,0x0,0x0,0x0,0x0,0x0,0x3b,};
	}

	final private JJCalls[] jj_2_rtns = new JJCalls[16];
@@ -5691,7 +5700,7 @@ public class ADQLParser implements ADQLParserConstants {
		token = new Token();
		jj_ntk = -1;
		jj_gen = 0;
		for(int i = 0; i < 97; i++)
		for(int i = 0; i < 98; i++)
			jj_la1[i] = -1;
		for(int i = 0; i < jj_2_rtns.length; i++)
			jj_2_rtns[i] = new JJCalls();
@@ -5713,7 +5722,7 @@ public class ADQLParser implements ADQLParserConstants {
		token = new Token();
		jj_ntk = -1;
		jj_gen = 0;
		for(int i = 0; i < 97; i++)
		for(int i = 0; i < 98; i++)
			jj_la1[i] = -1;
		for(int i = 0; i < jj_2_rtns.length; i++)
			jj_2_rtns[i] = new JJCalls();
@@ -5726,7 +5735,7 @@ public class ADQLParser implements ADQLParserConstants {
		token = new Token();
		jj_ntk = -1;
		jj_gen = 0;
		for(int i = 0; i < 97; i++)
		for(int i = 0; i < 98; i++)
			jj_la1[i] = -1;
		for(int i = 0; i < jj_2_rtns.length; i++)
			jj_2_rtns[i] = new JJCalls();
@@ -5739,7 +5748,7 @@ public class ADQLParser implements ADQLParserConstants {
		token = new Token();
		jj_ntk = -1;
		jj_gen = 0;
		for(int i = 0; i < 97; i++)
		for(int i = 0; i < 98; i++)
			jj_la1[i] = -1;
		for(int i = 0; i < jj_2_rtns.length; i++)
			jj_2_rtns[i] = new JJCalls();
@@ -5751,7 +5760,7 @@ public class ADQLParser implements ADQLParserConstants {
		token = new Token();
		jj_ntk = -1;
		jj_gen = 0;
		for(int i = 0; i < 97; i++)
		for(int i = 0; i < 98; i++)
			jj_la1[i] = -1;
		for(int i = 0; i < jj_2_rtns.length; i++)
			jj_2_rtns[i] = new JJCalls();
@@ -5763,7 +5772,7 @@ public class ADQLParser implements ADQLParserConstants {
		token = new Token();
		jj_ntk = -1;
		jj_gen = 0;
		for(int i = 0; i < 97; i++)
		for(int i = 0; i < 98; i++)
			jj_la1[i] = -1;
		for(int i = 0; i < jj_2_rtns.length; i++)
			jj_2_rtns[i] = new JJCalls();
@@ -5902,7 +5911,7 @@ public class ADQLParser implements ADQLParserConstants {
			la1tokens[jj_kind] = true;
			jj_kind = -1;
		}
		for(int i = 0; i < 97; i++){
		for(int i = 0; i < 98; i++){
			if (jj_la1[i] == jj_gen){
				for(int j = 0; j < 32; j++){
					if ((jj_la1_0[i] & (1 << j)) != 0){
+144 −156

File changed.

Preview size limit exceeded, changes collapsed.

+3 −3
Original line number Diff line number Diff line
@@ -26,7 +26,7 @@
*  If the syntax is not conform to the ADQL definition an error message is printed else it will be the message "Correct syntax".
*
*  Author:  Gr&eacute;gory Mantelet (CDS;ARI) - gmantele@ari.uni-heidelberg.de
*  Version: 1.4 (04/2016)
*  Version: 1.4 (07/2016)
*/

							/* ########### */
@@ -89,7 +89,7 @@ import adql.translator.TranslationException;
* @see ADQLQueryFactory
*
* @author Gr&eacute;gory Mantelet (CDS;ARI) - gmantele@ari.uni-heidelberg.de
* @version 1.4 (04/2016)
* @version 1.4 (07/2016)
*/
public class ADQLParser {
	
@@ -802,7 +802,7 @@ SelectItem SelectItem(): {IdentifierItems identifiers = new IdentifierItems(true
		)
		
	| 
		(op=ValueExpression()(<AS> label=Identifier())?)
		(op=ValueExpression()[[<AS>] label=Identifier()])
	)
	
	{