User: norbert 
  Date: 00/05/19 19:12:18

  Modified:    src/java/org/spyderMQ/selectors Operator.java parser.java
                        parserval.java
  Log:
  Finished with the parser / lexer.
  Work still remains for Operator class
  
  Revision  Changes    Path
  1.3       +51 -5     spyderMQ/src/java/org/spyderMQ/selectors/Operator.java
  
  Index: Operator.java
  ===================================================================
  RCS file: 
/products/cvs/ejboss/spyderMQ/src/java/org/spyderMQ/selectors/Operator.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- Operator.java     2000/05/19 19:28:25     1.2
  +++ Operator.java     2000/05/20 02:12:18     1.3
  @@ -11,23 +11,62 @@
    *      
    *   @author Norbert Lataille ([EMAIL PROTECTED])
    * 
  - *   @version $Revision: 1.2 $
  + *   @version $Revision: 1.3 $
    */
   public class Operator
   {
        int operation;
        Object oper1;
        Object oper2;
  +     Object oper3;
        
        public final static int EQUAL = 0;
  +     public final static int NOT = 1;
        public final static int AND = 2;
        public final static int OR = 3;
  +     public final static int GT = 4;
  +     public final static int GE = 5;
  +     public final static int LT = 6;
  +     public final static int LE = 7;
  +     public final static int DIFFERENT = 8;
  +     public final static int ADD = 9;
  +     public final static int SUB = 10;
  +     public final static int NEG = 11;
  +     public final static int MUL = 12;
  +     public final static int DIV = 13;
  +     public final static int BETWEEN = 14;
  +     public final static int NOT_BETWEEN = 15;
  +     public final static int LIKE = 16;
  +     public final static int NOT_LIKE = 17;
  +     public final static int LIKE_ESCAPE = 18;
  +     public final static int NOT_LIKE_ESCAPE = 19;
  +     public final static int IS_NULL = 20;
  +     public final static int IS_NOT_NULL = 21;
  +     public final static int IN = 22;
  +     public final static int NOT_IN = 23;
        
  +     public Operator(int operation, Object oper1, Object oper2, Object oper3)
  +     {
  +             this.operation=operation;
  +             this.oper1=oper1;
  +             this.oper2=oper2;               
  +             this.oper3=oper3;               
  +     }
  +
        public Operator(int operation, Object oper1, Object oper2)
        {
                this.operation=operation;
                this.oper1=oper1;
                this.oper2=oper2;               
  +             this.oper3=null;                
  +     }
  +
  +     public Operator(int operation, Object oper1)
  +     {
  +             this.operation=operation;
  +             this.oper1=oper1;
  +             this.oper2=null;                
  +             this.oper3=null;                
        }
   
        Object and() throws Exception
  @@ -131,10 +170,17 @@
                        st += ((Operator)oper1).print(nextLevel);
                } else st+=nextLevel+oper1.toString()+"\n";
   
  -             if (oper2==null) st+=nextLevel+"null\n";        
  -             else if (oper2 instanceof Operator) {
  -                     st += ((Operator)oper2).print(nextLevel);
  -             } else st+=nextLevel+oper2.toString()+"\n";
  +             if (oper2!=null) {
  +                     if (oper2 instanceof Operator) {
  +                             st += ((Operator)oper2).print(nextLevel);
  +                     } else st+=nextLevel+oper2.toString()+"\n";
  +             }
  +
  +             if (oper3!=null) {
  +                     if (oper3 instanceof Operator) {
  +                             st += ((Operator)oper3).print(nextLevel);
  +                     } else st+=nextLevel+oper3.toString()+"\n";
  +             }
   
                st+=level+")\n";
                
  
  
  
  1.3       +379 -118  spyderMQ/src/java/org/spyderMQ/selectors/parser.java
  
  Index: parser.java
  ===================================================================
  RCS file: /products/cvs/ejboss/spyderMQ/src/java/org/spyderMQ/selectors/parser.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- parser.java       2000/05/19 19:38:36     1.2
  +++ parser.java       2000/05/20 02:12:18     1.3
  @@ -6,14 +6,17 @@
   //### Please send bug reports to [EMAIL PROTECTED]
   //### static char yysccsid[] = "@(#)yaccpar  1.8 (Berkeley) 01/20/90";
   
  +
  +
   //#line 2 "jms.y"
   
   package org.spydermq.selectors;
   
   import java.util.StringTokenizer;
   import java.util.HashMap;
  +import java.util.HashSet;
   
  -//#line 17 "parser.java"
  +//#line 18 "parser.java"
   
   
   
  @@ -147,96 +150,241 @@
   }
   //#### end semantic value section ####
   public final static short IDENTIFIER=257;
  -public final static short OR=258;
  -public final static short AND=259;
  -public final static short EQUAL=260;
  +public final static short STRING=258;
  +public final static short DOUBLE=259;
  +public final static short LONG=260;
  +public final static short CST=261;
  +public final static short NOT=262;
  +public final static short EQUAL=263;
  +public final static short GT=264;
  +public final static short GE=265;
  +public final static short LT=266;
  +public final static short LE=267;
  +public final static short DIFFERENT=268;
  +public final static short NEG=269;
  +public final static short BETWEEN=270;
  +public final static short AND2=271;
  +public final static short ESCAPE=272;
  +public final static short LIKE=273;
  +public final static short NULL=274;
  +public final static short IN=275;
  +public final static short IS=276;
  +public final static short OR=277;
  +public final static short AND=278;
   public final static short YYERRCODE=256;
   final static short yylhs[] = {                           -1,
  -    0,    2,    2,    1,    1,    1,    1,
  +    0,    2,    2,    2,    2,    2,    2,    1,    1,    1,
  +    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  +    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  +    1,    1,    1,    3,    3,
   };
   final static short yylen[] = {                            2,
  -    2,    1,    3,    1,    3,    3,    3,
  +    2,    1,    1,    1,    1,    1,    3,    1,    3,    3,
  +    3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
  +    3,    4,    2,    2,    2,    5,    6,    3,    4,    5,
  +    6,    5,    6,    1,    3,
   };
   final static short yydefred[] = {                         0,
  -    2,    0,    0,    0,    4,    0,    0,    0,    0,    1,
  -    3,    0,    0,    7,
  -};
  -final static short yydgoto[] = {                          3,
  -    4,    5,
  +    2,    3,    4,    5,    6,    0,    0,    0,    0,    0,
  +    0,    8,    0,    0,    0,    0,    0,    0,    0,    0,
  +    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  +    0,    0,    0,    1,    7,    0,    0,    0,    0,    0,
  +    0,    0,    0,    0,    0,    0,    0,    0,   21,    0,
  +    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  +   34,    0,   22,    0,    0,    0,    0,    0,   32,    0,
  +    0,    0,   33,   35,
   };
  -final static short yysindex[] = {                       -33,
  -    0,  -33,    0,  -32,    0,  -41,  -33,  -33,  -33,    0,
  -    0, -258, -247,    0,
  +final static short yydgoto[] = {                         10,
  +   11,   12,   62,
  +};
  +final static short yysindex[] = {                       345,
  +    0,    0,    0,    0,    0,  345,  345,  345,  345,    0,
  +  160,    0, -254, -271, -271,   43, -263,  345,  345,  345,
  +  345,  345,  345,  345,  345,  -31, -259,  345,  345,  345,
  +  345,  345,  345,    0,    0,  345,  345,  -20,  144,  144,
  +  144,  144,  144,  144,  374,  129, -234, -249,    0,  431,
  +  448,  107,  107, -254, -254,  397,  455, -234,  345,  345,
  +    0,  -30,    0,  345,  345,  -28,  414,  414,    0, -232,
  +  414,  414,    0,    0,
   };
   final static short yyrindex[] = {                         0,
  +    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  +    0,    0,   -8,  -41,  -24,    0,    0,    0,    0,    0,
       0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  -    0,  -36,  -38,    0,
  +    0,    0,    0,    0,    0,    0,    0,    0,   84,   86,
  +   88,   96,  104,  121,    0,  109,    0,    0,    0,  174,
  +  137,   60,   76,    8,   24,    0,  126,    0,    0,    0,
  +    0,    0,    0,    0,    0,    0,   32,  176,    0,    0,
  +  271,  276,    0,    0,
   };
   final static short yygindex[] = {                         0,
  -    2,    0,
  +  497,    0,  -29,
   };
  -final static int YYTABLESIZE=228;
  -final static short yytable[] = {                         11,
  -    8,    9,    5,    6,    6,    5,    2,    6,   12,   13,
  -   14,   10,    9,    0,    0,    0,    0,    0,    0,    0,
  -    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  -    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  -    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  -    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  -    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  -    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  -    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  -    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  -    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  -    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  -    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  -    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  -    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  -    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  -    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  -    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  -    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  -    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  -    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  -    0,    0,    0,    0,    0,    0,    7,    8,    9,    5,
  -    5,    6,    0,    1,    0,    7,    8,    9,
  +final static int YYTABLESIZE=731;
  +final static short yytable[] = {                         25,
  +   25,   25,   48,   25,   27,   25,   36,   17,   47,   37,
  +   69,   38,   73,   70,   49,   70,   24,   24,   24,   58,
  +   24,   27,   24,   61,   63,   74,    0,    0,   66,    0,
  +    0,    0,   23,   23,   23,    0,   23,    0,   23,    0,
  +    0,    0,    0,    0,    0,    0,    0,    0,   11,   11,
  +   11,    0,   11,    0,   11,    0,    0,    0,    0,    0,
  +    0,    0,    0,    0,   12,   12,   12,    0,   12,    0,
  +   12,    0,   26,    0,    0,    0,    0,    0,    0,    0,
  +    0,    0,   25,   35,   32,   30,    0,   31,    0,   33,
  +    0,    0,    0,    0,    0,    0,    0,    0,    0,   24,
  +    9,    0,    9,    0,    9,    0,    0,    0,    0,    0,
  +    0,    0,    0,    0,    0,   23,   10,    0,   10,    0,
  +   10,    0,    0,    0,   15,    0,   16,    0,   17,    0,
  +    0,   11,    0,    0,    0,    0,   18,    0,    0,    0,
  +    0,    0,    0,    0,   19,    0,    0,   12,   32,   28,
  +    0,    0,    0,   33,    0,   26,    0,    0,    0,    0,
  +    0,   20,    0,    0,    0,    0,   29,    0,    0,    0,
  +   32,   30,    0,   31,    0,   33,    0,   13,    0,    0,
  +    0,    0,    0,    9,    0,   32,   30,    0,   31,    0,
  +   33,    0,    0,    0,    0,    0,    0,    0,    0,   10,
  +    0,   32,   30,    0,   31,    0,   33,   15,    0,   16,
  +    0,   17,    0,    0,   14,    0,   30,    0,    0,   18,
  +   25,   25,   25,   25,   25,   25,   25,   19,   25,   25,
  +   25,   25,   28,   25,    0,   25,   25,   24,   24,   24,
  +   24,   24,   24,   24,   20,   24,   24,   24,   24,   29,
  +   24,    0,   24,   24,   23,   23,   23,   23,   23,   23,
  +   13,   23,   23,   23,   23,    0,   23,    0,   23,   23,
  +   11,   11,   11,   11,   11,   11,    0,   11,   11,   11,
  +   11,    0,   11,   34,   11,   11,   12,   12,   12,   12,
  +   12,   12,    0,   12,   12,   12,   12,   14,   12,   30,
  +   12,   12,   26,   26,   17,   18,   19,   20,   21,   22,
  +   23,   27,   24,    0,    0,   25,   31,   26,   27,   28,
  +   29,    0,    9,    9,    9,    9,    9,    9,    0,    9,
  +    9,    9,    9,    0,    9,    0,    9,    9,   10,   10,
  +   10,   10,   10,   10,    0,   10,   10,   10,   10,    0,
  +   10,    0,   10,   10,   15,   15,   16,   16,   17,   17,
  +   15,   15,   16,   16,   17,   17,   18,   18,   17,    0,
  +    0,    0,   18,   18,   19,   19,    0,    0,    0,   28,
  +   19,   19,   27,    0,    9,   28,   28,    7,    0,    8,
  +   17,   20,   20,    0,   27,    0,   29,   20,   20,   31,
  +   60,    0,   29,   29,   27,   17,    0,   13,   13,    0,
  +    0,    0,    0,   13,   13,   32,   30,    0,   31,   27,
  +   33,   17,   18,   19,   20,   21,   22,   23,    0,   24,
  +    0,    0,   25,    0,   26,   27,   28,   29,   32,   30,
  +    0,   31,    0,   33,   14,   14,   30,   30,    0,    0,
  +   14,    0,    0,    0,    0,   32,   30,    0,   31,    0,
  +   33,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  +    0,    0,   32,   30,    0,   31,    0,   33,    0,    0,
  +    0,    0,    0,    0,    0,    0,    0,    0,    0,   32,
  +   30,    0,   31,    0,   33,    0,   32,   30,    0,   31,
  +    0,   33,   13,   14,   15,   16,    0,    0,    0,    0,
  +    0,    0,    0,    0,   39,   40,   41,   42,   43,   44,
  +   45,   46,    0,    0,   50,   51,   52,   53,   54,   55,
  +    0,    0,   56,   57,    0,    0,    0,    0,    0,    0,
  +    0,   27,   27,    0,    0,    0,   31,   31,    0,    0,
  +    0,    0,    0,    0,    0,   67,   68,    0,    0,    0,
  +   71,   72,    0,    0,    0,    0,    0,    0,    0,    0,
  +    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  +    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  +    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  +    0,    1,    2,    3,    4,    5,    6,    0,    0,    0,
  +    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  +    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  +    0,    0,    0,    0,    0,   17,   18,   19,   20,   21,
  +   22,   23,    0,   24,   59,    0,   25,    0,   26,   27,
  +   28,   29,    0,    0,    0,    0,    0,    0,   17,   18,
  +   19,   20,   21,   22,   23,    0,   24,   64,    0,   25,
  +    0,   26,   27,   28,   29,   17,   18,   19,   20,   21,
  +   22,   23,    0,   24,    0,    0,   25,    0,   26,   27,
  +   28,   29,   17,   18,   19,   20,   21,   22,   23,    0,
  +   24,    0,    0,   25,    0,   26,   27,    0,   29,   17,
  +   18,   19,   20,   21,   22,   23,   17,   24,    0,    0,
  +   25,    0,   26,   27,    0,    0,   65,    0,    0,    0,
  +   27,
   };
   final static short yycheck[] = {                         41,
  -  259,  260,   41,    2,   41,   44,   40,   44,    7,    8,
  -    9,   44,  260,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  -   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  -   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  -   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  -   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  -   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  -   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  -   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  -   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  -   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  -   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  -   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  -   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  -   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  -   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  -   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  -   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  -   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  -   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  -   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  -   -1,   -1,   -1,   -1,   -1,   -1,  258,  259,  260,  258,
  -  259,  258,   -1,  257,   -1,  258,  259,  260,
  +   42,   43,  262,   45,  276,   47,  270,  262,   40,  273,
  +   41,  275,   41,   44,  274,   44,   41,   42,   43,   40,
  +   45,  276,   47,  258,  274,  258,   -1,   -1,   58,   -1,
  +   -1,   -1,   41,   42,   43,   -1,   45,   -1,   47,   -1,
  +   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   41,   42,
  +   43,   -1,   45,   -1,   47,   -1,   -1,   -1,   -1,   -1,
  +   -1,   -1,   -1,   -1,   41,   42,   43,   -1,   45,   -1,
  +   47,   -1,   41,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  +   -1,   -1,  124,   41,   42,   43,   -1,   45,   -1,   47,
  +   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  124,
  +   41,   -1,   43,   -1,   45,   -1,   -1,   -1,   -1,   -1,
  +   -1,   -1,   -1,   -1,   -1,  124,   41,   -1,   43,   -1,
  +   45,   -1,   -1,   -1,   41,   -1,   41,   -1,   41,   -1,
  +   -1,  124,   -1,   -1,   -1,   -1,   41,   -1,   -1,   -1,
  +   -1,   -1,   -1,   -1,   41,   -1,   -1,  124,   42,   41,
  +   -1,   -1,   -1,   47,   -1,  124,   -1,   -1,   -1,   -1,
  +   -1,   41,   -1,   -1,   -1,   -1,   41,   -1,   -1,   -1,
  +   42,   43,   -1,   45,   -1,   47,   -1,   41,   -1,   -1,
  +   -1,   -1,   -1,  124,   -1,   42,   43,   -1,   45,   -1,
  +   47,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  124,
  +   -1,   42,   43,   -1,   45,   -1,   47,  124,   -1,  124,
  +   -1,  124,   -1,   -1,   41,   -1,   41,   -1,   -1,  124,
  +  262,  263,  264,  265,  266,  267,  268,  124,  270,  271,
  +  272,  273,  124,  275,   -1,  277,  278,  262,  263,  264,
  +  265,  266,  267,  268,  124,  270,  271,  272,  273,  124,
  +  275,   -1,  277,  278,  263,  264,  265,  266,  267,  268,
  +  124,  270,  271,  272,  273,   -1,  275,   -1,  277,  278,
  +  263,  264,  265,  266,  267,  268,   -1,  270,  271,  272,
  +  273,   -1,  275,  124,  277,  278,  263,  264,  265,  266,
  +  267,  268,   -1,  270,  271,  272,  273,  124,  275,  124,
  +  277,  278,  271,  272,  262,  263,  264,  265,  266,  267,
  +  268,   41,  270,   -1,   -1,  273,   41,  275,  276,  277,
  +  278,   -1,  263,  264,  265,  266,  267,  268,   -1,  270,
  +  271,  272,  273,   -1,  275,   -1,  277,  278,  263,  264,
  +  265,  266,  267,  268,   -1,  270,  271,  272,  273,   -1,
  +  275,   -1,  277,  278,  271,  272,  271,  272,  271,  272,
  +  277,  278,  277,  278,  277,  278,  271,  272,  262,   -1,
  +   -1,   -1,  277,  278,  271,  272,   -1,   -1,   -1,  271,
  +  277,  278,  276,   -1,   40,  277,  278,   43,   -1,   45,
  +  262,  271,  272,   -1,  124,   -1,  271,  277,  278,  124,
  +  272,   -1,  277,  278,  276,  262,   -1,  271,  272,   -1,
  +   -1,   -1,   -1,  277,  278,   42,   43,   -1,   45,  276,
  +   47,  262,  263,  264,  265,  266,  267,  268,   -1,  270,
  +   -1,   -1,  273,   -1,  275,  276,  277,  278,   42,   43,
  +   -1,   45,   -1,   47,  271,  272,  271,  272,   -1,   -1,
  +  277,   -1,   -1,   -1,   -1,   42,   43,   -1,   45,   -1,
  +   47,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  +   -1,   -1,   42,   43,   -1,   45,   -1,   47,   -1,   -1,
  +   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   42,
  +   43,   -1,   45,   -1,   47,   -1,   42,   43,   -1,   45,
  +   -1,   47,    6,    7,    8,    9,   -1,   -1,   -1,   -1,
  +   -1,   -1,   -1,   -1,   18,   19,   20,   21,   22,   23,
  +   24,   25,   -1,   -1,   28,   29,   30,   31,   32,   33,
  +   -1,   -1,   36,   37,   -1,   -1,   -1,   -1,   -1,   -1,
  +   -1,  271,  272,   -1,   -1,   -1,  271,  272,   -1,   -1,
  +   -1,   -1,   -1,   -1,   -1,   59,   60,   -1,   -1,   -1,
  +   64,   65,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  +   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  +   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  +   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  +   -1,  257,  258,  259,  260,  261,  262,   -1,   -1,   -1,
  +   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  +   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  +   -1,   -1,   -1,   -1,   -1,  262,  263,  264,  265,  266,
  +  267,  268,   -1,  270,  271,   -1,  273,   -1,  275,  276,
  +  277,  278,   -1,   -1,   -1,   -1,   -1,   -1,  262,  263,
  +  264,  265,  266,  267,  268,   -1,  270,  271,   -1,  273,
  +   -1,  275,  276,  277,  278,  262,  263,  264,  265,  266,
  +  267,  268,   -1,  270,   -1,   -1,  273,   -1,  275,  276,
  +  277,  278,  262,  263,  264,  265,  266,  267,  268,   -1,
  +  270,   -1,   -1,  273,   -1,  275,  276,   -1,  278,  262,
  +  263,  264,  265,  266,  267,  268,  262,  270,   -1,   -1,
  +  273,   -1,  275,  276,   -1,   -1,  272,   -1,   -1,   -1,
  +  276,
   };
  -final static short YYFINAL=3;
  -final static short YYMAXTOKEN=260;
  +final static short YYFINAL=10;
  +final static short YYMAXTOKEN=278;
   final static String yyname[] = {
   "end-of-file",null,null,null,null,null,null,null,null,null,null,null,null,null,
  -null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,
  -null,null,null,null,null,null,null,null,null,null,"'('","')'",null,null,"','",
   null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,
  +null,null,null,null,null,null,null,null,null,null,"'('","')'","'*'","'+'","','",
  +"'-'",null,"'/'",null,null,null,null,null,null,null,null,null,null,null,null,
   null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,
   null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,
   null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,
   null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,
  +"'|'",null,null,null,null,null,null,null,null,null,null,null,null,null,null,
   null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,
   null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,
   null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,
  @@ -244,47 +392,50 @@
   null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,
   null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,
   null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,
  -null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,
  -null,null,null,null,"IDENTIFIER","OR","AND","EQUAL",
  +null,null,null,null,null,null,"IDENTIFIER","STRING","DOUBLE","LONG","CST","NOT",
  +"EQUAL","GT","GE","LT","LE","DIFFERENT","NEG","BETWEEN","AND2","ESCAPE","LIKE",
  +"NULL","IN","IS","OR","AND",
   };
   final static String yyrule[] = {
   "$accept : total",
  -"total : comp ','",
  +"total : comp '|'",
   "unary : IDENTIFIER",
  +"unary : STRING",
  +"unary : DOUBLE",
  +"unary : LONG",
  +"unary : CST",
   "unary : '(' comp ')'",
   "comp : unary",
  +"comp : comp '+' comp",
  +"comp : comp '-' comp",
  +"comp : comp '*' comp",
  +"comp : comp '/' comp",
   "comp : comp AND comp",
   "comp : comp OR comp",
   "comp : comp EQUAL comp",
  +"comp : comp GT comp",
  +"comp : comp GE comp",
  +"comp : comp LT comp",
  +"comp : comp LE comp",
  +"comp : comp DIFFERENT comp",
  +"comp : comp IS NULL",
  +"comp : comp IS NOT NULL",
  +"comp : NOT comp",
  +"comp : '-' comp",
  +"comp : '+' comp",
  +"comp : comp BETWEEN comp AND2 comp",
  +"comp : comp NOT BETWEEN comp AND2 comp",
  +"comp : comp LIKE comp",
  +"comp : comp NOT LIKE comp",
  +"comp : comp LIKE comp ESCAPE comp",
  +"comp : comp NOT LIKE comp ESCAPE comp",
  +"comp : comp IN '(' strings ')'",
  +"comp : comp NOT IN '(' strings ')'",
  +"strings : STRING",
  +"strings : strings ',' STRING",
   };
  -
  -//#line 30 "jms.y"
   
  -     public final static short STRING=257;//
  -     public final static short DOUBLE=258;//
  -     public final static short LONG=259;//
  -     
  -     //public final static short IDENTIFIER=261;//
  -     
  -     public final static short NULL=262; //
  -     public final static short TRUE=263; //
  -     public final static short FALSE=264; //
  -     
  -     public final static short NOT=265; //
  -     //public final static short AND=266; //
  -     //public final static short OR=267; //
  -     public final static short BETWEEN=268; //
  -     public final static short LIKE=269; //
  -     public final static short IN=270; //
  -     public final static short IS=271; //
  -     public final static short ESCAPE=272; //
  -     
  -     //public final static short EQUAL=273;//
  -     public final static short GT=274;//
  -     public final static short GE=275;//
  -     public final static short LT=276;//
  -     public final static short LE=277;//
  -     public final static short DIFFERENT=278;//
  +//#line 74 "jms.y"
   
        StringTokenizer st;
        String nextToken=null;
  @@ -296,6 +447,16 @@
                throw new RuntimeException("PARSER ERROR: "+s);
        }
   
  +     void aff(parserval val,String st)
  +     {
  +             System.out.print("["+st+"] ");
  +             if (val==null) System.out.println("null");
  +             else {
  +                     if (val.obj==null) System.out.println(".obj=null");
  +                     else System.out.println(".obj="+val.obj.toString());
  +             }
  +     }
  +
        void next()
        {
                if (st.hasMoreTokens()) nextToken=st.nextToken();
  @@ -350,17 +511,24 @@
                }
                
                //CST group
  -             if (s.equals("NULL")) return NULL;
  -             if (s.equals("TRUE")) return TRUE;
  -             if (s.equals("FALSE")) return FALSE;
  +             if (s.equals("TRUE")) {
  +                     yylval = new parserval((Object)Boolean.TRUE);
  +                     return CST;
  +             }
  +             if (s.equals("FALSE")) {
  +                     yylval = new parserval((Object)Boolean.FALSE);
  +                     return CST;
  +             }
                        
                //OPERATOR group 
                if (s.equals("NOT")) return NOT;
                if (s.equals("AND")) return AND;
                if (s.equals("OR")) return OR;
                if (s.equals("BETWEEN")) return BETWEEN;
  +             if (s.equals("and")) return AND2;
                if (s.equals("LIKE")) return LIKE;
                if (s.equals("IN")) return IN;
  +             if (s.equals("NULL")) return NULL;
                if (s.equals("IS")) return IS;
                if (s.equals("ESCAPE")) return ESCAPE;
                
  @@ -368,6 +536,7 @@
                if (s.equals("(")) return '(';
                if (s.equals(")")) return ')';
                if (s.equals(",")) return ',';
  +             if (s.equals("|")) return '|';
                
                //COMP group
                if (s.equals("=")) return EQUAL;
  @@ -403,13 +572,13 @@
                nextToken=null;
                this.map=map;
                
  -             sel+=",";
  -             st = new StringTokenizer(sel," '(),=><+-*/",true);              
  +             sel+="|";
  +             st = new StringTokenizer(sel," '(),=><+-*/|",true);             
                next();
                yyparse();              
                return selector;
        }
  -//#line 361 "parser.java"
  +//#line 528 "parser.java"
   //###############################################################
   // method: yylexdebug : check lexer state
   //###############################################################
  @@ -556,30 +725,122 @@
         {
   //########## USER-SUPPLIED ACTIONS ##########
   case 1:
  -//#line 18 "jms.y"
  +//#line 29 "jms.y"
   { selector = val_peek(1).obj; }
   break;
  -case 2:
  -//#line 20 "jms.y"
  -{ yyval = val_peek(0); }
  -break;
  -case 3:
  -//#line 21 "jms.y"
  +case 7:
  +//#line 37 "jms.y"
   { yyval = val_peek(1); }
   break;
  -case 5:
  -//#line 25 "jms.y"
  +case 9:
  +//#line 41 "jms.y"
  +{ yyval.obj = new Operator(Operator.ADD,val_peek(2).obj,val_peek(0).obj); }
  +break;
  +case 10:
  +//#line 42 "jms.y"
  +{ yyval.obj = new Operator(Operator.SUB,val_peek(2).obj,val_peek(0).obj); }
  +break;
  +case 11:
  +//#line 43 "jms.y"
  +{ yyval.obj = new Operator(Operator.MUL,val_peek(2).obj,val_peek(0).obj); }
  +break;
  +case 12:
  +//#line 44 "jms.y"
  +{ yyval.obj = new Operator(Operator.DIV,val_peek(2).obj,val_peek(0).obj); }
  +break;
  +case 13:
  +//#line 45 "jms.y"
   { yyval.obj = new Operator(Operator.AND,val_peek(2).obj,val_peek(0).obj); }
   break;
  -case 6:
  -//#line 26 "jms.y"
  +case 14:
  +//#line 46 "jms.y"
   { yyval.obj = new Operator(Operator.OR,val_peek(2).obj,val_peek(0).obj); }
   break;
  -case 7:
  -//#line 27 "jms.y"
  +case 15:
  +//#line 47 "jms.y"
   { yyval.obj = new Operator(Operator.EQUAL,val_peek(2).obj,val_peek(0).obj); }
   break;
  -//#line 528 "parser.java"
  +case 16:
  +//#line 48 "jms.y"
  +{ yyval.obj = new Operator(Operator.GT,val_peek(2).obj,val_peek(0).obj); }
  +break;
  +case 17:
  +//#line 49 "jms.y"
  +{ yyval.obj = new Operator(Operator.GE,val_peek(2).obj,val_peek(0).obj); }
  +break;
  +case 18:
  +//#line 50 "jms.y"
  +{ yyval.obj = new Operator(Operator.LT,val_peek(2).obj,val_peek(0).obj); }
  +break;
  +case 19:
  +//#line 51 "jms.y"
  +{ yyval.obj = new Operator(Operator.LE,val_peek(2).obj,val_peek(0).obj); }
  +break;
  +case 20:
  +//#line 52 "jms.y"
  +{ yyval.obj = new Operator(Operator.DIFFERENT,val_peek(2).obj,val_peek(0).obj); }
  +break;
  +case 21:
  +//#line 53 "jms.y"
  +{ yyval.obj = new Operator(Operator.IS_NULL,val_peek(2).obj); }
  +break;
  +case 22:
  +//#line 54 "jms.y"
  +{ yyval.obj = new Operator(Operator.IS_NOT_NULL,val_peek(3).obj); }
  +break;
  +case 23:
  +//#line 55 "jms.y"
  +{ yyval = new parserval(new Operator(Operator.NOT,val_peek(0).obj)); }
  +break;
  +case 24:
  +//#line 56 "jms.y"
  +{ yyval = new parserval(new Operator(Operator.NEG,val_peek(0).obj)); }
  +break;
  +case 25:
  +//#line 57 "jms.y"
  +{ yyval = val_peek(0); }
  +break;
  +case 26:
  +//#line 58 "jms.y"
  +{ yyval.obj = new 
Operator(Operator.BETWEEN,val_peek(4).obj,val_peek(2).obj,val_peek(0).obj); }
  +break;
  +case 27:
  +//#line 59 "jms.y"
  +{ yyval.obj = new 
Operator(Operator.NOT_BETWEEN,val_peek(5).obj,val_peek(2).obj,val_peek(0).obj); }
  +break;
  +case 28:
  +//#line 60 "jms.y"
  +{ yyval.obj = new Operator(Operator.LIKE,val_peek(2).obj,val_peek(0).obj); }
  +break;
  +case 29:
  +//#line 61 "jms.y"
  +{ yyval.obj = new Operator(Operator.NOT_LIKE,val_peek(3).obj,val_peek(0).obj); }
  +break;
  +case 30:
  +//#line 62 "jms.y"
  +{ yyval.obj = new 
Operator(Operator.LIKE_ESCAPE,val_peek(4).obj,val_peek(2).obj,val_peek(0).obj); }
  +break;
  +case 31:
  +//#line 63 "jms.y"
  +{ yyval.obj = new 
Operator(Operator.NOT_LIKE_ESCAPE,val_peek(5).obj,val_peek(2).obj,val_peek(0).obj); }
  +break;
  +case 32:
  +//#line 64 "jms.y"
  +{ yyval.obj = new Operator(Operator.IN,val_peek(4).obj,val_peek(1).obj); }
  +break;
  +case 33:
  +//#line 65 "jms.y"
  +{ yyval.obj = new Operator(Operator.NOT_IN,val_peek(5).obj,val_peek(1).obj); }
  +break;
  +case 34:
  +//#line 68 "jms.y"
  +{ HashSet tmp=new HashSet(); tmp.add(val_peek(0).obj); yyval.obj=tmp; }
  +break;
  +case 35:
  +//#line 69 "jms.y"
  +{ ((HashSet)val_peek(2).obj).add(val_peek(0).obj); yyval = val_peek(2); }
  +break;
  +//#line 787 "parser.java"
   //########## END OF USER-SUPPLIED ACTIONS ##########
       }//switch
       //#### Now let's reduce... ####
  
  
  
  1.3       +23 -32    spyderMQ/src/java/org/spyderMQ/selectors/parserval.java
  
  Index: parserval.java
  ===================================================================
  RCS file: 
