You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beehive.apache.org by ek...@apache.org on 2005/06/14 23:14:49 UTC

svn commit: r190657 [14/23] - in /incubator/beehive/trunk/system-controls: ./ ant/ samples/ejb/ samples/ejb/client/org/apache/beehive/controls/system/ejb/sample/client/ samples/ejb/control/org/apache/beehive/controls/system/ejb/sample/control/ samples/ejb/ejb/META-INF/ samples/ejb/ejb/org/apache/beehive/controls/system/ejb/sample/bean/ samples/jdbc/jdbcControlSample/ samples/jdbc/jdbcControlSample/META-INF/ samples/jdbc/jdbcControlSample/WEB-INF/ samples/jdbc/jdbcControlSample/WEB-INF/src/ samples/jdbc/jdbcControlSample/WEB-INF/src/controls/ samples/jdbc/jdbcControlSample/WEB-INF/src/servlet/ samples/jdbc/jdbcControlSample/WEB-INF/src/shared/ samples/jms/ samples/jms/src/org/apache/beehive/controls/system/jms/samples/ samples/webservice/amazon/ samples/webservice/amazon/junit/ samples/webservice/amazon/schemas/ samples/webservice/common/src/test/ samples/webservice/google/ samples/webservice/google/junit/model/ samples/webservice/google/rpc_schemas/ samples/webservice/google/servlet/ samples/webservice/wsm_samples_client/ samples/webservice/wsm_samples_client/junit/ samples/webservice/wsm_samples_client/junit/org/wsm/samples/client/header/ samples/webservice/wsm_samples_client/junit/org/wsm/samples/client/webparam/ samples/webservice/xmlbeans/ samples/webservice/xmlbeans/junit/ src/ejb/ src/ejb/org/apache/beehive/controls/system/ejb/ src/ejb/schema/ src/jdbc/ src/jdbc/org/apache/beehive/controls/system/jdbc/ src/jdbc/org/apache/beehive/controls/system/jdbc/parser/ src/jms/ src/jms/org/apache/beehive/controls/system/jms/ src/jms/org/apache/beehive/controls/system/jms/impl/ src/jms/org/apache/beehive/controls/system/jndi/ src/jms/org/apache/beehive/controls/system/jndi/impl/ src/webservice/ src/webservice/org/apache/beehive/controls/system/webservice/ src/webservice/org/apache/beehive/controls/system/webservice/generator/ src/webservice/org/apache/beehive/controls/system/webservice/jaxrpc/ src/webservice/org/apache/beehive/controls/system/webservice/utils/ test/ant/ test/conf/ test/src/jdbc/controls/ test/src/jdbc/controls/org/apache/beehive/controls/system/jdbc/test/dbconnection/ test/src/jdbc/controls/org/apache/beehive/controls/system/jdbc/test/errors/ test/src/jdbc/controls/org/apache/beehive/controls/system/jdbc/test/results/ test/src/jdbc/controls/schemas/badusers/ test/src/jdbc/controls/schemas/users/ test/src/jdbc/jdbc-container/ test/src/jdbc/jdbc-container/application/ test/src/jdbc/jdbc-container/src/org/apache/beehive/controls/system/jdbc/containertest/ test/src/jdbc/jdbc-container/webapp/WEB-INF/ test/src/jdbc/jdbc-container/webapp/conf/Catalina/localhost/ test/src/jdbc/junitTests/ test/src/jdbc/junitTests/org/apache/beehive/controls/system/jdbc/units/dbconnection/ test/src/jdbc/junitTests/org/apache/beehive/controls/system/jdbc/units/errors/ test/src/jdbc/junitTests/org/apache/beehive/controls/system/jdbc/units/results/ test/src/jdbc/junitTests/org/apache/beehive/controls/system/jdbc/units/sqlparser/ test/src/jdbc/junitTests/org/apache/beehive/controls/system/jdbc/units/utils/ test/src/webservice/ test/src/webservice/jcxgen-tests/ test/src/webservice/jcxgen-tests/tests/org/apache/beehive/controls/system/webservice/units/jcxgen/ test/src/webservice/schemas/ test/src/webservice/servers/webapp/WEB-INF/ test/src/webservice/servers/webapp/WEB-INF/src/org/apache/beehive/doclitwrap/ test/src/webservice/servers/webapp/WEB-INF/src/web/ test/src/webservice/servers/webapp/WEB-INF/webservices/web/complex/ test/src/webservice/tests/org/apache/beehive/controls/system/webservice/units/dlwservice/

