You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2016/02/19 14:03:03 UTC
[4/4] camel git commit: CAMEL-9461: sql-stored: add support for using
new lines and whitespace
CAMEL-9461: sql-stored: add support for using new lines and whitespace
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/38c1f6f7
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/38c1f6f7
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/38c1f6f7
Branch: refs/heads/master
Commit: 38c1f6f7f06163d3e58400a828ed532a5ab1d8d8
Parents: f1ff40a
Author: Claus Ibsen <da...@apache.org>
Authored: Fri Feb 19 13:35:45 2016 +0100
Committer: Claus Ibsen <da...@apache.org>
Committed: Fri Feb 19 13:49:42 2016 +0100
----------------------------------------------------------------------
.../stored/template/generated/SSPTParser.java | 20 +-
.../template/generated/SSPTParserConstants.java | 22 +-
.../generated/SSPTParserTokenManager.java | 210 +++++++++++++------
.../sql/stored/template/grammar/sspt.jj | 16 +-
.../src/test/resources/sql/selectStored.sql | 8 +-
5 files changed, 182 insertions(+), 94 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/38c1f6f7/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/template/generated/SSPTParser.java
----------------------------------------------------------------------
diff --git a/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/template/generated/SSPTParser.java b/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/template/generated/SSPTParser.java
index 066e5f2..da08c20 100644
--- a/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/template/generated/SSPTParser.java
+++ b/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/template/generated/SSPTParser.java
@@ -15,13 +15,13 @@ public class SSPTParser implements SSPTParserConstants {
Template template = new Template();
Object parameter = null;
procedureName = jj_consume_token(IDENTIFIER);
- jj_consume_token(1);
+ jj_consume_token(PROCEDURE_BEGIN);
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
- case 4:
+ case 2:
case NUMBER:
case IDENTIFIER:
parameter = Parameter();
- template.addParameter(parameter);
+ template.addParameter(parameter);
label_1:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
@@ -41,7 +41,7 @@ public class SSPTParser implements SSPTParserConstants {
jj_la1[1] = jj_gen;
;
}
- jj_consume_token(2);
+ jj_consume_token(PROCEDURE_END);
jj_consume_token(0);
template.setProcedureName(procedureName.toString());
{if (true) return template;}
@@ -56,7 +56,7 @@ public class SSPTParser implements SSPTParserConstants {
param = InputParameter();
{if (true) return param;}
break;
- case 4:
+ case 2:
param = OutParameter();
{if (true) return param;}
break;
@@ -73,7 +73,7 @@ public class SSPTParser implements SSPTParserConstants {
String name;
Token valueSrcToken;
sqlTypeToken = ParameterSqlType();
- jj_consume_token(3);
+ jj_consume_token(1);
valueSrcToken = InputParameterSrc();
int sqlType = ParseHelper.parseSqlType(sqlTypeToken);
{if (true) return new InputParameter(createNextParameterName(),sqlType,valueSrcToken);}
@@ -84,10 +84,10 @@ public class SSPTParser implements SSPTParserConstants {
Token sqlTypeToken;
String name;
String outValueMapKey;
- jj_consume_token(4);
- jj_consume_token(3);
+ jj_consume_token(2);
+ jj_consume_token(1);
sqlTypeToken = ParameterSqlType();
- jj_consume_token(3);
+ jj_consume_token(1);
outValueMapKey = OutHeader();
{if (true) return new OutParameter(createNextParameterName(),ParseHelper.parseSqlType(sqlTypeToken),outValueMapKey);}
throw new Error("Missing return statement in function");
@@ -152,7 +152,7 @@ public class SSPTParser implements SSPTParserConstants {
jj_la1_init_0();
}
private static void jj_la1_init_0() {
- jj_la1_0 = new int[] {0x800,0x4030,0x4030,0x4020,0x3000,};
+ jj_la1_0 = new int[] {0x200,0x400c,0x400c,0x4008,0x3000,};
}
/** Constructor with InputStream. */
http://git-wip-us.apache.org/repos/asf/camel/blob/38c1f6f7/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/template/generated/SSPTParserConstants.java
----------------------------------------------------------------------
diff --git a/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/template/generated/SSPTParserConstants.java b/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/template/generated/SSPTParserConstants.java
index dc48177..f0ba72c 100644
--- a/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/template/generated/SSPTParserConstants.java
+++ b/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/template/generated/SSPTParserConstants.java
@@ -11,19 +11,23 @@ public interface SSPTParserConstants {
/** End of File. */
int EOF = 0;
/** RegularExpression Id. */
- int NUMBER = 5;
+ int NUMBER = 3;
/** RegularExpression Id. */
- int DIGIT = 6;
+ int DIGIT = 4;
/** RegularExpression Id. */
- int LETTER = 7;
+ int LETTER = 5;
/** RegularExpression Id. */
- int SPECIAL = 8;
+ int SPECIAL = 6;
/** RegularExpression Id. */
- int WHITESPACE = 9;
+ int WHITESPACE = 7;
/** RegularExpression Id. */
- int COMMA = 10;
+ int COMMA = 8;
/** RegularExpression Id. */
- int SEPARATOR = 11;
+ int SEPARATOR = 9;
+ /** RegularExpression Id. */
+ int PROCEDURE_BEGIN = 10;
+ /** RegularExpression Id. */
+ int PROCEDURE_END = 11;
/** RegularExpression Id. */
int SIMPLE_EXP_TOKEN = 12;
/** RegularExpression Id. */
@@ -37,8 +41,6 @@ public interface SSPTParserConstants {
/** Literal token values. */
String[] tokenImage = {
"<EOF>",
- "\"(\"",
- "\")\"",
"\" \"",
"\"OUT\"",
"<NUMBER>",
@@ -48,6 +50,8 @@ public interface SSPTParserConstants {
"<WHITESPACE>",
"\",\"",
"<SEPARATOR>",
+ "<PROCEDURE_BEGIN>",
+ "<PROCEDURE_END>",
"<SIMPLE_EXP_TOKEN>",
"<PARAMETER_POS_TOKEN>",
"<IDENTIFIER>",
http://git-wip-us.apache.org/repos/asf/camel/blob/38c1f6f7/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/template/generated/SSPTParserTokenManager.java
----------------------------------------------------------------------
diff --git a/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/template/generated/SSPTParserTokenManager.java b/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/template/generated/SSPTParserTokenManager.java
index 9d27a69..15a9347 100644
--- a/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/template/generated/SSPTParserTokenManager.java
+++ b/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/template/generated/SSPTParserTokenManager.java
@@ -15,20 +15,20 @@ private final int jjStopStringLiteralDfa_0(int pos, long active0)
switch (pos)
{
case 0:
- if ((active0 & 0x10L) != 0L)
+ if ((active0 & 0x4L) != 0L)
{
jjmatchedKind = 14;
- return 11;
+ return 14;
}
- if ((active0 & 0x8L) != 0L)
- return 12;
+ if ((active0 & 0x2L) != 0L)
+ return 19;
return -1;
case 1:
- if ((active0 & 0x10L) != 0L)
+ if ((active0 & 0x4L) != 0L)
{
jjmatchedKind = 14;
jjmatchedPos = 1;
- return 11;
+ return 14;
}
return -1;
default :
@@ -50,15 +50,11 @@ private int jjMoveStringLiteralDfa0_0()
switch(curChar)
{
case 32:
- return jjStartNfaWithStates_0(0, 3, 12);
- case 40:
- return jjStopAtPos(0, 1);
- case 41:
- return jjStopAtPos(0, 2);
+ return jjStartNfaWithStates_0(0, 1, 19);
case 79:
- return jjMoveStringLiteralDfa1_0(0x10L);
+ return jjMoveStringLiteralDfa1_0(0x4L);
default :
- return jjMoveNfa_0(7, 0);
+ return jjMoveNfa_0(10, 0);
}
}
private int jjMoveStringLiteralDfa1_0(long active0)
@@ -71,7 +67,7 @@ private int jjMoveStringLiteralDfa1_0(long active0)
switch(curChar)
{
case 85:
- return jjMoveStringLiteralDfa2_0(active0, 0x10L);
+ return jjMoveStringLiteralDfa2_0(active0, 0x4L);
default :
break;
}
@@ -89,8 +85,8 @@ private int jjMoveStringLiteralDfa2_0(long old0, long active0)
switch(curChar)
{
case 84:
- if ((active0 & 0x10L) != 0L)
- return jjStartNfaWithStates_0(2, 4, 11);
+ if ((active0 & 0x4L) != 0L)
+ return jjStartNfaWithStates_0(2, 2, 14);
break;
default :
break;
@@ -108,7 +104,7 @@ private int jjStartNfaWithStates_0(int pos, int kind, int state)
private int jjMoveNfa_0(int startState, int curPos)
{
int startsAt = 0;
- jjnewStateCnt = 12;
+ jjnewStateCnt = 19;
int i = 1;
jjstateSet[0] = startState;
int kind = 0x7fffffff;
@@ -123,91 +119,164 @@ private int jjMoveNfa_0(int startState, int curPos)
{
switch(jjstateSet[--i])
{
- case 7:
+ case 10:
if ((0x3ff609c00000000L & l) != 0L)
{
if (kind > 14)
kind = 14;
- jjCheckNAdd(11);
+ jjCheckNAdd(14);
+ }
+ else if ((0x100002600L & l) != 0L)
+ {
+ if (kind > 7)
+ kind = 7;
+ jjCheckNAddStates(0, 5);
}
- else if ((0x100000600L & l) != 0L)
- jjCheckNAddTwoStates(1, 2);
else if (curChar == 58)
- jjstateSet[jjnewStateCnt++] = 8;
- else if (curChar == 44)
+ jjstateSet[jjnewStateCnt++] = 11;
+ else if (curChar == 41)
{
if (kind > 11)
kind = 11;
- jjCheckNAdd(3);
+ jjCheckNAdd(6);
+ }
+ else if (curChar == 40)
+ {
+ if (kind > 10)
+ kind = 10;
+ jjCheckNAdd(4);
+ }
+ else if (curChar == 44)
+ {
+ if (kind > 9)
+ kind = 9;
+ jjCheckNAdd(2);
}
if ((0x3ff000000000000L & l) != 0L)
{
- if (kind > 5)
- kind = 5;
+ if (kind > 3)
+ kind = 3;
jjCheckNAdd(0);
}
else if (curChar == 36)
- jjstateSet[jjnewStateCnt++] = 4;
+ jjstateSet[jjnewStateCnt++] = 7;
break;
- case 12:
- if ((0x100000600L & l) != 0L)
- jjCheckNAddTwoStates(1, 2);
- else if (curChar == 44)
+ case 19:
+ if ((0x100002600L & l) != 0L)
+ jjCheckNAddTwoStates(18, 5);
+ else if (curChar == 41)
{
if (kind > 11)
kind = 11;
- jjCheckNAdd(3);
+ jjCheckNAdd(6);
+ }
+ else if (curChar == 40)
+ {
+ if (kind > 10)
+ kind = 10;
+ jjCheckNAdd(4);
+ }
+ else if (curChar == 44)
+ {
+ if (kind > 9)
+ kind = 9;
+ jjCheckNAdd(2);
}
+ if ((0x100002600L & l) != 0L)
+ jjCheckNAddTwoStates(17, 3);
+ if ((0x100002600L & l) != 0L)
+ jjCheckNAddTwoStates(16, 1);
break;
case 0:
if ((0x3ff000000000000L & l) == 0L)
break;
- if (kind > 5)
- kind = 5;
+ if (kind > 3)
+ kind = 3;
jjCheckNAdd(0);
break;
case 1:
- if ((0x100000600L & l) != 0L)
- jjCheckNAddTwoStates(1, 2);
+ if (curChar != 44)
+ break;
+ kind = 9;
+ jjCheckNAdd(2);
break;
case 2:
- if (curChar != 44)
+ if ((0x100002600L & l) == 0L)
break;
- kind = 11;
- jjCheckNAdd(3);
+ if (kind > 9)
+ kind = 9;
+ jjCheckNAdd(2);
break;
case 3:
- if ((0x100000600L & l) == 0L)
+ if (curChar != 40)
+ break;
+ kind = 10;
+ jjCheckNAdd(4);
+ break;
+ case 4:
+ if ((0x100002600L & l) == 0L)
+ break;
+ if (kind > 10)
+ kind = 10;
+ jjCheckNAdd(4);
+ break;
+ case 5:
+ if (curChar != 41)
+ break;
+ kind = 11;
+ jjCheckNAdd(6);
+ break;
+ case 6:
+ if ((0x100002600L & l) == 0L)
break;
if (kind > 11)
kind = 11;
- jjCheckNAdd(3);
+ jjCheckNAdd(6);
break;
- case 5:
+ case 8:
if ((0x3ff609d00000000L & l) != 0L)
- jjAddStates(0, 1);
+ jjAddStates(6, 7);
break;
- case 8:
+ case 11:
if (curChar == 35)
- jjCheckNAdd(9);
+ jjCheckNAdd(12);
break;
- case 9:
+ case 12:
if ((0x3ff609c00000000L & l) == 0L)
break;
if (kind > 13)
kind = 13;
- jjCheckNAdd(9);
+ jjCheckNAdd(12);
break;
- case 10:
+ case 13:
if (curChar == 58)
- jjstateSet[jjnewStateCnt++] = 8;
+ jjstateSet[jjnewStateCnt++] = 11;
break;
- case 11:
+ case 14:
if ((0x3ff609c00000000L & l) == 0L)
break;
if (kind > 14)
kind = 14;
- jjCheckNAdd(11);
+ jjCheckNAdd(14);
+ break;
+ case 15:
+ if ((0x100002600L & l) == 0L)
+ break;
+ if (kind > 7)
+ kind = 7;
+ jjCheckNAddStates(0, 5);
+ break;
+ case 16:
+ if ((0x100002600L & l) != 0L)
+ jjCheckNAddTwoStates(16, 1);
+ break;
+ case 17:
+ if ((0x100002600L & l) != 0L)
+ jjCheckNAddTwoStates(17, 3);
+ break;
+ case 18:
+ if ((0x100002600L & l) != 0L)
+ jjCheckNAddTwoStates(18, 5);
break;
default : break;
}
@@ -220,32 +289,32 @@ private int jjMoveNfa_0(int startState, int curPos)
{
switch(jjstateSet[--i])
{
- case 7:
- case 11:
+ case 10:
+ case 14:
if ((0x2ffffffe87fffffeL & l) == 0L)
break;
if (kind > 14)
kind = 14;
- jjCheckNAdd(11);
+ jjCheckNAdd(14);
break;
- case 4:
+ case 7:
if (curChar == 123)
- jjCheckNAdd(5);
+ jjCheckNAdd(8);
break;
- case 5:
+ case 8:
if ((0x2ffffffe87fffffeL & l) != 0L)
- jjCheckNAddTwoStates(5, 6);
+ jjCheckNAddTwoStates(8, 9);
break;
- case 6:
+ case 9:
if (curChar == 125 && kind > 12)
kind = 12;
break;
- case 9:
+ case 12:
if ((0x2ffffffe87fffffeL & l) == 0L)
break;
if (kind > 13)
kind = 13;
- jjstateSet[jjnewStateCnt++] = 9;
+ jjstateSet[jjnewStateCnt++] = 12;
break;
default : break;
}
@@ -270,19 +339,19 @@ private int jjMoveNfa_0(int startState, int curPos)
kind = 0x7fffffff;
}
++curPos;
- if ((i = jjnewStateCnt) == (startsAt = 12 - (jjnewStateCnt = startsAt)))
+ if ((i = jjnewStateCnt) == (startsAt = 19 - (jjnewStateCnt = startsAt)))
return curPos;
try { curChar = input_stream.readChar(); }
catch(java.io.IOException e) { return curPos; }
}
}
static final int[] jjnextStates = {
- 5, 6,
+ 16, 1, 17, 3, 18, 5, 8, 9,
};
/** Token literal values. */
public static final String[] jjstrLiteralImages = {
-"", "\50", "\51", "\40", "\117\125\124", null, null, null, null, null, null,
+"", "\40", "\117\125\124", null, null, null, null, null, null, null, null,
null, null, null, null, };
/** Lexer state names. */
@@ -290,8 +359,8 @@ public static final String[] lexStateNames = {
"DEFAULT",
};
protected SimpleCharStream input_stream;
-private final int[] jjrounds = new int[12];
-private final int[] jjstateSet = new int[24];
+private final int[] jjrounds = new int[19];
+private final int[] jjstateSet = new int[38];
protected char curChar;
/** Constructor. */
public SSPTParserTokenManager(SimpleCharStream stream){
@@ -318,7 +387,7 @@ private void ReInitRounds()
{
int i;
jjround = 0x80000001;
- for (i = 12; i-- > 0;)
+ for (i = 19; i-- > 0;)
jjrounds[i] = 0x80000000;
}
@@ -442,4 +511,11 @@ private void jjCheckNAddTwoStates(int state1, int state2)
jjCheckNAdd(state2);
}
+private void jjCheckNAddStates(int start, int end)
+{
+ do {
+ jjCheckNAdd(jjnextStates[start]);
+ } while (start++ != end);
+}
+
}
http://git-wip-us.apache.org/repos/asf/camel/blob/38c1f6f7/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/template/grammar/sspt.jj
----------------------------------------------------------------------
diff --git a/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/template/grammar/sspt.jj b/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/template/grammar/sspt.jj
index da7af35..d078591 100644
--- a/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/template/grammar/sspt.jj
+++ b/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/template/grammar/sspt.jj
@@ -45,9 +45,9 @@ public Template parse() :
Object parameter = null;
}
{
- (procedureName = <IDENTIFIER> "(" ( (parameter = Parameter() { template.addParameter(parameter);}) (<SEPARATOR>
+ (procedureName = <IDENTIFIER> <PROCEDURE_BEGIN> ( (parameter = Parameter() { template.addParameter(parameter);}) (<SEPARATOR>
parameter
- = Parameter(){template.addParameter(parameter);})*)? ")" <EOF>)
+ = Parameter(){template.addParameter(parameter);})*)? <PROCEDURE_END> <EOF>)
{
template.setProcedureName(procedureName.toString());
return template;
@@ -133,7 +133,6 @@ TOKEN: {
<NUMBER: (["0"-"9"])+>
}
-
TOKEN: {
<#DIGIT: (["0"-"9"])>
}
@@ -147,7 +146,7 @@ TOKEN: {
}
TOKEN: {
- <#WHITESPACE: (" "|"\n"|"\t")>
+ <WHITESPACE: (" "|"\n"|"\r"|"\t")>
}
TOKEN: {
@@ -158,6 +157,14 @@ TOKEN: {
<SEPARATOR: ( ( <WHITESPACE> )* (<COMMA>) ( <WHITESPACE> )* )>
}
+TOKEN: {
+ <PROCEDURE_BEGIN: ( ( <WHITESPACE> )* "(" ( <WHITESPACE> )* )>
+}
+
+TOKEN: {
+ <PROCEDURE_END: ( ( <WHITESPACE> )* ")" ( <WHITESPACE> )* )>
+}
+
TOKEN : {
<SIMPLE_EXP_TOKEN: "${"(<LETTER>|<DIGIT> | <SPECIAL> | " ")+ "}">
}
@@ -166,7 +173,6 @@ TOKEN : {
<PARAMETER_POS_TOKEN: ":#"(<LETTER>|<DIGIT>|<SPECIAL> )+>
}
-
TOKEN : {
<IDENTIFIER: ( <LETTER> | <DIGIT> | <SPECIAL> )+ >
}
http://git-wip-us.apache.org/repos/asf/camel/blob/38c1f6f7/components/camel-sql/src/test/resources/sql/selectStored.sql
----------------------------------------------------------------------
diff --git a/components/camel-sql/src/test/resources/sql/selectStored.sql b/components/camel-sql/src/test/resources/sql/selectStored.sql
index f881aa1..7430b7f 100644
--- a/components/camel-sql/src/test/resources/sql/selectStored.sql
+++ b/components/camel-sql/src/test/resources/sql/selectStored.sql
@@ -1,3 +1,5 @@
-SUBNUMBERS(INTEGER ${headers.num1},
- INTEGER ${headers.num2},
- OUT INTEGER resultofsub)
\ No newline at end of file
+SUBNUMBERS(
+ INTEGER ${headers.num1} ,
+ INTEGER ${headers.num2} ,
+ OUT INTEGER resultofsub
+)
\ No newline at end of file