/products/cvs/ejboss/spyderMQ/src/java/org/spyderMQ/selectors/parserval.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- parserval.java    2000/05/19 19:38:37     1.2
  +++ parserval.java    2000/05/20 02:12:18     1.3
  @@ -1,35 +1,26 @@
  -/*
  - * spyderMQ, the OpenSource JMS implementation
  - *
  - * Distributable under GPL license.
  - * See terms of license at gnu.org.
  - */
  -package org.spydermq.selectors;
   
  +
  +//########## SEMANTIC VALUES ##########
   public class parserval
   {
  -     public int ival;
  -     public double dval;
  -     public String sval;
  -     public Object obj;
  -
  -     public parserval(int val)
  -     {
  -       ival=val;
  -     }
  -     
  -     public parserval(double val)
  -     {
  -       dval=val;
  -     }
  -     
  -     public parserval(String val)
  -     {
  -       sval=val;
  -     }
  -     
  -     public parserval(Object val)
  -     {
  -       obj=val;
  -     }
  -}
  \ No newline at end of file
  +public int ival;
  +public double dval;
  +public String sval;
  +public Object obj;
  +public parserval(int val)
  +{
  +  ival=val;
  +}
  +public parserval(double val)
  +{
  +  dval=val;
  +}
  +public parserval(String val)
  +{
  +  sval=val;
  +}
  +public parserval(Object val)
  +{
  +  obj=val;
  +}
  +}//end class
  
  
  

Reply via email to