Modified: incubator/beehive/trunk/system-controls/src/jdbc/org/apache/beehive/controls/system/jdbc/parser/SqlGrammar.java
URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/system-controls/src/jdbc/org/apache/beehive/controls/system/jdbc/parser/SqlGrammar.java?rev=190657&r1=190656&r2=190657&view=diff
==============================================================================
--- incubator/beehive/trunk/system-controls/src/jdbc/org/apache/beehive/controls/system/jdbc/parser/SqlGrammar.java (original)
+++ incubator/beehive/trunk/system-controls/src/jdbc/org/apache/beehive/controls/system/jdbc/parser/SqlGrammar.java Tue Jun 14 14:14:42 2005
@@ -1,514 +1,514 @@
-/* Generated By:JavaCC: Do not edit this line. SqlGrammar.java */
-package org.apache.beehive.controls.system.jdbc.parser;
-import java.io.StringReader;
-
-public class SqlGrammar implements SqlGrammarConstants {
-    private StringBuilder buffer = new StringBuilder();
-    public static void main(String[] args) throws Exception
-    {
-        SqlGrammar parser = new SqlGrammar(new StringReader(args[0]));
-        SqlStatement statement = parser.parse();
-        System.out.println(statement.toString());
-    }
-
-//
-// Parse methods
-//
-
-
-//
-// Main parse method
-//
-  final public SqlStatement parse() throws ParseException {
-    SqlStatement statement = new SqlStatement();
-    SqlFragment frag;
-    Token t, sq;
-    label_1:
-    while (true) {
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case NON_EXPRESSION_TEXT:
-      case START_EXPRESSION:
-      case SQUOTE:
-        ;
-        break;
-      default:
-        jj_la1[0] = jj_gen;
-        break label_1;
-      }
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case NON_EXPRESSION_TEXT:
-        t = jj_consume_token(NON_EXPRESSION_TEXT);
-                                 statement.addChild(new LiteralFragment(t.image));
-        break;
-      case SQUOTE:
-        sq = jj_consume_token(SQUOTE);
-        t = jj_consume_token(STRING_LITERAL);
-                                       statement.addChild(new LiteralFragment(sq.image + t.image));
-        break;
-      case START_EXPRESSION:
-        frag = parseExpression();
-                                statement.addChild(frag);
-        break;
-      default:
-        jj_la1[1] = jj_gen;
-        jj_consume_token(-1);
-        throw new ParseException();
-      }
-    }
-    jj_consume_token(0);
-      {if (true) return statement;}
-    throw new Error("Missing return statement in function");
-  }
-
-//
-// Parse an expression delimited by '{}'
-//
-  final public SqlFragment parseExpression() throws ParseException {
-    Token t, tt = null;
-    SqlFragment frag = null;
-    jj_consume_token(START_EXPRESSION);
-    label_2:
-    while (true) {
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case WHITESPACE:
-        ;
-        break;
-      default:
-        jj_la1[2] = jj_gen;
-        break label_2;
-      }
-      jj_consume_token(WHITESPACE);
-    }
-    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-    case SQL_ESCAPE:
-    case SQL_SUBST:
-    case SQL_FN:
-      frag = parseSqlEscape();
-      break;
-    case JDBC_CALL:
-    case JDBC_RET:
-    case JDBC_DATE:
-    case JDBC_TIME:
-    case JDBC_TIMESTAMP:
-    case JDBC_FUNCTION:
-    case JDBC_ESCAPE:
-    case JDBC_OUTERJOIN:
-      frag = parseJdbcEscape();
-      break;
-    case IDENTIFIER:
-      t = jj_consume_token(IDENTIFIER);
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case REFLECT_SEP:
-        jj_consume_token(REFLECT_SEP);
-        tt = jj_consume_token(IDENTIFIER);
-        break;
-      default:
-        jj_la1[3] = jj_gen;
-        ;
-      }
-      jj_consume_token(END_EXPRESSION);
-                                                                         frag = new ReflectionFragment(t.image,(tt == null) ? null : tt.image);
-      break;
-    default:
-      jj_la1[4] = jj_gen;
-      jj_consume_token(-1);
-      throw new ParseException();
-    }
-    label_3:
-    while (true) {
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case WHITESPACE:
-        ;
-        break;
-      default:
-        jj_la1[5] = jj_gen;
-        break label_3;
-      }
-      jj_consume_token(WHITESPACE);
-    }
-     {if (true) return frag;}
-    throw new Error("Missing return statement in function");
-  }
-
-//
-// parse an sql: escape sequence
-//
-  final public SqlSubstitutionFragment parseSqlEscape() throws ParseException {
-    Token id1, id2;
-    Token t = null;
-    SqlSubstitutionFragment frag;
-    String func = null;
-    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-    case SQL_ESCAPE:
-    case SQL_SUBST:
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case SQL_ESCAPE:
-        jj_consume_token(SQL_ESCAPE);
-        break;
-      case SQL_SUBST:
-        jj_consume_token(SQL_SUBST);
-        break;
-      default:
-        jj_la1[6] = jj_gen;
-        jj_consume_token(-1);
-        throw new ParseException();
-      }
-      t = jj_consume_token(IDENTIFIER);
-           if (t != null) {
-             frag = new SqlSubstitutionFragment(new ReflectionFragment(t.image));
-           } else {
-             frag = new SqlSubstitutionFragment(new LiteralFragment(func));
-           }
-      break;
-    case SQL_FN:
-      jj_consume_token(SQL_FN);
-      jj_consume_token(SQL_FN_NM);
-      jj_consume_token(SQL_FN_PAREN);
-      label_4:
-      while (true) {
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case SQL_FN_WHITESPACE:
-          ;
-          break;
-        default:
-          jj_la1[7] = jj_gen;
-          break label_4;
-        }
-        jj_consume_token(SQL_FN_WHITESPACE);
-      }
-      id1 = jj_consume_token(SQL_FN_IDENTIFIER);
-      label_5:
-      while (true) {
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case SQL_FN_WHITESPACE:
-          ;
-          break;
-        default:
-          jj_la1[8] = jj_gen;
-          break label_5;
-        }
-        jj_consume_token(SQL_FN_WHITESPACE);
-      }
-      jj_consume_token(SQL_FN_COMMA);
-      label_6:
-      while (true) {
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case SQL_FN_WHITESPACE:
-          ;
-          break;
-        default:
-          jj_la1[9] = jj_gen;
-          break label_6;
-        }
-        jj_consume_token(SQL_FN_WHITESPACE);
-      }
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case SQL_FN_PSTART:
-        t = jj_consume_token(SQL_FN_PSTART);
-        break;
-      default:
-        jj_la1[10] = jj_gen;
-        ;
-      }
-      id2 = jj_consume_token(SQL_FN_IDENTIFIER);
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case SQL_FN_PEND:
-        jj_consume_token(SQL_FN_PEND);
-        break;
-      default:
-        jj_la1[11] = jj_gen;
-        ;
-      }
-      label_7:
-      while (true) {
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case SQL_FN_WHITESPACE:
-          ;
-          break;
-        default:
-          jj_la1[12] = jj_gen;
-          break label_7;
-        }
-        jj_consume_token(SQL_FN_WHITESPACE);
-      }
-      jj_consume_token(SQL_FN_END);
-         if (t == null) {
-           frag = new SqlSubstitutionFragment(new LiteralFragment("(" + id1.image + " IN (" + id2.image + ")"));
-         } else {
-           frag = new SqlSubstitutionFragment(new LiteralFragment("(" + id1.image + " IN ("),
-                                        new ReflectionFragment(id2.image),
-                                        new LiteralFragment("))"));
-         }
-      break;
-    default:
-      jj_la1[13] = jj_gen;
-      jj_consume_token(-1);
-      throw new ParseException();
-    }
-    jj_consume_token(END_EXPRESSION);
-      {if (true) return frag;}
-    throw new Error("Missing return statement in function");
-  }
-
-//
-// parse a param sub inside of a jdbc escape
-//
-  final public SqlFragment parseReflect() throws ParseException {
-   Token t, tt = null;
-   SqlFragment frag;
-    jj_consume_token(JDBC_PARAM);
-    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-    case PARAM_IDENTIFIER:
-      t = jj_consume_token(PARAM_IDENTIFIER);
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case PARAM_REFLECT_SEP:
-        jj_consume_token(PARAM_REFLECT_SEP);
-        tt = jj_consume_token(IDENTIFIER);
-        break;
-      default:
-        jj_la1[14] = jj_gen;
-        ;
-      }
-            frag = new ReflectionFragment(t.image, (tt == null) ? null : tt.image);
-      break;
-    case PARAM_LITERAL:
-      t = jj_consume_token(PARAM_LITERAL);
-              frag = new LiteralFragment(t.image);
-      break;
-    default:
-      jj_la1[15] = jj_gen;
-      jj_consume_token(-1);
-      throw new ParseException();
-    }
-    jj_consume_token(PARAM_END);
-      {if (true) return frag;}
-    throw new Error("Missing return statement in function");
-  }
-
-//
-// parse a jdbc escape sequence
-//
-  final public JdbcFragment parseJdbcEscape() throws ParseException {
-  Token lit, c;
-  JdbcFragment jfrag = new JdbcFragment();
-  jfrag.addChild(new LiteralFragment("{"));
-  SqlFragment frag = null;
-    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-    case JDBC_CALL:
-      c = jj_consume_token(JDBC_CALL);
-      break;
-    case JDBC_RET:
-      c = jj_consume_token(JDBC_RET);
-      break;
-    case JDBC_DATE:
-      c = jj_consume_token(JDBC_DATE);
-      break;
-    case JDBC_ESCAPE:
-      c = jj_consume_token(JDBC_ESCAPE);
-      break;
-    case JDBC_FUNCTION:
-      c = jj_consume_token(JDBC_FUNCTION);
-      break;
-    case JDBC_TIME:
-      c = jj_consume_token(JDBC_TIME);
-      break;
-    case JDBC_TIMESTAMP:
-      c = jj_consume_token(JDBC_TIMESTAMP);
-      break;
-    case JDBC_OUTERJOIN:
-      c = jj_consume_token(JDBC_OUTERJOIN);
-      break;
-    default:
-      jj_la1[16] = jj_gen;
-      jj_consume_token(-1);
-      throw new ParseException();
-    }
-         jfrag.addChild(new LiteralFragment(c.image));
-    label_8:
-    while (true) {
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case JDBC_LIT:
-        lit = jj_consume_token(JDBC_LIT);
-                           jfrag.addChild(new LiteralFragment(lit.image));
-        break;
-      case JDBC_PARAM:
-        frag = parseReflect();
-                                  jfrag.addChild(frag);
-        break;
-      default:
-        jj_la1[17] = jj_gen;
-        jj_consume_token(-1);
-        throw new ParseException();
-      }
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case JDBC_LIT:
-      case JDBC_PARAM:
-        ;
-        break;
-      default:
-        jj_la1[18] = jj_gen;
-        break label_8;
-      }
-    }
-    jj_consume_token(JDBC_END);
-      jfrag.addChild(new LiteralFragment("}"));
-      {if (true) return jfrag;}
-    throw new Error("Missing return statement in function");
-  }
-
-  public SqlGrammarTokenManager token_source;
-  SimpleCharStream jj_input_stream;
-  public Token token, jj_nt;
-  private int jj_ntk;
-  private int jj_gen;
-  final private int[] jj_la1 = new int[19];
-  static private int[] jj_la1_0;
-  static private int[] jj_la1_1;
-  static {
-      jj_la1_0();
-      jj_la1_1();
-   }
-   private static void jj_la1_0() {
-      jj_la1_0 = new int[] {0xe,0xe,0x100000,0x100,0x2ffe00,0x100000,0x600,0x40000000,0x40000000,0x40000000,0x10000000,0x20000000,0x40000000,0xe00,0x0,0x0,0xff000,0x0,0x0,};
-   }
-   private static void jj_la1_1() {
-      jj_la1_1 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10,0x28,0x0,0x6,0x6,};
-   }
-
-  public SqlGrammar(java.io.InputStream stream) {
-    jj_input_stream = new SimpleCharStream(stream, 1, 1);
-    token_source = new SqlGrammarTokenManager(jj_input_stream);
-    token = new Token();
-    jj_ntk = -1;
-    jj_gen = 0;
-    for (int i = 0; i < 19; i++) jj_la1[i] = -1;
-  }
-
-  public void ReInit(java.io.InputStream stream) {
-    jj_input_stream.ReInit(stream, 1, 1);
-    token_source.ReInit(jj_input_stream);
-    token = new Token();
-    jj_ntk = -1;
-    jj_gen = 0;
-    for (int i = 0; i < 19; i++) jj_la1[i] = -1;
-  }
-
-  public SqlGrammar(java.io.Reader stream) {
-    jj_input_stream = new SimpleCharStream(stream, 1, 1);
-    token_source = new SqlGrammarTokenManager(jj_input_stream);
-    token = new Token();
-    jj_ntk = -1;
-    jj_gen = 0;
-    for (int i = 0; i < 19; i++) jj_la1[i] = -1;
-  }
-
-  public void ReInit(java.io.Reader stream) {
-    jj_input_stream.ReInit(stream, 1, 1);
-    token_source.ReInit(jj_input_stream);
-    token = new Token();
-    jj_ntk = -1;
-    jj_gen = 0;
-    for (int i = 0; i < 19; i++) jj_la1[i] = -1;
-  }
-
-  public SqlGrammar(SqlGrammarTokenManager tm) {
-    token_source = tm;
-    token = new Token();
-    jj_ntk = -1;
-    jj_gen = 0;
-    for (int i = 0; i < 19; i++) jj_la1[i] = -1;
-  }
-
-  public void ReInit(SqlGrammarTokenManager tm) {
-    token_source = tm;
-    token = new Token();
-    jj_ntk = -1;
-    jj_gen = 0;
-    for (int i = 0; i < 19; i++) jj_la1[i] = -1;
-  }
-
-  final private Token jj_consume_token(int kind) throws ParseException {
-    Token oldToken;
-    if ((oldToken = token).next != null) token = token.next;
-    else token = token.next = token_source.getNextToken();
-    jj_ntk = -1;
-    if (token.kind == kind) {
-      jj_gen++;
-      return token;
-    }
-    token = oldToken;
-    jj_kind = kind;
-    throw generateParseException();
-  }
-
-  final public Token getNextToken() {
-    if (token.next != null) token = token.next;
-    else token = token.next = token_source.getNextToken();
-    jj_ntk = -1;
-    jj_gen++;
-    return token;
-  }
-
-  final public Token getToken(int index) {
-    Token t = token;
-    for (int i = 0; i < index; i++) {
-      if (t.next != null) t = t.next;
-      else t = t.next = token_source.getNextToken();
-    }
-    return t;
-  }
-
-  final private int jj_ntk() {
-    if ((jj_nt=token.next) == null)
-      return (jj_ntk = (token.next=token_source.getNextToken()).kind);
-    else
-      return (jj_ntk = jj_nt.kind);
-  }
-
-  private java.util.Vector jj_expentries = new java.util.Vector();
-  private int[] jj_expentry;
-  private int jj_kind = -1;
-
-  public ParseException generateParseException() {
-    jj_expentries.removeAllElements();
-    boolean[] la1tokens = new boolean[39];
-    for (int i = 0; i < 39; i++) {
-      la1tokens[i] = false;
-    }
-    if (jj_kind >= 0) {
-      la1tokens[jj_kind] = true;
-      jj_kind = -1;
-    }
-    for (int i = 0; i < 19; i++) {
-      if (jj_la1[i] == jj_gen) {
-        for (int j = 0; j < 32; j++) {
-          if ((jj_la1_0[i] & (1<<j)) != 0) {
-            la1tokens[j] = true;
-          }
-          if ((jj_la1_1[i] & (1<<j)) != 0) {
-            la1tokens[32+j] = true;
-          }
-        }
-      }
-    }
-    for (int i = 0; i < 39; i++) {
-      if (la1tokens[i]) {
-        jj_expentry = new int[1];
-        jj_expentry[0] = i;
-        jj_expentries.addElement(jj_expentry);
-      }
-    }
-    int[][] exptokseq = new int[jj_expentries.size()][];
-    for (int i = 0; i < jj_expentries.size(); i++) {
-      exptokseq[i] = (int[])jj_expentries.elementAt(i);
-    }
-    return new ParseException(token, exptokseq, tokenImage);
-  }
-
-  final public void enable_tracing() {
-  }
-
-  final public void disable_tracing() {
-  }
-
-}
+/* Generated By:JavaCC: Do not edit this line. SqlGrammar.java */
+package org.apache.beehive.controls.system.jdbc.parser;
+import java.io.StringReader;
+
+public class SqlGrammar implements SqlGrammarConstants {
+    private StringBuilder buffer = new StringBuilder();
+    public static void main(String[] args) throws Exception
+    {
+        SqlGrammar parser = new SqlGrammar(new StringReader(args[0]));
+        SqlStatement statement = parser.parse();
+        System.out.println(statement.toString());
+    }
+
+//
+// Parse methods
+//
+
+
+//
+// Main parse method
+//
+  final public SqlStatement parse() throws ParseException {
+    SqlStatement statement = new SqlStatement();
+    SqlFragment frag;
+    Token t, sq;
+    label_1:
+    while (true) {
+      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+      case NON_EXPRESSION_TEXT:
+      case START_EXPRESSION:
+      case SQUOTE:
+        ;
+        break;
+      default:
+        jj_la1[0] = jj_gen;
+        break label_1;
+      }
+      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+      case NON_EXPRESSION_TEXT:
+        t = jj_consume_token(NON_EXPRESSION_TEXT);
+                                 statement.addChild(new LiteralFragment(t.image));
+        break;
+      case SQUOTE:
+        sq = jj_consume_token(SQUOTE);
+        t = jj_consume_token(STRING_LITERAL);
+                                       statement.addChild(new LiteralFragment(sq.image + t.image));
+        break;
+      case START_EXPRESSION:
+        frag = parseExpression();
+                                statement.addChild(frag);
+        break;
+      default:
+        jj_la1[1] = jj_gen;
+        jj_consume_token(-1);
+        throw new ParseException();
+      }
+    }
+    jj_consume_token(0);
+      {if (true) return statement;}
+    throw new Error("Missing return statement in function");
+  }
+
+//
+// Parse an expression delimited by '{}'
+//
+  final public SqlFragment parseExpression() throws ParseException {
+    Token t, tt = null;
+    SqlFragment frag = null;
+    jj_consume_token(START_EXPRESSION);
+    label_2:
+    while (true) {
+      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+      case WHITESPACE:
+        ;
+        break;
+      default:
+        jj_la1[2] = jj_gen;
+        break label_2;
+      }
+      jj_consume_token(WHITESPACE);
+    }
+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+    case SQL_ESCAPE:
+    case SQL_SUBST:
+    case SQL_FN:
+      frag = parseSqlEscape();
+      break;
+    case JDBC_CALL:
+    case JDBC_RET:
+    case JDBC_DATE:
+    case JDBC_TIME:
+    case JDBC_TIMESTAMP:
+    case JDBC_FUNCTION:
+    case JDBC_ESCAPE:
+    case JDBC_OUTERJOIN:
+      frag = parseJdbcEscape();
+      break;
+    case IDENTIFIER:
+      t = jj_consume_token(IDENTIFIER);
+      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+      case REFLECT_SEP:
+        jj_consume_token(REFLECT_SEP);
+        tt = jj_consume_token(IDENTIFIER);
+        break;
+      default:
+        jj_la1[3] = jj_gen;
+        ;
+      }
+      jj_consume_token(END_EXPRESSION);
+                                                                         frag = new ReflectionFragment(t.image,(tt == null) ? null : tt.image);
+      break;
+    default:
+      jj_la1[4] = jj_gen;
+      jj_consume_token(-1);
+      throw new ParseException();
+    }
+    label_3:
+    while (true) {
+      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+      case WHITESPACE:
+        ;
+        break;
+      default:
+        jj_la1[5] = jj_gen;
+        break label_3;
+      }
+      jj_consume_token(WHITESPACE);
+    }
+     {if (true) return frag;}
+    throw new Error("Missing return statement in function");
+  }
+
+//
+// parse an sql: escape sequence
+//
+  final public SqlSubstitutionFragment parseSqlEscape() throws ParseException {
+    Token id1, id2;
+    Token t = null;
+    SqlSubstitutionFragment frag;
+    String func = null;
+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+    case SQL_ESCAPE:
+    case SQL_SUBST:
+      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+      case SQL_ESCAPE:
+        jj_consume_token(SQL_ESCAPE);
+        break;
+      case SQL_SUBST:
+        jj_consume_token(SQL_SUBST);
+        break;
+      default:
+        jj_la1[6] = jj_gen;
+        jj_consume_token(-1);
+        throw new ParseException();
+      }
+      t = jj_consume_token(IDENTIFIER);
+           if (t != null) {
+             frag = new SqlSubstitutionFragment(new ReflectionFragment(t.image));
+           } else {
+             frag = new SqlSubstitutionFragment(new LiteralFragment(func));
+           }
+      break;
+    case SQL_FN:
+      jj_consume_token(SQL_FN);
+      jj_consume_token(SQL_FN_NM);
+      jj_consume_token(SQL_FN_PAREN);
+      label_4:
+      while (true) {
+        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+        case SQL_FN_WHITESPACE:
+          ;
+          break;
+        default:
+          jj_la1[7] = jj_gen;
+          break label_4;
+        }
+        jj_consume_token(SQL_FN_WHITESPACE);
+      }
+      id1 = jj_consume_token(SQL_FN_IDENTIFIER);
+      label_5:
+      while (true) {
+        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+        case SQL_FN_WHITESPACE:
+          ;
+          break;
+        default:
+          jj_la1[8] = jj_gen;
+          break label_5;
+        }
+        jj_consume_token(SQL_FN_WHITESPACE);
+      }
+      jj_consume_token(SQL_FN_COMMA);
+      label_6:
+      while (true) {
+        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+        case SQL_FN_WHITESPACE:
+          ;
+          break;
+        default:
+          jj_la1[9] = jj_gen;
+          break label_6;
+        }
+        jj_consume_token(SQL_FN_WHITESPACE);
+      }
+      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+      case SQL_FN_PSTART:
+        t = jj_consume_token(SQL_FN_PSTART);
+        break;
+      default:
+        jj_la1[10] = jj_gen;
+        ;
+      }
+      id2 = jj_consume_token(SQL_FN_IDENTIFIER);
+      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+      case SQL_FN_PEND:
+        jj_consume_token(SQL_FN_PEND);
+        break;
+      default:
+        jj_la1[11] = jj_gen;
+        ;
+      }
+      label_7:
+      while (true) {
+        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+        case SQL_FN_WHITESPACE:
+          ;
+          break;
+        default:
+          jj_la1[12] = jj_gen;
+          break label_7;
+        }
+        jj_consume_token(SQL_FN_WHITESPACE);
+      }
+      jj_consume_token(SQL_FN_END);
+         if (t == null) {
+           frag = new SqlSubstitutionFragment(new LiteralFragment("(" + id1.image + " IN (" + id2.image + ")"));
+         } else {
+           frag = new SqlSubstitutionFragment(new LiteralFragment("(" + id1.image + " IN ("),
+                                        new ReflectionFragment(id2.image),
+                                        new LiteralFragment("))"));
+         }
+      break;
+    default:
+      jj_la1[13] = jj_gen;
+      jj_consume_token(-1);
+      throw new ParseException();
+    }
+    jj_consume_token(END_EXPRESSION);
+      {if (true) return frag;}
+    throw new Error("Missing return statement in function");
+  }
+
+//
+// parse a param sub inside of a jdbc escape
+//
+  final public SqlFragment parseReflect() throws ParseException {
+   Token t, tt = null;
+   SqlFragment frag;
+    jj_consume_token(JDBC_PARAM);
+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+    case PARAM_IDENTIFIER:
+      t = jj_consume_token(PARAM_IDENTIFIER);
+      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+      case PARAM_REFLECT_SEP:
+        jj_consume_token(PARAM_REFLECT_SEP);
+        tt = jj_consume_token(IDENTIFIER);
+        break;
+      default:
+        jj_la1[14] = jj_gen;
+        ;
+      }
+            frag = new ReflectionFragment(t.image, (tt == null) ? null : tt.image);
+      break;
+    case PARAM_LITERAL:
+      t = jj_consume_token(PARAM_LITERAL);
+              frag = new LiteralFragment(t.image);
+      break;
+    default:
+      jj_la1[15] = jj_gen;
+      jj_consume_token(-1);
+      throw new ParseException();
+    }
+    jj_consume_token(PARAM_END);
+      {if (true) return frag;}
+    throw new Error("Missing return statement in function");
+  }
+
+//
+// parse a jdbc escape sequence
+//
+  final public JdbcFragment parseJdbcEscape() throws ParseException {
+  Token lit, c;
+  JdbcFragment jfrag = new JdbcFragment();
+  jfrag.addChild(new LiteralFragment("{"));
+  SqlFragment frag = null;
+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+    case JDBC_CALL:
+      c = jj_consume_token(JDBC_CALL);
+      break;
+    case JDBC_RET:
+      c = jj_consume_token(JDBC_RET);
+      break;
+    case JDBC_DATE:
+      c = jj_consume_token(JDBC_DATE);
+      break;
+    case JDBC_ESCAPE:
+      c = jj_consume_token(JDBC_ESCAPE);
+      break;
+    case JDBC_FUNCTION:
+      c = jj_consume_token(JDBC_FUNCTION);
+      break;
+    case JDBC_TIME:
+      c = jj_consume_token(JDBC_TIME);
+      break;
+    case JDBC_TIMESTAMP:
+      c = jj_consume_token(JDBC_TIMESTAMP);
+      break;
+    case JDBC_OUTERJOIN:
+      c = jj_consume_token(JDBC_OUTERJOIN);
+      break;
+    default:
+      jj_la1[16] = jj_gen;
+      jj_consume_token(-1);
+      throw new ParseException();
+    }
+         jfrag.addChild(new LiteralFragment(c.image));
+    label_8:
+    while (true) {
+      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+      case JDBC_LIT:
+        lit = jj_consume_token(JDBC_LIT);
+                           jfrag.addChild(new LiteralFragment(lit.image));
+        break;
+      case JDBC_PARAM:
+        frag = parseReflect();
+                                  jfrag.addChild(frag);
+        break;
+      default:
+        jj_la1[17] = jj_gen;
+        jj_consume_token(-1);
+        throw new ParseException();
+      }
+      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+      case JDBC_LIT:
+      case JDBC_PARAM:
+        ;
+        break;
+      default:
+        jj_la1[18] = jj_gen;
+        break label_8;
+      }
+    }
+    jj_consume_token(JDBC_END);
+      jfrag.addChild(new LiteralFragment("}"));
+      {if (true) return jfrag;}
+    throw new Error("Missing return statement in function");
+  }
+
+  public SqlGrammarTokenManager token_source;
+  SimpleCharStream jj_input_stream;
+  public Token token, jj_nt;
+  private int jj_ntk;
+  private int jj_gen;
+  final private int[] jj_la1 = new int[19];
+  static private int[] jj_la1_0;
+  static private int[] jj_la1_1;
+  static {
+      jj_la1_0();
+      jj_la1_1();
+   }
+   private static void jj_la1_0() {
+      jj_la1_0 = new int[] {0xe,0xe,0x100000,0x100,0x2ffe00,0x100000,0x600,0x40000000,0x40000000,0x40000000,0x10000000,0x20000000,0x40000000,0xe00,0x0,0x0,0xff000,0x0,0x0,};
+   }
+   private static void jj_la1_1() {
+      jj_la1_1 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10,0x28,0x0,0x6,0x6,};
+   }
+
+  public SqlGrammar(java.io.InputStream stream) {
+    jj_input_stream = new SimpleCharStream(stream, 1, 1);
+    token_source = new SqlGrammarTokenManager(jj_input_stream);
+    token = new Token();
+    jj_ntk = -1;
+    jj_gen = 0;
+    for (int i = 0; i < 19; i++) jj_la1[i] = -1;
+  }
+
+  public void ReInit(java.io.InputStream stream) {
+    jj_input_stream.ReInit(stream, 1, 1);
+    token_source.ReInit(jj_input_stream);
+    token = new Token();
+    jj_ntk = -1;
+    jj_gen = 0;
+    for (int i = 0; i < 19; i++) jj_la1[i] = -1;
+  }
+
+  public SqlGrammar(java.io.Reader stream) {
+    jj_input_stream = new SimpleCharStream(stream, 1, 1);
+    token_source = new SqlGrammarTokenManager(jj_input_stream);
+    token = new Token();
+    jj_ntk = -1;
+    jj_gen = 0;
+    for (int i = 0; i < 19; i++) jj_la1[i] = -1;
+  }
+
+  public void ReInit(java.io.Reader stream) {
+    jj_input_stream.ReInit(stream, 1, 1);
+    token_source.ReInit(jj_input_stream);
+    token = new Token();
+    jj_ntk = -1;
+    jj_gen = 0;
+    for (int i = 0; i < 19; i++) jj_la1[i] = -1;
+  }
+
+  public SqlGrammar(SqlGrammarTokenManager tm) {
+    token_source = tm;
+    token = new Token();
+    jj_ntk = -1;
+    jj_gen = 0;
+    for (int i = 0; i < 19; i++) jj_la1[i] = -1;
+  }
+
+  public void ReInit(SqlGrammarTokenManager tm) {
+    token_source = tm;
+    token = new Token();
+    jj_ntk = -1;
+    jj_gen = 0;
+    for (int i = 0; i < 19; i++) jj_la1[i] = -1;
+  }
+
+  final private Token jj_consume_token(int kind) throws ParseException {
+    Token oldToken;
+    if ((oldToken = token).next != null) token = token.next;
+    else token = token.next = token_source.getNextToken();
+    jj_ntk = -1;
+    if (token.kind == kind) {
+      jj_gen++;
+      return token;
+    }
+    token = oldToken;
+    jj_kind = kind;
+    throw generateParseException();
+  }
+
+  final public Token getNextToken() {
+    if (token.next != null) token = token.next;
+    else token = token.next = token_source.getNextToken();
+    jj_ntk = -1;
+    jj_gen++;
+    return token;
+  }
+
+  final public Token getToken(int index) {
+    Token t = token;
+    for (int i = 0; i < index; i++) {
+      if (t.next != null) t = t.next;
+      else t = t.next = token_source.getNextToken();
+    }
+    return t;
+  }
+
+  final private int jj_ntk() {
+    if ((jj_nt=token.next) == null)
+      return (jj_ntk = (token.next=token_source.getNextToken()).kind);
+    else
+      return (jj_ntk = jj_nt.kind);
+  }
+
+  private java.util.Vector jj_expentries = new java.util.Vector();
+  private int[] jj_expentry;
+  private int jj_kind = -1;
+
+  public ParseException generateParseException() {
+    jj_expentries.removeAllElements();
+    boolean[] la1tokens = new boolean[39];
+    for (int i = 0; i < 39; i++) {
+      la1tokens[i] = false;
+    }
+    if (jj_kind >= 0) {
+      la1tokens[jj_kind] = true;
+      jj_kind = -1;
+    }
+    for (int i = 0; i < 19; i++) {
+      if (jj_la1[i] == jj_gen) {
+        for (int j = 0; j < 32; j++) {
+          if ((jj_la1_0[i] & (1<<j)) != 0) {
+            la1tokens[j] = true;
+          }
+          if ((jj_la1_1[i] & (1<<j)) != 0) {
+            la1tokens[32+j] = true;
+          }
+        }
+      }
+    }
+    for (int i = 0; i < 39; i++) {
+      if (la1tokens[i]) {
+        jj_expentry = new int[1];
+        jj_expentry[0] = i;
+        jj_expentries.addElement(jj_expentry);
+      }
+    }
+    int[][] exptokseq = new int[jj_expentries.size()][];
+    for (int i = 0; i < jj_expentries.size(); i++) {
+      exptokseq[i] = (int[])jj_expentries.elementAt(i);
+    }
+    return new ParseException(token, exptokseq, tokenImage);
+  }
+
+  final public void enable_tracing() {
+  }
+
+  final public void disable_tracing() {
+  }
+
+}

