Return-Path: Delivered-To: apmail-jakarta-avalon-cvs-archive@apache.org Received: (qmail 37827 invoked from network); 29 Nov 2001 20:38:30 -0000 Received: from unknown (HELO nagoya.betaversion.org) (192.18.49.131) by daedalus.apache.org with SMTP; 29 Nov 2001 20:38:30 -0000 Received: (qmail 6170 invoked by uid 97); 29 Nov 2001 20:38:30 -0000 Delivered-To: qmlist-jakarta-archive-avalon-cvs@jakarta.apache.org Received: (qmail 6114 invoked by uid 97); 29 Nov 2001 20:38:28 -0000 Mailing-List: contact avalon-cvs-help@jakarta.apache.org; run by ezmlm Precedence: bulk List-Unsubscribe: List-Subscribe: List-Help: List-Post: List-Id: "Avalon CVS List" Reply-To: "Avalon Developers List" Delivered-To: mailing list avalon-cvs@jakarta.apache.org Received: (qmail 6079 invoked by uid 97); 29 Nov 2001 20:38:28 -0000 Date: 29 Nov 2001 20:21:06 -0000 Message-ID: <20011129202106.42264.qmail@icarus.apache.org> From: froehlich@apache.org To: jakarta-avalon-cornerstone-cvs@apache.org Subject: cvs commit: jakarta-avalon-cornerstone/apps/db/src/sql/javacc BasicSQLParser.jj X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N froehlich 01/11/29 12:21:06 Modified: apps/db/src/sql/javacc BasicSQLParser.jj Log: hacking the "where clause" again Revision Changes Path 1.4 +89 -22 jakarta-avalon-cornerstone/apps/db/src/sql/javacc/BasicSQLParser.jj Index: BasicSQLParser.jj =================================================================== RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/db/src/sql/javacc/BasicSQLParser.jj,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- BasicSQLParser.jj 2001/11/29 13:31:11 1.3 +++ BasicSQLParser.jj 2001/11/29 20:21:06 1.4 @@ -115,6 +115,9 @@ | | | + | + | + | } TOKEN [IGNORE_CASE] : { /* Operators */ @@ -132,6 +135,22 @@ | <#DIGIT: ["0"-"9"]> } +TOKEN : { /* Literals */ + + < INTEGER_LITERAL: (["0"-"9"])+ > + | < FLOATING_POINT_LITERAL: + (["0"-"9"])+ "." (["0"-"9"])+ ()? + | "." (["0"-"9"])+ ()? + | (["0"-"9"])+ + | (["0"-"9"])+ ()? + > + | < #EXPONENT: ["e","E"] (["+","-"])? (["0"-"9"])+ > + | < STRING_LITERAL: "'" (~["'"])* ( "''" (~["'"])* )* "'" > +} + + + + /** * Test Method for command line input */ @@ -160,7 +179,8 @@ | Commit() | Alter() */ - ) ";" + ) + ( ";" | ) { return stm; } } @@ -168,16 +188,15 @@ { String stm; Token token; - ArrayList columns = new ArrayList(); } { { stm = token.image; } - getColumns(columns) + { stm = "SELECT"; } + getColumns() - - [ Where() ] //process where + getTables() + [ Where() ] { return stm; } } @@ -188,10 +207,7 @@ } { - token = - { - stm = token.image; - } + { stm = "UPDATE"; } { return stm; } } @@ -240,30 +256,81 @@ void Where() : {} { - + + { + OrExpr(); + } } -void getColumns(ArrayList list) : +void OrExpr() : +{} { - String col; + AndExpr() + ( + AndExpr() + { System.out.println("in or"); } + )* } + + +void AndExpr() : +{} + { - col = getSingleColumn() { list.add(col); } + NotExpr() + ( + { System.out.println("in and"); } + NotExpr() )* } -String getSingleColumn() : -{ +void NotExpr() : +{} + +{ + [ + { System.out.println("in not"); } + ] + CompareExpr() +} + +void CompareExpr() : +{} + +{ + ( + { System.out.println("EQUAL"); } + | { System.out.println("GREATERTHAN"); } + | { System.out.println("SMALLERTHAN"); } + | { System.out.println("GREATERTHANOREQUAL"); } + | { System.out.println("SMALLERTHANOREQUAL"); } + | { System.out.println("LIKE"); } + ) +} + + + +void getColumns() : +{ String col; Token column; } +{ + ( "*" { System.out.println("all columns"); } ) + | + column = {System.out.println("column=" + column.image); } + ( "," { System.out.println(",");} + column = {System.out.println("column=" + column.image); } )* +} +void getTables() : +{ + String tab; + Token table; +} { + table = {System.out.println("table=" + table.image); } + ( "," { System.out.println(",");} + table = {System.out.println("table=" + table.image); } )* - column = - { - col = column.image; - System.out.println("column=" + col); - } - { return col; } } -- To unsubscribe, e-mail: For additional commands, e-mail: