A massive organize imports and formatting of the sources using default Eclipse code...
[phpeclipse.git] / net.sourceforge.phpeclipse / src / net / sourceforge / phpdt / internal / compiler / ast / OperatorExpression.java
index f4eb5db..4330cc6 100644 (file)
  *******************************************************************************/
 package net.sourceforge.phpdt.internal.compiler.ast;
 
-public abstract class OperatorExpression extends Expression implements OperatorIds {
+public abstract class OperatorExpression extends Expression implements
+               OperatorIds {
 
        public static int[][] ResolveTypeTables = new int[NumberOfTables][];
 
-       static {classInitialize();}
+       static {
+               classInitialize();
+       }
 
        /**
         * OperatorExpression constructor comment.
@@ -22,6 +25,7 @@ public abstract class OperatorExpression extends Expression implements OperatorI
        public OperatorExpression() {
                super();
        }
+
        public static final void classInitialize() {
                ResolveTypeTables[AND] = get_AND();
                ResolveTypeTables[AND_AND] = get_AND_AND();
@@ -43,1529 +47,1832 @@ public abstract class OperatorExpression extends Expression implements OperatorI
                ResolveTypeTables[XOR] = get_XOR();
        }
 
-       public static final String generateTableTestCase(){
-               //return a String which is a java method allowing to test
-               //the non zero entries of all tables
-       
+       public static final String generateTableTestCase() {
+               // return a String which is a java method allowing to test
+               // the non zero entries of all tables
+
                /*
-               net.sourceforge.phpdt.internal.compiler.ast.
-               OperatorExpression.generateTableTestCase();
-               */
-       
-               int[] operators = new int[]{AND,AND_AND,DIVIDE,GREATER,GREATER_EQUAL,
-                               LEFT_SHIFT,LESS,LESS_EQUAL,MINUS,MULTIPLY,OR,OR_OR,PLUS,REMAINDER,
-                               RIGHT_SHIFT,UNSIGNED_RIGHT_SHIFT,XOR};
-       
+                * net.sourceforge.phpdt.internal.compiler.ast.
+                * OperatorExpression.generateTableTestCase();
+                */
+
+               int[] operators = new int[] { AND, AND_AND, DIVIDE, GREATER,
+                               GREATER_EQUAL, LEFT_SHIFT, LESS, LESS_EQUAL, MINUS, MULTIPLY,
+                               OR, OR_OR, PLUS, REMAINDER, RIGHT_SHIFT, UNSIGNED_RIGHT_SHIFT,
+                               XOR };
+
                class Decode {
-                       public  final String constant(int code){
-                               switch(code){ 
-                                       case T_boolean  : return "true" ; //$NON-NLS-1$
-                                       case T_byte             : return "((byte) 3)" ; //$NON-NLS-1$
-                                       case T_char             : return "'A'" ; //$NON-NLS-1$
-                                       case T_double   : return "300.0d" ; //$NON-NLS-1$
-                                       case T_float    : return "100.0f" ; //$NON-NLS-1$
-                                       case T_int              : return "1" ; //$NON-NLS-1$
-                                       case T_long             : return "7L" ; //$NON-NLS-1$
-                                       case T_String   : return "\"hello-world\"" ; //$NON-NLS-1$
-                                       case T_null             : return "null"; //$NON-NLS-1$
-                                       case T_short    : return "((short) 5)"; //$NON-NLS-1$
-                                       case T_Object   : return "null";} //$NON-NLS-1$
+                       public final String constant(int code) {
+                               switch (code) {
+                               case T_boolean:
+                                       return "true"; //$NON-NLS-1$
+                               case T_byte:
+                                       return "((byte) 3)"; //$NON-NLS-1$
+                               case T_char:
+                                       return "'A'"; //$NON-NLS-1$
+                               case T_double:
+                                       return "300.0d"; //$NON-NLS-1$
+                               case T_float:
+                                       return "100.0f"; //$NON-NLS-1$
+                               case T_int:
+                                       return "1"; //$NON-NLS-1$
+                               case T_long:
+                                       return "7L"; //$NON-NLS-1$
+                               case T_String:
+                                       return "\"hello-world\""; //$NON-NLS-1$
+                               case T_null:
+                                       return "null"; //$NON-NLS-1$
+                               case T_short:
+                                       return "((short) 5)"; //$NON-NLS-1$
+                               case T_Object:
+                                       return "null";} //$NON-NLS-1$
                                return "";} //$NON-NLS-1$
-       
-                       public  final String type(int code){
-                               switch(code){ 
-                                       case T_boolean  : return "z" ; //$NON-NLS-1$
-                                       case T_byte             : return "b" ; //$NON-NLS-1$
-                                       case T_char             : return "c" ; //$NON-NLS-1$
-                                       case T_double   : return "d" ; //$NON-NLS-1$
-                                       case T_float    : return "f" ; //$NON-NLS-1$
-                                       case T_int              : return "i" ; //$NON-NLS-1$
-                                       case T_long             : return "l" ; //$NON-NLS-1$
-                                       case T_String   : return "str" ; //$NON-NLS-1$
-                                       case T_null             : return "null"; //$NON-NLS-1$
-                                       case T_short    : return "s"; //$NON-NLS-1$
-                                       case T_Object   : return "obj";} //$NON-NLS-1$
+
+                       public final String type(int code) {
+                               switch (code) {
+                               case T_boolean:
+                                       return "z"; //$NON-NLS-1$
+                               case T_byte:
+                                       return "b"; //$NON-NLS-1$
+                               case T_char:
+                                       return "c"; //$NON-NLS-1$
+                               case T_double:
+                                       return "d"; //$NON-NLS-1$
+                               case T_float:
+                                       return "f"; //$NON-NLS-1$
+                               case T_int:
+                                       return "i"; //$NON-NLS-1$
+                               case T_long:
+                                       return "l"; //$NON-NLS-1$
+                               case T_String:
+                                       return "str"; //$NON-NLS-1$
+                               case T_null:
+                                       return "null"; //$NON-NLS-1$
+                               case T_short:
+                                       return "s"; //$NON-NLS-1$
+                               case T_Object:
+                                       return "obj";} //$NON-NLS-1$
                                return "xxx";} //$NON-NLS-1$
-                       
-                       public  final String operator(int operator){
-                                       switch (operator) {
-                                       case EQUAL_EQUAL :      return "=="; //$NON-NLS-1$
-                                       case LESS_EQUAL :       return "<="; //$NON-NLS-1$
-                                       case GREATER_EQUAL :return ">="; //$NON-NLS-1$
-                                       case LEFT_SHIFT :       return "<<"; //$NON-NLS-1$
-                                       case RIGHT_SHIFT :      return ">>"; //$NON-NLS-1$
-                                       case UNSIGNED_RIGHT_SHIFT :     return ">>>"; //$NON-NLS-1$
-                                       case OR_OR :return "||"; //$NON-NLS-1$
-                                       case AND_AND :          return "&&"; //$NON-NLS-1$
-                                       case PLUS :                     return "+"; //$NON-NLS-1$
-                                       case MINUS :            return "-"; //$NON-NLS-1$
-                                       case NOT :                      return "!"; //$NON-NLS-1$
-                                       case REMAINDER :        return "%"; //$NON-NLS-1$
-                                       case XOR :                      return "^"; //$NON-NLS-1$
-                                       case AND :                      return "&"; //$NON-NLS-1$
-                                       case MULTIPLY :         return "*"; //$NON-NLS-1$
-                                       case OR :                       return "|"; //$NON-NLS-1$
-                                       case TWIDDLE :          return "~"; //$NON-NLS-1$
-                                       case DIVIDE :           return "/"; //$NON-NLS-1$
-                                       case GREATER :          return ">"; //$NON-NLS-1$
-                                       case LESS :                     return "<";     }; //$NON-NLS-1$
+
+                       public final String operator(int operator) {
+                               switch (operator) {
+                               case EQUAL_EQUAL:
+                                       return "=="; //$NON-NLS-1$
+                               case LESS_EQUAL:
+                                       return "<="; //$NON-NLS-1$
+                               case GREATER_EQUAL:
+                                       return ">="; //$NON-NLS-1$
+                               case LEFT_SHIFT:
+                                       return "<<"; //$NON-NLS-1$
+                               case RIGHT_SHIFT:
+                                       return ">>"; //$NON-NLS-1$
+                               case UNSIGNED_RIGHT_SHIFT:
+                                       return ">>>"; //$NON-NLS-1$
+                               case OR_OR:
+                                       return "||"; //$NON-NLS-1$
+                               case AND_AND:
+                                       return "&&"; //$NON-NLS-1$
+                               case PLUS:
+                                       return "+"; //$NON-NLS-1$
+                               case MINUS:
+                                       return "-"; //$NON-NLS-1$
+                               case NOT:
+                                       return "!"; //$NON-NLS-1$
+                               case REMAINDER:
+                                       return "%"; //$NON-NLS-1$
+                               case XOR:
+                                       return "^"; //$NON-NLS-1$
+                               case AND:
+                                       return "&"; //$NON-NLS-1$
+                               case MULTIPLY:
+                                       return "*"; //$NON-NLS-1$
+                               case OR:
+                                       return "|"; //$NON-NLS-1$
+                               case TWIDDLE:
+                                       return "~"; //$NON-NLS-1$
+                               case DIVIDE:
+                                       return "/"; //$NON-NLS-1$
+                               case GREATER:
+                                       return ">"; //$NON-NLS-1$
+                               case LESS:
+                                       return "<";}; //$NON-NLS-1$
                                return "????";} //$NON-NLS-1$
                }
-       
-                       
+
                Decode decode = new Decode();
-               String s ;
-       
+               String s;
+
                s = "\tpublic static void binaryOperationTablesTestCase(){\n" + //$NON-NLS-1$
-       
-                       "\t\t//TC test : all binary operation (described in tables)\n"+ //$NON-NLS-1$
-                       "\t\t//method automatically generated by\n"+ //$NON-NLS-1$
-                       "\t\t//net.sourceforge.phpdt.internal.compiler.ast.OperatorExpression.generateTableTestCase();\n"+ //$NON-NLS-1$
-               
-                       "\t\tString str0 ;\t String str\t= "+decode.constant(T_String)+";\n"+ //$NON-NLS-1$ //$NON-NLS-2$
-                       "\t\tint i0 ;\t int i\t= "+decode.constant(T_int)+" ;\n"+ //$NON-NLS-1$ //$NON-NLS-2$
-                       "\t\tboolean z0;\t boolean z\t= "+decode.constant(T_boolean)+";\n"+ //$NON-NLS-1$ //$NON-NLS-2$
-                       "\t\tchar c0; \t char  c\t= "+decode.constant(T_char)+" ;\n"+ //$NON-NLS-1$ //$NON-NLS-2$
-                       "\t\tfloat f0; \t float f\t= "+decode.constant(T_float)+" ;\n"+ //$NON-NLS-1$ //$NON-NLS-2$
-                       "\t\tdouble d0;\t double d\t= "+decode.constant(T_double)+" ;\n"+ //$NON-NLS-1$ //$NON-NLS-2$
-                       "\t\tbyte b0; \t byte b\t= "+decode.constant(T_byte)+";\n"+ //$NON-NLS-1$ //$NON-NLS-2$
-                       "\t\tshort s0; \t short s\t= "+decode.constant(T_short)+";\n"+ //$NON-NLS-1$ //$NON-NLS-2$
-                       "\t\tlong l0; \t long l\t= "+decode.constant(T_long)+" ;\n"+ //$NON-NLS-1$ //$NON-NLS-2$
-                       "\t\tObject obj0; \t Object obj\t= "+decode.constant(T_Object)+" ;\n"+ //$NON-NLS-1$ //$NON-NLS-2$
-                       "\n"; //$NON-NLS-1$
-       
-               int error = 0;          
-               for (int i=0; i < operators.length ; i++)
-               {       int operator = operators[i];
-                       for (int left=0; left<16;left++)
-                       for (int right=0; right<16;right++)
-                       {       int result = (ResolveTypeTables[operator][(left<<4)+right]) & 0x0000F;
-                               if (result != T_undefined)
-       
-                                       //1/ First regular computation then 2/ comparaison
-                                       //with a compile time constant (generated by the compiler)
-                                       //      z0 = s >= s;
-                                       //      if ( z0 != (((short) 5) >= ((short) 5)))
-                                       //              System.out.println(155);
-       
-                               {       s += "\t\t"+decode.type(result)+"0"+" = "+decode.type(left); //$NON-NLS-1$ //$NON-NLS-3$ //$NON-NLS-2$
-                                       s += " "+decode.operator(operator)+" "+decode.type(right)+";\n"; //$NON-NLS-2$ //$NON-NLS-1$ //$NON-NLS-3$
-                                       String begin = result == T_String ? "\t\tif (! " : "\t\tif ( "; //$NON-NLS-2$ //$NON-NLS-1$
-                                       String test = result == T_String ? ".equals(" : " != (" ; //$NON-NLS-2$ //$NON-NLS-1$
-                                       s += begin      +decode.type(result)+"0"+test //$NON-NLS-1$
-                                                               +decode.constant(left)+" " //$NON-NLS-1$
-                                                               +decode.operator(operator)+" " //$NON-NLS-1$
-                                                               +decode.constant(right)+"))\n"; //$NON-NLS-1$
-                                       s += "\t\t\tSystem.out.println("+ (++error) +");\n"; //$NON-NLS-1$ //$NON-NLS-2$
-                                                                       
+
+                               "\t\t//TC test : all binary operation (described in tables)\n"
+                               + //$NON-NLS-1$
+                               "\t\t//method automatically generated by\n"
+                               + //$NON-NLS-1$
+                               "\t\t//net.sourceforge.phpdt.internal.compiler.ast.OperatorExpression.generateTableTestCase();\n"
+                               + //$NON-NLS-1$
+
+                               "\t\tString str0 ;\t String str\t= "
+                               + decode.constant(T_String)
+                               + ";\n" + //$NON-NLS-1$ //$NON-NLS-2$
+                               "\t\tint i0 ;\t int i\t= "
+                               + decode.constant(T_int)
+                               + " ;\n" + //$NON-NLS-1$ //$NON-NLS-2$
+                               "\t\tboolean z0;\t boolean z\t= "
+                               + decode.constant(T_boolean)
+                               + ";\n" + //$NON-NLS-1$ //$NON-NLS-2$
+                               "\t\tchar c0; \t char  c\t= "
+                               + decode.constant(T_char)
+                               + " ;\n" + //$NON-NLS-1$ //$NON-NLS-2$
+                               "\t\tfloat f0; \t float f\t= "
+                               + decode.constant(T_float)
+                               + " ;\n" + //$NON-NLS-1$ //$NON-NLS-2$
+                               "\t\tdouble d0;\t double d\t= "
+                               + decode.constant(T_double)
+                               + " ;\n" + //$NON-NLS-1$ //$NON-NLS-2$
+                               "\t\tbyte b0; \t byte b\t= "
+                               + decode.constant(T_byte)
+                               + ";\n" + //$NON-NLS-1$ //$NON-NLS-2$
+                               "\t\tshort s0; \t short s\t= "
+                               + decode.constant(T_short)
+                               + ";\n" + //$NON-NLS-1$ //$NON-NLS-2$
+                               "\t\tlong l0; \t long l\t= "
+                               + decode.constant(T_long)
+                               + " ;\n" + //$NON-NLS-1$ //$NON-NLS-2$
+                               "\t\tObject obj0; \t Object obj\t= "
+                               + decode.constant(T_Object) + " ;\n" + //$NON-NLS-1$ //$NON-NLS-2$
+                               "\n"; //$NON-NLS-1$
+
+               int error = 0;
+               for (int i = 0; i < operators.length; i++) {
+                       int operator = operators[i];
+                       for (int left = 0; left < 16; left++)
+                               for (int right = 0; right < 16; right++) {
+                                       int result = (ResolveTypeTables[operator][(left << 4)
+                                                       + right]) & 0x0000F;
+                                       if (result != T_undefined)
+
+                                       // 1/ First regular computation then 2/ comparaison
+                                       // with a compile time constant (generated by the compiler)
+                                       // z0 = s >= s;
+                                       // if ( z0 != (((short) 5) >= ((short) 5)))
+                                       // System.out.println(155);
+
+                                       {
+                                               s += "\t\t" + decode.type(result) + "0" + " = " + decode.type(left); //$NON-NLS-1$ //$NON-NLS-3$ //$NON-NLS-2$
+                                               s += " " + decode.operator(operator) + " " + decode.type(right) + ";\n"; //$NON-NLS-2$ //$NON-NLS-1$ //$NON-NLS-3$
+                                               String begin = result == T_String ? "\t\tif (! " : "\t\tif ( "; //$NON-NLS-2$ //$NON-NLS-1$
+                                               String test = result == T_String ? ".equals(" : " != ("; //$NON-NLS-2$ //$NON-NLS-1$
+                                               s += begin + decode.type(result) + "0" + test //$NON-NLS-1$
+                                                               + decode.constant(left) + " " //$NON-NLS-1$
+                                                               + decode.operator(operator) + " " //$NON-NLS-1$
+                                                               + decode.constant(right) + "))\n"; //$NON-NLS-1$
+                                               s += "\t\t\tSystem.out.println(" + (++error) + ");\n"; //$NON-NLS-1$ //$NON-NLS-2$
+
                                        }
                                }
-                       }
-                       
-               return s += "\n\t\tSystem.out.println(\"binary tables test : done\");}" ; //$NON-NLS-1$
+               }
+
+               return s += "\n\t\tSystem.out.println(\"binary tables test : done\");}"; //$NON-NLS-1$
        }
 
-       public static final int[] get_AND(){
-       
-               //the code is an int
-               // (cast)  left   Op (cast)  rigth --> result
-               //  0000   0000       0000   0000      0000
-               //  <<16   <<12       <<8    <<4       
-               
-               int[] table  = new int[16*16] ;
-               
-               //      table[(T_undefined<<4)+T_undefined]     = T_undefined ;
-               //      table[(T_undefined<<4)+T_byte]                  = T_undefined ;
-               //      table[(T_undefined<<4)+T_long]                  = T_undefined ;
-               //      table[(T_undefined<<4)+T_short]                 = T_undefined ;
-               //      table[(T_undefined<<4)+T_void]                  = T_undefined ;
-               //      table[(T_undefined<<4)+T_String]                = T_undefined ;
-               //      table[(T_undefined<<4)+T_Object]                = T_undefined ;
-               //      table[(T_undefined<<4)+T_double]                = T_undefined ;
-               //      table[(T_undefined<<4)+T_float]                 = T_undefined ;
-               //      table[(T_undefined<<4)+T_boolean]               = T_undefined ;
-               //      table[(T_undefined<<4)+T_char]                  = T_undefined ;
-               //      table[(T_undefined<<4)+T_int]                   = T_undefined ;
-               //      table[(T_undefined<<4)+T_null]                  = T_undefined ;
-               
-               //      table[(T_byte<<4)+T_undefined]  = T_undefined ;
-               table[(T_byte<<4)+T_byte]               = (Byte2Int<<12) +(Byte2Int<<4) +T_int ;
-               table[(T_byte<<4)+T_long]               = (Byte2Long<<12)+(Long2Long<<4)+T_long ;
-               table[(T_byte<<4)+T_short]              = (Byte2Int<<12) +(Short2Int<<4)+T_int;
-               //      table[(T_byte<<4)+T_void]               = T_undefined ;
-               //      table[(T_byte<<4)+T_String]     = T_undefined ;
-               //      table[(T_byte<<4)+T_Object]     = T_undefined ;
-               //      table[(T_byte<<4)+T_double]     = T_undefined ;
-               //      table[(T_byte<<4)+T_float]              = T_undefined ;
-               //      table[(T_byte<<4)+T_boolean]    = T_undefined ;
-               table[(T_byte<<4)+T_char]               = (Byte2Int<<12) +(Char2Int<<4) +T_int ;
-               table[(T_byte<<4)+T_int]                = (Byte2Int<<12) +(Int2Int<<4)  +T_int ;
-               //      table[(T_byte<<4)+T_null]               = T_undefined ;
-               
-               //      table[(T_long<<4)+T_undefined]  = T_undefined ;
-               table[(T_long<<4)+T_byte]               = (Long2Long<<12)+(Byte2Long<<4)+T_long;
-               table[(T_long<<4)+T_long]               = (Long2Long<<12)+(Long2Long<<4)+T_long ;
-               table[(T_long<<4)+T_short]              = (Long2Long<<12)+(Short2Long<<4)+T_long; ;
-               //      table[(T_long<<4)+T_void]               = T_undefined ;
-               //      table[(T_long<<4)+T_String]     = T_undefined ;
-               //      table[(T_long<<4)+T_Object]     = T_undefined ;
-               //      table[(T_long<<4)+T_double]     = T_undefined ;
-               //      table[(T_long<<4)+T_float]              = T_undefined ;
-               //      table[(T_long<<4)+T_boolean]    = T_undefined ;
-               table[(T_long<<4)+T_char]               = (Long2Long<<12)+(Char2Long<<4)+T_long ;
-               table[(T_long<<4)+T_int]                = (Long2Long<<12)+(Int2Long<<4)+T_long ;
-               //      table[(T_long<<4)+T_null]               = T_undefined ;
-               
-               //      table[(T_short<<4)+T_undefined]         = T_undefined ;
-               table[(T_short<<4)+T_byte]                      = (Short2Int<<12)+(Byte2Int<<4)+T_int ;
-               table[(T_short<<4)+T_long]                      = (Short2Long<<12)+(Long2Long<<4)+T_long ;
-               table[(T_short<<4)+T_short]             = (Short2Int<<12)+(Short2Int<<4)+T_int ;
-               //      table[(T_short<<4)+T_void]                      = T_undefined ;
-               //      table[(T_short<<4)+T_String]            = T_undefined ;
-               //      table[(T_short<<4)+T_Object]            = T_undefined ;
-               //      table[(T_short<<4)+T_double]            = T_undefined ;
-               //      table[(T_short<<4)+T_float]             = T_undefined ;
-               //      table[(T_short<<4)+T_boolean]           = T_undefined ;
-               table[(T_short<<4)+T_char]                      = (Short2Int<<12)+(Char2Int<<4)+T_int ;
-               table[(T_short<<4)+T_int]                       = (Short2Int<<12)+(Int2Int<<4)+T_int ;
-               //      table[(T_short<<4)+T_null]                      = T_undefined ;
-               
-               //      table[(T_void<<4)+T_undefined]  = T_undefined ;
-               //      table[(T_void<<4)+T_byte]               = T_undefined ;
-               //      table[(T_void<<4)+T_long]               = T_undefined ;
-               //      table[(T_void<<4)+T_short]              = T_undefined ;
-               //      table[(T_void<<4)+T_void]               = T_undefined ;
-               //      table[(T_void<<4)+T_String]     = T_undefined ;
-               //      table[(T_void<<4)+T_Object]     = T_undefined ;
-               //      table[(T_void<<4)+T_double]     = T_undefined ;
-               //      table[(T_void<<4)+T_float]              = T_undefined ;
-               //      table[(T_void<<4)+T_boolean]    = T_undefined ;
-               //      table[(T_void<<4)+T_char]               = T_undefined ;
-               //      table[(T_void<<4)+T_int]                = T_undefined ;
-               //      table[(T_void<<4)+T_null]               = T_undefined ;
-               
-               //      table[(T_String<<4)+T_undefined]        = T_undefined ;
-               //      table[(T_String<<4)+T_byte]             = T_undefined ;
-               //      table[(T_String<<4)+T_long]             = T_undefined ;
-               //      table[(T_String<<4)+T_short]            = T_undefined ;
-               //      table[(T_String<<4)+T_void]             = T_undefined ;
-               //      table[(T_String<<4)+T_String]           = T_undefined ;
-               //      table[(T_String<<4)+T_Object]           = T_undefined ;
-               //      table[(T_String<<4)+T_double]           = T_undefined ;
-               //      table[(T_String<<4)+T_float]            = T_undefined ;
-               //      table[(T_String<<4)+T_boolean]          = T_undefined ;
-               //      table[(T_String<<4)+T_char]             = T_undefined ;
-               //      table[(T_String<<4)+T_int]                      = T_undefined ;
-               //      table[(T_String<<4)+T_null]             = T_undefined ;
-               
-               //      table[(T_Object<<4)+T_undefined]        = T_undefined ;
-               //      table[(T_Object<<4)+T_byte]             = T_undefined ;
-               //      table[(T_Object<<4)+T_long]             = T_undefined ;
-               //      table[(T_Object<<4)+T_short]            = T_undefined ;
-               //      table[(T_Object<<4)+T_void]             = T_undefined ;
-               //      table[(T_Object<<4)+T_String]           = T_undefined ;
-               //      table[(T_Object<<4)+T_Object]           = T_undefined ;
-               //      table[(T_Object<<4)+T_double]           = T_undefined ;
-               //      table[(T_Object<<4)+T_float]            = T_undefined ;
-               //      table[(T_Object<<4)+T_boolean]          = T_undefined ;
-               //      table[(T_Object<<4)+T_char]             = T_undefined ;
-               //      table[(T_Object<<4)+T_int]                      = T_undefined ;
-               //      table[(T_Object<<4)+T_null]             = T_undefined ;
-               
-               //      table[(T_double<<4)+T_undefined]        = T_undefined ;
-               //      table[(T_double<<4)+T_byte]             = T_undefined ;
-               //      table[(T_double<<4)+T_long]             = T_undefined ;
-               //      table[(T_double<<4)+T_short]            = T_undefined ;
-               //      table[(T_double<<4)+T_void]             = T_undefined ;
-               //      table[(T_double<<4)+T_String]           = T_undefined ;
-               //      table[(T_double<<4)+T_Object]           = T_undefined ;
-               //      table[(T_double<<4)+T_double]           = T_undefined ;
-               //      table[(T_double<<4)+T_float]            = T_undefined ;
-               //      table[(T_double<<4)+T_boolean]          = T_undefined ;
-               //      table[(T_double<<4)+T_char]             = T_undefined ;
-               //      table[(T_double<<4)+T_int]                      = T_undefined;
-               //      table[(T_double<<4)+T_null]             = T_undefined ;
-               
-               //      table[(T_float<<4)+T_undefined]         = T_undefined ;
-               //      table[(T_float<<4)+T_byte]                      = T_undefined ;
-               //      table[(T_float<<4)+T_long]                      = T_undefined ;
-               //      table[(T_float<<4)+T_short]             = T_undefined ;
-               //      table[(T_float<<4)+T_void]                      = T_undefined ;
-               //      table[(T_float<<4)+T_String]            = T_undefined ;
-               //      table[(T_float<<4)+T_Object]            = T_undefined ;
-               //      table[(T_float<<4)+T_double]            = T_undefined ;
-               //      table[(T_float<<4)+T_float]             = T_undefined ;
-               //      table[(T_float<<4)+T_boolean]           = T_undefined ;
-               //      table[(T_float<<4)+T_char]                      = T_undefined ;
-               //      table[(T_float<<4)+T_int]                       = T_undefined ;
-               //      table[(T_float<<4)+T_null]                      = T_undefined ;
-               
-               //      table[(T_boolean<<4)+T_undefined]               = T_undefined ;
-               //      table[(T_boolean<<4)+T_byte]                    = T_undefined ;
-               //      table[(T_boolean<<4)+T_long]                    = T_undefined ;
-               //      table[(T_boolean<<4)+T_short]                   = T_undefined ;
-               //      table[(T_boolean<<4)+T_void]                    = T_undefined ;
-               //      table[(T_boolean<<4)+T_String]                  = T_undefined ;
-               //      table[(T_boolean<<4)+T_Object]                  = T_undefined ;
-               //      table[(T_boolean<<4)+T_double]                  = T_undefined ;
-               //      table[(T_boolean<<4)+T_float]                   = T_undefined ;
-               table[(T_boolean<<4)+T_boolean]                 = (Boolean2Boolean << 12)+(Boolean2Boolean << 4)+T_boolean ;
-               //      table[(T_boolean<<4)+T_char]                    = T_undefined ;
-               //      table[(T_boolean<<4)+T_int]                     = T_undefined ;
-               //      table[(T_boolean<<4)+T_null]                    = T_undefined ;
-                       
-               //      table[(T_char<<4)+T_undefined]          = T_undefined ;
-               table[(T_char<<4)+T_byte]                       = (Char2Int<<12)+(Byte2Int<<4)+T_int ;
-               table[(T_char<<4)+T_long]                       = (Char2Long<<12)+(Long2Long<<4)+T_long;
-               table[(T_char<<4)+T_short]                      = (Char2Int<<12)+(Short2Int<<4)+T_int ;
-               //      table[(T_char<<4)+T_void]                       = T_undefined ;
-               //      table[(T_char<<4)+T_String]             = T_undefined ;
-               //      table[(T_char<<4)+T_Object]             = T_undefined ;
-               //      table[(T_char<<4)+T_double]             = T_undefined ;
-               //      table[(T_char<<4)+T_float]                      = T_undefined ;
-               //      table[(T_char<<4)+T_boolean]            = T_undefined ;
-               table[(T_char<<4)+T_char]                       = (Char2Int<<12)+(Char2Int<<4)+T_int ;
-               table[(T_char<<4)+T_int]                        = (Char2Int<<12)+(Int2Int<<4)+T_int ;
-               //      table[(T_char<<4)+T_null]                       = T_undefined ;
-                       
-               //      table[(T_int<<4)+T_undefined]   = T_undefined ;
-               table[(T_int<<4)+T_byte]                = (Int2Int<<12)+(Byte2Int<<4)+T_int ;
-               table[(T_int<<4)+T_long]                = (Int2Long<<12)+(Long2Long<<4)+T_long ;
-               table[(T_int<<4)+T_short]               = (Int2Int<<12)+(Short2Int<<4)+T_int ;
-               //      table[(T_int<<4)+T_void]                = T_undefined ;
-               //      table[(T_int<<4)+T_String]              = T_undefined ;
-               //      table[(T_int<<4)+T_Object]              = T_undefined ;
-               //      table[(T_int<<4)+T_double]              = T_undefined ;
-               //      table[(T_int<<4)+T_float]               = T_undefined ;
-               //      table[(T_int<<4)+T_boolean]     = T_undefined ;
-               table[(T_int<<4)+T_char]                = (Int2Int<<12)+(Char2Int<<4)+T_int ;
-               table[(T_int<<4)+T_int]                 = (Int2Int<<12)+(Int2Int<<4)+T_int ;
-               //      table[(T_int<<4)+T_null]                = T_undefined ;
-               
-               //      table[(T_null<<4)+T_undefined]          = T_undefined ;
-               //      table[(T_null<<4)+T_byte]                       = T_undefined ;
-               //      table[(T_null<<4)+T_long]                       = T_undefined ;
-               //      table[(T_null<<4)+T_short]                      = T_undefined ;
-               //      table[(T_null<<4)+T_void]                       = T_undefined ;
-               //      table[(T_null<<4)+T_String]             = T_undefined ;
-               //      table[(T_null<<4)+T_Object]             = T_undefined ;
-               //      table[(T_null<<4)+T_double]             = T_undefined ;
-               //      table[(T_null<<4)+T_float]                      = T_undefined ;
-               //      table[(T_null<<4)+T_boolean]            = T_undefined ;
-               //      table[(T_null<<4)+T_char]                       = T_undefined ;
-               //      table[(T_null<<4)+T_int]                        = T_undefined ;
-               //      table[(T_null<<4)+T_null]                       = T_undefined ;
-       
-               return table ;
+       public static final int[] get_AND() {
+
+               // the code is an int
+               // (cast) left Op (cast) rigth --> result
+               // 0000 0000 0000 0000 0000
+               // <<16 <<12 <<8 <<4
+
+               int[] table = new int[16 * 16];
+
+               // table[(T_undefined<<4)+T_undefined] = T_undefined ;
+               // table[(T_undefined<<4)+T_byte] = T_undefined ;
+               // table[(T_undefined<<4)+T_long] = T_undefined ;
+               // table[(T_undefined<<4)+T_short] = T_undefined ;
+               // table[(T_undefined<<4)+T_void] = T_undefined ;
+               // table[(T_undefined<<4)+T_String] = T_undefined ;
+               // table[(T_undefined<<4)+T_Object] = T_undefined ;
+               // table[(T_undefined<<4)+T_double] = T_undefined ;
+               // table[(T_undefined<<4)+T_float] = T_undefined ;
+               // table[(T_undefined<<4)+T_boolean] = T_undefined ;
+               // table[(T_undefined<<4)+T_char] = T_undefined ;
+               // table[(T_undefined<<4)+T_int] = T_undefined ;
+               // table[(T_undefined<<4)+T_null] = T_undefined ;
+
+               // table[(T_byte<<4)+T_undefined] = T_undefined ;
+               table[(T_byte << 4) + T_byte] = (Byte2Int << 12) + (Byte2Int << 4)
+                               + T_int;
+               table[(T_byte << 4) + T_long] = (Byte2Long << 12) + (Long2Long << 4)
+                               + T_long;
+               table[(T_byte << 4) + T_short] = (Byte2Int << 12) + (Short2Int << 4)
+                               + T_int;
+               // table[(T_byte<<4)+T_void] = T_undefined ;
+               // table[(T_byte<<4)+T_String] = T_undefined ;
+               // table[(T_byte<<4)+T_Object] = T_undefined ;
+               // table[(T_byte<<4)+T_double] = T_undefined ;
+               // table[(T_byte<<4)+T_float] = T_undefined ;
+               // table[(T_byte<<4)+T_boolean] = T_undefined ;
+               table[(T_byte << 4) + T_char] = (Byte2Int << 12) + (Char2Int << 4)
+                               + T_int;
+               table[(T_byte << 4) + T_int] = (Byte2Int << 12) + (Int2Int << 4)
+                               + T_int;
+               // table[(T_byte<<4)+T_null] = T_undefined ;
+
+               // table[(T_long<<4)+T_undefined] = T_undefined ;
+               table[(T_long << 4) + T_byte] = (Long2Long << 12) + (Byte2Long << 4)
+                               + T_long;
+               table[(T_long << 4) + T_long] = (Long2Long << 12) + (Long2Long << 4)
+                               + T_long;
+               table[(T_long << 4) + T_short] = (Long2Long << 12) + (Short2Long << 4)
+                               + T_long;
+               ;
+               // table[(T_long<<4)+T_void] = T_undefined ;
+               // table[(T_long<<4)+T_String] = T_undefined ;
+               // table[(T_long<<4)+T_Object] = T_undefined ;
+               // table[(T_long<<4)+T_double] = T_undefined ;
+               // table[(T_long<<4)+T_float] = T_undefined ;
+               // table[(T_long<<4)+T_boolean] = T_undefined ;
+               table[(T_long << 4) + T_char] = (Long2Long << 12) + (Char2Long << 4)
+                               + T_long;
+               table[(T_long << 4) + T_int] = (Long2Long << 12) + (Int2Long << 4)
+                               + T_long;
+               // table[(T_long<<4)+T_null] = T_undefined ;
+
+               // table[(T_short<<4)+T_undefined] = T_undefined ;
+               table[(T_short << 4) + T_byte] = (Short2Int << 12) + (Byte2Int << 4)
+                               + T_int;
+               table[(T_short << 4) + T_long] = (Short2Long << 12) + (Long2Long << 4)
+                               + T_long;
+               table[(T_short << 4) + T_short] = (Short2Int << 12) + (Short2Int << 4)
+                               + T_int;
+               // table[(T_short<<4)+T_void] = T_undefined ;
+               // table[(T_short<<4)+T_String] = T_undefined ;
+               // table[(T_short<<4)+T_Object] = T_undefined ;
+               // table[(T_short<<4)+T_double] = T_undefined ;
+               // table[(T_short<<4)+T_float] = T_undefined ;
+               // table[(T_short<<4)+T_boolean] = T_undefined ;
+               table[(T_short << 4) + T_char] = (Short2Int << 12) + (Char2Int << 4)
+                               + T_int;
+               table[(T_short << 4) + T_int] = (Short2Int << 12) + (Int2Int << 4)
+                               + T_int;
+               // table[(T_short<<4)+T_null] = T_undefined ;
+
+               // table[(T_void<<4)+T_undefined] = T_undefined ;
+               // table[(T_void<<4)+T_byte] = T_undefined ;
+               // table[(T_void<<4)+T_long] = T_undefined ;
+               // table[(T_void<<4)+T_short] = T_undefined ;
+               // table[(T_void<<4)+T_void] = T_undefined ;
+               // table[(T_void<<4)+T_String] = T_undefined ;
+               // table[(T_void<<4)+T_Object] = T_undefined ;
+               // table[(T_void<<4)+T_double] = T_undefined ;
+               // table[(T_void<<4)+T_float] = T_undefined ;
+               // table[(T_void<<4)+T_boolean] = T_undefined ;
+               // table[(T_void<<4)+T_char] = T_undefined ;
+               // table[(T_void<<4)+T_int] = T_undefined ;
+               // table[(T_void<<4)+T_null] = T_undefined ;
+
+               // table[(T_String<<4)+T_undefined] = T_undefined ;
+               // table[(T_String<<4)+T_byte] = T_undefined ;
+               // table[(T_String<<4)+T_long] = T_undefined ;
+               // table[(T_String<<4)+T_short] = T_undefined ;
+               // table[(T_String<<4)+T_void] = T_undefined ;
+               // table[(T_String<<4)+T_String] = T_undefined ;
+               // table[(T_String<<4)+T_Object] = T_undefined ;
+               // table[(T_String<<4)+T_double] = T_undefined ;
+               // table[(T_String<<4)+T_float] = T_undefined ;
+               // table[(T_String<<4)+T_boolean] = T_undefined ;
+               // table[(T_String<<4)+T_char] = T_undefined ;
+               // table[(T_String<<4)+T_int] = T_undefined ;
+               // table[(T_String<<4)+T_null] = T_undefined ;
+
+               // table[(T_Object<<4)+T_undefined] = T_undefined ;
+               // table[(T_Object<<4)+T_byte] = T_undefined ;
+               // table[(T_Object<<4)+T_long] = T_undefined ;
+               // table[(T_Object<<4)+T_short] = T_undefined ;
+               // table[(T_Object<<4)+T_void] = T_undefined ;
+               // table[(T_Object<<4)+T_String] = T_undefined ;
+               // table[(T_Object<<4)+T_Object] = T_undefined ;
+               // table[(T_Object<<4)+T_double] = T_undefined ;
+               // table[(T_Object<<4)+T_float] = T_undefined ;
+               // table[(T_Object<<4)+T_boolean] = T_undefined ;
+               // table[(T_Object<<4)+T_char] = T_undefined ;
+               // table[(T_Object<<4)+T_int] = T_undefined ;
+               // table[(T_Object<<4)+T_null] = T_undefined ;
+
+               // table[(T_double<<4)+T_undefined] = T_undefined ;
+               // table[(T_double<<4)+T_byte] = T_undefined ;
+               // table[(T_double<<4)+T_long] = T_undefined ;
+               // table[(T_double<<4)+T_short] = T_undefined ;
+               // table[(T_double<<4)+T_void] = T_undefined ;
+               // table[(T_double<<4)+T_String] = T_undefined ;
+               // table[(T_double<<4)+T_Object] = T_undefined ;
+               // table[(T_double<<4)+T_double] = T_undefined ;
+               // table[(T_double<<4)+T_float] = T_undefined ;
+               // table[(T_double<<4)+T_boolean] = T_undefined ;
+               // table[(T_double<<4)+T_char] = T_undefined ;
+               // table[(T_double<<4)+T_int] = T_undefined;
+               // table[(T_double<<4)+T_null] = T_undefined ;
+
+               // table[(T_float<<4)+T_undefined] = T_undefined ;
+               // table[(T_float<<4)+T_byte] = T_undefined ;
+               // table[(T_float<<4)+T_long] = T_undefined ;
+               // table[(T_float<<4)+T_short] = T_undefined ;
+               // table[(T_float<<4)+T_void] = T_undefined ;
+               // table[(T_float<<4)+T_String] = T_undefined ;
+               // table[(T_float<<4)+T_Object] = T_undefined ;
+               // table[(T_float<<4)+T_double] = T_undefined ;
+               // table[(T_float<<4)+T_float] = T_undefined ;
+               // table[(T_float<<4)+T_boolean] = T_undefined ;
+               // table[(T_float<<4)+T_char] = T_undefined ;
+               // table[(T_float<<4)+T_int] = T_undefined ;
+               // table[(T_float<<4)+T_null] = T_undefined ;
+
+               // table[(T_boolean<<4)+T_undefined] = T_undefined ;
+               // table[(T_boolean<<4)+T_byte] = T_undefined ;
+               // table[(T_boolean<<4)+T_long] = T_undefined ;
+               // table[(T_boolean<<4)+T_short] = T_undefined ;
+               // table[(T_boolean<<4)+T_void] = T_undefined ;
+               // table[(T_boolean<<4)+T_String] = T_undefined ;
+               // table[(T_boolean<<4)+T_Object] = T_undefined ;
+               // table[(T_boolean<<4)+T_double] = T_undefined ;
+               // table[(T_boolean<<4)+T_float] = T_undefined ;
+               table[(T_boolean << 4) + T_boolean] = (Boolean2Boolean << 12)
+                               + (Boolean2Boolean << 4) + T_boolean;
+               // table[(T_boolean<<4)+T_char] = T_undefined ;
+               // table[(T_boolean<<4)+T_int] = T_undefined ;
+               // table[(T_boolean<<4)+T_null] = T_undefined ;
+
+               // table[(T_char<<4)+T_undefined] = T_undefined ;
+               table[(T_char << 4) + T_byte] = (Char2Int << 12) + (Byte2Int << 4)
+                               + T_int;
+               table[(T_char << 4) + T_long] = (Char2Long << 12) + (Long2Long << 4)
+                               + T_long;
+               table[(T_char << 4) + T_short] = (Char2Int << 12) + (Short2Int << 4)
+                               + T_int;
+               // table[(T_char<<4)+T_void] = T_undefined ;
+               // table[(T_char<<4)+T_String] = T_undefined ;
+               // table[(T_char<<4)+T_Object] = T_undefined ;
+               // table[(T_char<<4)+T_double] = T_undefined ;
+               // table[(T_char<<4)+T_float] = T_undefined ;
+               // table[(T_char<<4)+T_boolean] = T_undefined ;
+               table[(T_char << 4) + T_char] = (Char2Int << 12) + (Char2Int << 4)
+                               + T_int;
+               table[(T_char << 4) + T_int] = (Char2Int << 12) + (Int2Int << 4)
+                               + T_int;
+               // table[(T_char<<4)+T_null] = T_undefined ;
+
+               // table[(T_int<<4)+T_undefined] = T_undefined ;
+               table[(T_int << 4) + T_byte] = (Int2Int << 12) + (Byte2Int << 4)
+                               + T_int;
+               table[(T_int << 4) + T_long] = (Int2Long << 12) + (Long2Long << 4)
+                               + T_long;
+               table[(T_int << 4) + T_short] = (Int2Int << 12) + (Short2Int << 4)
+                               + T_int;
+               // table[(T_int<<4)+T_void] = T_undefined ;
+               // table[(T_int<<4)+T_String] = T_undefined ;
+               // table[(T_int<<4)+T_Object] = T_undefined ;
+               // table[(T_int<<4)+T_double] = T_undefined ;
+               // table[(T_int<<4)+T_float] = T_undefined ;
+               // table[(T_int<<4)+T_boolean] = T_undefined ;
+               table[(T_int << 4) + T_char] = (Int2Int << 12) + (Char2Int << 4)
+                               + T_int;
+               table[(T_int << 4) + T_int] = (Int2Int << 12) + (Int2Int << 4) + T_int;
+               // table[(T_int<<4)+T_null] = T_undefined ;
+
+               // table[(T_null<<4)+T_undefined] = T_undefined ;
+               // table[(T_null<<4)+T_byte] = T_undefined ;
+               // table[(T_null<<4)+T_long] = T_undefined ;
+               // table[(T_null<<4)+T_short] = T_undefined ;
+               // table[(T_null<<4)+T_void] = T_undefined ;
+               // table[(T_null<<4)+T_String] = T_undefined ;
+               // table[(T_null<<4)+T_Object] = T_undefined ;
+               // table[(T_null<<4)+T_double] = T_undefined ;
+               // table[(T_null<<4)+T_float] = T_undefined ;
+               // table[(T_null<<4)+T_boolean] = T_undefined ;
+               // table[(T_null<<4)+T_char] = T_undefined ;
+               // table[(T_null<<4)+T_int] = T_undefined ;
+               // table[(T_null<<4)+T_null] = T_undefined ;
+
+               return table;
        }
 
-       public static final int[] get_AND_AND(){
-       
-               //the code is an int
-               // (cast)  left   Op (cast)  rigth --> result
-               //  0000   0000       0000   0000      0000
-               //  <<16   <<12       <<8    <<4       
-               
-               int[] table  = new int[16*16] ;
-               
-               //     table[(T_undefined<<4)+T_undefined]              = T_undefined ;
-               //     table[(T_undefined<<4)+T_byte]                   = T_undefined ;
-               //     table[(T_undefined<<4)+T_long]                   = T_undefined ;
-               //     table[(T_undefined<<4)+T_short]                  = T_undefined ;
-               //     table[(T_undefined<<4)+T_void]                   = T_undefined ;
-               //     table[(T_undefined<<4)+T_String]                 = T_undefined ;
-               //     table[(T_undefined<<4)+T_Object]                 = T_undefined ;
-               //     table[(T_undefined<<4)+T_double]                 = T_undefined ;
-               //     table[(T_undefined<<4)+T_float]                  = T_undefined ;
-               //     table[(T_undefined<<4)+T_boolean]                = T_undefined ;
-               //     table[(T_undefined<<4)+T_char]                   = T_undefined ;
-               //     table[(T_undefined<<4)+T_int]                    = T_undefined ;
-               //     table[(T_undefined<<4)+T_null]                   = T_undefined ;
-                       
-               //     table[(T_byte<<4)+T_undefined]   = T_undefined ;
-               //     table[(T_byte<<4)+T_byte]                = T_undefined ;
-               //     table[(T_byte<<4)+T_long]                = T_undefined ;
-               //     table[(T_byte<<4)+T_short]               = T_undefined ;
-               //     table[(T_byte<<4)+T_void]                = T_undefined ;
-               //     table[(T_byte<<4)+T_String]              = T_undefined ;
-               //     table[(T_byte<<4)+T_Object]              = T_undefined ;
-               //     table[(T_byte<<4)+T_double]              = T_undefined ;
-               //     table[(T_byte<<4)+T_float]               = T_undefined ;
-               //     table[(T_byte<<4)+T_boolean]     = T_undefined ;
-               //     table[(T_byte<<4)+T_char]                = T_undefined ;
-               //     table[(T_byte<<4)+T_int]                 = T_undefined ;
-               //     table[(T_byte<<4)+T_null]                = T_undefined ;
-               
-               //     table[(T_long<<4)+T_undefined]   = T_undefined ;
-               //     table[(T_long<<4)+T_byte]                = T_undefined;
-               //     table[(T_long<<4)+T_long]                = T_undefined ;
-               //     table[(T_long<<4)+T_short]               = T_undefined ;
-               //     table[(T_long<<4)+T_void]                = T_undefined ;
-               //     table[(T_long<<4)+T_String]              = T_undefined ;
-               //     table[(T_long<<4)+T_Object]              = T_undefined ;
-               //     table[(T_long<<4)+T_double]              = T_undefined ;
-               //     table[(T_long<<4)+T_float]               = T_undefined ;
-               //     table[(T_long<<4)+T_boolean]     = T_undefined ;
-               //     table[(T_long<<4)+T_char]                = T_undefined ;
-               //     table[(T_long<<4)+T_int]                 = T_undefined ;
-               //     table[(T_long<<4)+T_null]                = T_undefined ;
-               
-               //     table[(T_short<<4)+T_undefined]  = T_undefined ;
-               //     table[(T_short<<4)+T_byte]               = T_undefined ;
-               //     table[(T_short<<4)+T_long]               = T_undefined ;
-               //     table[(T_short<<4)+T_short]              = T_undefined ;
-               //     table[(T_short<<4)+T_void]               = T_undefined ;
-               //     table[(T_short<<4)+T_String]     = T_undefined ;
-               //     table[(T_short<<4)+T_Object]     = T_undefined ;
-               //     table[(T_short<<4)+T_double]     = T_undefined ;
-               //     table[(T_short<<4)+T_float]              = T_undefined ;
-               //     table[(T_short<<4)+T_boolean]    = T_undefined ;
-               //     table[(T_short<<4)+T_char]               = T_undefined ;
-               //     table[(T_short<<4)+T_int]                = T_undefined ;
-               //     table[(T_short<<4)+T_null]               = T_undefined ;
-               
-               //     table[(T_void<<4)+T_undefined]   = T_undefined ;
-               //     table[(T_void<<4)+T_byte]                = T_undefined ;
-               //     table[(T_void<<4)+T_long]                = T_undefined ;
-               //     table[(T_void<<4)+T_short]               = T_undefined ;
-               //     table[(T_void<<4)+T_void]                = T_undefined ;
-               //     table[(T_void<<4)+T_String]      = T_undefined ;
-               //     table[(T_void<<4)+T_Object]      = T_undefined ;
-               //     table[(T_void<<4)+T_double]      = T_undefined ;
-               //     table[(T_void<<4)+T_float]               = T_undefined ;
-               //     table[(T_void<<4)+T_boolean]     = T_undefined ;
-               //     table[(T_void<<4)+T_char]                = T_undefined ;
-               //     table[(T_void<<4)+T_int]                 = T_undefined ;
-               //     table[(T_void<<4)+T_null]                = T_undefined ;
-               
-               //     table[(T_String<<4)+T_undefined]         = T_undefined ;
-               //     table[(T_String<<4)+T_byte]              = T_undefined ;
-               //     table[(T_String<<4)+T_long]              = T_undefined ;
-               //     table[(T_String<<4)+T_short]             = T_undefined ;
-               //     table[(T_String<<4)+T_void]              = T_undefined ;
-               //     table[(T_String<<4)+T_String]            = T_undefined ;
-               //     table[(T_String<<4)+T_Object]            = T_undefined ;
-               //     table[(T_String<<4)+T_double]            = T_undefined ;
-               //     table[(T_String<<4)+T_float]             = T_undefined ;
-               //     table[(T_String<<4)+T_boolean]           = T_undefined ;
-               //     table[(T_String<<4)+T_char]              = T_undefined ;
-               //     table[(T_String<<4)+T_int]                       = T_undefined ;
-               //     table[(T_String<<4)+T_null]              = T_undefined ;
-               
-               //     table[(T_Object<<4)+T_undefined]         = T_undefined ;
-               //     table[(T_Object<<4)+T_byte]              = T_undefined ;
-               //     table[(T_Object<<4)+T_long]              = T_undefined ;
-               //     table[(T_Object<<4)+T_short]             = T_undefined ;
-               //     table[(T_Object<<4)+T_void]              = T_undefined ;
-               //     table[(T_Object<<4)+T_String]            = T_undefined ;
-               //     table[(T_Object<<4)+T_Object]            = T_undefined ;
-               //     table[(T_Object<<4)+T_double]            = T_undefined ;
-               //     table[(T_Object<<4)+T_float]             = T_undefined ;
-               //     table[(T_Object<<4)+T_boolean]           = T_undefined ;
-               //     table[(T_Object<<4)+T_char]              = T_undefined ;
-               //     table[(T_Object<<4)+T_int]                       = T_undefined ;
-               //     table[(T_Object<<4)+T_null]              = T_undefined ;
-               
-               //     table[(T_double<<4)+T_undefined]         = T_undefined ;
-               //     table[(T_double<<4)+T_byte]              = T_undefined ;
-               //     table[(T_double<<4)+T_long]              = T_undefined ;
-               //     table[(T_double<<4)+T_short]             = T_undefined ;
-               //     table[(T_double<<4)+T_void]              = T_undefined ;
-               //     table[(T_double<<4)+T_String]            = T_undefined ;
-               //     table[(T_double<<4)+T_Object]            = T_undefined ;
-               //     table[(T_double<<4)+T_double]            = T_undefined ;
-               //     table[(T_double<<4)+T_float]             = T_undefined ;
-               //     table[(T_double<<4)+T_boolean]           = T_undefined ;
-               //     table[(T_double<<4)+T_char]              = T_undefined ;
-               //     table[(T_double<<4)+T_int]                       = T_undefined;
-               //     table[(T_double<<4)+T_null]              = T_undefined ;
-               
-               //     table[(T_float<<4)+T_undefined]  = T_undefined ;
-               //     table[(T_float<<4)+T_byte]                       = T_undefined ;
-               //     table[(T_float<<4)+T_long]                       = T_undefined ;
-               //     table[(T_float<<4)+T_short]              = T_undefined ;
-               //     table[(T_float<<4)+T_void]                       = T_undefined ;
-               //     table[(T_float<<4)+T_String]             = T_undefined ;
-               //     table[(T_float<<4)+T_Object]             = T_undefined ;
-               //     table[(T_float<<4)+T_double]             = T_undefined ;
-               //     table[(T_float<<4)+T_float]              = T_undefined ;
-               //     table[(T_float<<4)+T_boolean]            = T_undefined ;
-               //     table[(T_float<<4)+T_char]                       = T_undefined ;
-               //     table[(T_float<<4)+T_int]                        = T_undefined ;
-               //     table[(T_float<<4)+T_null]                       = T_undefined ;
-               
-               //     table[(T_boolean<<4)+T_undefined]                = T_undefined ;
-               //     table[(T_boolean<<4)+T_byte]                     = T_undefined ;
-               //     table[(T_boolean<<4)+T_long]                     = T_undefined ;
-               //     table[(T_boolean<<4)+T_short]                    = T_undefined ;
-               //     table[(T_boolean<<4)+T_void]                     = T_undefined ;
-               //     table[(T_boolean<<4)+T_String]                   = T_undefined ;
-               //     table[(T_boolean<<4)+T_Object]                   = T_undefined ;
-               //     table[(T_boolean<<4)+T_double]                   = T_undefined ;
-               //     table[(T_boolean<<4)+T_float]                    = T_undefined ;
-          table[(T_boolean<<4)+T_boolean]              = (Boolean2Boolean<<12)+(Boolean2Boolean<<4)+T_boolean ;
-               //     table[(T_boolean<<4)+T_char]                     = T_undefined ;
-               //     table[(T_boolean<<4)+T_int]                      = T_undefined ;
-               //     table[(T_boolean<<4)+T_null]                     = T_undefined ;
-                       
-               //     table[(T_char<<4)+T_undefined]           = T_undefined ;
-               //     table[(T_char<<4)+T_byte]                        = T_undefined ;
-               //     table[(T_char<<4)+T_long]                        = T_undefined;
-               //     table[(T_char<<4)+T_short]                       = T_undefined ;
-               //     table[(T_char<<4)+T_void]                        = T_undefined ;
-               //     table[(T_char<<4)+T_String]              = T_undefined ;
-               //     table[(T_char<<4)+T_Object]              = T_undefined ;
-               //     table[(T_char<<4)+T_double]              = T_undefined ;
-               //     table[(T_char<<4)+T_float]                       = T_undefined ;
-               //     table[(T_char<<4)+T_boolean]             = T_undefined ;
-               //     table[(T_char<<4)+T_char]                        = T_undefined ;
-               //     table[(T_char<<4)+T_int]                         = T_undefined ;
-               //     table[(T_char<<4)+T_null]                        = T_undefined ;
-                       
-               //     table[(T_int<<4)+T_undefined]    = T_undefined ;
-               //     table[(T_int<<4)+T_byte]                 = T_undefined ;
-               //     table[(T_int<<4)+T_long]                 = T_undefined ;
-               //     table[(T_int<<4)+T_short]                = T_undefined ;
-               //     table[(T_int<<4)+T_void]                 = T_undefined ;
-               //     table[(T_int<<4)+T_String]               = T_undefined ;
-               //     table[(T_int<<4)+T_Object]               = T_undefined ;
-               //     table[(T_int<<4)+T_double]               = T_undefined ;
-               //     table[(T_int<<4)+T_float]                = T_undefined ;
-               //     table[(T_int<<4)+T_boolean]      = T_undefined ;
-               //     table[(T_int<<4)+T_char]                 = T_undefined ;
-               //     table[(T_int<<4)+T_int]          = T_undefined ;
-               //     table[(T_int<<4)+T_null]                 = T_undefined ;
-               
-               //     table[(T_null<<4)+T_undefined]           = T_undefined ;
-               //     table[(T_null<<4)+T_byte]                        = T_undefined ;
-               //     table[(T_null<<4)+T_long]                        = T_undefined ;
-               //     table[(T_null<<4)+T_short]                       = T_undefined ;
-               //     table[(T_null<<4)+T_void]                        = T_undefined ;
-               //     table[(T_null<<4)+T_String]              = T_undefined ;
-               //     table[(T_null<<4)+T_Object]              = T_undefined ;
-               //     table[(T_null<<4)+T_double]              = T_undefined ;
-               //     table[(T_null<<4)+T_float]                       = T_undefined ;
-               //     table[(T_null<<4)+T_boolean]             = T_undefined ;
-               //     table[(T_null<<4)+T_char]                        = T_undefined ;
-               //     table[(T_null<<4)+T_int]                         = T_undefined ;
-               //     table[(T_null<<4)+T_null]                        = T_undefined ;
-               return table ;
+       public static final int[] get_AND_AND() {
+
+               // the code is an int
+               // (cast) left Op (cast) rigth --> result
+               // 0000 0000 0000 0000 0000
+               // <<16 <<12 <<8 <<4
+
+               int[] table = new int[16 * 16];
+
+               // table[(T_undefined<<4)+T_undefined] = T_undefined ;
+               // table[(T_undefined<<4)+T_byte] = T_undefined ;
+               // table[(T_undefined<<4)+T_long] = T_undefined ;
+               // table[(T_undefined<<4)+T_short] = T_undefined ;
+               // table[(T_undefined<<4)+T_void] = T_undefined ;
+               // table[(T_undefined<<4)+T_String] = T_undefined ;
+               // table[(T_undefined<<4)+T_Object] = T_undefined ;
+               // table[(T_undefined<<4)+T_double] = T_undefined ;
+               // table[(T_undefined<<4)+T_float] = T_undefined ;
+               // table[(T_undefined<<4)+T_boolean] = T_undefined ;
+               // table[(T_undefined<<4)+T_char] = T_undefined ;
+               // table[(T_undefined<<4)+T_int] = T_undefined ;
+               // table[(T_undefined<<4)+T_null] = T_undefined ;
+
+               // table[(T_byte<<4)+T_undefined] = T_undefined ;
+               // table[(T_byte<<4)+T_byte] = T_undefined ;
+               // table[(T_byte<<4)+T_long] = T_undefined ;
+               // table[(T_byte<<4)+T_short] = T_undefined ;
+               // table[(T_byte<<4)+T_void] = T_undefined ;
+               // table[(T_byte<<4)+T_String] = T_undefined ;
+               // table[(T_byte<<4)+T_Object] = T_undefined ;
+               // table[(T_byte<<4)+T_double] = T_undefined ;
+               // table[(T_byte<<4)+T_float] = T_undefined ;
+               // table[(T_byte<<4)+T_boolean] = T_undefined ;
+               // table[(T_byte<<4)+T_char] = T_undefined ;
+               // table[(T_byte<<4)+T_int] = T_undefined ;
+               // table[(T_byte<<4)+T_null] = T_undefined ;
+
+               // table[(T_long<<4)+T_undefined] = T_undefined ;
+               // table[(T_long<<4)+T_byte] = T_undefined;
+               // table[(T_long<<4)+T_long] = T_undefined ;
+               // table[(T_long<<4)+T_short] = T_undefined ;
+               // table[(T_long<<4)+T_void] = T_undefined ;
+               // table[(T_long<<4)+T_String] = T_undefined ;
+               // table[(T_long<<4)+T_Object] = T_undefined ;
+               // table[(T_long<<4)+T_double] = T_undefined ;
+               // table[(T_long<<4)+T_float] = T_undefined ;
+               // table[(T_long<<4)+T_boolean] = T_undefined ;
+               // table[(T_long<<4)+T_char] = T_undefined ;
+               // table[(T_long<<4)+T_int] = T_undefined ;
+               // table[(T_long<<4)+T_null] = T_undefined ;
+
+               // table[(T_short<<4)+T_undefined] = T_undefined ;
+               // table[(T_short<<4)+T_byte] = T_undefined ;
+               // table[(T_short<<4)+T_long] = T_undefined ;
+               // table[(T_short<<4)+T_short] = T_undefined ;
+               // table[(T_short<<4)+T_void] = T_undefined ;
+               // table[(T_short<<4)+T_String] = T_undefined ;
+               // table[(T_short<<4)+T_Object] = T_undefined ;
+               // table[(T_short<<4)+T_double] = T_undefined ;
+               // table[(T_short<<4)+T_float] = T_undefined ;
+               // table[(T_short<<4)+T_boolean] = T_undefined ;
+               // table[(T_short<<4)+T_char] = T_undefined ;
+               // table[(T_short<<4)+T_int] = T_undefined ;
+               // table[(T_short<<4)+T_null] = T_undefined ;
+
+               // table[(T_void<<4)+T_undefined] = T_undefined ;
+               // table[(T_void<<4)+T_byte] = T_undefined ;
+               // table[(T_void<<4)+T_long] = T_undefined ;
+               // table[(T_void<<4)+T_short] = T_undefined ;
+               // table[(T_void<<4)+T_void] = T_undefined ;
+               // table[(T_void<<4)+T_String] = T_undefined ;
+               // table[(T_void<<4)+T_Object] = T_undefined ;
+               // table[(T_void<<4)+T_double] = T_undefined ;
+               // table[(T_void<<4)+T_float] = T_undefined ;
+               // table[(T_void<<4)+T_boolean] = T_undefined ;
+               // table[(T_void<<4)+T_char] = T_undefined ;
+               // table[(T_void<<4)+T_int] = T_undefined ;
+               // table[(T_void<<4)+T_null] = T_undefined ;
+
+               // table[(T_String<<4)+T_undefined] = T_undefined ;
+               // table[(T_String<<4)+T_byte] = T_undefined ;
+               // table[(T_String<<4)+T_long] = T_undefined ;
+               // table[(T_String<<4)+T_short] = T_undefined ;
+               // table[(T_String<<4)+T_void] = T_undefined ;
+               // table[(T_String<<4)+T_String] = T_undefined ;
+               // table[(T_String<<4)+T_Object] = T_undefined ;
+               // table[(T_String<<4)+T_double] = T_undefined ;
+               // table[(T_String<<4)+T_float] = T_undefined ;
+               // table[(T_String<<4)+T_boolean] = T_undefined ;
+               // table[(T_String<<4)+T_char] = T_undefined ;
+               // table[(T_String<<4)+T_int] = T_undefined ;
+               // table[(T_String<<4)+T_null] = T_undefined ;
+
+               // table[(T_Object<<4)+T_undefined] = T_undefined ;
+               // table[(T_Object<<4)+T_byte] = T_undefined ;
+               // table[(T_Object<<4)+T_long] = T_undefined ;
+               // table[(T_Object<<4)+T_short] = T_undefined ;
+               // table[(T_Object<<4)+T_void] = T_undefined ;
+               // table[(T_Object<<4)+T_String] = T_undefined ;
+               // table[(T_Object<<4)+T_Object] = T_undefined ;
+               // table[(T_Object<<4)+T_double] = T_undefined ;
+               // table[(T_Object<<4)+T_float] = T_undefined ;
+               // table[(T_Object<<4)+T_boolean] = T_undefined ;
+               // table[(T_Object<<4)+T_char] = T_undefined ;
+               // table[(T_Object<<4)+T_int] = T_undefined ;
+               // table[(T_Object<<4)+T_null] = T_undefined ;
+
+               // table[(T_double<<4)+T_undefined] = T_undefined ;
+               // table[(T_double<<4)+T_byte] = T_undefined ;
+               // table[(T_double<<4)+T_long] = T_undefined ;
+               // table[(T_double<<4)+T_short] = T_undefined ;
+               // table[(T_double<<4)+T_void] = T_undefined ;
+               // table[(T_double<<4)+T_String] = T_undefined ;
+               // table[(T_double<<4)+T_Object] = T_undefined ;
+               // table[(T_double<<4)+T_double] = T_undefined ;
+               // table[(T_double<<4)+T_float] = T_undefined ;
+               // table[(T_double<<4)+T_boolean] = T_undefined ;
+               // table[(T_double<<4)+T_char] = T_undefined ;
+               // table[(T_double<<4)+T_int] = T_undefined;
+               // table[(T_double<<4)+T_null] = T_undefined ;
+
+               // table[(T_float<<4)+T_undefined] = T_undefined ;
+               // table[(T_float<<4)+T_byte] = T_undefined ;
+               // table[(T_float<<4)+T_long] = T_undefined ;
+               // table[(T_float<<4)+T_short] = T_undefined ;
+               // table[(T_float<<4)+T_void] = T_undefined ;
+               // table[(T_float<<4)+T_String] = T_undefined ;
+               // table[(T_float<<4)+T_Object] = T_undefined ;
+               // table[(T_float<<4)+T_double] = T_undefined ;
+               // table[(T_float<<4)+T_float] = T_undefined ;
+               // table[(T_float<<4)+T_boolean] = T_undefined ;
+               // table[(T_float<<4)+T_char] = T_undefined ;
+               // table[(T_float<<4)+T_int] = T_undefined ;
+               // table[(T_float<<4)+T_null] = T_undefined ;
+
+               // table[(T_boolean<<4)+T_undefined] = T_undefined ;
+               // table[(T_boolean<<4)+T_byte] = T_undefined ;
+               // table[(T_boolean<<4)+T_long] = T_undefined ;
+               // table[(T_boolean<<4)+T_short] = T_undefined ;
+               // table[(T_boolean<<4)+T_void] = T_undefined ;
+               // table[(T_boolean<<4)+T_String] = T_undefined ;
+               // table[(T_boolean<<4)+T_Object] = T_undefined ;
+               // table[(T_boolean<<4)+T_double] = T_undefined ;
+               // table[(T_boolean<<4)+T_float] = T_undefined ;
+               table[(T_boolean << 4) + T_boolean] = (Boolean2Boolean << 12)
+                               + (Boolean2Boolean << 4) + T_boolean;
+               // table[(T_boolean<<4)+T_char] = T_undefined ;
+               // table[(T_boolean<<4)+T_int] = T_undefined ;
+               // table[(T_boolean<<4)+T_null] = T_undefined ;
+
+               // table[(T_char<<4)+T_undefined] = T_undefined ;
+               // table[(T_char<<4)+T_byte] = T_undefined ;
+               // table[(T_char<<4)+T_long] = T_undefined;
+               // table[(T_char<<4)+T_short] = T_undefined ;
+               // table[(T_char<<4)+T_void] = T_undefined ;
+               // table[(T_char<<4)+T_String] = T_undefined ;
+               // table[(T_char<<4)+T_Object] = T_undefined ;
+               // table[(T_char<<4)+T_double] = T_undefined ;
+               // table[(T_char<<4)+T_float] = T_undefined ;
+               // table[(T_char<<4)+T_boolean] = T_undefined ;
+               // table[(T_char<<4)+T_char] = T_undefined ;
+               // table[(T_char<<4)+T_int] = T_undefined ;
+               // table[(T_char<<4)+T_null] = T_undefined ;
+
+               // table[(T_int<<4)+T_undefined] = T_undefined ;
+               // table[(T_int<<4)+T_byte] = T_undefined ;
+               // table[(T_int<<4)+T_long] = T_undefined ;
+               // table[(T_int<<4)+T_short] = T_undefined ;
+               // table[(T_int<<4)+T_void] = T_undefined ;
+               // table[(T_int<<4)+T_String] = T_undefined ;
+               // table[(T_int<<4)+T_Object] = T_undefined ;
+               // table[(T_int<<4)+T_double] = T_undefined ;
+               // table[(T_int<<4)+T_float] = T_undefined ;
+               // table[(T_int<<4)+T_boolean] = T_undefined ;
+               // table[(T_int<<4)+T_char] = T_undefined ;
+               // table[(T_int<<4)+T_int] = T_undefined ;
+               // table[(T_int<<4)+T_null] = T_undefined ;
+
+               // table[(T_null<<4)+T_undefined] = T_undefined ;
+               // table[(T_null<<4)+T_byte] = T_undefined ;
+               // table[(T_null<<4)+T_long] = T_undefined ;
+               // table[(T_null<<4)+T_short] = T_undefined ;
+               // table[(T_null<<4)+T_void] = T_undefined ;
+               // table[(T_null<<4)+T_String] = T_undefined ;
+               // table[(T_null<<4)+T_Object] = T_undefined ;
+               // table[(T_null<<4)+T_double] = T_undefined ;
+               // table[(T_null<<4)+T_float] = T_undefined ;
+               // table[(T_null<<4)+T_boolean] = T_undefined ;
+               // table[(T_null<<4)+T_char] = T_undefined ;
+               // table[(T_null<<4)+T_int] = T_undefined ;
+               // table[(T_null<<4)+T_null] = T_undefined ;
+               return table;
        }
 
-       public static final int[] get_DIVIDE(){
-       
-               //the code is an int
-               // (cast)  left   Op (cast)  rigth --> result
-               //  0000   0000       0000   0000      0000
-               //  <<16   <<12       <<8    <<4       
-               
-               
-       //      int[] table  = new int[16*16] ;
-               
+       public static final int[] get_DIVIDE() {
+
+               // the code is an int
+               // (cast) left Op (cast) rigth --> result
+               // 0000 0000 0000 0000 0000
+               // <<16 <<12 <<8 <<4
+
+               // int[] table = new int[16*16] ;
+
                return get_MINUS();
        }
 
-       public static final int[] get_EQUAL_EQUAL(){
-       
-               //the code is an int
-               // (cast)  left   Op (cast)  rigth --> result
-               //  0000   0000       0000   0000      0000
-               //  <<16   <<12       <<8    <<4       
-               
-               int[] table  = new int[16*16] ;
-               
-               //      table[(T_undefined<<4)+T_undefined]     = T_undefined ;
-               //      table[(T_undefined<<4)+T_byte]                  = T_undefined ;
-               //      table[(T_undefined<<4)+T_long]                  = T_undefined ;
-               //      table[(T_undefined<<4)+T_short]                 = T_undefined ;
-               //      table[(T_undefined<<4)+T_void]                  = T_undefined ;
-               //      table[(T_undefined<<4)+T_String]                = T_undefined ;
-               //      table[(T_undefined<<4)+T_Object]                = T_undefined ;
-               //      table[(T_undefined<<4)+T_double]                = T_undefined ;
-               //      table[(T_undefined<<4)+T_float]                 = T_undefined ;
-               //      table[(T_undefined<<4)+T_boolean]               = T_undefined ;
-               //      table[(T_undefined<<4)+T_char]                  = T_undefined ;
-               //      table[(T_undefined<<4)+T_int]                   = T_undefined ;
-               //      table[(T_undefined<<4)+T_null]                  = T_undefined ;
-               
-               //      table[(T_byte<<4)+T_undefined]  = T_undefined ;
-               table[(T_byte<<4)+T_byte]               = (Byte2Int<<12)+(Byte2Int<<4)+T_boolean ;
-               table[(T_byte<<4)+T_long]               = (Byte2Long<<12)+(Long2Long<<4)+T_boolean ;
-               table[(T_byte<<4)+T_short]              = (Byte2Int<<12)+(Short2Int<<4)+T_boolean ;
-               //      table[(T_byte<<4)+T_void]               = T_undefined ;
-               //      table[(T_byte<<4)+T_String]     = T_undefined ;
-               //      table[(T_byte<<4)+T_Object]     = T_undefined ;
-               table[(T_byte<<4)+T_double]     = (Byte2Double<<12)+(Double2Double<<4)+T_boolean ;
-               table[(T_byte<<4)+T_float]              = (Byte2Float<<12)+(Float2Float<<4)+T_boolean;
-               //      table[(T_byte<<4)+T_boolean]    = T_undefined ;
-               table[(T_byte<<4)+T_char]               = (Byte2Int<<12)+(Char2Int<<4)+T_boolean ;
-               table[(T_byte<<4)+T_int]                = (Byte2Int<<12)+(Int2Int<<4)+T_boolean;
-               //      table[(T_byte<<4)+T_null]               = T_undefined ;
-       
-               //      table[(T_long<<4)+T_undefined]  = T_undefined ;
-               table[(T_long<<4)+T_byte]               = (Long2Long<<12)+(Byte2Long<<4)+T_boolean;
-               table[(T_long<<4)+T_long]               = (Long2Long<<12)+(Long2Long<<4)+T_boolean ;
-               table[(T_long<<4)+T_short]              = (Long2Long<<12)+(Short2Long<<4)+T_boolean ;
-               //      table[(T_long<<4)+T_void]               = T_undefined ;
-               //      table[(T_long<<4)+T_String]     = T_undefined ;
-               //      table[(T_long<<4)+T_Object]     = T_undefined ;
-               table[(T_long<<4)+T_double]     = (Long2Double<<12)+(Double2Double<<4)+T_boolean ;
-               table[(T_long<<4)+T_float]              = (Long2Float<<12)+(Float2Float<<4)+T_boolean ;
-               //      table[(T_long<<4)+T_boolean]    = T_undefined ;
-               table[(T_long<<4)+T_char]               = (Long2Long<<12)+(Char2Long<<4)+T_boolean ;
-               table[(T_long<<4)+T_int]                = (Long2Long<<12)+(Int2Long<<4)+T_boolean ;
-               //      table[(T_long<<4)+T_null]               = T_undefined ;
-       
-               //      table[(T_short<<4)+T_undefined]         = T_undefined ;
-               table[(T_short<<4)+T_byte]                      = (Short2Int<<12)+(Byte2Int<<4)+T_boolean ;
-               table[(T_short<<4)+T_long]                      = (Short2Long<<12)+(Long2Long<<4)+T_boolean ;
-               table[(T_short<<4)+T_short]             = (Short2Int<<12)+(Short2Int<<4)+T_boolean ;
-               //      table[(T_short<<4)+T_void]                      = T_undefined ;
-               //      table[(T_short<<4)+T_String]            = T_undefined ;
-               //      table[(T_short<<4)+T_Object]            = T_undefined ;
-               table[(T_short<<4)+T_double]            = (Short2Double<<12)+(Double2Double<<4)+T_boolean ;
-               table[(T_short<<4)+T_float]             = (Short2Float<<12)+(Float2Float<<4)+T_boolean ;
-               //      table[(T_short<<4)+T_boolean]           = T_undefined ;
-               table[(T_short<<4)+T_char]                      = (Short2Int<<12)+(Char2Int<<4)+T_boolean ;
-               table[(T_short<<4)+T_int]                       = (Short2Int<<12)+(Int2Int<<4)+T_boolean ;
-               //      table[(T_short<<4)+T_null]                      = T_undefined ;
-               
-               //      table[(T_void<<4)+T_undefined]  = T_undefined ;
-               //      table[(T_void<<4)+T_byte]               = T_undefined ;
-               //      table[(T_void<<4)+T_long]               = T_undefined ;
-               //      table[(T_void<<4)+T_short]              = T_undefined ;
-               //      table[(T_void<<4)+T_void]               = T_undefined ;
-               //      table[(T_void<<4)+T_String]     = T_undefined ;
-               //      table[(T_void<<4)+T_Object]     = T_undefined ;
-               //      table[(T_void<<4)+T_double]     = T_undefined ;
-               //      table[(T_void<<4)+T_float]              = T_undefined ;
-               //      table[(T_void<<4)+T_boolean]    = T_undefined ;
-               //      table[(T_void<<4)+T_char]               = T_undefined ;
-               //      table[(T_void<<4)+T_int]                = T_undefined ;
-               //      table[(T_void<<4)+T_null]               = T_undefined ;
-               
-               //      table[(T_String<<4)+T_undefined]        = T_undefined ; 
-               //      table[(T_String<<4)+T_byte]             = T_undefined ;
-               //      table[(T_String<<4)+T_long]             = T_undefined ; 
-               //      table[(T_String<<4)+T_short]            = T_undefined ;
-               //      table[(T_String<<4)+T_void]             = T_undefined ;
-               table[(T_String<<4)+T_String]           = /*String2Object                 String2Object*/
-                                                                                         (T_Object<<16)+(T_String<<12)+(T_Object<<8)+(T_String<<4)+T_boolean ;
-               table[(T_String<<4)+T_Object]           = /*String2Object                 Object2Object*/
-                                                                                         (T_Object<<16)+(T_String<<12)+(T_Object<<8)+(T_Object<<4)+T_boolean ;
-               //      table[(T_String<<4)+T_double]           = T_undefined ;
-               //      table[(T_String<<4)+T_float]            = T_undefined ; 
-               //      table[(T_String<<4)+T_boolean]          = T_undefined ;
-               //      table[(T_String<<4)+T_char]             = T_undefined ;
-               //      table[(T_String<<4)+T_int]                      = T_undefined ;
-               table[(T_String<<4)+T_null]             = /*Object2String                null2Object */
-                                                                                         (T_Object<<16)+(T_String<<12)+(T_Object<<8)+(T_null<<4)+T_boolean ;
-       
-               //      table[(T_Object<<4)+T_undefined]        = T_undefined ;
-               //      table[(T_Object<<4)+T_byte]             = T_undefined ;
-               //      table[(T_Object<<4)+T_long]             = T_undefined ;
-               //      table[(T_Object<<4)+T_short]            = T_undefined ;
-               //      table[(T_Object<<4)+T_void]             = T_undefined ;
-               table[(T_Object<<4)+T_String]           = /*Object2Object                 String2Object*/
-                                                                                         (T_Object<<16)+(T_Object<<12)+(T_Object<<8)+(T_String<<4)+T_boolean ;
-               table[(T_Object<<4)+T_Object]           = /*Object2Object                 Object2Object*/
-                                                                                         (T_Object<<16)+(T_Object<<12)+(T_Object<<8)+(T_Object<<4)+T_boolean ;
-               //      table[(T_Object<<4)+T_double]           = T_undefined ;
-               //      table[(T_Object<<4)+T_float]            = T_undefined ;
-               //      table[(T_Object<<4)+T_boolean]          = T_undefined ;
-               //      table[(T_Object<<4)+T_char]             = T_undefined ;
-               //      table[(T_Object<<4)+T_int]                      = T_undefined ;
-               table[(T_Object<<4)+T_null]             = /*Object2Object                 null2Object*/
-                                                                                         (T_Object<<16)+(T_Object<<12)+(T_Object<<8)+(T_null<<4)+T_boolean ;
-       
-               //      table[(T_double<<4)+T_undefined]        = T_undefined ;
-               table[(T_double<<4)+T_byte]             = (Double2Double<<12)+(Byte2Double<<4)+T_boolean ;
-               table[(T_double<<4)+T_long]             = (Double2Double<<12)+(Long2Double<<4)+T_boolean ;
-               table[(T_double<<4)+T_short]            = (Double2Double<<12)+(Short2Double<<4)+T_boolean ;
-               //      table[(T_double<<4)+T_void]             = T_undefined ;
-               //      table[(T_double<<4)+T_String]           = T_undefined ;
-               //      table[(T_double<<4)+T_Object]           = T_undefined ;
-               table[(T_double<<4)+T_double]           = (Double2Double<<12)+(Double2Double<<4)+T_boolean ;
-               table[(T_double<<4)+T_float]            = (Double2Double<<12)+(Float2Double<<4)+T_boolean;
-               //      table[(T_double<<4)+T_boolean]          = T_undefined ;
-               table[(T_double<<4)+T_char]             = (Double2Double<<12)+(Char2Double<<4)+T_boolean ;
-               table[(T_double<<4)+T_int]                      = (Double2Double<<12)+(Int2Double<<4)+T_boolean ;
-               //      table[(T_double<<4)+T_null]             = T_undefined ;
-       
-               //      table[(T_float<<4)+T_undefined]         = T_undefined ;
-               table[(T_float<<4)+T_byte]                      = (Float2Float<<12)+(Byte2Float<<4)+T_boolean ;
-               table[(T_float<<4)+T_long]                      = (Float2Float<<12)+(Long2Float<<4)+T_boolean ;
-               table[(T_float<<4)+T_short]             = (Float2Float<<12)+(Short2Float<<4)+T_boolean ;
-               //      table[(T_float<<4)+T_void]                      = T_undefined ;
-               //      table[(T_float<<4)+T_String]            = T_undefined ;
-               //      table[(T_float<<4)+T_Object]            = T_undefined ;
-               table[(T_float<<4)+T_double]            = (Float2Double<<12)+(Double2Double<<4)+T_boolean ;
-               table[(T_float<<4)+T_float]             = (Float2Float<<12)+(Float2Float<<4)+T_boolean ;
-               //      table[(T_float<<4)+T_boolean]           = T_undefined ;
-               table[(T_float<<4)+T_char]                      = (Float2Float<<12)+(Char2Float<<4)+T_boolean ;
-               table[(T_float<<4)+T_int]                       = (Float2Float<<12)+(Int2Float<<4)+T_boolean ;
-               //      table[(T_float<<4)+T_null]                      = T_undefined ;
-               
-               //      table[(T_boolean<<4)+T_undefined]               = T_undefined ;
-               //      table[(T_boolean<<4)+T_byte]                    = T_undefined ;
-               //      table[(T_boolean<<4)+T_long]                    = T_undefined ;
-               //      table[(T_boolean<<4)+T_short]                   = T_undefined ;
-               //      table[(T_boolean<<4)+T_void]                    = T_undefined ;
-               //      table[(T_boolean<<4)+T_String]                  = T_undefined ;
-               //      table[(T_boolean<<4)+T_Object]                  = T_undefined ;
-               //      table[(T_boolean<<4)+T_double]                  = T_undefined ;
-               //      table[(T_boolean<<4)+T_float]                   = T_undefined ;
-               table[(T_boolean<<4)+T_boolean]                 = (Boolean2Boolean<<12)+(Boolean2Boolean<<4)+T_boolean ;
-               //      table[(T_boolean<<4)+T_char]                    = T_undefined ;
-               //      table[(T_boolean<<4)+T_int]                     = T_undefined ;
-               //      table[(T_boolean<<4)+T_null]                    = T_undefined ;
-                       
-               //      table[(T_char<<4)+T_undefined]          = T_undefined ;
-               table[(T_char<<4)+T_byte]                       = (Char2Int<<12)+(Byte2Int<<4)+T_boolean ;
-               table[(T_char<<4)+T_long]                       = (Char2Long<<12)+(Long2Long<<4)+T_boolean ;
-               table[(T_char<<4)+T_short]                      = (Char2Int<<12)+(Short2Int<<4)+T_boolean ;
-               //      table[(T_char<<4)+T_void]                       = T_undefined ;
-               //      table[(T_char<<4)+T_String]             = T_undefined ;
-               //      table[(T_char<<4)+T_Object]             = T_undefined ;
-               table[(T_char<<4)+T_double]             = (Char2Double<<12)+(Double2Double<<4)+T_boolean ;
-               table[(T_char<<4)+T_float]                      = (Char2Float<<12)+(Float2Float<<4)+T_boolean ;
-               //      table[(T_char<<4)+T_boolean]            = T_undefined ;
-               table[(T_char<<4)+T_char]                       = (Char2Int<<12)+(Char2Int<<4)+T_boolean ;
-               table[(T_char<<4)+T_int]                        = (Char2Int<<12)+(Int2Int<<4)+T_boolean ;
-               //      table[(T_char<<4)+T_null]                       = T_undefined ;
-                       
-               //      table[(T_int<<4)+T_undefined]   = T_undefined ;
-               table[(T_int<<4)+T_byte]                = (Int2Int<<12)+(Byte2Int<<4)+T_boolean ;
-               table[(T_int<<4)+T_long]                = (Int2Long<<12)+(Long2Long<<4)+T_boolean ;
-               table[(T_int<<4)+T_short]               = (Int2Int<<12)+(Short2Int<<4)+T_boolean ;
-               //      table[(T_int<<4)+T_void]                = T_undefined ;
-               //      table[(T_int<<4)+T_String]              = T_undefined ;
-               //      table[(T_int<<4)+T_Object]              = T_undefined ;
-               table[(T_int<<4)+T_double]              = (Int2Double<<12)+(Double2Double<<4)+T_boolean ;
-               table[(T_int<<4)+T_float]               = (Int2Float<<12)+(Float2Float<<4)+T_boolean;
-               //      table[(T_int<<4)+T_boolean]     = T_undefined ;
-               table[(T_int<<4)+T_char]                = (Int2Int<<12)+(Char2Int<<4)+T_boolean ;
-               table[(T_int<<4)+T_int]                 = (Int2Int<<12)+(Int2Int<<4)+T_boolean ;
-               //      table[(T_int<<4)+T_null]                = T_undefined ;
-               
-               //      table[(T_null<<4)+T_undefined]          = T_undefined ;
-               //      table[(T_null<<4)+T_byte]                       = T_undefined ;
-               //      table[(T_null<<4)+T_long]                       = T_undefined ;
-               //      table[(T_null<<4)+T_short]                      = T_undefined ;
-               //      table[(T_null<<4)+T_void]                       = T_undefined ;
-               table[(T_null<<4)+T_String]             = /*null2Object                 String2Object*/
-                                                                                         (T_Object<<16)+(T_null<<12)+(T_Object<<8)+(T_String<<4)+T_boolean ;
-               table[(T_null<<4)+T_Object]             = /*null2Object                 Object2Object*/
-                                                                                         (T_Object<<16)+(T_null<<12)+(T_Object<<8)+(T_Object<<4)+T_boolean ; ;
-               //      table[(T_null<<4)+T_double]             = T_undefined ;
-               //      table[(T_null<<4)+T_float]                      = T_undefined ;
-               //      table[(T_null<<4)+T_boolean]            = T_undefined ;
-               //      table[(T_null<<4)+T_char]                       = T_undefined ;
-               //      table[(T_null<<4)+T_int]                        = T_undefined ;
-               table[(T_null<<4)+T_null]                       = /*null2Object                 null2Object*/
-                                                                                         (T_Object<<16)+(T_null<<12)+(T_Object<<8)+(T_null<<4)+T_boolean ;
-               return table ;
+       public static final int[] get_EQUAL_EQUAL() {
+
+               // the code is an int
+               // (cast) left Op (cast) rigth --> result
+               // 0000 0000 0000 0000 0000
+               // <<16 <<12 <<8 <<4
+
+               int[] table = new int[16 * 16];
+
+               // table[(T_undefined<<4)+T_undefined] = T_undefined ;
+               // table[(T_undefined<<4)+T_byte] = T_undefined ;
+               // table[(T_undefined<<4)+T_long] = T_undefined ;
+               // table[(T_undefined<<4)+T_short] = T_undefined ;
+               // table[(T_undefined<<4)+T_void] = T_undefined ;
+               // table[(T_undefined<<4)+T_String] = T_undefined ;
+               // table[(T_undefined<<4)+T_Object] = T_undefined ;
+               // table[(T_undefined<<4)+T_double] = T_undefined ;
+               // table[(T_undefined<<4)+T_float] = T_undefined ;
+               // table[(T_undefined<<4)+T_boolean] = T_undefined ;
+               // table[(T_undefined<<4)+T_char] = T_undefined ;
+               // table[(T_undefined<<4)+T_int] = T_undefined ;
+               // table[(T_undefined<<4)+T_null] = T_undefined ;
+
+               // table[(T_byte<<4)+T_undefined] = T_undefined ;
+               table[(T_byte << 4) + T_byte] = (Byte2Int << 12) + (Byte2Int << 4)
+                               + T_boolean;
+               table[(T_byte << 4) + T_long] = (Byte2Long << 12) + (Long2Long << 4)
+                               + T_boolean;
+               table[(T_byte << 4) + T_short] = (Byte2Int << 12) + (Short2Int << 4)
+                               + T_boolean;
+               // table[(T_byte<<4)+T_void] = T_undefined ;
+               // table[(T_byte<<4)+T_String] = T_undefined ;
+               // table[(T_byte<<4)+T_Object] = T_undefined ;
+               table[(T_byte << 4) + T_double] = (Byte2Double << 12)
+                               + (Double2Double << 4) + T_boolean;
+               table[(T_byte << 4) + T_float] = (Byte2Float << 12)
+                               + (Float2Float << 4) + T_boolean;
+               // table[(T_byte<<4)+T_boolean] = T_undefined ;
+               table[(T_byte << 4) + T_char] = (Byte2Int << 12) + (Char2Int << 4)
+                               + T_boolean;
+               table[(T_byte << 4) + T_int] = (Byte2Int << 12) + (Int2Int << 4)
+                               + T_boolean;
+               // table[(T_byte<<4)+T_null] = T_undefined ;
+
+               // table[(T_long<<4)+T_undefined] = T_undefined ;
+               table[(T_long << 4) + T_byte] = (Long2Long << 12) + (Byte2Long << 4)
+                               + T_boolean;
+               table[(T_long << 4) + T_long] = (Long2Long << 12) + (Long2Long << 4)
+                               + T_boolean;
+               table[(T_long << 4) + T_short] = (Long2Long << 12) + (Short2Long << 4)
+                               + T_boolean;
+               // table[(T_long<<4)+T_void] = T_undefined ;
+               // table[(T_long<<4)+T_String] = T_undefined ;
+               // table[(T_long<<4)+T_Object] = T_undefined ;
+               table[(T_long << 4) + T_double] = (Long2Double << 12)
+                               + (Double2Double << 4) + T_boolean;
+               table[(T_long << 4) + T_float] = (Long2Float << 12)
+                               + (Float2Float << 4) + T_boolean;
+               // table[(T_long<<4)+T_boolean] = T_undefined ;
+               table[(T_long << 4) + T_char] = (Long2Long << 12) + (Char2Long << 4)
+                               + T_boolean;
+               table[(T_long << 4) + T_int] = (Long2Long << 12) + (Int2Long << 4)
+                               + T_boolean;
+               // table[(T_long<<4)+T_null] = T_undefined ;
+
+               // table[(T_short<<4)+T_undefined] = T_undefined ;
+               table[(T_short << 4) + T_byte] = (Short2Int << 12) + (Byte2Int << 4)
+                               + T_boolean;
+               table[(T_short << 4) + T_long] = (Short2Long << 12) + (Long2Long << 4)
+                               + T_boolean;
+               table[(T_short << 4) + T_short] = (Short2Int << 12) + (Short2Int << 4)
+                               + T_boolean;
+               // table[(T_short<<4)+T_void] = T_undefined ;
+               // table[(T_short<<4)+T_String] = T_undefined ;
+               // table[(T_short<<4)+T_Object] = T_undefined ;
+               table[(T_short << 4) + T_double] = (Short2Double << 12)
+                               + (Double2Double << 4) + T_boolean;
+               table[(T_short << 4) + T_float] = (Short2Float << 12)
+                               + (Float2Float << 4) + T_boolean;
+               // table[(T_short<<4)+T_boolean] = T_undefined ;
+               table[(T_short << 4) + T_char] = (Short2Int << 12) + (Char2Int << 4)
+                               + T_boolean;
+               table[(T_short << 4) + T_int] = (Short2Int << 12) + (Int2Int << 4)
+                               + T_boolean;
+               // table[(T_short<<4)+T_null] = T_undefined ;
+
+               // table[(T_void<<4)+T_undefined] = T_undefined ;
+               // table[(T_void<<4)+T_byte] = T_undefined ;
+               // table[(T_void<<4)+T_long] = T_undefined ;
+               // table[(T_void<<4)+T_short] = T_undefined ;
+               // table[(T_void<<4)+T_void] = T_undefined ;
+               // table[(T_void<<4)+T_String] = T_undefined ;
+               // table[(T_void<<4)+T_Object] = T_undefined ;
+               // table[(T_void<<4)+T_double] = T_undefined ;
+               // table[(T_void<<4)+T_float] = T_undefined ;
+               // table[(T_void<<4)+T_boolean] = T_undefined ;
+               // table[(T_void<<4)+T_char] = T_undefined ;
+               // table[(T_void<<4)+T_int] = T_undefined ;
+               // table[(T_void<<4)+T_null] = T_undefined ;
+
+               // table[(T_String<<4)+T_undefined] = T_undefined ;
+               // table[(T_String<<4)+T_byte] = T_undefined ;
+               // table[(T_String<<4)+T_long] = T_undefined ;
+               // table[(T_String<<4)+T_short] = T_undefined ;
+               // table[(T_String<<4)+T_void] = T_undefined ;
+               table[(T_String << 4) + T_String] = /* String2Object String2Object */
+               (T_Object << 16) + (T_String << 12) + (T_Object << 8) + (T_String << 4)
+                               + T_boolean;
+               table[(T_String << 4) + T_Object] = /* String2Object Object2Object */
+               (T_Object << 16) + (T_String << 12) + (T_Object << 8) + (T_Object << 4)
+                               + T_boolean;
+               // table[(T_String<<4)+T_double] = T_undefined ;
+               // table[(T_String<<4)+T_float] = T_undefined ;
+               // table[(T_String<<4)+T_boolean] = T_undefined ;
+               // table[(T_String<<4)+T_char] = T_undefined ;
+               // table[(T_String<<4)+T_int] = T_undefined ;
+               table[(T_String << 4) + T_null] = /* Object2String null2Object */
+               (T_Object << 16) + (T_String << 12) + (T_Object << 8) + (T_null << 4)
+                               + T_boolean;
+
+               // table[(T_Object<<4)+T_undefined] = T_undefined ;
+               // table[(T_Object<<4)+T_byte] = T_undefined ;
+               // table[(T_Object<<4)+T_long] = T_undefined ;
+               // table[(T_Object<<4)+T_short] = T_undefined ;
+               // table[(T_Object<<4)+T_void] = T_undefined ;
+               table[(T_Object << 4) + T_String] = /* Object2Object String2Object */
+               (T_Object << 16) + (T_Object << 12) + (T_Object << 8) + (T_String << 4)
+                               + T_boolean;
+               table[(T_Object << 4) + T_Object] = /* Object2Object Object2Object */
+               (T_Object << 16) + (T_Object << 12) + (T_Object << 8) + (T_Object << 4)
+                               + T_boolean;
+               // table[(T_Object<<4)+T_double] = T_undefined ;
+               // table[(T_Object<<4)+T_float] = T_undefined ;
+               // table[(T_Object<<4)+T_boolean] = T_undefined ;
+               // table[(T_Object<<4)+T_char] = T_undefined ;
+               // table[(T_Object<<4)+T_int] = T_undefined ;
+               table[(T_Object << 4) + T_null] = /* Object2Object null2Object */
+               (T_Object << 16) + (T_Object << 12) + (T_Object << 8) + (T_null << 4)
+                               + T_boolean;
+
+               // table[(T_double<<4)+T_undefined] = T_undefined ;
+               table[(T_double << 4) + T_byte] = (Double2Double << 12)
+                               + (Byte2Double << 4) + T_boolean;
+               table[(T_double << 4) + T_long] = (Double2Double << 12)
+                               + (Long2Double << 4) + T_boolean;
+               table[(T_double << 4) + T_short] = (Double2Double << 12)
+                               + (Short2Double << 4) + T_boolean;
+               // table[(T_double<<4)+T_void] = T_undefined ;
+               // table[(T_double<<4)+T_String] = T_undefined ;
+               // table[(T_double<<4)+T_Object] = T_undefined ;
+               table[(T_double << 4) + T_double] = (Double2Double << 12)
+                               + (Double2Double << 4) + T_boolean;
+               table[(T_double << 4) + T_float] = (Double2Double << 12)
+                               + (Float2Double << 4) + T_boolean;
+               // table[(T_double<<4)+T_boolean] = T_undefined ;
+               table[(T_double << 4) + T_char] = (Double2Double << 12)
+                               + (Char2Double << 4) + T_boolean;
+               table[(T_double << 4) + T_int] = (Double2Double << 12)
+                               + (Int2Double << 4) + T_boolean;
+               // table[(T_double<<4)+T_null] = T_undefined ;
+
+               // table[(T_float<<4)+T_undefined] = T_undefined ;
+               table[(T_float << 4) + T_byte] = (Float2Float << 12)
+                               + (Byte2Float << 4) + T_boolean;
+               table[(T_float << 4) + T_long] = (Float2Float << 12)
+                               + (Long2Float << 4) + T_boolean;
+               table[(T_float << 4) + T_short] = (Float2Float << 12)
+                               + (Short2Float << 4) + T_boolean;
+               // table[(T_float<<4)+T_void] = T_undefined ;
+               // table[(T_float<<4)+T_String] = T_undefined ;
+               // table[(T_float<<4)+T_Object] = T_undefined ;
+               table[(T_float << 4) + T_double] = (Float2Double << 12)
+                               + (Double2Double << 4) + T_boolean;
+               table[(T_float << 4) + T_float] = (Float2Float << 12)
+                               + (Float2Float << 4) + T_boolean;
+               // table[(T_float<<4)+T_boolean] = T_undefined ;
+               table[(T_float << 4) + T_char] = (Float2Float << 12)
+                               + (Char2Float << 4) + T_boolean;
+               table[(T_float << 4) + T_int] = (Float2Float << 12) + (Int2Float << 4)
+                               + T_boolean;
+               // table[(T_float<<4)+T_null] = T_undefined ;
+
+               // table[(T_boolean<<4)+T_undefined] = T_undefined ;
+               // table[(T_boolean<<4)+T_byte] = T_undefined ;
+               // table[(T_boolean<<4)+T_long] = T_undefined ;
+               // table[(T_boolean<<4)+T_short] = T_undefined ;
+               // table[(T_boolean<<4)+T_void] = T_undefined ;
+               // table[(T_boolean<<4)+T_String] = T_undefined ;
+               // table[(T_boolean<<4)+T_Object] = T_undefined ;
+               // table[(T_boolean<<4)+T_double] = T_undefined ;
+               // table[(T_boolean<<4)+T_float] = T_undefined ;
+               table[(T_boolean << 4) + T_boolean] = (Boolean2Boolean << 12)
+                               + (Boolean2Boolean << 4) + T_boolean;
+               // table[(T_boolean<<4)+T_char] = T_undefined ;
+               // table[(T_boolean<<4)+T_int] = T_undefined ;
+               // table[(T_boolean<<4)+T_null] = T_undefined ;
+
+               // table[(T_char<<4)+T_undefined] = T_undefined ;
+               table[(T_char << 4) + T_byte] = (Char2Int << 12) + (Byte2Int << 4)
+                               + T_boolean;
+               table[(T_char << 4) + T_long] = (Char2Long << 12) + (Long2Long << 4)
+                               + T_boolean;
+               table[(T_char << 4) + T_short] = (Char2Int << 12) + (Short2Int << 4)
+                               + T_boolean;
+               // table[(T_char<<4)+T_void] = T_undefined ;
+               // table[(T_char<<4)+T_String] = T_undefined ;
+               // table[(T_char<<4)+T_Object] = T_undefined ;
+               table[(T_char << 4) + T_double] = (Char2Double << 12)
+                               + (Double2Double << 4) + T_boolean;
+               table[(T_char << 4) + T_float] = (Char2Float << 12)
+                               + (Float2Float << 4) + T_boolean;
+               // table[(T_char<<4)+T_boolean] = T_undefined ;
+               table[(T_char << 4) + T_char] = (Char2Int << 12) + (Char2Int << 4)
+                               + T_boolean;
+               table[(T_char << 4) + T_int] = (Char2Int << 12) + (Int2Int << 4)
+                               + T_boolean;
+               // table[(T_char<<4)+T_null] = T_undefined ;
+
+               // table[(T_int<<4)+T_undefined] = T_undefined ;
+               table[(T_int << 4) + T_byte] = (Int2Int << 12) + (Byte2Int << 4)
+                               + T_boolean;
+               table[(T_int << 4) + T_long] = (Int2Long << 12) + (Long2Long << 4)
+                               + T_boolean;
+               table[(T_int << 4) + T_short] = (Int2Int << 12) + (Short2Int << 4)
+                               + T_boolean;
+               // table[(T_int<<4)+T_void] = T_undefined ;
+               // table[(T_int<<4)+T_String] = T_undefined ;
+               // table[(T_int<<4)+T_Object] = T_undefined ;
+               table[(T_int << 4) + T_double] = (Int2Double << 12)
+                               + (Double2Double << 4) + T_boolean;
+               table[(T_int << 4) + T_float] = (Int2Float << 12) + (Float2Float << 4)
+                               + T_boolean;
+               // table[(T_int<<4)+T_boolean] = T_undefined ;
+               table[(T_int << 4) + T_char] = (Int2Int << 12) + (Char2Int << 4)
+                               + T_boolean;
+               table[(T_int << 4) + T_int] = (Int2Int << 12) + (Int2Int << 4)
+                               + T_boolean;
+               // table[(T_int<<4)+T_null] = T_undefined ;
+
+               // table[(T_null<<4)+T_undefined] = T_undefined ;
+               // table[(T_null<<4)+T_byte] = T_undefined ;
+               // table[(T_null<<4)+T_long] = T_undefined ;
+               // table[(T_null<<4)+T_short] = T_undefined ;
+               // table[(T_null<<4)+T_void] = T_undefined ;
+               table[(T_null << 4) + T_String] = /* null2Object String2Object */
+               (T_Object << 16) + (T_null << 12) + (T_Object << 8) + (T_String << 4)
+                               + T_boolean;
+               table[(T_null << 4) + T_Object] = /* null2Object Object2Object */
+               (T_Object << 16) + (T_null << 12) + (T_Object << 8) + (T_Object << 4)
+                               + T_boolean;
+               ;
+               // table[(T_null<<4)+T_double] = T_undefined ;
+               // table[(T_null<<4)+T_float] = T_undefined ;
+               // table[(T_null<<4)+T_boolean] = T_undefined ;
+               // table[(T_null<<4)+T_char] = T_undefined ;
+               // table[(T_null<<4)+T_int] = T_undefined ;
+               table[(T_null << 4) + T_null] = /* null2Object null2Object */
+               (T_Object << 16) + (T_null << 12) + (T_Object << 8) + (T_null << 4)
+                               + T_boolean;
+               return table;
        }
 
-       public static final int[] get_GREATER(){
-       
-               //the code is an int
-               // (cast)  left   Op (cast)  rigth --> result
-               //  0000   0000       0000   0000      0000
-               //  <<16   <<12       <<8    <<4       
-               
-               //      int[] table  = new int[16*16] ;
+       public static final int[] get_GREATER() {
+
+               // the code is an int
+               // (cast) left Op (cast) rigth --> result
+               // 0000 0000 0000 0000 0000
+               // <<16 <<12 <<8 <<4
+
+               // int[] table = new int[16*16] ;
                return get_LESS();
        }
 
-       public static final int[] get_GREATER_EQUAL(){
-       
-               //the code is an int
-               // (cast)  left   Op (cast)  rigth --> result
-               //  0000   0000       0000   0000      0000
-               //  <<16   <<12       <<8    <<4       
-               
-               //      int[] table  = new int[16*16] ;
+       public static final int[] get_GREATER_EQUAL() {
+
+               // the code is an int
+               // (cast) left Op (cast) rigth --> result
+               // 0000 0000 0000 0000 0000
+               // <<16 <<12 <<8 <<4
+
+               // int[] table = new int[16*16] ;
                return get_LESS();
        }
 
-       public static final int[] get_LEFT_SHIFT(){
-       
-               //the code is an int
-               // (cast)  left   Op (cast)  rigth --> result
-               //  0000   0000       0000   0000      0000
-               //  <<16   <<12       <<8    <<4       
-               
-               int[] table  = new int[16*16] ;
-               
-               //      table[(T_undefined<<4)+T_undefined]     = T_undefined ;
-               //      table[(T_undefined<<4)+T_byte]                  = T_undefined ;
-               //      table[(T_undefined<<4)+T_long]                  = T_undefined ;
-               //      table[(T_undefined<<4)+T_short]                 = T_undefined ;
-               //      table[(T_undefined<<4)+T_void]                  = T_undefined ;
-               //      table[(T_undefined<<4)+T_String]                = T_undefined ;
-               //      table[(T_undefined<<4)+T_Object]                = T_undefined ;
-               //      table[(T_undefined<<4)+T_double]                = T_undefined ;
-               //      table[(T_undefined<<4)+T_float]                 = T_undefined ;
-               //      table[(T_undefined<<4)+T_boolean]               = T_undefined ;
-               //      table[(T_undefined<<4)+T_char]                  = T_undefined ;
-               //      table[(T_undefined<<4)+T_int]                   = T_undefined ;
-               //      table[(T_undefined<<4)+T_null]                  = T_undefined ;
-                       
-               //      table[(T_byte<<4)+T_undefined]  = T_undefined ;
-               table[(T_byte<<4)+T_byte]               = (Byte2Int<<12)+(Byte2Int<<4)+T_int ;
-               table[(T_byte<<4)+T_long]               = (Byte2Int<<12)+(Long2Int<<4)+T_int ;
-               table[(T_byte<<4)+T_short]              = (Byte2Int<<12)+(Short2Int<<4)+T_int ;
-               //      table[(T_byte<<4)+T_void]               = T_undefined ;
-               //      table[(T_byte<<4)+T_String]     = T_undefined ;
-               //      table[(T_byte<<4)+T_Object]     = T_undefined ;
-               //      table[(T_byte<<4)+T_double]     = T_undefined ;
-               //      table[(T_byte<<4)+T_float]              = T_undefined ;
-               //      table[(T_byte<<4)+T_boolean]    = T_undefined ;
-               table[(T_byte<<4)+T_char]               = (Byte2Int<<12)+(Char2Int<<4)+T_int ;
-               table[(T_byte<<4)+T_int]                = (Byte2Int<<12)+(Int2Int<<4)+T_int ;
-               //      table[(T_byte<<4)+T_null]               = T_undefined ;
-               
-               //      table[(T_long<<4)+T_undefined]  = T_undefined ;
-               table[(T_long<<4)+T_byte]               = (Long2Long<<12)+(Byte2Int<<4)+T_long;
-               table[(T_long<<4)+T_long]               = (Long2Long<<12)+(Long2Int<<4)+T_long ;
-               table[(T_long<<4)+T_short]              = (Long2Long<<12)+(Short2Int<<4)+T_long ;
-               //      table[(T_long<<4)+T_void]               = T_undefined ;
-               //      table[(T_long<<4)+T_String]     = T_undefined ;
-               //      table[(T_long<<4)+T_Object]     = T_undefined ;
-               //      table[(T_long<<4)+T_double]     = T_undefined ;
-               //      table[(T_long<<4)+T_float]              = T_undefined ;
-               //      table[(T_long<<4)+T_boolean]    = T_undefined ;
-               table[(T_long<<4)+T_char]               = (Long2Long<<12)+(Char2Int<<4)+T_long ;
-               table[(T_long<<4)+T_int]                = (Long2Long<<12)+(Int2Int<<4)+T_long ;
-               //      table[(T_long<<4)+T_null]               = T_undefined ;
-               
-               //      table[(T_short<<4)+T_undefined]         = T_undefined ;
-               table[(T_short<<4)+T_byte]                      = (Short2Int<<12)+(Byte2Int<<4)+T_int ;
-               table[(T_short<<4)+T_long]                      = (Short2Int<<12)+(Long2Int<<4)+T_int ;
-               table[(T_short<<4)+T_short]             = (Short2Int<<12)+(Short2Int<<4)+T_int ;
-               //      table[(T_short<<4)+T_void]                      = T_undefined ;
-               //      table[(T_short<<4)+T_String]            = T_undefined ;
-               //      table[(T_short<<4)+T_Object]            = T_undefined ;
-               //      table[(T_short<<4)+T_double]            = T_undefined ;
-               //      table[(T_short<<4)+T_float]             = T_undefined ;
-               //      table[(T_short<<4)+T_boolean]           = T_undefined ;
-               table[(T_short<<4)+T_char]                      = (Short2Int<<12)+(Char2Int<<4)+T_int ;
-               table[(T_short<<4)+T_int]                       = (Short2Int<<12)+(Int2Int<<4)+T_int ;
-               //      table[(T_short<<4)+T_null]                      = T_undefined ;
-               
-               //      table[(T_void<<4)+T_undefined]  = T_undefined ;
-               //      table[(T_void<<4)+T_byte]               = T_undefined ;
-               //      table[(T_void<<4)+T_long]               = T_undefined ;
-               //      table[(T_void<<4)+T_short]              = T_undefined ;
-               //      table[(T_void<<4)+T_void]               = T_undefined ;
-               //      table[(T_void<<4)+T_String]     = T_undefined ;
-               //      table[(T_void<<4)+T_Object]     = T_undefined ;
-               //      table[(T_void<<4)+T_double]     = T_undefined ;
-               //      table[(T_void<<4)+T_float]              = T_undefined ;
-               //      table[(T_void<<4)+T_boolean]    = T_undefined ;
-               //      table[(T_void<<4)+T_char]               = T_undefined ;
-               //      table[(T_void<<4)+T_int]                = T_undefined ;
-               //      table[(T_void<<4)+T_null]               = T_undefined ;
-               
-               //      table[(T_String<<4)+T_undefined]        = T_undefined ;
-               //      table[(T_String<<4)+T_byte]             = T_undefined ;
-               //      table[(T_String<<4)+T_long]             = T_undefined ;
-               //      table[(T_String<<4)+T_short]            = T_undefined ;
-               //      table[(T_String<<4)+T_void]             = T_undefined ;
-               //      table[(T_String<<4)+T_String]           = T_undefined ;
-               //      table[(T_String<<4)+T_Object]           = T_undefined ;
-               //      table[(T_String<<4)+T_double]           = T_undefined ;
-               //      table[(T_String<<4)+T_float]            = T_undefined ;
-               //      table[(T_String<<4)+T_boolean]          = T_undefined ;
-               //      table[(T_String<<4)+T_char]             = T_undefined ;
-               //      table[(T_String<<4)+T_int]                      = T_undefined ;
-               //      table[(T_String<<4)+T_null]             = T_undefined ;
-               
-               //      table[(T_Object<<4)+T_undefined]        = T_undefined ;
-               //      table[(T_Object<<4)+T_byte]             = T_undefined ;
-               //      table[(T_Object<<4)+T_long]             = T_undefined ;
-               //      table[(T_Object<<4)+T_short]            = T_undefined ;
-               //      table[(T_Object<<4)+T_void]             = T_undefined ;
-               //      table[(T_Object<<4)+T_String]           = T_undefined ;
-               //      table[(T_Object<<4)+T_Object]           = T_undefined ;
-               //      table[(T_Object<<4)+T_double]           = T_undefined ;
-               //      table[(T_Object<<4)+T_float]            = T_undefined ;
-               //      table[(T_Object<<4)+T_boolean]          = T_undefined ;
-               //      table[(T_Object<<4)+T_char]             = T_undefined ;
-               //      table[(T_Object<<4)+T_int]                      = T_undefined ;
-               //      table[(T_Object<<4)+T_null]             = T_undefined ;
-               
-               //      table[(T_double<<4)+T_undefined]        = T_undefined ;
-               //      table[(T_double<<4)+T_byte]             = T_undefined ;
-               //      table[(T_double<<4)+T_long]             = T_undefined ;
-               //      table[(T_double<<4)+T_short]            = T_undefined ;
-               //      table[(T_double<<4)+T_void]             = T_undefined ;
-               //      table[(T_double<<4)+T_String]           = T_undefined ;
-               //      table[(T_double<<4)+T_Object]           = T_undefined ;
-               //      table[(T_double<<4)+T_double]           = T_undefined ;
-               //      table[(T_double<<4)+T_float]            = T_undefined ;
-               //      table[(T_double<<4)+T_boolean]          = T_undefined ;
-               //      table[(T_double<<4)+T_char]             = T_undefined ;
-               //      table[(T_double<<4)+T_int]                      = T_undefined;
-               //      table[(T_double<<4)+T_null]             = T_undefined ;
-               
-               //      table[(T_float<<4)+T_undefined]         = T_undefined ;
-               //      table[(T_float<<4)+T_byte]                      = T_undefined ;
-               //      table[(T_float<<4)+T_long]                      = T_undefined ;
-               //      table[(T_float<<4)+T_short]             = T_undefined ;
-               //      table[(T_float<<4)+T_void]                      = T_undefined ;
-               //      table[(T_float<<4)+T_String]            = T_undefined ;
-               //      table[(T_float<<4)+T_Object]            = T_undefined ;
-               //      table[(T_float<<4)+T_double]            = T_undefined ;
-               //      table[(T_float<<4)+T_float]             = T_undefined ;
-               //      table[(T_float<<4)+T_boolean]           = T_undefined ;
-               //      table[(T_float<<4)+T_char]                      = T_undefined ;
-               //      table[(T_float<<4)+T_int]                       = T_undefined ;
-               //      table[(T_float<<4)+T_null]                      = T_undefined ;
-               
-               //      table[(T_boolean<<4)+T_undefined]               = T_undefined ;
-               //      table[(T_boolean<<4)+T_byte]                    = T_undefined ;
-               //      table[(T_boolean<<4)+T_long]                    = T_undefined ;
-               //      table[(T_boolean<<4)+T_short]                   = T_undefined ;
-               //      table[(T_boolean<<4)+T_void]                    = T_undefined ;
-               //      table[(T_boolean<<4)+T_String]                  = T_undefined ;
-               //      table[(T_boolean<<4)+T_Object]                  = T_undefined ;
-               //      table[(T_boolean<<4)+T_double]                  = T_undefined ;
-               //      table[(T_boolean<<4)+T_float]                   = T_undefined ;
-               //      table[(T_boolean<<4)+T_boolean]                 = T_undefined ;
-               //      table[(T_boolean<<4)+T_char]                    = T_undefined ;
-               //      table[(T_boolean<<4)+T_int]                     = T_undefined ;
-               //      table[(T_boolean<<4)+T_null]                    = T_undefined ;
-                       
-               //      table[(T_char<<4)+T_undefined]          = T_undefined ;
-               table[(T_char<<4)+T_byte]                       = (Char2Int<<12)+(Byte2Int<<4)+T_int ;
-               table[(T_char<<4)+T_long]                       = (Char2Int<<12)+(Long2Int<<4)+T_int ;
-               table[(T_char<<4)+T_short]                      = (Char2Int<<12)+(Short2Int<<4)+T_int ;
-               //      table[(T_char<<4)+T_void]                       = T_undefined ;
-               //      table[(T_char<<4)+T_String]             = T_undefined ;
-               //      table[(T_char<<4)+T_Object]             = T_undefined ;
-               //      table[(T_char<<4)+T_double]             = T_undefined ;
-               //      table[(T_char<<4)+T_float]                      = T_undefined ;
-               //      table[(T_char<<4)+T_boolean]            = T_undefined ;
-               table[(T_char<<4)+T_char]                       = (Char2Int<<12)+(Char2Int<<4)+T_int ;
-               table[(T_char<<4)+T_int]                        = (Char2Int<<12)+(Int2Int<<4)+T_int ;
-               //      table[(T_char<<4)+T_null]                       = T_undefined ;
-               
-               //      table[(T_int<<4)+T_undefined]   = T_undefined ;
-               table[(T_int<<4)+T_byte]                = (Int2Int<<12)+(Byte2Int<<4)+T_int ;
-               table[(T_int<<4)+T_long]                = (Int2Int<<12)+(Long2Int<<4)+T_int ;
-               table[(T_int<<4)+T_short]               = (Int2Int<<12)+(Short2Int<<4)+T_int ;
-               //      table[(T_int<<4)+T_void]                = T_undefined ;
-               //      table[(T_int<<4)+T_String]              = T_undefined ;
-               //      table[(T_int<<4)+T_Object]              = T_undefined ;
-               //      table[(T_int<<4)+T_double]              = T_undefined ;
-               //      table[(T_int<<4)+T_float]               = T_undefined ;
-               //      table[(T_int<<4)+T_boolean]     = T_undefined ;
-               table[(T_int<<4)+T_char]                = (Int2Int<<12)+(Char2Int<<4)+T_int ;
-               table[(T_int<<4)+T_int]                 = (Int2Int<<12)+(Int2Int<<4)+T_int ;
-               //      table[(T_int<<4)+T_null]                = T_undefined ;
-               
-               //      table[(T_null<<4)+T_undefined]          = T_undefined ;
-               //      table[(T_null<<4)+T_byte]                       = T_undefined ;
-               //      table[(T_null<<4)+T_long]                       = T_undefined ;
-               //      table[(T_null<<4)+T_short]                      = T_undefined ;
-               //      table[(T_null<<4)+T_void]                       = T_undefined ;
-               //      table[(T_null<<4)+T_String]             = T_undefined ;
-               //      table[(T_null<<4)+T_Object]             = T_undefined ;
-               //      table[(T_null<<4)+T_double]             = T_undefined ;
-               //      table[(T_null<<4)+T_float]                      = T_undefined ;
-               //      table[(T_null<<4)+T_boolean]            = T_undefined ;
-               //      table[(T_null<<4)+T_char]                       = T_undefined ;
-               //      table[(T_null<<4)+T_int]                        = T_undefined ;
-               //      table[(T_null<<4)+T_null]                       = T_undefined ;
-       
-               return table ;
+       public static final int[] get_LEFT_SHIFT() {
+
+               // the code is an int
+               // (cast) left Op (cast) rigth --> result
+               // 0000 0000 0000 0000 0000
+               // <<16 <<12 <<8 <<4
+
+               int[] table = new int[16 * 16];
+
+               // table[(T_undefined<<4)+T_undefined] = T_undefined ;
+               // table[(T_undefined<<4)+T_byte] = T_undefined ;
+               // table[(T_undefined<<4)+T_long] = T_undefined ;
+               // table[(T_undefined<<4)+T_short] = T_undefined ;
+               // table[(T_undefined<<4)+T_void] = T_undefined ;
+               // table[(T_undefined<<4)+T_String] = T_undefined ;
+               // table[(T_undefined<<4)+T_Object] = T_undefined ;
+               // table[(T_undefined<<4)+T_double] = T_undefined ;
+               // table[(T_undefined<<4)+T_float] = T_undefined ;
+               // table[(T_undefined<<4)+T_boolean] = T_undefined ;
+               // table[(T_undefined<<4)+T_char] = T_undefined ;
+               // table[(T_undefined<<4)+T_int] = T_undefined ;
+               // table[(T_undefined<<4)+T_null] = T_undefined ;
+
+               // table[(T_byte<<4)+T_undefined] = T_undefined ;
+               table[(T_byte << 4) + T_byte] = (Byte2Int << 12) + (Byte2Int << 4)
+                               + T_int;
+               table[(T_byte << 4) + T_long] = (Byte2Int << 12) + (Long2Int << 4)
+                               + T_int;
+               table[(T_byte << 4) + T_short] = (Byte2Int << 12) + (Short2Int << 4)
+                               + T_int;
+               // table[(T_byte<<4)+T_void] = T_undefined ;
+               // table[(T_byte<<4)+T_String] = T_undefined ;
+               // table[(T_byte<<4)+T_Object] = T_undefined ;
+               // table[(T_byte<<4)+T_double] = T_undefined ;
+               // table[(T_byte<<4)+T_float] = T_undefined ;
+               // table[(T_byte<<4)+T_boolean] = T_undefined ;
+               table[(T_byte << 4) + T_char] = (Byte2Int << 12) + (Char2Int << 4)
+                               + T_int;
+               table[(T_byte << 4) + T_int] = (Byte2Int << 12) + (Int2Int << 4)
+                               + T_int;
+               // table[(T_byte<<4)+T_null] = T_undefined ;
+
+               // table[(T_long<<4)+T_undefined] = T_undefined ;
+               table[(T_long << 4) + T_byte] = (Long2Long << 12) + (Byte2Int << 4)
+                               + T_long;
+               table[(T_long << 4) + T_long] = (Long2Long << 12) + (Long2Int << 4)
+                               + T_long;
+               table[(T_long << 4) + T_short] = (Long2Long << 12) + (Short2Int << 4)
+                               + T_long;
+               // table[(T_long<<4)+T_void] = T_undefined ;
+               // table[(T_long<<4)+T_String] = T_undefined ;
+               // table[(T_long<<4)+T_Object] = T_undefined ;
+               // table[(T_long<<4)+T_double] = T_undefined ;
+               // table[(T_long<<4)+T_float] = T_undefined ;
+               // table[(T_long<<4)+T_boolean] = T_undefined ;
+               table[(T_long << 4) + T_char] = (Long2Long << 12) + (Char2Int << 4)
+                               + T_long;
+               table[(T_long << 4) + T_int] = (Long2Long << 12) + (Int2Int << 4)
+                               + T_long;
+               // table[(T_long<<4)+T_null] = T_undefined ;
+
+               // table[(T_short<<4)+T_undefined] = T_undefined ;
+               table[(T_short << 4) + T_byte] = (Short2Int << 12) + (Byte2Int << 4)
+                               + T_int;
+               table[(T_short << 4) + T_long] = (Short2Int << 12) + (Long2Int << 4)
+                               + T_int;
+               table[(T_short << 4) + T_short] = (Short2Int << 12) + (Short2Int << 4)
+                               + T_int;
+               // table[(T_short<<4)+T_void] = T_undefined ;
+               // table[(T_short<<4)+T_String] = T_undefined ;
+               // table[(T_short<<4)+T_Object] = T_undefined ;
+               // table[(T_short<<4)+T_double] = T_undefined ;
+               // table[(T_short<<4)+T_float] = T_undefined ;
+               // table[(T_short<<4)+T_boolean] = T_undefined ;
+               table[(T_short << 4) + T_char] = (Short2Int << 12) + (Char2Int << 4)
+                               + T_int;
+               table[(T_short << 4) + T_int] = (Short2Int << 12) + (Int2Int << 4)
+                               + T_int;
+               // table[(T_short<<4)+T_null] = T_undefined ;
+
+               // table[(T_void<<4)+T_undefined] = T_undefined ;
+               // table[(T_void<<4)+T_byte] = T_undefined ;
+               // table[(T_void<<4)+T_long] = T_undefined ;
+               // table[(T_void<<4)+T_short] = T_undefined ;
+               // table[(T_void<<4)+T_void] = T_undefined ;
+               // table[(T_void<<4)+T_String] = T_undefined ;
+               // table[(T_void<<4)+T_Object] = T_undefined ;
+               // table[(T_void<<4)+T_double] = T_undefined ;
+               // table[(T_void<<4)+T_float] = T_undefined ;
+               // table[(T_void<<4)+T_boolean] = T_undefined ;
+               // table[(T_void<<4)+T_char] = T_undefined ;
+               // table[(T_void<<4)+T_int] = T_undefined ;
+               // table[(T_void<<4)+T_null] = T_undefined ;
+
+               // table[(T_String<<4)+T_undefined] = T_undefined ;
+               // table[(T_String<<4)+T_byte] = T_undefined ;
+               // table[(T_String<<4)+T_long] = T_undefined ;
+               // table[(T_String<<4)+T_short] = T_undefined ;
+               // table[(T_String<<4)+T_void] = T_undefined ;
+               // table[(T_String<<4)+T_String] = T_undefined ;
+               // table[(T_String<<4)+T_Object] = T_undefined ;
+               // table[(T_String<<4)+T_double] = T_undefined ;
+               // table[(T_String<<4)+T_float] = T_undefined ;
+               // table[(T_String<<4)+T_boolean] = T_undefined ;
+               // table[(T_String<<4)+T_char] = T_undefined ;
+               // table[(T_String<<4)+T_int] = T_undefined ;
+               // table[(T_String<<4)+T_null] = T_undefined ;
+
+               // table[(T_Object<<4)+T_undefined] = T_undefined ;
+               // table[(T_Object<<4)+T_byte] = T_undefined ;
+               // table[(T_Object<<4)+T_long] = T_undefined ;
+               // table[(T_Object<<4)+T_short] = T_undefined ;
+               // table[(T_Object<<4)+T_void] = T_undefined ;
+               // table[(T_Object<<4)+T_String] = T_undefined ;
+               // table[(T_Object<<4)+T_Object] = T_undefined ;
+               // table[(T_Object<<4)+T_double] = T_undefined ;
+               // table[(T_Object<<4)+T_float] = T_undefined ;
+               // table[(T_Object<<4)+T_boolean] = T_undefined ;
+               // table[(T_Object<<4)+T_char] = T_undefined ;
+               // table[(T_Object<<4)+T_int] = T_undefined ;
+               // table[(T_Object<<4)+T_null] = T_undefined ;
+
+               // table[(T_double<<4)+T_undefined] = T_undefined ;
+               // table[(T_double<<4)+T_byte] = T_undefined ;
+               // table[(T_double<<4)+T_long] = T_undefined ;
+               // table[(T_double<<4)+T_short] = T_undefined ;
+               // table[(T_double<<4)+T_void] = T_undefined ;
+               // table[(T_double<<4)+T_String] = T_undefined ;
+               // table[(T_double<<4)+T_Object] = T_undefined ;
+               // table[(T_double<<4)+T_double] = T_undefined ;
+               // table[(T_double<<4)+T_float] = T_undefined ;
+               // table[(T_double<<4)+T_boolean] = T_undefined ;
+               // table[(T_double<<4)+T_char] = T_undefined ;
+               // table[(T_double<<4)+T_int] = T_undefined;
+               // table[(T_double<<4)+T_null] = T_undefined ;
+
+               // table[(T_float<<4)+T_undefined] = T_undefined ;
+               // table[(T_float<<4)+T_byte] = T_undefined ;
+               // table[(T_float<<4)+T_long] = T_undefined ;
+               // table[(T_float<<4)+T_short] = T_undefined ;
+               // table[(T_float<<4)+T_void] = T_undefined ;
+               // table[(T_float<<4)+T_String] = T_undefined ;
+               // table[(T_float<<4)+T_Object] = T_undefined ;
+               // table[(T_float<<4)+T_double] = T_undefined ;
+               // table[(T_float<<4)+T_float] = T_undefined ;
+               // table[(T_float<<4)+T_boolean] = T_undefined ;
+               // table[(T_float<<4)+T_char] = T_undefined ;
+               // table[(T_float<<4)+T_int] = T_undefined ;
+               // table[(T_float<<4)+T_null] = T_undefined ;
+
+               // table[(T_boolean<<4)+T_undefined] = T_undefined ;
+               // table[(T_boolean<<4)+T_byte] = T_undefined ;
+               // table[(T_boolean<<4)+T_long] = T_undefined ;
+               // table[(T_boolean<<4)+T_short] = T_undefined ;
+               // table[(T_boolean<<4)+T_void] = T_undefined ;
+               // table[(T_boolean<<4)+T_String] = T_undefined ;
+               // table[(T_boolean<<4)+T_Object] = T_undefined ;
+               // table[(T_boolean<<4)+T_double] = T_undefined ;
+               // table[(T_boolean<<4)+T_float] = T_undefined ;
+               // table[(T_boolean<<4)+T_boolean] = T_undefined ;
+               // table[(T_boolean<<4)+T_char] = T_undefined ;
+               // table[(T_boolean<<4)+T_int] = T_undefined ;
+               // table[(T_boolean<<4)+T_null] = T_undefined ;
+
+               // table[(T_char<<4)+T_undefined] = T_undefined ;
+               table[(T_char << 4) + T_byte] = (Char2Int << 12) + (Byte2Int << 4)
+                               + T_int;
+               table[(T_char << 4) + T_long] = (Char2Int << 12) + (Long2Int << 4)
+                               + T_int;
+               table[(T_char << 4) + T_short] = (Char2Int << 12) + (Short2Int << 4)
+                               + T_int;
+               // table[(T_char<<4)+T_void] = T_undefined ;
+               // table[(T_char<<4)+T_String] = T_undefined ;
+               // table[(T_char<<4)+T_Object] = T_undefined ;
+               // table[(T_char<<4)+T_double] = T_undefined ;
+               // table[(T_char<<4)+T_float] = T_undefined ;
+               // table[(T_char<<4)+T_boolean] = T_undefined ;
+               table[(T_char << 4) + T_char] = (Char2Int << 12) + (Char2Int << 4)
+                               + T_int;
+               table[(T_char << 4) + T_int] = (Char2Int << 12) + (Int2Int << 4)
+                               + T_int;
+               // table[(T_char<<4)+T_null] = T_undefined ;
+
+               // table[(T_int<<4)+T_undefined] = T_undefined ;
+               table[(T_int << 4) + T_byte] = (Int2Int << 12) + (Byte2Int << 4)
+                               + T_int;
+               table[(T_int << 4) + T_long] = (Int2Int << 12) + (Long2Int << 4)
+                               + T_int;
+               table[(T_int << 4) + T_short] = (Int2Int << 12) + (Short2Int << 4)
+                               + T_int;
+               // table[(T_int<<4)+T_void] = T_undefined ;
+               // table[(T_int<<4)+T_String] = T_undefined ;
+               // table[(T_int<<4)+T_Object] = T_undefined ;
+               // table[(T_int<<4)+T_double] = T_undefined ;
+               // table[(T_int<<4)+T_float] = T_undefined ;
+               // table[(T_int<<4)+T_boolean] = T_undefined ;
+               table[(T_int << 4) + T_char] = (Int2Int << 12) + (Char2Int << 4)
+                               + T_int;
+               table[(T_int << 4) + T_int] = (Int2Int << 12) + (Int2Int << 4) + T_int;
+               // table[(T_int<<4)+T_null] = T_undefined ;
+
+               // table[(T_null<<4)+T_undefined] = T_undefined ;
+               // table[(T_null<<4)+T_byte] = T_undefined ;
+               // table[(T_null<<4)+T_long] = T_undefined ;
+               // table[(T_null<<4)+T_short] = T_undefined ;
+               // table[(T_null<<4)+T_void] = T_undefined ;
+               // table[(T_null<<4)+T_String] = T_undefined ;
+               // table[(T_null<<4)+T_Object] = T_undefined ;
+               // table[(T_null<<4)+T_double] = T_undefined ;
+               // table[(T_null<<4)+T_float] = T_undefined ;
+               // table[(T_null<<4)+T_boolean] = T_undefined ;
+               // table[(T_null<<4)+T_char] = T_undefined ;
+               // table[(T_null<<4)+T_int] = T_undefined ;
+               // table[(T_null<<4)+T_null] = T_undefined ;
+
+               return table;
        }
 
-       public static final int[] get_LESS(){
-       
-               //the code is an int
-               // (cast)  left   Op (cast)  rigth --> result
-               //  0000   0000       0000   0000      0000
-               //  <<16   <<12       <<8    <<4       
-               
-               int[] table  = new int[16*16] ;
-               
-               //      table[(T_undefined<<4)+T_undefined]     = T_undefined ;
-               //      table[(T_undefined<<4)+T_byte]                  = T_undefined ;
-               //      table[(T_undefined<<4)+T_long]                  = T_undefined ;
-               //      table[(T_undefined<<4)+T_short]                 = T_undefined ;
-               //      table[(T_undefined<<4)+T_void]                  = T_undefined ;
-               //      table[(T_undefined<<4)+T_String]                = T_undefined ;
-               //      table[(T_undefined<<4)+T_Object]                = T_undefined ;
-               //      table[(T_undefined<<4)+T_double]                = T_undefined ;
-               //      table[(T_undefined<<4)+T_float]                 = T_undefined ;
-               //      table[(T_undefined<<4)+T_boolean]               = T_undefined ;
-               //      table[(T_undefined<<4)+T_char]                  = T_undefined ;
-               //      table[(T_undefined<<4)+T_int]                   = T_undefined ;
-               //      table[(T_undefined<<4)+T_null]                  = T_undefined ;
-               
-               //      table[(T_byte<<4)+T_undefined]  = T_undefined ;
-               table[(T_byte<<4)+T_byte]               = (Byte2Int<<12)+(Byte2Int<<4)+T_boolean ;
-               table[(T_byte<<4)+T_long]               = (Byte2Long<<12)+(Long2Long<<4)+T_boolean ;
-               table[(T_byte<<4)+T_short]              = (Byte2Int<<12)+(Short2Int<<4)+T_boolean ;
-               //      table[(T_byte<<4)+T_void]               = T_undefined ;
-               //      table[(T_byte<<4)+T_String]     = T_undefined ;
-               //      table[(T_byte<<4)+T_Object]     = T_undefined ;
-               table[(T_byte<<4)+T_double]     = (Byte2Double<<12)+(Double2Double<<4)+T_boolean ;
-               table[(T_byte<<4)+T_float]              = (Byte2Float<<12)+(Float2Float<<4)+T_boolean;
-               //      table[(T_byte<<4)+T_boolean]    = T_undefined ;
-               table[(T_byte<<4)+T_char]               = (Byte2Int<<12)+(Char2Int<<4)+T_boolean ;
-               table[(T_byte<<4)+T_int]                = (Byte2Int<<12)+(Int2Int<<4)+T_boolean ;
-               //      table[(T_byte<<4)+T_null]               = T_undefined ;
-       
-               //      table[(T_long<<4)+T_undefined]  = T_undefined ;
-               table[(T_long<<4)+T_byte]               = (Long2Long<<12)+(Byte2Long<<4)+T_boolean;
-               table[(T_long<<4)+T_long]               = (Long2Long<<12)+(Long2Long<<4)+T_boolean ;
-               table[(T_long<<4)+T_short]              = (Long2Long<<12)+(Short2Long<<4)+T_boolean ;
-               //      table[(T_long<<4)+T_void]               = T_undefined ;
-               //      table[(T_long<<4)+T_String]     = T_undefined ;
-               //      table[(T_long<<4)+T_Object]     = T_undefined ;
-               table[(T_long<<4)+T_double]     = (Long2Double<<12)+(Double2Double<<4)+T_boolean ;
-               table[(T_long<<4)+T_float]              = (Long2Float<<12)+(Float2Float<<4)+T_boolean ;
-               //      table[(T_long<<4)+T_boolean]    = T_undefined ;
-               table[(T_long<<4)+T_char]               = (Long2Long<<12)+(Char2Long<<4)+T_boolean ;
-               table[(T_long<<4)+T_int]                = (Long2Long<<12)+(Int2Long<<4)+T_boolean ;
-               //      table[(T_long<<4)+T_null]               = T_undefined ;
-       
-               //      table[(T_short<<4)+T_undefined]         = T_undefined ;
-               table[(T_short<<4)+T_byte]                      = (Short2Int<<12)+(Byte2Int<<4)+T_boolean ;
-               table[(T_short<<4)+T_long]                      = (Short2Long<<12)+(Long2Long<<4)+T_boolean ;
-               table[(T_short<<4)+T_short]             = (Short2Int<<12)+(Short2Int<<4)+T_boolean ;
-               //      table[(T_short<<4)+T_void]                      = T_undefined ;
-               //      table[(T_short<<4)+T_String]            = T_undefined ;
-               //      table[(T_short<<4)+T_Object]            = T_undefined ;
-               table[(T_short<<4)+T_double]            = (Short2Double<<12)+(Double2Double<<4)+T_boolean ;
-               table[(T_short<<4)+T_float]             = (Short2Float<<12)+(Float2Float<<4)+T_boolean ;
-               //      table[(T_short<<4)+T_boolean]           = T_undefined ;
-               table[(T_short<<4)+T_char]                      = (Short2Int<<12)+(Char2Int<<4)+T_boolean ;
-               table[(T_short<<4)+T_int]                       = (Short2Int<<12)+(Int2Int<<4)+T_boolean ;
-               //      table[(T_short<<4)+T_null]                      = T_undefined ;
-       
-               //      table[(T_void<<4)+T_undefined]  = T_undefined ;
-               //      table[(T_void<<4)+T_byte]               = T_undefined ;
-               //      table[(T_void<<4)+T_long]               = T_undefined ;
-               //      table[(T_void<<4)+T_short]              = T_undefined ;
-               //      table[(T_void<<4)+T_void]               = T_undefined ;
-               //      table[(T_void<<4)+T_String]     = T_undefined ;
-               //      table[(T_void<<4)+T_Object]     = T_undefined ;
-               //      table[(T_void<<4)+T_double]     = T_undefined ;
-               //      table[(T_void<<4)+T_float]              = T_undefined ;
-               //      table[(T_void<<4)+T_boolean]    = T_undefined ;
-               //      table[(T_void<<4)+T_char]               = T_undefined ;
-               //      table[(T_void<<4)+T_int]                = T_undefined ;
-               //      table[(T_void<<4)+T_null]               = T_undefined ;
-               
-               //      table[(T_String<<4)+T_undefined]        = T_undefined ; 
-               //      table[(T_String<<4)+T_byte]             = T_undefined ;
-               //      table[(T_String<<4)+T_long]             = T_undefined ; 
-               //      table[(T_String<<4)+T_short]            = T_undefined ;
-               //      table[(T_String<<4)+T_void]             = T_undefined ;
-               //      table[(T_String<<4)+T_String]           = T_undefined ;
-               //      table[(T_String<<4)+T_Object]           = T_undefined ;
-               //      table[(T_String<<4)+T_double]           = T_undefined ;
-               //      table[(T_String<<4)+T_float]            = T_undefined ; 
-               //      table[(T_String<<4)+T_boolean]          = T_undefined ;
-               //      table[(T_String<<4)+T_char]             = T_undefined ;
-               //      table[(T_String<<4)+T_int]                      = T_undefined ;
-               //      table[(T_String<<4)+T_null]             = T_undefined ;
-               
-               //      table[(T_Object<<4)+T_undefined]        = T_undefined ;
-               //      table[(T_Object<<4)+T_byte]             = T_undefined ;
-               //      table[(T_Object<<4)+T_long]             = T_undefined ;
-               //      table[(T_Object<<4)+T_short]            = T_undefined ;
-               //      table[(T_Object<<4)+T_void]             = T_undefined ;
-               //      table[(T_Object<<4)+T_String]           = T_undefined ;
-               //      table[(T_Object<<4)+T_Object]           = T_undefined ;
-               //      table[(T_Object<<4)+T_double]           = T_undefined ;
-               //      table[(T_Object<<4)+T_float]            = T_undefined ;
-               //      table[(T_Object<<4)+T_boolean]          = T_undefined ;
-               //      table[(T_Object<<4)+T_char]             = T_undefined ;
-               //      table[(T_Object<<4)+T_int]                      = T_undefined ;
-               //      table[(T_Object<<4)+T_null]             = T_undefined ;
-       
-               //      table[(T_double<<4)+T_undefined]        = T_undefined ;
-               table[(T_double<<4)+T_byte]             = (Double2Double<<12)+(Byte2Double<<4)+T_boolean ;
-               table[(T_double<<4)+T_long]             = (Double2Double<<12)+(Long2Double<<4)+T_boolean;
-               table[(T_double<<4)+T_short]            = (Double2Double<<12)+(Short2Double<<4)+T_boolean ;
-               //      table[(T_double<<4)+T_void]             = T_undefined ;
-               //      table[(T_double<<4)+T_String]           = T_undefined ;
-               //      table[(T_double<<4)+T_Object]           = T_undefined ;
-               table[(T_double<<4)+T_double]           = (Double2Double<<12)+(Double2Double<<4)+T_boolean ;
-               table[(T_double<<4)+T_float]            = (Double2Double<<12)+(Float2Double<<4)+T_boolean ;
-               //      table[(T_double<<4)+T_boolean]          = T_undefined ;
-               table[(T_double<<4)+T_char]             = (Double2Double<<12)+(Char2Double<<4)+T_boolean ;
-               table[(T_double<<4)+T_int]                      = (Double2Double<<12)+(Int2Double<<4)+T_boolean;
-               //      table[(T_double<<4)+T_null]             = T_undefined ;
-       
-               //      table[(T_float<<4)+T_undefined]         = T_undefined ;
-               table[(T_float<<4)+T_byte]                      = (Float2Float<<12)+(Byte2Float<<4)+T_boolean ;
-               table[(T_float<<4)+T_long]                      = (Float2Float<<12)+(Long2Float<<4)+T_boolean ;
-               table[(T_float<<4)+T_short]             = (Float2Float<<12)+(Short2Float<<4)+T_boolean ;
-               //      table[(T_float<<4)+T_void]                      = T_undefined ;
-               //      table[(T_float<<4)+T_String]            = T_undefined ;
-               //      table[(T_float<<4)+T_Object]            = T_undefined ;
-               table[(T_float<<4)+T_double]            = (Float2Double<<12)+(Double2Double<<4)+T_boolean ;
-               table[(T_float<<4)+T_float]             = (Float2Float<<12)+(Float2Float<<4)+T_boolean ;
-               //      table[(T_float<<4)+T_boolean]           = T_undefined ;
-               table[(T_float<<4)+T_char]                      = (Float2Float<<12)+(Char2Float<<4)+T_boolean ;
-               table[(T_float<<4)+T_int]                       = (Float2Float<<12)+(Int2Float<<4)+T_boolean ;
-               //      table[(T_float<<4)+T_null]                      = T_undefined ;
-               
-               //      table[(T_boolean<<4)+T_undefined]               = T_undefined ;
-               //      table[(T_boolean<<4)+T_byte]                    = T_undefined ;
-               //      table[(T_boolean<<4)+T_long]                    = T_undefined ;
-               //      table[(T_boolean<<4)+T_short]                   = T_undefined ;
-               //      table[(T_boolean<<4)+T_void]                    = T_undefined ;
-               //      table[(T_boolean<<4)+T_String]                  = T_undefined ;
-               //      table[(T_boolean<<4)+T_Object]                  = T_undefined ;
-               //      table[(T_boolean<<4)+T_double]                  = T_undefined ;
-               //      table[(T_boolean<<4)+T_float]                   = T_undefined ;
-               //      table[(T_boolean<<4)+T_boolean]                 = T_undefined ;
-               //      table[(T_boolean<<4)+T_char]                    = T_undefined ;
-               //      table[(T_boolean<<4)+T_int]                     = T_undefined ;
-               //      table[(T_boolean<<4)+T_null]                    = T_undefined ;
-                       
-               //      table[(T_char<<4)+T_undefined]          = T_undefined ;
-               table[(T_char<<4)+T_byte]                       = (Char2Int<<12)+(Byte2Int<<4)+T_boolean ;
-               table[(T_char<<4)+T_long]                       = (Char2Long<<12)+(Long2Long<<4)+T_boolean ;
-               table[(T_char<<4)+T_short]                      = (Char2Int<<12)+(Short2Int<<4)+T_boolean ;
-               //      table[(T_char<<4)+T_void]                       = T_undefined ;
-               //      table[(T_char<<4)+T_String]             = T_undefined ;
-               //      table[(T_char<<4)+T_Object]             = T_undefined ;
-               table[(T_char<<4)+T_double]             = (Char2Double<<12)+(Double2Double<<4)+T_boolean ;
-               table[(T_char<<4)+T_float]                      = (Char2Float<<12)+(Float2Float<<4)+T_boolean ;
-               //      table[(T_char<<4)+T_boolean]            = T_undefined ;
-               table[(T_char<<4)+T_char]                       = (Char2Int<<12)+(Char2Int<<4)+T_boolean ;
-               table[(T_char<<4)+T_int]                        = (Char2Int<<12)+(Int2Int<<4)+T_boolean ;
-               //      table[(T_char<<4)+T_null]                       = T_undefined ;
-               
-               //      table[(T_int<<4)+T_undefined]   = T_undefined ;
-               table[(T_int<<4)+T_byte]                = (Int2Int<<12)+(Byte2Int<<4)+T_boolean ;
-               table[(T_int<<4)+T_long]                = (Int2Long<<12)+(Long2Long<<4)+T_boolean;
-               table[(T_int<<4)+T_short]               = (Int2Int<<12)+(Short2Int<<4)+T_boolean ;
-               //      table[(T_int<<4)+T_void]                = T_undefined ;
-               //      table[(T_int<<4)+T_String]              = T_undefined ;
-               //      table[(T_int<<4)+T_Object]              = T_undefined ;
-               table[(T_int<<4)+T_double]              = (Int2Double<<12)+(Double2Double<<4)+T_boolean ;
-               table[(T_int<<4)+T_float]               = (Int2Float<<12)+(Float2Float<<4)+T_boolean ;
-               //      table[(T_int<<4)+T_boolean]     = T_undefined ;
-               table[(T_int<<4)+T_char]                = (Int2Int<<12)+(Char2Int<<4)+T_boolean ;
-               table[(T_int<<4)+T_int]                 = (Int2Int<<12)+(Int2Int<<4)+T_boolean;
-               //      table[(T_int<<4)+T_null]                = T_undefined ;
-               
-               //      table[(T_null<<4)+T_undefined]          = T_undefined ;
-               //      table[(T_null<<4)+T_byte]                       = T_undefined ;
-               //      table[(T_null<<4)+T_long]                       = T_undefined ;
-               //      table[(T_null<<4)+T_short]                      = T_undefined ;
-               //      table[(T_null<<4)+T_void]                       = T_undefined ;
-               //      table[(T_null<<4)+T_String]             = T_undefined ;
-               //      table[(T_null<<4)+T_Object]             = T_undefined ;
-               //      table[(T_null<<4)+T_double]             = T_undefined ;
-               //      table[(T_null<<4)+T_float]                      = T_undefined ;
-               //      table[(T_null<<4)+T_boolean]            = T_undefined ;
-               //      table[(T_null<<4)+T_char]                       = T_undefined ;
-               //      table[(T_null<<4)+T_int]                        = T_undefined ;
-               //      table[(T_null<<4)+T_null]                       = T_undefined ;
-       
-               return table ;
+       public static final int[] get_LESS() {
+
+               // the code is an int
+               // (cast) left Op (cast) rigth --> result
+               // 0000 0000 0000 0000 0000
+               // <<16 <<12 <<8 <<4
+
+               int[] table = new int[16 * 16];
+
+               // table[(T_undefined<<4)+T_undefined] = T_undefined ;
+               // table[(T_undefined<<4)+T_byte] = T_undefined ;
+               // table[(T_undefined<<4)+T_long] = T_undefined ;
+               // table[(T_undefined<<4)+T_short] = T_undefined ;
+               // table[(T_undefined<<4)+T_void] = T_undefined ;
+               // table[(T_undefined<<4)+T_String] = T_undefined ;
+               // table[(T_undefined<<4)+T_Object] = T_undefined ;
+               // table[(T_undefined<<4)+T_double] = T_undefined ;
+               // table[(T_undefined<<4)+T_float] = T_undefined ;
+               // table[(T_undefined<<4)+T_boolean] = T_undefined ;
+               // table[(T_undefined<<4)+T_char] = T_undefined ;
+               // table[(T_undefined<<4)+T_int] = T_undefined ;
+               // table[(T_undefined<<4)+T_null] = T_undefined ;
+
+               // table[(T_byte<<4)+T_undefined] = T_undefined ;
+               table[(T_byte << 4) + T_byte] = (Byte2Int << 12) + (Byte2Int << 4)
+                               + T_boolean;
+               table[(T_byte << 4) + T_long] = (Byte2Long << 12) + (Long2Long << 4)
+                               + T_boolean;
+               table[(T_byte << 4) + T_short] = (Byte2Int << 12) + (Short2Int << 4)
+                               + T_boolean;
+               // table[(T_byte<<4)+T_void] = T_undefined ;
+               // table[(T_byte<<4)+T_String] = T_undefined ;
+               // table[(T_byte<<4)+T_Object] = T_undefined ;
+               table[(T_byte << 4) + T_double] = (Byte2Double << 12)
+                               + (Double2Double << 4) + T_boolean;
+               table[(T_byte << 4) + T_float] = (Byte2Float << 12)
+                               + (Float2Float << 4) + T_boolean;
+               // table[(T_byte<<4)+T_boolean] = T_undefined ;
+               table[(T_byte << 4) + T_char] = (Byte2Int << 12) + (Char2Int << 4)
+                               + T_boolean;
+               table[(T_byte << 4) + T_int] = (Byte2Int << 12) + (Int2Int << 4)
+                               + T_boolean;
+               // table[(T_byte<<4)+T_null] = T_undefined ;
+
+               // table[(T_long<<4)+T_undefined] = T_undefined ;
+               table[(T_long << 4) + T_byte] = (Long2Long << 12) + (Byte2Long << 4)
+                               + T_boolean;
+               table[(T_long << 4) + T_long] = (Long2Long << 12) + (Long2Long << 4)
+                               + T_boolean;
+               table[(T_long << 4) + T_short] = (Long2Long << 12) + (Short2Long << 4)
+                               + T_boolean;
+               // table[(T_long<<4)+T_void] = T_undefined ;
+               // table[(T_long<<4)+T_String] = T_undefined ;
+               // table[(T_long<<4)+T_Object] = T_undefined ;
+               table[(T_long << 4) + T_double] = (Long2Double << 12)
+                               + (Double2Double << 4) + T_boolean;
+               table[(T_long << 4) + T_float] = (Long2Float << 12)
+                               + (Float2Float << 4) + T_boolean;
+               // table[(T_long<<4)+T_boolean] = T_undefined ;
+               table[(T_long << 4) + T_char] = (Long2Long << 12) + (Char2Long << 4)
+                               + T_boolean;
+               table[(T_long << 4) + T_int] = (Long2Long << 12) + (Int2Long << 4)
+                               + T_boolean;
+               // table[(T_long<<4)+T_null] = T_undefined ;
+
+               // table[(T_short<<4)+T_undefined] = T_undefined ;
+               table[(T_short << 4) + T_byte] = (Short2Int << 12) + (Byte2Int << 4)
+                               + T_boolean;
+               table[(T_short << 4) + T_long] = (Short2Long << 12) + (Long2Long << 4)
+                               + T_boolean;
+               table[(T_short << 4) + T_short] = (Short2Int << 12) + (Short2Int << 4)
+                               + T_boolean;
+               // table[(T_short<<4)+T_void] = T_undefined ;
+               // table[(T_short<<4)+T_String] = T_undefined ;
+               // table[(T_short<<4)+T_Object] = T_undefined ;
+               table[(T_short << 4) + T_double] = (Short2Double << 12)
+                               + (Double2Double << 4) + T_boolean;
+               table[(T_short << 4) + T_float] = (Short2Float << 12)
+                               + (Float2Float << 4) + T_boolean;
+               // table[(T_short<<4)+T_boolean] = T_undefined ;
+               table[(T_short << 4) + T_char] = (Short2Int << 12) + (Char2Int << 4)
+                               + T_boolean;
+               table[(T_short << 4) + T_int] = (Short2Int << 12) + (Int2Int << 4)
+                               + T_boolean;
+               // table[(T_short<<4)+T_null] = T_undefined ;
+
+               // table[(T_void<<4)+T_undefined] = T_undefined ;
+               // table[(T_void<<4)+T_byte] = T_undefined ;
+               // table[(T_void<<4)+T_long] = T_undefined ;
+               // table[(T_void<<4)+T_short] = T_undefined ;
+               // table[(T_void<<4)+T_void] = T_undefined ;
+               // table[(T_void<<4)+T_String] = T_undefined ;
+               // table[(T_void<<4)+T_Object] = T_undefined ;
+               // table[(T_void<<4)+T_double] = T_undefined ;
+               // table[(T_void<<4)+T_float] = T_undefined ;
+               // table[(T_void<<4)+T_boolean] = T_undefined ;
+               // table[(T_void<<4)+T_char] = T_undefined ;
+               // table[(T_void<<4)+T_int] = T_undefined ;
+               // table[(T_void<<4)+T_null] = T_undefined ;
+
+               // table[(T_String<<4)+T_undefined] = T_undefined ;
+               // table[(T_String<<4)+T_byte] = T_undefined ;
+               // table[(T_String<<4)+T_long] = T_undefined ;
+               // table[(T_String<<4)+T_short] = T_undefined ;
+               // table[(T_String<<4)+T_void] = T_undefined ;
+               // table[(T_String<<4)+T_String] = T_undefined ;
+               // table[(T_String<<4)+T_Object] = T_undefined ;
+               // table[(T_String<<4)+T_double] = T_undefined ;
+               // table[(T_String<<4)+T_float] = T_undefined ;
+               // table[(T_String<<4)+T_boolean] = T_undefined ;
+               // table[(T_String<<4)+T_char] = T_undefined ;
+               // table[(T_String<<4)+T_int] = T_undefined ;
+               // table[(T_String<<4)+T_null] = T_undefined ;
+
+               // table[(T_Object<<4)+T_undefined] = T_undefined ;
+               // table[(T_Object<<4)+T_byte] = T_undefined ;
+               // table[(T_Object<<4)+T_long] = T_undefined ;
+               // table[(T_Object<<4)+T_short] = T_undefined ;
+               // table[(T_Object<<4)+T_void] = T_undefined ;
+               // table[(T_Object<<4)+T_String] = T_undefined ;
+               // table[(T_Object<<4)+T_Object] = T_undefined ;
+               // table[(T_Object<<4)+T_double] = T_undefined ;
+               // table[(T_Object<<4)+T_float] = T_undefined ;
+               // table[(T_Object<<4)+T_boolean] = T_undefined ;
+               // table[(T_Object<<4)+T_char] = T_undefined ;
+               // table[(T_Object<<4)+T_int] = T_undefined ;
+               // table[(T_Object<<4)+T_null] = T_undefined ;
+
+               // table[(T_double<<4)+T_undefined] = T_undefined ;
+               table[(T_double << 4) + T_byte] = (Double2Double << 12)
+                               + (Byte2Double << 4) + T_boolean;
+               table[(T_double << 4) + T_long] = (Double2Double << 12)
+                               + (Long2Double << 4) + T_boolean;
+               table[(T_double << 4) + T_short] = (Double2Double << 12)
+                               + (Short2Double << 4) + T_boolean;
+               // table[(T_double<<4)+T_void] = T_undefined ;
+               // table[(T_double<<4)+T_String] = T_undefined ;
+               // table[(T_double<<4)+T_Object] = T_undefined ;
+               table[(T_double << 4) + T_double] = (Double2Double << 12)
+                               + (Double2Double << 4) + T_boolean;
+               table[(T_double << 4) + T_float] = (Double2Double << 12)
+                               + (Float2Double << 4) + T_boolean;
+               // table[(T_double<<4)+T_boolean] = T_undefined ;
+               table[(T_double << 4) + T_char] = (Double2Double << 12)
+                               + (Char2Double << 4) + T_boolean;
+               table[(T_double << 4) + T_int] = (Double2Double << 12)
+                               + (Int2Double << 4) + T_boolean;
+               // table[(T_double<<4)+T_null] = T_undefined ;
+
+               // table[(T_float<<4)+T_undefined] = T_undefined ;
+               table[(T_float << 4) + T_byte] = (Float2Float << 12)
+                               + (Byte2Float << 4) + T_boolean;
+               table[(T_float << 4) + T_long] = (Float2Float << 12)
+                               + (Long2Float << 4) + T_boolean;
+               table[(T_float << 4) + T_short] = (Float2Float << 12)
+                               + (Short2Float << 4) + T_boolean;
+               // table[(T_float<<4)+T_void] = T_undefined ;
+               // table[(T_float<<4)+T_String] = T_undefined ;
+               // table[(T_float<<4)+T_Object] = T_undefined ;
+               table[(T_float << 4) + T_double] = (Float2Double << 12)
+                               + (Double2Double << 4) + T_boolean;
+               table[(T_float << 4) + T_float] = (Float2Float << 12)
+                               + (Float2Float << 4) + T_boolean;
+               // table[(T_float<<4)+T_boolean] = T_undefined ;
+               table[(T_float << 4) + T_char] = (Float2Float << 12)
+                               + (Char2Float << 4) + T_boolean;
+               table[(T_float << 4) + T_int] = (Float2Float << 12) + (Int2Float << 4)
+                               + T_boolean;
+               // table[(T_float<<4)+T_null] = T_undefined ;
+
+               // table[(T_boolean<<4)+T_undefined] = T_undefined ;
+               // table[(T_boolean<<4)+T_byte] = T_undefined ;
+               // table[(T_boolean<<4)+T_long] = T_undefined ;
+               // table[(T_boolean<<4)+T_short] = T_undefined ;
+               // table[(T_boolean<<4)+T_void] = T_undefined ;
+               // table[(T_boolean<<4)+T_String] = T_undefined ;
+               // table[(T_boolean<<4)+T_Object] = T_undefined ;
+               // table[(T_boolean<<4)+T_double] = T_undefined ;
+               // table[(T_boolean<<4)+T_float] = T_undefined ;
+               // table[(T_boolean<<4)+T_boolean] = T_undefined ;
+               // table[(T_boolean<<4)+T_char] = T_undefined ;
+               // table[(T_boolean<<4)+T_int] = T_undefined ;
+               // table[(T_boolean<<4)+T_null] = T_undefined ;
+
+               // table[(T_char<<4)+T_undefined] = T_undefined ;
+               table[(T_char << 4) + T_byte] = (Char2Int << 12) + (Byte2Int << 4)
+                               + T_boolean;
+               table[(T_char << 4) + T_long] = (Char2Long << 12) + (Long2Long << 4)
+                               + T_boolean;
+               table[(T_char << 4) + T_short] = (Char2Int << 12) + (Short2Int << 4)
+                               + T_boolean;
+               // table[(T_char<<4)+T_void] = T_undefined ;
+               // table[(T_char<<4)+T_String] = T_undefined ;
+               // table[(T_char<<4)+T_Object] = T_undefined ;
+               table[(T_char << 4) + T_double] = (Char2Double << 12)
+                               + (Double2Double << 4) + T_boolean;
+               table[(T_char << 4) + T_float] = (Char2Float << 12)
+                               + (Float2Float << 4) + T_boolean;
+               // table[(T_char<<4)+T_boolean] = T_undefined ;
+               table[(T_char << 4) + T_char] = (Char2Int << 12) + (Char2Int << 4)
+                               + T_boolean;
+               table[(T_char << 4) + T_int] = (Char2Int << 12) + (Int2Int << 4)
+                               + T_boolean;
+               // table[(T_char<<4)+T_null] = T_undefined ;
+
+               // table[(T_int<<4)+T_undefined] = T_undefined ;
+               table[(T_int << 4) + T_byte] = (Int2Int << 12) + (Byte2Int << 4)
+                               + T_boolean;
+               table[(T_int << 4) + T_long] = (Int2Long << 12) + (Long2Long << 4)
+                               + T_boolean;
+               table[(T_int << 4) + T_short] = (Int2Int << 12) + (Short2Int << 4)
+                               + T_boolean;
+               // table[(T_int<<4)+T_void] = T_undefined ;
+               // table[(T_int<<4)+T_String] = T_undefined ;
+               // table[(T_int<<4)+T_Object] = T_undefined ;
+               table[(T_int << 4) + T_double] = (Int2Double << 12)
+                               + (Double2Double << 4) + T_boolean;
+               table[(T_int << 4) + T_float] = (Int2Float << 12) + (Float2Float << 4)
+                               + T_boolean;
+               // table[(T_int<<4)+T_boolean] = T_undefined ;
+               table[(T_int << 4) + T_char] = (Int2Int << 12) + (Char2Int << 4)
+                               + T_boolean;
+               table[(T_int << 4) + T_int] = (Int2Int << 12) + (Int2Int << 4)
+                               + T_boolean;
+               // table[(T_int<<4)+T_null] = T_undefined ;
+
+               // table[(T_null<<4)+T_undefined] = T_undefined ;
+               // table[(T_null<<4)+T_byte] = T_undefined ;
+               // table[(T_null<<4)+T_long] = T_undefined ;
+               // table[(T_null<<4)+T_short] = T_undefined ;
+               // table[(T_null<<4)+T_void] = T_undefined ;
+               // table[(T_null<<4)+T_String] = T_undefined ;
+               // table[(T_null<<4)+T_Object] = T_undefined ;
+               // table[(T_null<<4)+T_double] = T_undefined ;
+               // table[(T_null<<4)+T_float] = T_undefined ;
+               // table[(T_null<<4)+T_boolean] = T_undefined ;
+               // table[(T_null<<4)+T_char] = T_undefined ;
+               // table[(T_null<<4)+T_int] = T_undefined ;
+               // table[(T_null<<4)+T_null] = T_undefined ;
+
+               return table;
        }
 
-       public static final int[] get_LESS_EQUAL(){
-       
-               //the code is an int
-               // (cast)  left   Op (cast)  rigth --> result
-               //  0000   0000       0000   0000      0000
-               //  <<16   <<12       <<8    <<4       
-               
-               //      int[] table  = new int[16*16] ;
+       public static final int[] get_LESS_EQUAL() {
+
+               // the code is an int
+               // (cast) left Op (cast) rigth --> result
+               // 0000 0000 0000 0000 0000
+               // <<16 <<12 <<8 <<4
+
+               // int[] table = new int[16*16] ;
                return get_LESS();
        }
 
-       public static final int[] get_MINUS(){
-       
-               //the code is an int
-               // (cast)  left   Op (cast)  rigth --> result
-               //  0000   0000       0000   0000      0000
-               //  <<16   <<12       <<8    <<4       
-               
-               int[] table  = new int[16*16] ;
-       
+       public static final int[] get_MINUS() {
+
+               // the code is an int
+               // (cast) left Op (cast) rigth --> result
+               // 0000 0000 0000 0000 0000
+               // <<16 <<12 <<8 <<4
+
+               int[] table = new int[16 * 16];
+
                table = (int[]) get_PLUS().clone();
 
-               // customization        
-               table[(T_String<<4)+T_byte]             = T_undefined ;
-               table[(T_String<<4)+T_long]             = T_undefined ;
-               table[(T_String<<4)+T_short]            = T_undefined ;
-               table[(T_String<<4)+T_void]             = T_undefined ;
-               table[(T_String<<4)+T_String]           = T_undefined ;
-               table[(T_String<<4)+T_Object]           = T_undefined ;
-               table[(T_String<<4)+T_double]           = T_undefined ;
-               table[(T_String<<4)+T_float]            = T_undefined ;
-               table[(T_String<<4)+T_boolean]          = T_undefined ;
-               table[(T_String<<4)+T_char]             = T_undefined ;
-               table[(T_String<<4)+T_int]                      = T_undefined ;
-               table[(T_String<<4)+T_null]             = T_undefined ;
-               
-               table[(T_byte<<4)       +T_String]              = T_undefined ;
-               table[(T_long<<4)       +T_String]              = T_undefined ;
-               table[(T_short<<4)      +T_String]              = T_undefined ;
-               table[(T_void<<4)       +T_String]              = T_undefined ;
-               table[(T_Object<<4)     +T_String]              = T_undefined ;
-               table[(T_double<<4)     +T_String]              = T_undefined ;
-               table[(T_float<<4)      +T_String]              = T_undefined ;
-               table[(T_boolean<<4)+T_String]          = T_undefined ;
-               table[(T_char<<4)       +T_String]              = T_undefined ;
-               table[(T_int<<4)        +T_String]              = T_undefined ;
-               table[(T_null<<4)       +T_String]              = T_undefined ;
-               
-               table[(T_null<<4)       +T_null]                = T_undefined ;
-       
-               return table ;
+               // customization
+               table[(T_String << 4) + T_byte] = T_undefined;
+               table[(T_String << 4) + T_long] = T_undefined;
+               table[(T_String << 4) + T_short] = T_undefined;
+               table[(T_String << 4) + T_void] = T_undefined;
+               table[(T_String << 4) + T_String] = T_undefined;
+               table[(T_String << 4) + T_Object] = T_undefined;
+               table[(T_String << 4) + T_double] = T_undefined;
+               table[(T_String << 4) + T_float] = T_undefined;
+               table[(T_String << 4) + T_boolean] = T_undefined;
+               table[(T_String << 4) + T_char] = T_undefined;
+               table[(T_String << 4) + T_int] = T_undefined;
+               table[(T_String << 4) + T_null] = T_undefined;
+
+               table[(T_byte << 4) + T_String] = T_undefined;
+               table[(T_long << 4) + T_String] = T_undefined;
+               table[(T_short << 4) + T_String] = T_undefined;
+               table[(T_void << 4) + T_String] = T_undefined;
+               table[(T_Object << 4) + T_String] = T_undefined;
+               table[(T_double << 4) + T_String] = T_undefined;
+               table[(T_float << 4) + T_String] = T_undefined;
+               table[(T_boolean << 4) + T_String] = T_undefined;
+               table[(T_char << 4) + T_String] = T_undefined;
+               table[(T_int << 4) + T_String] = T_undefined;
+               table[(T_null << 4) + T_String] = T_undefined;
+
+               table[(T_null << 4) + T_null] = T_undefined;
+
+               return table;
        }
 
-       public static final int[] get_MULTIPLY(){
-       
-               //the code is an int
-               // (cast)  left   Op (cast)  rigth --> result
-               //  0000   0000       0000   0000      0000
-               //  <<16   <<12       <<8    <<4       
-               
-               //      int[] table  = new int[16*16] ;
+       public static final int[] get_MULTIPLY() {
+
+               // the code is an int
+               // (cast) left Op (cast) rigth --> result
+               // 0000 0000 0000 0000 0000
+               // <<16 <<12 <<8 <<4
+
+               // int[] table = new int[16*16] ;
                return get_MINUS();
        }
 
-       public static final int[] get_OR(){
-       
-               //the code is an int
-               // (cast)  left   Op (cast)  rigth --> result
-               //  0000   0000       0000   0000      0000
-               //  <<16   <<12       <<8    <<4       
-               
-               
-               //      int[] table  = new int[16*16] ;
-               return get_AND() ;
+       public static final int[] get_OR() {
+
+               // the code is an int
+               // (cast) left Op (cast) rigth --> result
+               // 0000 0000 0000 0000 0000
+               // <<16 <<12 <<8 <<4
+
+               // int[] table = new int[16*16] ;
+               return get_AND();
        }
 
-       public static final int[] get_OR_OR(){
-       
-               //the code is an int
-               // (cast)  left   Op (cast)  rigth --> result
-               //  0000   0000       0000   0000      0000
-               //  <<16   <<12       <<8    <<4       
-               
-               //      int[] table  = new int[16*16] ;
-               return get_AND_AND() ;
+       public static final int[] get_OR_OR() {
+
+               // the code is an int
+               // (cast) left Op (cast) rigth --> result
+               // 0000 0000 0000 0000 0000
+               // <<16 <<12 <<8 <<4
+
+               // int[] table = new int[16*16] ;
+               return get_AND_AND();
        }
 
-       public static final int[] get_PLUS(){
-       
-               //the code is an int
-               // (cast)  left   Op (cast)  rigth --> result
-               //  0000   0000       0000   0000      0000
-               //  <<16   <<12       <<8    <<4       
-               
-               int[] table  = new int[16*16] ;
-               
-               //      table[(T_undefined<<4)+T_undefined]     = T_undefined ;
-               //      table[(T_undefined<<4)+T_byte]                  = T_undefined ;
-               //      table[(T_undefined<<4)+T_long]                  = T_undefined ;
-               //      table[(T_undefined<<4)+T_short]                 = T_undefined ;
-               //      table[(T_undefined<<4)+T_void]                  = T_undefined ;
-               //      table[(T_undefined<<4)+T_String]                = T_undefined ;
-               //      table[(T_undefined<<4)+T_Object]                = T_undefined ;
-               //      table[(T_undefined<<4)+T_double]                = T_undefined ;
-               //      table[(T_undefined<<4)+T_float]                 = T_undefined ;
-               //      table[(T_undefined<<4)+T_boolean]               = T_undefined ;
-               //      table[(T_undefined<<4)+T_char]                  = T_undefined ;
-               //      table[(T_undefined<<4)+T_int]                   = T_undefined ;
-               //      table[(T_undefined<<4)+T_null]                  = T_undefined ;
-                       
-               //      table[(T_byte<<4)+T_undefined]  = T_undefined ;
-               table[(T_byte<<4)+T_byte]               = (Byte2Int<<12)+(Byte2Int<<4)+T_int ;
-               table[(T_byte<<4)+T_long]               = (Byte2Long<<12)+(Long2Long<<4)+T_long ;
-               table[(T_byte<<4)+T_short]              = (Byte2Int<<12)+(Short2Int<<4)+T_int ;
-               //      table[(T_byte<<4)+T_void]               = T_undefined ;
-               table[(T_byte<<4)+T_String]     = (Byte2Byte<<12)+(String2String<<4)+T_String ;
-               //      table[(T_byte<<4)+T_Object]     = T_undefined ;
-               table[(T_byte<<4)+T_double]     = (Byte2Double<<12)+(Double2Double<<4)+T_double ;
-               table[(T_byte<<4)+T_float]              = (Byte2Float<<12)+(Float2Float<<4)+T_float;
-               //      table[(T_byte<<4)+T_boolean]    = T_undefined ;
-               table[(T_byte<<4)+T_char]               = (Byte2Int<<12)+(Char2Int<<4)+T_int ;
-               table[(T_byte<<4)+T_int]                = (Byte2Int<<12)+(Int2Int<<4)+T_int ;
-               //      table[(T_byte<<4)+T_null]               = T_undefined ;
-       
-               //      table[(T_long<<4)+T_undefined]  = T_undefined ;
-               table[(T_long<<4)+T_byte]               = (Long2Long<<12)+(Byte2Long<<4)+T_long;
-               table[(T_long<<4)+T_long]               = (Long2Long<<12)+(Long2Long<<4)+T_long ;
-               table[(T_long<<4)+T_short]              = (Long2Long<<12)+(Short2Long<<4)+T_long ;
-               //      table[(T_long<<4)+T_void]               = T_undefined ;
-               table[(T_long<<4)+T_String]     = (Long2Long<<12)+(String2String<<4)+T_String ;
-               //      table[(T_long<<4)+T_Object]     = T_undefined ;
-               table[(T_long<<4)+T_double]     = (Long2Double<<12)+(Double2Double<<4)+T_double ;
-               table[(T_long<<4)+T_float]              = (Long2Float<<12)+(Float2Float<<4)+T_float ;
-               //      table[(T_long<<4)+T_boolean]    = T_undefined ;
-               table[(T_long<<4)+T_char]               = (Long2Long<<12)+(Char2Long<<4)+T_long ;
-               table[(T_long<<4)+T_int]                = (Long2Long<<12)+(Int2Long<<4)+T_long ; ;
-               //      table[(T_long<<4)+T_null]               = T_undefined ;
-               
-               //      table[(T_short<<4)+T_undefined]         = T_undefined ;
-               table[(T_short<<4)+T_byte]                      = (Short2Int<<12)+(Byte2Int<<4)+T_int ;
-               table[(T_short<<4)+T_long]                      = (Short2Long<<12)+(Long2Long<<4)+T_long ;
-               table[(T_short<<4)+T_short]             = (Short2Int<<12)+(Short2Int<<4)+T_int ;
-               //      table[(T_short<<4)+T_void]                      = T_undefined ;
-               table[(T_short<<4)+T_String]            = (Short2Short<<12)+(String2String<<4)+T_String ;
-               //      table[(T_short<<4)+T_Object]            = T_undefined ;
-               table[(T_short<<4)+T_double]            = (Short2Double<<12)+(Double2Double<<4)+T_double ;
-               table[(T_short<<4)+T_float]             = (Short2Float<<12)+(Float2Float<<4)+T_float ;
-               //      table[(T_short<<4)+T_boolean]           = T_undefined ;
-               table[(T_short<<4)+T_char]                      = (Short2Int<<12)+(Char2Int<<4)+T_int ;
-               table[(T_short<<4)+T_int]                       = (Short2Int<<12)+(Int2Int<<4)+T_int ;
-               //      table[(T_short<<4)+T_null]                      = T_undefined ;
-       
-               //      table[(T_void<<4)+T_undefined]  = T_undefined ;
-               //      table[(T_void<<4)+T_byte]               = T_undefined ;
-               //      table[(T_void<<4)+T_long]               = T_undefined ;
-               //      table[(T_void<<4)+T_short]              = T_undefined ;
-               //      table[(T_void<<4)+T_void]               = T_undefined ;
-               //      table[(T_void<<4)+T_String]     = T_undefined ;
-               //      table[(T_void<<4)+T_Object]     = T_undefined ;
-               //      table[(T_void<<4)+T_double]     = T_undefined ;
-               //      table[(T_void<<4)+T_float]              = T_undefined ;
-               //      table[(T_void<<4)+T_boolean]    = T_undefined ;
-               //      table[(T_void<<4)+T_char]               = T_undefined ;
-               //      table[(T_void<<4)+T_int]                = T_undefined ;
-               //      table[(T_void<<4)+T_null]               = T_undefined ;
-               
-               //      table[(T_String<<4)+T_undefined]        = T_undefined ; 
-               table[(T_String<<4)+T_byte]             = (String2String<<12)+(Byte2Byte<<4)+T_String ;
-               table[(T_String<<4)+T_long]             = (String2String<<12)+(Long2Long<<4)+T_String ; 
-               table[(T_String<<4)+T_short]            = (String2String<<12)+(Short2Short<<4)+T_String ;
-               //      table[(T_String<<4)+T_void]             = T_undefined ;
-               table[(T_String<<4)+T_String]           = (String2String<<12)+(String2String<<4)+T_String ;
-               table[(T_String<<4)+T_Object]           = (String2String<<12)+(Object2Object<<4)+T_String ;
-               table[(T_String<<4)+T_double]           = (String2String<<12)+(Double2Double<<4)+T_String ;
-               table[(T_String<<4)+T_float]            = (String2String<<12)+(Float2Float<<4)+T_String ; 
-               table[(T_String<<4)+T_boolean]          = (String2String<<12)+(Boolean2Boolean<<4)+T_String ;
-               table[(T_String<<4)+T_char]             = (String2String<<12)+(Char2Char<<4)+T_String ;
-               table[(T_String<<4)+T_int]                      = (String2String<<12)+(Int2Int<<4)+T_String ;
-               table[(T_String<<4)+T_null]             = (String2String<<12)+(T_null<<8)+(T_null<<4)+T_String ;
-       
-               //      table[(T_Object<<4)+T_undefined]        = T_undefined ;
-               //      table[(T_Object<<4)+T_byte]             = T_undefined ;
-               //      table[(T_Object<<4)+T_long]             = T_undefined ;
-               //      table[(T_Object<<4)+T_short]            = T_undefined ;
-               //      table[(T_Object<<4)+T_void]             = T_undefined ;
-               table[(T_Object<<4)+T_String]           = (Object2Object<<12)+(String2String<<4)+T_String ;
-               //      table[(T_Object<<4)+T_Object]           = T_undefined ;
-               //      table[(T_Object<<4)+T_double]           = T_undefined ;
-               //      table[(T_Object<<4)+T_float]            = T_undefined ;
-               //      table[(T_Object<<4)+T_boolean]          = T_undefined ;
-               //      table[(T_Object<<4)+T_char]             = T_undefined ;
-               //      table[(T_Object<<4)+T_int]                      = T_undefined ;
-               //      table[(T_Object<<4)+T_null]             = T_undefined ;
-               
-               //      table[(T_double<<4)+T_undefined]        = T_undefined ;
-               table[(T_double<<4)+T_byte]             = (Double2Double<<12)+(Byte2Double<<4)+T_double ;
-               table[(T_double<<4)+T_long]             = (Double2Double<<12)+(Long2Double<<4)+T_double ;
-               table[(T_double<<4)+T_short]            = (Double2Double<<12)+(Short2Double<<4)+T_double ; ;
-               //      table[(T_double<<4)+T_void]             = T_undefined ;
-               table[(T_double<<4)+T_String]           = (Double2Double<<12)+(String2String<<4)+T_String ;
-               //      table[(T_double<<4)+T_Object]           = T_undefined ;
-               table[(T_double<<4)+T_double]           = (Double2Double<<12)+(Double2Double<<4)+T_double ;
-               table[(T_double<<4)+T_float]            = (Double2Double<<12)+(Float2Double<<4)+T_double ; ;
-               //      table[(T_double<<4)+T_boolean]          = T_undefined ;
-               table[(T_double<<4)+T_char]             = (Double2Double<<12)+(Char2Double<<4)+T_double ; ;
-               table[(T_double<<4)+T_int]                      = (Double2Double<<12)+(Int2Double<<4)+T_double ; ;
-               //      table[(T_double<<4)+T_null]             = T_undefined ;
-               
-               //      table[(T_float<<4)+T_undefined]         = T_undefined ;
-               table[(T_float<<4)+T_byte]                      = (Float2Float<<12)+(Byte2Float<<4)+T_float ;
-               table[(T_float<<4)+T_long]                      = (Float2Float<<12)+(Long2Float<<4)+T_float ;
-               table[(T_float<<4)+T_short]             = (Float2Float<<12)+(Short2Float<<4)+T_float ;
-               //      table[(T_float<<4)+T_void]                      = T_undefined ;
-               table[(T_float<<4)+T_String]            = (Float2Float<<12)+(String2String<<4)+T_String ;
-               //      table[(T_float<<4)+T_Object]            = T_undefined ;
-               table[(T_float<<4)+T_double]            = (Float2Double<<12)+(Double2Double<<4)+T_double ;
-               table[(T_float<<4)+T_float]             = (Float2Float<<12)+(Float2Float<<4)+T_float ;
-               //      table[(T_float<<4)+T_boolean]           = T_undefined ;
-               table[(T_float<<4)+T_char]                      = (Float2Float<<12)+(Char2Float<<4)+T_float ;
-               table[(T_float<<4)+T_int]                       = (Float2Float<<12)+(Int2Float<<4)+T_float ;
-               //      table[(T_float<<4)+T_null]                      = T_undefined ;
-               
-               //      table[(T_boolean<<4)+T_undefined]               = T_undefined ;
-               //      table[(T_boolean<<4)+T_byte]                    = T_undefined ;
-               //      table[(T_boolean<<4)+T_long]                    = T_undefined ;
-               //      table[(T_boolean<<4)+T_short]                   = T_undefined ;
-               //      table[(T_boolean<<4)+T_void]                    = T_undefined ;
-               table[(T_boolean<<4)+T_String]                  = (Boolean2Boolean<<12)+(String2String<<4)+T_String ;
-               //      table[(T_boolean<<4)+T_Object]                  = T_undefined ;
-               //      table[(T_boolean<<4)+T_double]                  = T_undefined ;
-               //      table[(T_boolean<<4)+T_float]                   = T_undefined ;
-               //      table[(T_boolean<<4)+T_boolean]                 = T_undefined ;
-               //      table[(T_boolean<<4)+T_char]                    = T_undefined ;
-               //      table[(T_boolean<<4)+T_int]                     = T_undefined ;
-               //      table[(T_boolean<<4)+T_null]                    = T_undefined ;
-               
-               //      table[(T_char<<4)+T_undefined]          = T_undefined ;
-               table[(T_char<<4)+T_byte]                       = (Char2Int<<12)+(Byte2Int<<4)+T_int ;
-               table[(T_char<<4)+T_long]                       = (Char2Long<<12)+(Long2Long<<4)+T_long ;
-               table[(T_char<<4)+T_short]                      = (Char2Int<<12)+(Short2Int<<4)+T_int ;
-               //      table[(T_char<<4)+T_void]                       = T_undefined ;
-               table[(T_char<<4)+T_String]             = (Char2Char<<12)+(String2String<<4)+T_String ;
-               //      table[(T_char<<4)+T_Object]             = T_undefined ;
-               table[(T_char<<4)+T_double]             = (Char2Double<<12)+(Double2Double<<4)+T_double ;
-               table[(T_char<<4)+T_float]                      = (Char2Float<<12)+(Float2Float<<4)+T_float ;
-               //      table[(T_char<<4)+T_boolean]            = T_undefined ;
-               table[(T_char<<4)+T_char]                       = (Char2Int<<12)+(Char2Int<<4)+T_int ; ;
-               table[(T_char<<4)+T_int]                        = (Char2Int<<12)+(Int2Int<<4)+T_int ;
-               //      table[(T_char<<4)+T_null]                       = T_undefined ;
-               
-               //      table[(T_int<<4)+T_undefined]   = T_undefined ;
-               table[(T_int<<4)+T_byte]                = (Int2Int<<12)+(Byte2Int<<4)+T_int ;
-               table[(T_int<<4)+T_long]                = (Int2Long<<12)+(Long2Long<<4)+T_long ;
-               table[(T_int<<4)+T_short]               = (Int2Int<<12)+(Short2Int<<4)+T_int ;
-               //      table[(T_int<<4)+T_void]                = T_undefined ;
-               table[(T_int<<4)+T_String]              = (Int2Int<<12)+(String2String<<4)+T_String ;
-               //      table[(T_int<<4)+T_Object]              = T_undefined ;
-               table[(T_int<<4)+T_double]              = (Int2Double<<12)+(Double2Double<<4)+T_double ;
-               table[(T_int<<4)+T_float]               = (Int2Float<<12)+(Float2Float<<4)+T_float ;
-               //      table[(T_int<<4)+T_boolean]     = T_undefined ;
-               table[(T_int<<4)+T_char]                = (Int2Int<<12)+(Char2Int<<4)+T_int ;
-               table[(T_int<<4)+T_int]                 = (Int2Int<<12)+(Int2Int<<4)+T_int ;
-               //      table[(T_int<<4)+T_null]                = T_undefined ;
-       
-               //      table[(T_null<<4)+T_undefined]          = T_undefined ;
-               //      table[(T_null<<4)+T_byte]                       = T_undefined ;
-               //      table[(T_null<<4)+T_long]                       = T_undefined ;
-               //      table[(T_null<<4)+T_short]                      = T_undefined ;
-               //      table[(T_null<<4)+T_void]                       = T_undefined ;
-               table[(T_null<<4)+T_String]             = (T_null<<16)+(T_null<<12)+(String2String<<4)+T_String ;
-               //      table[(T_null<<4)+T_Object]             = T_undefined ;
-               //      table[(T_null<<4)+T_double]             = T_undefined ;
-               //      table[(T_null<<4)+T_float]                      = T_undefined ;
-               //      table[(T_null<<4)+T_boolean]            = T_undefined ;
-               //      table[(T_null<<4)+T_char]                       = T_undefined ;
-               //      table[(T_null<<4)+T_int]                        = T_undefined ;
-               //      table[(T_null<<4)+T_null]                       = (Null2String<<12)+(Null2String<<4)+T_String ;;
-       
-               return table ;
+       public static final int[] get_PLUS() {
+
+               // the code is an int
+               // (cast) left Op (cast) rigth --> result
+               // 0000 0000 0000 0000 0000
+               // <<16 <<12 <<8 <<4
+
+               int[] table = new int[16 * 16];
+
+               // table[(T_undefined<<4)+T_undefined] = T_undefined ;
+               // table[(T_undefined<<4)+T_byte] = T_undefined ;
+               // table[(T_undefined<<4)+T_long] = T_undefined ;
+               // table[(T_undefined<<4)+T_short] = T_undefined ;
+               // table[(T_undefined<<4)+T_void] = T_undefined ;
+               // table[(T_undefined<<4)+T_String] = T_undefined ;
+               // table[(T_undefined<<4)+T_Object] = T_undefined ;
+               // table[(T_undefined<<4)+T_double] = T_undefined ;
+               // table[(T_undefined<<4)+T_float] = T_undefined ;
+               // table[(T_undefined<<4)+T_boolean] = T_undefined ;
+               // table[(T_undefined<<4)+T_char] = T_undefined ;
+               // table[(T_undefined<<4)+T_int] = T_undefined ;
+               // table[(T_undefined<<4)+T_null] = T_undefined ;
+
+               // table[(T_byte<<4)+T_undefined] = T_undefined ;
+               table[(T_byte << 4) + T_byte] = (Byte2Int << 12) + (Byte2Int << 4)
+                               + T_int;
+               table[(T_byte << 4) + T_long] = (Byte2Long << 12) + (Long2Long << 4)
+                               + T_long;
+               table[(T_byte << 4) + T_short] = (Byte2Int << 12) + (Short2Int << 4)
+                               + T_int;
+               // table[(T_byte<<4)+T_void] = T_undefined ;
+               table[(T_byte << 4) + T_String] = (Byte2Byte << 12)
+                               + (String2String << 4) + T_String;
+               // table[(T_byte<<4)+T_Object] = T_undefined ;
+               table[(T_byte << 4) + T_double] = (Byte2Double << 12)
+                               + (Double2Double << 4) + T_double;
+               table[(T_byte << 4) + T_float] = (Byte2Float << 12)
+                               + (Float2Float << 4) + T_float;
+               // table[(T_byte<<4)+T_boolean] = T_undefined ;
+               table[(T_byte << 4) + T_char] = (Byte2Int << 12) + (Char2Int << 4)
+                               + T_int;
+               table[(T_byte << 4) + T_int] = (Byte2Int << 12) + (Int2Int << 4)
+                               + T_int;
+               // table[(T_byte<<4)+T_null] = T_undefined ;
+
+               // table[(T_long<<4)+T_undefined] = T_undefined ;
+               table[(T_long << 4) + T_byte] = (Long2Long << 12) + (Byte2Long << 4)
+                               + T_long;
+               table[(T_long << 4) + T_long] = (Long2Long << 12) + (Long2Long << 4)
+                               + T_long;
+               table[(T_long << 4) + T_short] = (Long2Long << 12) + (Short2Long << 4)
+                               + T_long;
+               // table[(T_long<<4)+T_void] = T_undefined ;
+               table[(T_long << 4) + T_String] = (Long2Long << 12)
+                               + (String2String << 4) + T_String;
+               // table[(T_long<<4)+T_Object] = T_undefined ;
+               table[(T_long << 4) + T_double] = (Long2Double << 12)
+                               + (Double2Double << 4) + T_double;
+               table[(T_long << 4) + T_float] = (Long2Float << 12)
+                               + (Float2Float << 4) + T_float;
+               // table[(T_long<<4)+T_boolean] = T_undefined ;
+               table[(T_long << 4) + T_char] = (Long2Long << 12) + (Char2Long << 4)
+                               + T_long;
+               table[(T_long << 4) + T_int] = (Long2Long << 12) + (Int2Long << 4)
+                               + T_long;
+               ;
+               // table[(T_long<<4)+T_null] = T_undefined ;
+
+               // table[(T_short<<4)+T_undefined] = T_undefined ;
+               table[(T_short << 4) + T_byte] = (Short2Int << 12) + (Byte2Int << 4)
+                               + T_int;
+               table[(T_short << 4) + T_long] = (Short2Long << 12) + (Long2Long << 4)
+                               + T_long;
+               table[(T_short << 4) + T_short] = (Short2Int << 12) + (Short2Int << 4)
+                               + T_int;
+               // table[(T_short<<4)+T_void] = T_undefined ;
+               table[(T_short << 4) + T_String] = (Short2Short << 12)
+                               + (String2String << 4) + T_String;
+               // table[(T_short<<4)+T_Object] = T_undefined ;
+               table[(T_short << 4) + T_double] = (Short2Double << 12)
+                               + (Double2Double << 4) + T_double;
+               table[(T_short << 4) + T_float] = (Short2Float << 12)
+                               + (Float2Float << 4) + T_float;
+               // table[(T_short<<4)+T_boolean] = T_undefined ;
+               table[(T_short << 4) + T_char] = (Short2Int << 12) + (Char2Int << 4)
+                               + T_int;
+               table[(T_short << 4) + T_int] = (Short2Int << 12) + (Int2Int << 4)
+                               + T_int;
+               // table[(T_short<<4)+T_null] = T_undefined ;
+
+               // table[(T_void<<4)+T_undefined] = T_undefined ;
+               // table[(T_void<<4)+T_byte] = T_undefined ;
+               // table[(T_void<<4)+T_long] = T_undefined ;
+               // table[(T_void<<4)+T_short] = T_undefined ;
+               // table[(T_void<<4)+T_void] = T_undefined ;
+               // table[(T_void<<4)+T_String] = T_undefined ;
+               // table[(T_void<<4)+T_Object] = T_undefined ;
+               // table[(T_void<<4)+T_double] = T_undefined ;
+               // table[(T_void<<4)+T_float] = T_undefined ;
+               // table[(T_void<<4)+T_boolean] = T_undefined ;
+               // table[(T_void<<4)+T_char] = T_undefined ;
+               // table[(T_void<<4)+T_int] = T_undefined ;
+               // table[(T_void<<4)+T_null] = T_undefined ;
+
+               // table[(T_String<<4)+T_undefined] = T_undefined ;
+               table[(T_String << 4) + T_byte] = (String2String << 12)
+                               + (Byte2Byte << 4) + T_String;
+               table[(T_String << 4) + T_long] = (String2String << 12)
+                               + (Long2Long << 4) + T_String;
+               table[(T_String << 4) + T_short] = (String2String << 12)
+                               + (Short2Short << 4) + T_String;
+               // table[(T_String<<4)+T_void] = T_undefined ;
+               table[(T_String << 4) + T_String] = (String2String << 12)
+                               + (String2String << 4) + T_String;
+               table[(T_String << 4) + T_Object] = (String2String << 12)
+                               + (Object2Object << 4) + T_String;
+               table[(T_String << 4) + T_double] = (String2String << 12)
+                               + (Double2Double << 4) + T_String;
+               table[(T_String << 4) + T_float] = (String2String << 12)
+                               + (Float2Float << 4) + T_String;
+               table[(T_String << 4) + T_boolean] = (String2String << 12)
+                               + (Boolean2Boolean << 4) + T_String;
+               table[(T_String << 4) + T_char] = (String2String << 12)
+                               + (Char2Char << 4) + T_String;
+               table[(T_String << 4) + T_int] = (String2String << 12) + (Int2Int << 4)
+                               + T_String;
+               table[(T_String << 4) + T_null] = (String2String << 12) + (T_null << 8)
+                               + (T_null << 4) + T_String;
+
+               // table[(T_Object<<4)+T_undefined] = T_undefined ;
+               // table[(T_Object<<4)+T_byte] = T_undefined ;
+               // table[(T_Object<<4)+T_long] = T_undefined ;
+               // table[(T_Object<<4)+T_short] = T_undefined ;
+               // table[(T_Object<<4)+T_void] = T_undefined ;
+               table[(T_Object << 4) + T_String] = (Object2Object << 12)
+                               + (String2String << 4) + T_String;
+               // table[(T_Object<<4)+T_Object] = T_undefined ;
+               // table[(T_Object<<4)+T_double] = T_undefined ;
+               // table[(T_Object<<4)+T_float] = T_undefined ;
+               // table[(T_Object<<4)+T_boolean] = T_undefined ;
+               // table[(T_Object<<4)+T_char] = T_undefined ;
+               // table[(T_Object<<4)+T_int] = T_undefined ;
+               // table[(T_Object<<4)+T_null] = T_undefined ;
+
+               // table[(T_double<<4)+T_undefined] = T_undefined ;
+               table[(T_double << 4) + T_byte] = (Double2Double << 12)
+                               + (Byte2Double << 4) + T_double;
+               table[(T_double << 4) + T_long] = (Double2Double << 12)
+                               + (Long2Double << 4) + T_double;
+               table[(T_double << 4) + T_short] = (Double2Double << 12)
+                               + (Short2Double << 4) + T_double;
+               ;
+               // table[(T_double<<4)+T_void] = T_undefined ;
+               table[(T_double << 4) + T_String] = (Double2Double << 12)
+                               + (String2String << 4) + T_String;
+               // table[(T_double<<4)+T_Object] = T_undefined ;
+               table[(T_double << 4) + T_double] = (Double2Double << 12)
+                               + (Double2Double << 4) + T_double;
+               table[(T_double << 4) + T_float] = (Double2Double << 12)
+                               + (Float2Double << 4) + T_double;
+               ;
+               // table[(T_double<<4)+T_boolean] = T_undefined ;
+               table[(T_double << 4) + T_char] = (Double2Double << 12)
+                               + (Char2Double << 4) + T_double;
+               ;
+               table[(T_double << 4) + T_int] = (Double2Double << 12)
+                               + (Int2Double << 4) + T_double;
+               ;
+               // table[(T_double<<4)+T_null] = T_undefined ;
+
+               // table[(T_float<<4)+T_undefined] = T_undefined ;
+               table[(T_float << 4) + T_byte] = (Float2Float << 12)
+                               + (Byte2Float << 4) + T_float;
+               table[(T_float << 4) + T_long] = (Float2Float << 12)
+                               + (Long2Float << 4) + T_float;
+               table[(T_float << 4) + T_short] = (Float2Float << 12)
+                               + (Short2Float << 4) + T_float;
+               // table[(T_float<<4)+T_void] = T_undefined ;
+               table[(T_float << 4) + T_String] = (Float2Float << 12)
+                               + (String2String << 4) + T_String;
+               // table[(T_float<<4)+T_Object] = T_undefined ;
+               table[(T_float << 4) + T_double] = (Float2Double << 12)
+                               + (Double2Double << 4) + T_double;
+               table[(T_float << 4) + T_float] = (Float2Float << 12)
+                               + (Float2Float << 4) + T_float;
+               // table[(T_float<<4)+T_boolean] = T_undefined ;
+               table[(T_float << 4) + T_char] = (Float2Float << 12)
+                               + (Char2Float << 4) + T_float;
+               table[(T_float << 4) + T_int] = (Float2Float << 12) + (Int2Float << 4)
+                               + T_float;
+               // table[(T_float<<4)+T_null] = T_undefined ;
+
+               // table[(T_boolean<<4)+T_undefined] = T_undefined ;
+               // table[(T_boolean<<4)+T_byte] = T_undefined ;
+               // table[(T_boolean<<4)+T_long] = T_undefined ;
+               // table[(T_boolean<<4)+T_short] = T_undefined ;
+               // table[(T_boolean<<4)+T_void] = T_undefined ;
+               table[(T_boolean << 4) + T_String] = (Boolean2Boolean << 12)
+                               + (String2String << 4) + T_String;
+               // table[(T_boolean<<4)+T_Object] = T_undefined ;
+               // table[(T_boolean<<4)+T_double] = T_undefined ;
+               // table[(T_boolean<<4)+T_float] = T_undefined ;
+               // table[(T_boolean<<4)+T_boolean] = T_undefined ;
+               // table[(T_boolean<<4)+T_char] = T_undefined ;
+               // table[(T_boolean<<4)+T_int] = T_undefined ;
+               // table[(T_boolean<<4)+T_null] = T_undefined ;
+
+               // table[(T_char<<4)+T_undefined] = T_undefined ;
+               table[(T_char << 4) + T_byte] = (Char2Int << 12) + (Byte2Int << 4)
+                               + T_int;
+               table[(T_char << 4) + T_long] = (Char2Long << 12) + (Long2Long << 4)
+                               + T_long;
+               table[(T_char << 4) + T_short] = (Char2Int << 12) + (Short2Int << 4)
+                               + T_int;
+               // table[(T_char<<4)+T_void] = T_undefined ;
+               table[(T_char << 4) + T_String] = (Char2Char << 12)
+                               + (String2String << 4) + T_String;
+               // table[(T_char<<4)+T_Object] = T_undefined ;
+               table[(T_char << 4) + T_double] = (Char2Double << 12)
+                               + (Double2Double << 4) + T_double;
+               table[(T_char << 4) + T_float] = (Char2Float << 12)
+                               + (Float2Float << 4) + T_float;
+               // table[(T_char<<4)+T_boolean] = T_undefined ;
+               table[(T_char << 4) + T_char] = (Char2Int << 12) + (Char2Int << 4)
+                               + T_int;
+               ;
+               table[(T_char << 4) + T_int] = (Char2Int << 12) + (Int2Int << 4)
+                               + T_int;
+               // table[(T_char<<4)+T_null] = T_undefined ;
+
+               // table[(T_int<<4)+T_undefined] = T_undefined ;
+               table[(T_int << 4) + T_byte] = (Int2Int << 12) + (Byte2Int << 4)
+                               + T_int;
+               table[(T_int << 4) + T_long] = (Int2Long << 12) + (Long2Long << 4)
+                               + T_long;
+               table[(T_int << 4) + T_short] = (Int2Int << 12) + (Short2Int << 4)
+                               + T_int;
+               // table[(T_int<<4)+T_void] = T_undefined ;
+               table[(T_int << 4) + T_String] = (Int2Int << 12) + (String2String << 4)
+                               + T_String;
+               // table[(T_int<<4)+T_Object] = T_undefined ;
+               table[(T_int << 4) + T_double] = (Int2Double << 12)
+                               + (Double2Double << 4) + T_double;
+               table[(T_int << 4) + T_float] = (Int2Float << 12) + (Float2Float << 4)
+                               + T_float;
+               // table[(T_int<<4)+T_boolean] = T_undefined ;
+               table[(T_int << 4) + T_char] = (Int2Int << 12) + (Char2Int << 4)
+                               + T_int;
+               table[(T_int << 4) + T_int] = (Int2Int << 12) + (Int2Int << 4) + T_int;
+               // table[(T_int<<4)+T_null] = T_undefined ;
+
+               // table[(T_null<<4)+T_undefined] = T_undefined ;
+               // table[(T_null<<4)+T_byte] = T_undefined ;
+               // table[(T_null<<4)+T_long] = T_undefined ;
+               // table[(T_null<<4)+T_short] = T_undefined ;
+               // table[(T_null<<4)+T_void] = T_undefined ;
+               table[(T_null << 4) + T_String] = (T_null << 16) + (T_null << 12)
+                               + (String2String << 4) + T_String;
+               // table[(T_null<<4)+T_Object] = T_undefined ;
+               // table[(T_null<<4)+T_double] = T_undefined ;
+               // table[(T_null<<4)+T_float] = T_undefined ;
+               // table[(T_null<<4)+T_boolean] = T_undefined ;
+               // table[(T_null<<4)+T_char] = T_undefined ;
+               // table[(T_null<<4)+T_int] = T_undefined ;
+               // table[(T_null<<4)+T_null] =
+               // (Null2String<<12)+(Null2String<<4)+T_String ;;
+
+               return table;
        }
 
-       public static final int[] get_REMAINDER(){
-       
-               //the code is an int
-               // (cast)  left   Op (cast)  rigth --> result
-               //  0000   0000       0000   0000      0000
-               //  <<16   <<12       <<8    <<4       
-               
-               //      int[] table  = new int[16*16] ;
+       public static final int[] get_REMAINDER() {
+
+               // the code is an int
+               // (cast) left Op (cast) rigth --> result
+               // 0000 0000 0000 0000 0000
+               // <<16 <<12 <<8 <<4
+
+               // int[] table = new int[16*16] ;
                return get_MINUS();
        }
 
-       public static final int[] get_RIGHT_SHIFT(){
-       
-               //the code is an int
-               // (cast)  left   Op (cast)  rigth --> result
-               //  0000   0000       0000   0000      0000
-               //  <<16   <<12       <<8    <<4       
-               
-               //      int[] table  = new int[16*16] ;
+       public static final int[] get_RIGHT_SHIFT() {
+
+               // the code is an int
+               // (cast) left Op (cast) rigth --> result
+               // 0000 0000 0000 0000 0000
+               // <<16 <<12 <<8 <<4
+
+               // int[] table = new int[16*16] ;
                return get_LEFT_SHIFT();
        }
 
-       public static final int[] get_UNSIGNED_RIGHT_SHIFT(){
-       
-               //the code is an int
-               // (cast)  left   Op (cast)  rigth --> result
-               //  0000   0000       0000   0000      0000
-               //  <<16   <<12       <<8    <<4       
-               
-               //      int[] table  = new int[16*16] ;
+       public static final int[] get_UNSIGNED_RIGHT_SHIFT() {
+
+               // the code is an int
+               // (cast) left Op (cast) rigth --> result
+               // 0000 0000 0000 0000 0000
+               // <<16 <<12 <<8 <<4
+
+               // int[] table = new int[16*16] ;
                return get_LEFT_SHIFT();
        }
 
-       public static final int[] get_XOR(){
-       
-               //the code is an int
-               // (cast)  left   Op (cast)  rigth --> result
-               //  0000   0000       0000   0000      0000
-               //  <<16   <<12       <<8    <<4       
+       public static final int[] get_XOR() {
 
-               //      int[] table  = new int[16*16] ;
-               return get_AND() ;
+               // the code is an int
+               // (cast) left Op (cast) rigth --> result
+               // 0000 0000 0000 0000 0000
+               // <<16 <<12 <<8 <<4
+
+               // int[] table = new int[16*16] ;
+               return get_AND();
        }
-       
+
        public String operatorToString() {
                switch ((bits & OperatorMASK) >> OperatorSHIFT) {
-                       case EQUAL_EQUAL :
-                               return "=="; //$NON-NLS-1$
-                       case LESS_EQUAL :
-                               return "<="; //$NON-NLS-1$
-                       case GREATER_EQUAL :
-                               return ">="; //$NON-NLS-1$
-                       case NOT_EQUAL :
-                               return "!="; //$NON-NLS-1$
-                       case LEFT_SHIFT :
-                               return "<<"; //$NON-NLS-1$
-                       case RIGHT_SHIFT :
-                               return ">>"; //$NON-NLS-1$
-                       case UNSIGNED_RIGHT_SHIFT :
-                               return ">>>"; //$NON-NLS-1$
-                       case OR_OR :
-                               return "||"; //$NON-NLS-1$
-                       case AND_AND :
-                               return "&&"; //$NON-NLS-1$
-                       case PLUS :
-                               return "+"; //$NON-NLS-1$
-                       case MINUS :
-                               return "-"; //$NON-NLS-1$
-                       case NOT :
-                               return "!"; //$NON-NLS-1$
-                       case REMAINDER :
-                               return "%"; //$NON-NLS-1$
-                       case XOR :
-                               return "^"; //$NON-NLS-1$
-                       case AND :
-                               return "&"; //$NON-NLS-1$
-                       case MULTIPLY :
-                               return "*"; //$NON-NLS-1$
-                       case OR :
-                               return "|"; //$NON-NLS-1$
-                       case TWIDDLE :
-                               return "~"; //$NON-NLS-1$
-                       case DIVIDE :
-                               return "/"; //$NON-NLS-1$
-                       case GREATER :
-                               return ">"; //$NON-NLS-1$
-                       case LESS :
-                               return "<"; //$NON-NLS-1$
-                       case QUESTIONCOLON :
-                               return "?:"; //$NON-NLS-1$
-                       case EQUAL :
-                               return "="; //$NON-NLS-1$
-               };
+               case EQUAL_EQUAL:
+                       return "=="; //$NON-NLS-1$
+               case LESS_EQUAL:
+                       return "<="; //$NON-NLS-1$
+               case GREATER_EQUAL:
+                       return ">="; //$NON-NLS-1$
+               case NOT_EQUAL:
+                       return "!="; //$NON-NLS-1$
+               case LEFT_SHIFT:
+                       return "<<"; //$NON-NLS-1$
+               case RIGHT_SHIFT:
+                       return ">>"; //$NON-NLS-1$
+               case UNSIGNED_RIGHT_SHIFT:
+                       return ">>>"; //$NON-NLS-1$
+               case OR_OR:
+                       return "||"; //$NON-NLS-1$
+               case AND_AND:
+                       return "&&"; //$NON-NLS-1$
+               case PLUS:
+                       return "+"; //$NON-NLS-1$
+               case MINUS:
+                       return "-"; //$NON-NLS-1$
+               case NOT:
+                       return "!"; //$NON-NLS-1$
+               case REMAINDER:
+                       return "%"; //$NON-NLS-1$
+               case XOR:
+                       return "^"; //$NON-NLS-1$
+               case AND:
+                       return "&"; //$NON-NLS-1$
+               case MULTIPLY:
+                       return "*"; //$NON-NLS-1$
+               case OR:
+                       return "|"; //$NON-NLS-1$
+               case TWIDDLE:
+                       return "~"; //$NON-NLS-1$
+               case DIVIDE:
+                       return "/"; //$NON-NLS-1$
+               case GREATER:
+                       return ">"; //$NON-NLS-1$
+               case LESS:
+                       return "<"; //$NON-NLS-1$
+               case QUESTIONCOLON:
+                       return "?:"; //$NON-NLS-1$
+               case EQUAL:
+                       return "="; //$NON-NLS-1$
+               }
+               ;
                return "unknown operator"; //$NON-NLS-1$
        }
-       public StringBuffer printExpression(int indent, StringBuffer output){
+
+       public StringBuffer printExpression(int indent, StringBuffer output) {
 
                output.append('(');
                return printExpressionNoParenthesis(0, output).append(')');
        }
-       
-       public abstract StringBuffer printExpressionNoParenthesis(int indent, StringBuffer output);
 
-       public String toStringExpression(){
+       public abstract StringBuffer printExpressionNoParenthesis(int indent,
+                       StringBuffer output);
 
-               //subclass redefine toStringExpressionNoParenthesis()
-               return  "(" + toStringExpressionNoParenthesis() + ")";  //$NON-NLS-2$ //$NON-NLS-1$
+       public String toStringExpression() {
+
+               // subclass redefine toStringExpressionNoParenthesis()
+               return "(" + toStringExpressionNoParenthesis() + ")"; //$NON-NLS-2$ //$NON-NLS-1$
        }
-       
+
        public abstract String toStringExpressionNoParenthesis();
 }