Propchange: incubator/beehive/trunk/system-controls/src/jdbc/org/apache/beehive/controls/system/jdbc/parser/SqlGrammar.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: incubator/beehive/trunk/system-controls/src/jdbc/org/apache/beehive/controls/system/jdbc/parser/SqlGrammar.jj
URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/system-controls/src/jdbc/org/apache/beehive/controls/system/jdbc/parser/SqlGrammar.jj?rev=190657&r1=190656&r2=190657&view=diff
==============================================================================
--- incubator/beehive/trunk/system-controls/src/jdbc/org/apache/beehive/controls/system/jdbc/parser/SqlGrammar.jj (original)
+++ incubator/beehive/trunk/system-controls/src/jdbc/org/apache/beehive/controls/system/jdbc/parser/SqlGrammar.jj Tue Jun 14 14:14:42 2005
@@ -1,314 +1,314 @@
-/*
- * Copyright 2005 The Apache Software Foundation.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * $Header:$
- */
-
-options {
-  STATIC = false;
-  UNICODE_INPUT = true;
-  DEBUG_TOKEN_MANAGER = false;
-  DEBUG_PARSER = false;
-}
-
-//
-// parser declarations
-//
-PARSER_BEGIN(SqlGrammar)
-
-package org.apache.beehive.controls.system.jdbc.parser;
-import java.io.StringReader;
-
-public class SqlGrammar
-{
-    private StringBuilder buffer = new StringBuilder();
-    public static void main(String[] args) throws Exception
-    {
-        SqlGrammar parser = new SqlGrammar(new StringReader(args[0]));
-        SqlStatement statement = parser.parse();
-        System.out.println(statement.toString());
-    }
-}
-
-PARSER_END(SqlGrammar)
-
-//
-// token mgr decls
-//
-TOKEN_MGR_DECLS : { }
-
-//
-// default token mgr state -- just collect anything until a { or ' is read
-//
-<DEFAULT> TOKEN:
-{
-        < NON_EXPRESSION_TEXT : (~["{","}","'"])+ >
-      | < START_EXPRESSION    : "{"> : IN_EXPRESSION
-      | < SQUOTE              : "'"> : IN_LITERAL
-}
-
-//
-// this token mgr state is used to skip over literal values which occur in non_expression_text,
-// they need to be skipped in this state since they may contain a '{}' which needs to be ignored.
-//
-<IN_LITERAL> TOKEN:
-{
-       <STRING_LITERAL :  (((~["'", "\\", "\n", "\r"])|<ECMA_ESCAPE_SEQUENCE>)* "'") > : DEFAULT
-     | <#ECMA_ESCAPE_SEQUENCE: "\\" |
-       (
-        ["n", "t", "b", "r", "f", "\\", "\""] |
-        ["0"-"7"] (["0"-"7"])? |
-        ["0"-"3"] ["0"-"7"] ["0"-"7"] |
-        ["x","X"] <HIT> <HIT> |
-        ["u","U"] <HIT> <HIT> <HIT> <HIT>
-       )
-      >
-     | <#HIT: ["0"-"9","a"-"f","A"-"F"] >
-}
-
-//
-// state for parse db control sql expressions, delimited by {}
-//
-<IN_EXPRESSION> TOKEN:
-{
-       <END_EXPRESSION : "}" > { SwitchTo(DEFAULT); }
-     | <REFLECT_SEP    : "|">
-     | <SQL_ESCAPE     : "sql: ">
-     | <SQL_SUBST      : "sql:subst ">
-     | <SQL_FN         : "sql:fn "> : IN_SQLFN
-     | <JDBC_CALL      : "call "> : IN_JDBC
-     | <JDBC_RET       : "?= "|"?="|"? ="> : IN_JDBC
-     | <JDBC_DATE      : "d "> : IN_JDBC
-     | <JDBC_TIME      : "t "> : IN_JDBC
-     | <JDBC_TIMESTAMP : "ts "> : IN_JDBC
-     | <JDBC_FUNCTION  : "fn "> : IN_JDBC
-     | <JDBC_ESCAPE    : "escape "> : IN_JDBC
-     | <JDBC_OUTERJOIN : "oj "> : IN_JDBC
-     | <WHITESPACE     : " " | "\t" | "\r" | "\n">
-     | <IDENTIFIER     : (<LETTER>) (<LETTER>|<DIGIT>|".")* >
-     | < #LETTER       :
-        [
-          "\u0024",
-          "\u0041"-"\u005a",
-          "\u005f",
-          "\u0061"-"\u007a",
-          "\u00c0"-"\u00d6",
-          "\u00d8"-"\u00f6",
-          "\u00f8"-"\u00ff",
-          "\u0100"-"\u1fff",
-          "\u3040"-"\u318f",
-          "\u3300"-"\u337f",
-          "\u3400"-"\u3d2d",
-          "\u4e00"-"\u9fff",
-          "\uf900"-"\ufaff"
-       ]
-      >
-    | < #DIGIT        :
-       [
-         "\u0030"-"\u0039",
-         "\u0660"-"\u0669",
-         "\u06f0"-"\u06f9",
-         "\u0966"-"\u096f",
-         "\u09e6"-"\u09ef",
-         "\u0a66"-"\u0a6f",
-         "\u0ae6"-"\u0aef",
-         "\u0b66"-"\u0b6f",
-         "\u0be7"-"\u0bef",
-         "\u0c66"-"\u0c6f",
-         "\u0ce6"-"\u0cef",
-         "\u0d66"-"\u0d6f",
-         "\u0e50"-"\u0e59",
-         "\u0ed0"-"\u0ed9",
-         "\u1040"-"\u1049"
-       ]
-      >
-}
-
-//
-// special state for the sql:fn constuct
-//
-<IN_SQLFN> TOKEN:
-{
-     <SQL_FN_END        : ")" > : IN_EXPRESSION
-   | <SQL_FN_NM         : "in">
-   | <SQL_FN_PAREN      : "(">
-   | <SQL_FN_COMMA      : ",">
-   | <SQL_FN_PSTART     : <START_EXPRESSION>>
-   | <SQL_FN_PEND       : <END_EXPRESSION>>
-   | <SQL_FN_WHITESPACE : <WHITESPACE>>
-   | <SQL_FN_IDENTIFIER : <IDENTIFIER> >
-}
-
-<IN_JDBC> TOKEN:
-{
-     <JDBC_END          : <END_EXPRESSION> > { SwitchTo(DEFAULT); }
-   | <JDBC_LIT          : (~["{","}"])+ >
-   | <JDBC_PARAM        : <START_EXPRESSION> > : IN_PARAM
-}
-
-<IN_PARAM> TOKEN:
-{
-     <PARAM_IDENTIFIER  : <IDENTIFIER> >
-   | <PARAM_REFLECT_SEP : <REFLECT_SEP> >
-   | <PARAM_LITERAL     : ("'" ((~["'",  "\\", "\n", "\r"])|<ECMA_ESCAPE_SEQUENCE>)* "'") >
-   | <PARAM_END         : <END_EXPRESSION> > { SwitchTo(IN_JDBC); }
-}
-
-
-//
-// Parse methods
-//
-
-
-//
-// Main parse method
-//
-SqlStatement parse() :
-{
-    SqlStatement statement = new SqlStatement();
-    SqlFragment frag;
-    Token t, sq;
-}
-{
-    (
-     (
-       (t=<NON_EXPRESSION_TEXT> {statement.addChild(new LiteralFragment(t.image));})
-      |
-       (sq=<SQUOTE>t=<STRING_LITERAL> {statement.addChild(new LiteralFragment(sq.image + t.image));})
-      |
-       (frag=parseExpression() {statement.addChild(frag);})
-     )
-    )* <EOF>
-
-    {
-      return statement;
-    }
-}
-
-//
-// Parse an expression delimited by '{}'
-//
-SqlFragment parseExpression() :
-{
-    Token t, tt = null;
-    SqlFragment frag = null;
-}
-{
-    <START_EXPRESSION>(<WHITESPACE>)*
-    (
-     frag = parseSqlEscape()
-     | frag = parseJdbcEscape()
-     | (t=<IDENTIFIER> (<REFLECT_SEP>tt=<IDENTIFIER>)? <END_EXPRESSION> {frag = new ReflectionFragment(t.image,(tt == null) ? null : tt.image);})
-    )
-    (<WHITESPACE>)*
-    //<END_EXPRESSION>
-
-    {
-     return frag;
-    }
-}
-
-//
-// parse an sql: escape sequence
-//
-SqlSubstitutionFragment parseSqlEscape() :
-{
-    Token id1, id2; 
-    Token t = null;
-    SqlSubstitutionFragment frag;
-    String func = null;
-}
-{
-(
-    (
-     (
-      (<SQL_ESCAPE> | <SQL_SUBST>) t=<IDENTIFIER>)
-         {
-           if (t != null) {
-             frag = new SqlSubstitutionFragment(new ReflectionFragment(t.image));
-           } else {
-             frag = new SqlSubstitutionFragment(new LiteralFragment(func));
-           }
-         }
-     )
-    |
-     (
-      (
-       <SQL_FN> <SQL_FN_NM> <SQL_FN_PAREN> (<SQL_FN_WHITESPACE>)* id1=<SQL_FN_IDENTIFIER> (<SQL_FN_WHITESPACE>)*
-        <SQL_FN_COMMA> (<SQL_FN_WHITESPACE>)* (t=<SQL_FN_PSTART>)? id2=<SQL_FN_IDENTIFIER> (<SQL_FN_PEND>)?
-        (<SQL_FN_WHITESPACE>)* <SQL_FN_END>
-      )
-       {
-         if (t == null) {
-           frag = new SqlSubstitutionFragment(new LiteralFragment("(" + id1.image + " IN (" + id2.image + ")"));
-         } else {
-           frag = new SqlSubstitutionFragment(new LiteralFragment("(" + id1.image + " IN ("),
-                                        new ReflectionFragment(id2.image),
-                                        new LiteralFragment("))"));
-         }
-       }
-     )
-) <END_EXPRESSION>
-
-    { return frag; } 
-}
-
-//
-// parse a param sub inside of a jdbc escape
-//
-SqlFragment parseReflect() :
-{
-   Token t, tt = null;
-   SqlFragment frag;
-} 
-{
-     <JDBC_PARAM>
-       (((t=<PARAM_IDENTIFIER>)(<PARAM_REFLECT_SEP>tt=<IDENTIFIER>)?
-          { frag = new ReflectionFragment(t.image, (tt == null) ? null : tt.image); })
-          
-       |
-        ((t=<PARAM_LITERAL>)
-            { frag = new LiteralFragment(t.image); }))
-     <PARAM_END>
-
-     {return frag;}
-}
-
-//
-// parse a jdbc escape sequence
-//
-JdbcFragment parseJdbcEscape() :
-{
-  Token lit, c;
-  JdbcFragment jfrag = new JdbcFragment();
-  jfrag.addChild(new LiteralFragment("{"));
-  SqlFragment frag = null;
-}
-
-{
-     (c=<JDBC_CALL>|c=<JDBC_RET>|c=<JDBC_DATE>|c=<JDBC_ESCAPE>|c=<JDBC_FUNCTION>|c=<JDBC_TIME>|c=<JDBC_TIMESTAMP>|c=<JDBC_OUTERJOIN>)
-        {jfrag.addChild(new LiteralFragment(c.image));}
-       (
-          (lit=<JDBC_LIT> {jfrag.addChild(new LiteralFragment(lit.image));}
-        | (frag=parseReflect()) { jfrag.addChild(frag);})
-       )+
-      <JDBC_END>
-
-    {
-      jfrag.addChild(new LiteralFragment("}"));
-      return jfrag;
-    }
-}
-
+/*
+ * Copyright 2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * $Header:$
+ */
+
+options {
+  STATIC = false;
+  UNICODE_INPUT = true;
+  DEBUG_TOKEN_MANAGER = false;
+  DEBUG_PARSER = false;
+}
+
+//
+// parser declarations
+//
+PARSER_BEGIN(SqlGrammar)
+
+package org.apache.beehive.controls.system.jdbc.parser;
+import java.io.StringReader;
+
+public class SqlGrammar
+{
+    private StringBuilder buffer = new StringBuilder();
+    public static void main(String[] args) throws Exception
+    {
+        SqlGrammar parser = new SqlGrammar(new StringReader(args[0]));
+        SqlStatement statement = parser.parse();
+        System.out.println(statement.toString());
+    }
+}
+
+PARSER_END(SqlGrammar)
+
+//
+// token mgr decls
+//
+TOKEN_MGR_DECLS : { }
+
+//
+// default token mgr state -- just collect anything until a { or ' is read
+//
+<DEFAULT> TOKEN:
+{
+        < NON_EXPRESSION_TEXT : (~["{","}","'"])+ >
+      | < START_EXPRESSION    : "{"> : IN_EXPRESSION
+      | < SQUOTE              : "'"> : IN_LITERAL
+}
+
+//
+// this token mgr state is used to skip over literal values which occur in non_expression_text,
+// they need to be skipped in this state since they may contain a '{}' which needs to be ignored.
+//
+<IN_LITERAL> TOKEN:
+{
+       <STRING_LITERAL :  (((~["'", "\\", "\n", "\r"])|<ECMA_ESCAPE_SEQUENCE>)* "'") > : DEFAULT
+     | <#ECMA_ESCAPE_SEQUENCE: "\\" |
+       (
+        ["n", "t", "b", "r", "f", "\\", "\""] |
+        ["0"-"7"] (["0"-"7"])? |
+        ["0"-"3"] ["0"-"7"] ["0"-"7"] |
+        ["x","X"] <HIT> <HIT> |
+        ["u","U"] <HIT> <HIT> <HIT> <HIT>
+       )
+      >
+     | <#HIT: ["0"-"9","a"-"f","A"-"F"] >
+}
+
+//
+// state for parse db control sql expressions, delimited by {}
+//
+<IN_EXPRESSION> TOKEN:
+{
+       <END_EXPRESSION : "}" > { SwitchTo(DEFAULT); }
+     | <REFLECT_SEP    : "|">
+     | <SQL_ESCAPE     : "sql: ">
+     | <SQL_SUBST      : "sql:subst ">
+     | <SQL_FN         : "sql:fn "> : IN_SQLFN
+     | <JDBC_CALL      : "call "> : IN_JDBC
+     | <JDBC_RET       : "?= "|"?="|"? ="> : IN_JDBC
+     | <JDBC_DATE      : "d "> : IN_JDBC
+     | <JDBC_TIME      : "t "> : IN_JDBC
+     | <JDBC_TIMESTAMP : "ts "> : IN_JDBC
+     | <JDBC_FUNCTION  : "fn "> : IN_JDBC
+     | <JDBC_ESCAPE    : "escape "> : IN_JDBC
+     | <JDBC_OUTERJOIN : "oj "> : IN_JDBC
+     | <WHITESPACE     : " " | "\t" | "\r" | "\n">
+     | <IDENTIFIER     : (<LETTER>) (<LETTER>|<DIGIT>|".")* >
+     | < #LETTER       :
+        [
+          "\u0024",
+          "\u0041"-"\u005a",
+          "\u005f",
+          "\u0061"-"\u007a",
+          "\u00c0"-"\u00d6",
+          "\u00d8"-"\u00f6",
+          "\u00f8"-"\u00ff",
+          "\u0100"-"\u1fff",
+          "\u3040"-"\u318f",
+          "\u3300"-"\u337f",
+          "\u3400"-"\u3d2d",
+          "\u4e00"-"\u9fff",
+          "\uf900"-"\ufaff"
+       ]
+      >
+    | < #DIGIT        :
+       [
+         "\u0030"-"\u0039",
+         "\u0660"-"\u0669",
+         "\u06f0"-"\u06f9",
+         "\u0966"-"\u096f",
+         "\u09e6"-"\u09ef",
+         "\u0a66"-"\u0a6f",
+         "\u0ae6"-"\u0aef",
+         "\u0b66"-"\u0b6f",
+         "\u0be7"-"\u0bef",
+         "\u0c66"-"\u0c6f",
+         "\u0ce6"-"\u0cef",
+         "\u0d66"-"\u0d6f",
+         "\u0e50"-"\u0e59",
+         "\u0ed0"-"\u0ed9",
+         "\u1040"-"\u1049"
+       ]
+      >
+}
+
+//
+// special state for the sql:fn constuct
+//
+<IN_SQLFN> TOKEN:
+{
+     <SQL_FN_END        : ")" > : IN_EXPRESSION
+   | <SQL_FN_NM         : "in">
+   | <SQL_FN_PAREN      : "(">
+   | <SQL_FN_COMMA      : ",">
+   | <SQL_FN_PSTART     : <START_EXPRESSION>>
+   | <SQL_FN_PEND       : <END_EXPRESSION>>
+   | <SQL_FN_WHITESPACE : <WHITESPACE>>
+   | <SQL_FN_IDENTIFIER : <IDENTIFIER> >
+}
+
+<IN_JDBC> TOKEN:
+{
+     <JDBC_END          : <END_EXPRESSION> > { SwitchTo(DEFAULT); }
+   | <JDBC_LIT          : (~["{","}"])+ >
+   | <JDBC_PARAM        : <START_EXPRESSION> > : IN_PARAM
+}
+
+<IN_PARAM> TOKEN:
+{
+     <PARAM_IDENTIFIER  : <IDENTIFIER> >
+   | <PARAM_REFLECT_SEP : <REFLECT_SEP> >
+   | <PARAM_LITERAL     : ("'" ((~["'",  "\\", "\n", "\r"])|<ECMA_ESCAPE_SEQUENCE>)* "'") >
+   | <PARAM_END         : <END_EXPRESSION> > { SwitchTo(IN_JDBC); }
+}
+
+
+//
+// Parse methods
+//
+
+
+//
+// Main parse method
+//
+SqlStatement parse() :
+{
+    SqlStatement statement = new SqlStatement();
+    SqlFragment frag;
+    Token t, sq;
+}
+{
+    (
+     (
+       (t=<NON_EXPRESSION_TEXT> {statement.addChild(new LiteralFragment(t.image));})
+      |
+       (sq=<SQUOTE>t=<STRING_LITERAL> {statement.addChild(new LiteralFragment(sq.image + t.image));})
+      |
+       (frag=parseExpression() {statement.addChild(frag);})
+     )
+    )* <EOF>
+
+    {
+      return statement;
+    }
+}
+
+//
+// Parse an expression delimited by '{}'
+//
+SqlFragment parseExpression() :
+{
+    Token t, tt = null;
+    SqlFragment frag = null;
+}
+{
+    <START_EXPRESSION>(<WHITESPACE>)*
+    (
+     frag = parseSqlEscape()
+     | frag = parseJdbcEscape()
+     | (t=<IDENTIFIER> (<REFLECT_SEP>tt=<IDENTIFIER>)? <END_EXPRESSION> {frag = new ReflectionFragment(t.image,(tt == null) ? null : tt.image);})
+    )
+    (<WHITESPACE>)*
+    //<END_EXPRESSION>
+
+    {
+     return frag;
+    }
+}
+
+//
+// parse an sql: escape sequence
+//
+SqlSubstitutionFragment parseSqlEscape() :
+{
+    Token id1, id2; 
+    Token t = null;
+    SqlSubstitutionFragment frag;
+    String func = null;
+}
+{
+(
+    (
+     (
+      (<SQL_ESCAPE> | <SQL_SUBST>) t=<IDENTIFIER>)
+         {
+           if (t != null) {
+             frag = new SqlSubstitutionFragment(new ReflectionFragment(t.image));
+           } else {
+             frag = new SqlSubstitutionFragment(new LiteralFragment(func));
+           }
+         }
+     )
+    |
+     (
+      (
+       <SQL_FN> <SQL_FN_NM> <SQL_FN_PAREN> (<SQL_FN_WHITESPACE>)* id1=<SQL_FN_IDENTIFIER> (<SQL_FN_WHITESPACE>)*
+        <SQL_FN_COMMA> (<SQL_FN_WHITESPACE>)* (t=<SQL_FN_PSTART>)? id2=<SQL_FN_IDENTIFIER> (<SQL_FN_PEND>)?
+        (<SQL_FN_WHITESPACE>)* <SQL_FN_END>
+      )
+       {
+         if (t == null) {
+           frag = new SqlSubstitutionFragment(new LiteralFragment("(" + id1.image + " IN (" + id2.image + ")"));
+         } else {
+           frag = new SqlSubstitutionFragment(new LiteralFragment("(" + id1.image + " IN ("),
+                                        new ReflectionFragment(id2.image),
+                                        new LiteralFragment("))"));
+         }
+       }
+     )
+) <END_EXPRESSION>
+
+    { return frag; } 
+}
+
+//
+// parse a param sub inside of a jdbc escape
+//
+SqlFragment parseReflect() :
+{
+   Token t, tt = null;
+   SqlFragment frag;
+} 
+{
+     <JDBC_PARAM>
+       (((t=<PARAM_IDENTIFIER>)(<PARAM_REFLECT_SEP>tt=<IDENTIFIER>)?
+          { frag = new ReflectionFragment(t.image, (tt == null) ? null : tt.image); })
+          
+       |
+        ((t=<PARAM_LITERAL>)
+            { frag = new LiteralFragment(t.image); }))
+     <PARAM_END>
+
+     {return frag;}
+}
+
+//
+// parse a jdbc escape sequence
+//
+JdbcFragment parseJdbcEscape() :
+{
+  Token lit, c;
+  JdbcFragment jfrag = new JdbcFragment();
+  jfrag.addChild(new LiteralFragment("{"));
+  SqlFragment frag = null;
+}
+
+{
+     (c=<JDBC_CALL>|c=<JDBC_RET>|c=<JDBC_DATE>|c=<JDBC_ESCAPE>|c=<JDBC_FUNCTION>|c=<JDBC_TIME>|c=<JDBC_TIMESTAMP>|c=<JDBC_OUTERJOIN>)
+        {jfrag.addChild(new LiteralFragment(c.image));}
+       (
+          (lit=<JDBC_LIT> {jfrag.addChild(new LiteralFragment(lit.image));}
+        | (frag=parseReflect()) { jfrag.addChild(frag);})
+       )+
+      <JDBC_END>
+
+    {
+      jfrag.addChild(new LiteralFragment("}"));
+      return jfrag;
+    }
+}
+

Propchange: incubator/beehive/trunk/system-controls/src/jdbc/org/apache/beehive/controls/system/jdbc/parser/SqlGrammar.jj
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: incubator/beehive/trunk/system-controls/src/jdbc/org/apache/beehive/controls/system/jdbc/parser/SqlGrammarConstants.java
URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/system-controls/src/jdbc/org/apache/beehive/controls/system/jdbc/parser/SqlGrammarConstants.java?rev=190657&r1=190656&r2=190657&view=diff
==============================================================================
--- incubator/beehive/trunk/system-controls/src/jdbc/org/apache/beehive/controls/system/jdbc/parser/SqlGrammarConstants.java (original)
+++ incubator/beehive/trunk/system-controls/src/jdbc/org/apache/beehive/controls/system/jdbc/parser/SqlGrammarConstants.java Tue Jun 14 14:14:42 2005
@@ -1,95 +1,95 @@
-/* Generated By:JavaCC: Do not edit this line. SqlGrammarConstants.java */
-package org.apache.beehive.controls.system.jdbc.parser;
-
-public interface SqlGrammarConstants {
-
-  int EOF = 0;
-  int NON_EXPRESSION_TEXT = 1;
-  int START_EXPRESSION = 2;
-  int SQUOTE = 3;
-  int STRING_LITERAL = 4;
-  int ECMA_ESCAPE_SEQUENCE = 5;
-  int HIT = 6;
-  int END_EXPRESSION = 7;
-  int REFLECT_SEP = 8;
-  int SQL_ESCAPE = 9;
-  int SQL_SUBST = 10;
-  int SQL_FN = 11;
-  int JDBC_CALL = 12;
-  int JDBC_RET = 13;
-  int JDBC_DATE = 14;
-  int JDBC_TIME = 15;
-  int JDBC_TIMESTAMP = 16;
-  int JDBC_FUNCTION = 17;
-  int JDBC_ESCAPE = 18;
-  int JDBC_OUTERJOIN = 19;
-  int WHITESPACE = 20;
-  int IDENTIFIER = 21;
-  int LETTER = 22;
-  int DIGIT = 23;
-  int SQL_FN_END = 24;
-  int SQL_FN_NM = 25;
-  int SQL_FN_PAREN = 26;
-  int SQL_FN_COMMA = 27;
-  int SQL_FN_PSTART = 28;
-  int SQL_FN_PEND = 29;
-  int SQL_FN_WHITESPACE = 30;
-  int SQL_FN_IDENTIFIER = 31;
-  int JDBC_END = 32;
-  int JDBC_LIT = 33;
-  int JDBC_PARAM = 34;
-  int PARAM_IDENTIFIER = 35;
-  int PARAM_REFLECT_SEP = 36;
-  int PARAM_LITERAL = 37;
-  int PARAM_END = 38;
-
-  int DEFAULT = 0;
-  int IN_LITERAL = 1;
-  int IN_EXPRESSION = 2;
-  int IN_SQLFN = 3;
-  int IN_JDBC = 4;
-  int IN_PARAM = 5;
-
-  String[] tokenImage = {
-    "<EOF>",
-    "<NON_EXPRESSION_TEXT>",
-    "\"{\"",
-    "\"\\\'\"",
-    "<STRING_LITERAL>",
-    "<ECMA_ESCAPE_SEQUENCE>",
-    "<HIT>",
-    "\"}\"",
-    "\"|\"",
-    "\"sql: \"",
-    "\"sql:subst \"",
-    "\"sql:fn \"",
-    "\"call \"",
-    "<JDBC_RET>",
-    "\"d \"",
-    "\"t \"",
-    "\"ts \"",
-    "\"fn \"",
-    "\"escape \"",
-    "\"oj \"",
-    "<WHITESPACE>",
-    "<IDENTIFIER>",
-    "<LETTER>",
-    "<DIGIT>",
-    "\")\"",
-    "\"in\"",
-    "\"(\"",
-    "\",\"",
-    "<SQL_FN_PSTART>",
-    "<SQL_FN_PEND>",
-    "<SQL_FN_WHITESPACE>",
-    "<SQL_FN_IDENTIFIER>",
-    "<JDBC_END>",
-    "<JDBC_LIT>",
-    "<JDBC_PARAM>",
-    "<PARAM_IDENTIFIER>",
-    "<PARAM_REFLECT_SEP>",
-    "<PARAM_LITERAL>",
-    "<PARAM_END>",
-  };
-
-}
+/* Generated By:JavaCC: Do not edit this line. SqlGrammarConstants.java */
+package org.apache.beehive.controls.system.jdbc.parser;
+
+public interface SqlGrammarConstants {
+
+  int EOF = 0;
+  int NON_EXPRESSION_TEXT = 1;
+  int START_EXPRESSION = 2;
+  int SQUOTE = 3;
+  int STRING_LITERAL = 4;
+  int ECMA_ESCAPE_SEQUENCE = 5;
+  int HIT = 6;
+  int END_EXPRESSION = 7;
+  int REFLECT_SEP = 8;
+  int SQL_ESCAPE = 9;
+  int SQL_SUBST = 10;
+  int SQL_FN = 11;
+  int JDBC_CALL = 12;
+  int JDBC_RET = 13;
+  int JDBC_DATE = 14;
+  int JDBC_TIME = 15;
+  int JDBC_TIMESTAMP = 16;
+  int JDBC_FUNCTION = 17;
+  int JDBC_ESCAPE = 18;
+  int JDBC_OUTERJOIN = 19;
+  int WHITESPACE = 20;
+  int IDENTIFIER = 21;
+  int LETTER = 22;
+  int DIGIT = 23;
+  int SQL_FN_END = 24;
+  int SQL_FN_NM = 25;
+  int SQL_FN_PAREN = 26;
+  int SQL_FN_COMMA = 27;
+  int SQL_FN_PSTART = 28;
+  int SQL_FN_PEND = 29;
+  int SQL_FN_WHITESPACE = 30;
+  int SQL_FN_IDENTIFIER = 31;
+  int JDBC_END = 32;
+  int JDBC_LIT = 33;
+  int JDBC_PARAM = 34;
+  int PARAM_IDENTIFIER = 35;
+  int PARAM_REFLECT_SEP = 36;
+  int PARAM_LITERAL = 37;
+  int PARAM_END = 38;
+
+  int DEFAULT = 0;
+  int IN_LITERAL = 1;
+  int IN_EXPRESSION = 2;
+  int IN_SQLFN = 3;
+  int IN_JDBC = 4;
+  int IN_PARAM = 5;
+
+  String[] tokenImage = {
+    "<EOF>",
+    "<NON_EXPRESSION_TEXT>",
+    "\"{\"",
+    "\"\\\'\"",
+    "<STRING_LITERAL>",
+    "<ECMA_ESCAPE_SEQUENCE>",
+    "<HIT>",
+    "\"}\"",
+    "\"|\"",
+    "\"sql: \"",
+    "\"sql:subst \"",
+    "\"sql:fn \"",
+    "\"call \"",
+    "<JDBC_RET>",
+    "\"d \"",
+    "\"t \"",
+    "\"ts \"",
+    "\"fn \"",
+    "\"escape \"",
+    "\"oj \"",
+    "<WHITESPACE>",
+    "<IDENTIFIER>",
+    "<LETTER>",
+    "<DIGIT>",
+    "\")\"",
+    "\"in\"",
+    "\"(\"",
+    "\",\"",
+    "<SQL_FN_PSTART>",
+    "<SQL_FN_PEND>",
+    "<SQL_FN_WHITESPACE>",
+    "<SQL_FN_IDENTIFIER>",
+    "<JDBC_END>",
+    "<JDBC_LIT>",
+    "<JDBC_PARAM>",
+    "<PARAM_IDENTIFIER>",
+    "<PARAM_REFLECT_SEP>",
+    "<PARAM_LITERAL>",
+    "<PARAM_END>",
+  };
+
+}

Propchange: incubator/beehive/trunk/system-controls/src/jdbc/org/apache/beehive/controls/system/jdbc/parser/SqlGrammarConstants.java
------------------------------------------------------------------------------
    svn:eol-style = native