Example #1
0
 public void LoadFromObjectOperator(OBJECT_OPERATOR oo)
 {
     // warn if left part is a function call
     if (oo.expr1 is FUNCTION_CALL) {
         FUNCTION_CALL fc = (FUNCTION_CALL)oo.expr1;
         Report.Warn(404, fc.function_name, fc.line, fc.column);
         if (objectOperatorInProgress) {
             ilGen.Emit(OpCodes.Pop);
             objectOperatorInProgress = false;
         }
         ilGen.Emit(OpCodes.Newobj, PHPNull.GetConstructor(Type.EmptyTypes));
         return;
     }
     // process left part
     objectOperatorInProgress = true;
     VARIABLE var = (VARIABLE)oo.expr1;
     // local variable
     // handle $this->
     if (var.name == "$this") {
         processingObjectThis = true;
         // if this is a static context, load object from which this static context was called
         if (fd.modifiers.Contains(Modifiers.STATIC)) {
             Report.Warn(502, var.line, var.column);
             ilGen.Emit(OpCodes.Ldsfld, PHPCoreRuntime.GetField("thisForStaticContext"));
         }
         // otherwise load current object
         else
             ilGen.Emit(OpCodes.Ldarg_0);
         if (var.offset != null)
             Report.Warn(401, var.offset.line, var.offset.column);
     }
     else if (var.name.StartsWith("$")) {
         processingObjectThis = false;
         Visit(var);
     }
     // class member
     else {
         // if processing a class member of $this, load directly
         if (processingObjectThis)
             LoadFromClassMemberOfThis("$" + var.name, var.line, var.column);
         // else load at runtime by reflection
         else
             LoadFromClassMemberOfAnotherObject("$" + var.name);
         processingObjectThis = false;
         // process offset, if available
         if (var.offset != null) {
             // this is an array
             if (var.offset.kind == OFFSET.SQUARE) {
                 if (var.offset.value == null)
                     ilGen.Emit(OpCodes.Ldnull);
                 else
                     Visit(var.offset);
                 ilGen.Emit(OpCodes.Ldc_I4, OFFSET.SQUARE);
                 ilGen.Emit(OpCodes.Call, PHPCoreLang.GetMethod("Offset", new Type[] { PHPMixed, PHPMixed, typeof(int) }));
             }
         }
     }
     // process right part
     if (oo.expr2 is OBJECT_OPERATOR)
         LoadFromObjectOperator((OBJECT_OPERATOR)oo.expr2);
     else if (oo.expr2 is VARIABLE) {
         VARIABLE var2 = (VARIABLE)oo.expr2;
         // if processing a class member of $this (of a non-static context), load directly
         if (processingObjectThis && !fd.modifiers.Contains(Modifiers.STATIC))
             LoadFromClassMemberOfThis("$" + var2.name, var2.line, var2.column);
         // else load at runtime by reflection
         else
             LoadFromClassMemberOfAnotherObject("$" + var2.name);
         // process offset, if available
         if (var2.offset != null) {
             // this is an array
             if (var2.offset.kind == OFFSET.SQUARE) {
                 if (var2.offset.value == null)
                     ilGen.Emit(OpCodes.Ldnull);
                 else
                     Visit(var2.offset);
                 ilGen.Emit(OpCodes.Ldc_I4, OFFSET.SQUARE);
                 ilGen.Emit(OpCodes.Call, PHPCoreLang.GetMethod("Offset", new Type[] { PHPMixed, PHPMixed, typeof(int) }));
             }
         }
         objectOperatorInProgress = false;
     }
     else if (oo.expr2 is FUNCTION_CALL) {
         FUNCTION_CALL fc = (FUNCTION_CALL)oo.expr2;
         // if processing a class member of $this, invoke directly
         if (processingObjectThis)
             InvokeFunctionOfThis(fc.function_name, fc.line, fc.column);
         // else invoke at runtime by reflection
         else {
             ilGen.Emit(OpCodes.Newobj, typeof(ArrayList).GetConstructor(Type.EmptyTypes));
             foreach (Expression expr in fc.parameters) {
                 ilGen.Emit(OpCodes.Dup);
                 Visit(expr);
                 ilGen.Emit(OpCodes.Call, typeof(ArrayList).GetMethod("Add", new Type[] { typeof(object) }));
                 ilGen.Emit(OpCodes.Pop);
             }
             InvokeFunctionOfAnotherObject(fc.function_name);
         }
         objectOperatorInProgress = false;
     }
 }
Example #2
0
 public void StoreToObjectOperator(OBJECT_OPERATOR oo, Expression value)
 {
     // warn if left part is a function call
     if (oo.expr1 is FUNCTION_CALL) {
         FUNCTION_CALL fc = (FUNCTION_CALL)oo.expr1;
         Report.Warn(404, fc.function_name, fc.line, fc.column);
         if (objectOperatorInProgress) {
             ilGen.Emit(OpCodes.Pop);
             objectOperatorInProgress = false;
         }
         return;
     }
     // process left part
     objectOperatorInProgress = true;
     VARIABLE var = (VARIABLE)oo.expr1;
     // local variable
     // handle $this->
     if (var.name == "$this") {
         processingObjectThis = true;
         // if this is a static context, load object from which this static context was called
         if (fd.modifiers.Contains(Modifiers.STATIC)) {
             Report.Warn(502, var.line, var.column);
             ilGen.Emit(OpCodes.Ldsfld, PHPCoreRuntime.GetField("thisForStaticContext"));
         }
         // otherwise load current object
         else
             ilGen.Emit(OpCodes.Ldarg_0);
         if (var.offset != null)
             Report.Warn(401, var.offset.line, var.offset.column);
     }
     else if (var.name.StartsWith("$")) {
         processingObjectThis = false;
         Visit(var);
     }
     // class member
     else {
         // if processing a class member of $this (of a non-static context), load directly
         if (processingObjectThis && !fd.modifiers.Contains(Modifiers.STATIC))
             LoadFromClassMemberOfThis("$" + var.name, var.line, var.column);
         // else load at runtime by reflection
         else
             LoadFromClassMemberOfAnotherObject("$" + var.name);
         processingObjectThis = false;
         // process offset, if available
         if (var.offset != null) {
             // this is an array
             if (var.offset.kind == OFFSET.SQUARE) {
                 if (var.offset.value == null)
                     ilGen.Emit(OpCodes.Ldnull);
                 else
                     Visit(var.offset);
                 ilGen.Emit(OpCodes.Ldc_I4, OFFSET.SQUARE);
                 ilGen.Emit(OpCodes.Call, PHPCoreLang.GetMethod("Offset", new Type[] { PHPMixed, PHPMixed, typeof(int) }));
             }
         }
     }
     // process right part
     if (oo.expr2 is OBJECT_OPERATOR)
         StoreToObjectOperator((OBJECT_OPERATOR)oo.expr2, value);
     else if (oo.expr2 is VARIABLE) {
         VARIABLE var2 = (VARIABLE)oo.expr2;
         // no offset available, so store to class member
         if (var2.offset == null) {
             Visit(value);
             // determine value or reference semantis
             bool referenceSemantics = false;
             // if assigned expr is a reference
             if (value is REFERENCE) {
                 REFERENCE r = (REFERENCE)value;
                 // and a variable is called, it's reference semantics
                 if (r.variable is VARIABLE)
                     referenceSemantics = true;
                 // and a function not returnung a reference is called, it's reference semantics
                 if (r.variable is FUNCTION_CALL) {
                     SymbolTableEntry entry = SymbolTable.getInstance().lookup(((FUNCTION_CALL)r.variable).function_name.ToLower(), SymbolTable.FUNCTION);
                     FUNCTION_DECLARATION fd = (FUNCTION_DECLARATION)entry.node;
                     if (fd.return_by_reference)
                         referenceSemantics = true;
                 }
             }
             if (!referenceSemantics)
                 ilGen.Emit(OpCodes.Call, PHPCoreLang.GetMethod("Clone", new Type[] { PHPMixed }));
             // if processing a class member of $this, store directly
             if (processingObjectThis)
                 StoreToClassMemberOfThis("$" + var2.name, var2.line, var2.column);
             // else store at runtime by reflection
             else
                 StoreToClassMemberOfAnotherObject("$" + var2.name);
         }
         // array offset available, so store to specified place
         else if (var2.offset.kind == OFFSET.SQUARE) {
             ilGen.Emit(OpCodes.Dup);
             ilGen.Emit(OpCodes.Dup);
             // if processing a class member of $this, load directly
             if (processingObjectThis)
                 LoadFromClassMemberOfThis("$" + var2.name, var2.line, var2.column);
             // else load at runtime by reflection
             else
                 LoadFromClassMemberOfAnotherObject("$" + var2.name);
             // if array loaded is null, create a new one and store
             Label skip = ilGen.DefineLabel();
             Label join = ilGen.DefineLabel();
             ilGen.Emit(OpCodes.Isinst, PHPNull);
             ilGen.Emit(OpCodes.Brfalse, skip);
             ilGen.Emit(OpCodes.Newobj, PHPArray.GetConstructor(Type.EmptyTypes));
             // if processing a class member of $this, store directly
             if (processingObjectThis)
                 StoreToClassMemberOfThis("$" + var2.name, var2.line, var2.column);
             // else store at runtime by reflection
             else
                 StoreToClassMemberOfAnotherObject("$" + var2.name);
             ilGen.Emit(OpCodes.Br, join);
             ilGen.MarkLabel(skip);
             ilGen.Emit(OpCodes.Pop);
             ilGen.MarkLabel(join);
             // if processing a class member of $this, load directly
             if (processingObjectThis)
                 LoadFromClassMemberOfThis("$" + var2.name, var2.line, var2.column);
             // else load at runtime by reflection
             else
                 LoadFromClassMemberOfAnotherObject("$" + var2.name);
             // convert to Array (in case the variable was unset)
             ilGen.Emit(OpCodes.Callvirt, PHPCoreConvert.GetMethod("ToArray", new Type[] { PHPMixed }));
             // if value of offset is null, push null to automatically calculate key
             if (var2.offset.value == null)
                 ilGen.Emit(OpCodes.Ldnull);
             // if a value is given, push that value
             else
                 Visit(var2.offset.value);
             Visit(value);
             if (!(value is REFERENCE))
                 ilGen.Emit(OpCodes.Call, PHPCoreLang.GetMethod("Clone", new Type[] { PHPMixed }));
             ilGen.Emit(OpCodes.Callvirt, PHPArray.GetMethod("Append", new Type[] { PHPMixed, PHPMixed }));
         }
         objectOperatorInProgress = false;
     }
     else if (oo.expr2 is FUNCTION_CALL) {
         FUNCTION_CALL fc = (FUNCTION_CALL)oo.expr2;
         Report.Warn(403, fc.function_name, fc.line, fc.column);
         if (objectOperatorInProgress) {
             ilGen.Emit(OpCodes.Pop);
             objectOperatorInProgress = false;
         }
         return;
     }
 }
Example #3
0
    /** Method with the actual generated action code. */
    public TUVienna.CS_CUP.Runtime.Symbol CUP_Parser_do_action(
    int                        CUP_Parser_act_num,
    TUVienna.CS_CUP.Runtime.lr_parser CUP_Parser_parser,
    System.Collections.Stack            xstack1,
    int                        CUP_Parser_top)
    {
        /* Symbol object for return from actions */
          mStack CUP_Parser_stack =new mStack(xstack1);
          TUVienna.CS_CUP.Runtime.Symbol CUP_Parser_result;

          /* select the action based on the action number */
          switch (CUP_Parser_act_num)
        {
          /*. . . . . . . . . . . . . . . . . . . .*/
          case 354: // class_constant ::= fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING
            {
              Expression RESULT = null;
        int fqcnleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int fqcnright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        string fqcn = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int sleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int sright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        string s = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = new PAAMAYIM_NEKUDOTAYIM(fqcn, new VARIABLE(s, sleft, sright), fqcnleft, fqcnright);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(47/*class_constant*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 353: // isset_variables ::= isset_variables COMMA variable
            {
              object RESULT = null;

              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(103/*isset_variables*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 352: // isset_variables ::= variable
            {
              object RESULT = null;

              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(103/*isset_variables*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 351: // internal_functions_in_yacc ::= T_REQUIRE_ONCE expr
            {
              object RESULT = null;
        int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        string e = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
         Report.Error(900, e);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(102/*internal_functions_in_yacc*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 350: // internal_functions_in_yacc ::= T_REQUIRE expr
            {
              object RESULT = null;
        int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        string e = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
         Report.Error(900, e);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(102/*internal_functions_in_yacc*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 349: // internal_functions_in_yacc ::= T_EVAL BRACE_OPEN expr BRACE_CLOSE
            {
              object RESULT = null;
        int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-3)).left;
        int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-3)).right;
        string e = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-3)).value;
         Report.Error(900, e);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(102/*internal_functions_in_yacc*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-3)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 348: // internal_functions_in_yacc ::= T_INCLUDE_ONCE expr
            {
              object RESULT = null;
        int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        string e = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
         Report.Error(900, e);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(102/*internal_functions_in_yacc*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 347: // internal_functions_in_yacc ::= T_INCLUDE expr
            {
              object RESULT = null;
        int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        string e = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
         Report.Error(900, e);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(102/*internal_functions_in_yacc*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 346: // internal_functions_in_yacc ::= T_EMPTY BRACE_OPEN variable BRACE_CLOSE
            {
              object RESULT = null;
        int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-3)).left;
        int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-3)).right;
        string e = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-3)).value;
         Report.Error(900, e);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(102/*internal_functions_in_yacc*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-3)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 345: // internal_functions_in_yacc ::= T_ISSET BRACE_OPEN isset_variables BRACE_CLOSE
            {
              object RESULT = null;
        int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-3)).left;
        int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-3)).right;
        string e = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-3)).value;
         Report.Error(900, e);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(102/*internal_functions_in_yacc*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-3)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 344: // encaps_var_offset ::= T_VARIABLE
            {
              Expression RESULT = null;
        int vleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int vright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        string v = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = new VARIABLE(v, vleft, vright);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(46/*encaps_var_offset*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 343: // encaps_var_offset ::= T_NUM_STRING
            {
              Expression RESULT = null;
        int nsleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int nsright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        string ns = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = new STRING_SCALAR(ns, nsleft, nsright);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(46/*encaps_var_offset*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 342: // encaps_var_offset ::= T_STRING
            {
              Expression RESULT = null;
        int sleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int sright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        string s = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = new STRING_SCALAR(s, sleft, sright);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(46/*encaps_var_offset*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 341: // encaps_var ::= T_CURLY_OPEN variable CURLY_BRACE_CLOSE
            {
              Expression RESULT = null;
         Report.Error(900, "variable variables");
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(45/*encaps_var*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 340: // encaps_var ::= T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME SQUARE_BRACE_OPEN expr SQUARE_BRACE_CLOSE CURLY_BRACE_CLOSE
            {
              Expression RESULT = null;
         Report.Error(900, "variable variables");
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(45/*encaps_var*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-5)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 339: // encaps_var ::= T_DOLLAR_OPEN_CURLY_BRACES expr CURLY_BRACE_CLOSE
            {
              Expression RESULT = null;
         Report.Error(900, "variable variables");
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(45/*encaps_var*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 338: // encaps_var ::= T_VARIABLE T_OBJECT_OPERATOR T_STRING
            {
              Expression RESULT = null;
        int vleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int vright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        string v = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int sleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int sright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        string s = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = new OBJECT_OPERATOR(new VARIABLE(v, vleft, vright), new VARIABLE(s, sleft, sright), vleft, vright);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(45/*encaps_var*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 337: // encaps_var ::= T_VARIABLE SQUARE_BRACE_OPEN encaps_var_offset SQUARE_BRACE_CLOSE
            {
              Expression RESULT = null;
        int vleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-3)).left;
        int vright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-3)).right;
        string v = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-3)).value;
        int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        string t = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int evoleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int evoright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        Expression evo = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
         RESULT = new VARIABLE(v, new OFFSET(OFFSET.SQUARE, evo, tleft, tright), vleft, vright);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(45/*encaps_var*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-3)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 336: // encaps_var ::= T_VARIABLE
            {
              Expression RESULT = null;
        int vleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int vright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        string v = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = new VARIABLE(v, vleft, vright);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(45/*encaps_var*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 335: // encaps_list ::=
            {
              ArrayList RESULT = null;
         RESULT = new ArrayList();
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(76/*encaps_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 334: // encaps_list ::= encaps_list T_OBJECT_OPERATOR
            {
              ArrayList RESULT = null;
        int elleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int elright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        ArrayList el = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
        int ooleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int ooright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        string oo = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         el.Add(oo); RESULT = el;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(76/*encaps_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 333: // encaps_list ::= encaps_list CURLY_BRACE_CLOSE
            {
              ArrayList RESULT = null;
        int elleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int elright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        ArrayList el = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
        int cbcleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int cbcright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        string cbc = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         el.Add(cbc); RESULT = el;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(76/*encaps_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 332: // encaps_list ::= encaps_list CURLY_BRACE_OPEN
            {
              ArrayList RESULT = null;
        int elleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int elright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        ArrayList el = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
        int cboleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int cboright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        string cbo = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         el.Add(cbo); RESULT = el;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(76/*encaps_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 331: // encaps_list ::= encaps_list SQUARE_BRACE_CLOSE
            {
              ArrayList RESULT = null;
        int elleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int elright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        ArrayList el = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
        int sbcleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int sbcright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        string sbc = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         el.Add(sbc); RESULT = el;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(76/*encaps_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 330: // encaps_list ::= encaps_list SQUARE_BRACE_OPEN
            {
              ArrayList RESULT = null;
        int elleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int elright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        ArrayList el = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
        int sboleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int sboright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        string sbo = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         el.Add(sbo); RESULT = el;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(76/*encaps_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 329: // encaps_list ::= encaps_list T_BAD_CHARACTER
            {
              ArrayList RESULT = null;
        int elleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int elright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        ArrayList el = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
        int bcleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int bcright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        string bc = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         el.Add(bc); RESULT = el;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(76/*encaps_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 328: // encaps_list ::= encaps_list T_CHARACTER
            {
              ArrayList RESULT = null;
        int elleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int elright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        ArrayList el = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
        int cleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int cright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        string c = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         el.Add(c); RESULT = el;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(76/*encaps_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 327: // encaps_list ::= encaps_list T_ENCAPSED_AND_WHITESPACE
            {
              ArrayList RESULT = null;
        int elleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int elright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        ArrayList el = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
        int eawleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int eawright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        string eaw = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         el.Add(eaw); RESULT = el;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(76/*encaps_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 326: // encaps_list ::= encaps_list T_NUM_STRING
            {
              ArrayList RESULT = null;
        int elleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int elright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        ArrayList el = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
        int nsleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int nsright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        string ns = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         el.Add(ns); RESULT = el;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(76/*encaps_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 325: // encaps_list ::= encaps_list T_STRING
            {
              ArrayList RESULT = null;
        int elleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int elright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        ArrayList el = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
        int sleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int sright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        string s = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         el.Add(s); RESULT = el;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(76/*encaps_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 324: // encaps_list ::= encaps_list encaps_var
            {
              ArrayList RESULT = null;
        int elleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int elright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        ArrayList el = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
        int evleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int evright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression ev = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         el.Add(ev); RESULT = el;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(76/*encaps_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 323: // non_empty_array_pair_list ::= AND w_variable
            {
              ArrayList RESULT = null;
        int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        string t = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
        int wvleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int wvright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression wv = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         ArrayList neapl = new ArrayList(); neapl.Add(new ARRAY_PAIR(null, new REFERENCE(wv, tleft, tright), tleft, tright)); RESULT = neapl;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(75/*non_empty_array_pair_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 322: // non_empty_array_pair_list ::= expr T_DOUBLE_ARROW AND w_variable
            {
              ArrayList RESULT = null;
        int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-3)).left;
        int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-3)).right;
        Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-3)).value;
        int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        string t = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
        int wvleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int wvright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression wv = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         ArrayList neapl = new ArrayList(); neapl.Add(new ARRAY_PAIR(e, new REFERENCE(wv, tleft, tright), eleft, eright)); RESULT = neapl;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(75/*non_empty_array_pair_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-3)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 321: // non_empty_array_pair_list ::= non_empty_array_pair_list COMMA AND w_variable
            {
              ArrayList RESULT = null;
        int neaplleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-3)).left;
        int neaplright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-3)).right;
        ArrayList neapl = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-3)).value;
        int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        string t = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
        int wvleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int wvright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression wv = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         neapl.Add(new ARRAY_PAIR(null, new REFERENCE(wv, tleft, tright), tleft, tright)); RESULT = neapl;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(75/*non_empty_array_pair_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-3)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 320: // non_empty_array_pair_list ::= non_empty_array_pair_list COMMA expr T_DOUBLE_ARROW AND w_variable
            {
              ArrayList RESULT = null;
        int neaplleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-5)).left;
        int neaplright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-5)).right;
        ArrayList neapl = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-5)).value;
        int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-3)).left;
        int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-3)).right;
        Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-3)).value;
        int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        string t = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
        int wvleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int wvright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression wv = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         neapl.Add(new ARRAY_PAIR(e, new REFERENCE(wv, tleft, tright), eleft, eright)); RESULT = neapl;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(75/*non_empty_array_pair_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-5)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 319: // non_empty_array_pair_list ::= expr
            {
              ArrayList RESULT = null;
        int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         ArrayList neapl = new ArrayList(); neapl.Add(new ARRAY_PAIR(null, e, eleft, eright)); RESULT = neapl;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(75/*non_empty_array_pair_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 318: // non_empty_array_pair_list ::= expr T_DOUBLE_ARROW expr
            {
              ArrayList RESULT = null;
        int e1left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int e1right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        Expression e1 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int e2left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int e2right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression e2 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         ArrayList neapl = new ArrayList(); neapl.Add(new ARRAY_PAIR(e1, e2, e1left, e1right)); RESULT = neapl;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(75/*non_empty_array_pair_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 317: // non_empty_array_pair_list ::= non_empty_array_pair_list COMMA expr
            {
              ArrayList RESULT = null;
        int neaplleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int neaplright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        ArrayList neapl = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         neapl.Add(new ARRAY_PAIR(null, e, eleft, eright)); RESULT = neapl;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(75/*non_empty_array_pair_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 316: // non_empty_array_pair_list ::= non_empty_array_pair_list COMMA expr T_DOUBLE_ARROW expr
            {
              ArrayList RESULT = null;
        int neaplleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-4)).left;
        int neaplright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-4)).right;
        ArrayList neapl = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-4)).value;
        int e1left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int e1right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        Expression e1 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int e2left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int e2right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression e2 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         neapl.Add(new ARRAY_PAIR(e1, e2, e1left, e1right)); RESULT = neapl;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(75/*non_empty_array_pair_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-4)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 315: // array_pair_list ::= non_empty_array_pair_list possible_comma
            {
              ArrayList RESULT = null;
        int neaplleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int neaplright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        ArrayList neapl = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
         RESULT = neapl;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(74/*array_pair_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 314: // array_pair_list ::=
            {
              ArrayList RESULT = null;
         RESULT = new ArrayList();
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(74/*array_pair_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 313: // assignment_list_element ::=
            {
              object RESULT = null;

              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(101/*assignment_list_element*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 312: // assignment_list_element ::= T_LIST BRACE_OPEN assignment_list BRACE_CLOSE
            {
              object RESULT = null;

              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(101/*assignment_list_element*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-3)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 311: // assignment_list_element ::= variable
            {
              object RESULT = null;

              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(101/*assignment_list_element*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 310: // assignment_list ::= assignment_list_element
            {
              object RESULT = null;

              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(100/*assignment_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 309: // assignment_list ::= assignment_list COMMA assignment_list_element
            {
              object RESULT = null;

              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(100/*assignment_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 308: // simple_indirect_reference ::= simple_indirect_reference DOLLAR
            {
              object RESULT = null;

              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(99/*simple_indirect_reference*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 307: // simple_indirect_reference ::= DOLLAR
            {
              object RESULT = null;

              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(99/*simple_indirect_reference*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 306: // variable_name ::= CURLY_BRACE_OPEN expr CURLY_BRACE_CLOSE
            {
              Expression RESULT = null;
         Report.Error(900, "variable variables");
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(44/*variable_name*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 305: // variable_name ::= T_STRING
            {
              Expression RESULT = null;
        int sleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int sright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        string s = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = new VARIABLE(s, sleft, sright);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(44/*variable_name*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 304: // object_dim_list ::= variable_name
            {
              Expression RESULT = null;
        int vnleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int vnright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression vn = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = vn;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(43/*object_dim_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 303: // object_dim_list ::= object_dim_list CURLY_BRACE_OPEN expr CURLY_BRACE_CLOSE
            {
              Expression RESULT = null;
         Report.Error(900, "offset");
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(43/*object_dim_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-3)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 302: // object_dim_list ::= object_dim_list SQUARE_BRACE_OPEN dim_offset SQUARE_BRACE_CLOSE
            {
              Expression RESULT = null;
        int odlleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-3)).left;
        int odlright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-3)).right;
        Expression odl = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-3)).value;
        int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        string t = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int dosleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int dosright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        Expression dos = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
         ((VARIABLE)odl).offset = new OFFSET(OFFSET.SQUARE, dos, tleft, tright); RESULT = odl;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(43/*object_dim_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-3)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 301: // object_property ::= variable_without_objects
            {
              Expression RESULT = null;
        int wvoleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int wvoright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression wvo = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = wvo;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(42/*object_property*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 300: // object_property ::= object_dim_list
            {
              Expression RESULT = null;
        int odlleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int odlright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression odl = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = odl;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(42/*object_property*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 299: // dim_offset ::= expr
            {
              Expression RESULT = null;
        int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = e;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(41/*dim_offset*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 298: // dim_offset ::=
            {
              Expression RESULT = null;
         RESULT = null;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(41/*dim_offset*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 297: // compound_variable ::= DOLLAR CURLY_BRACE_OPEN expr CURLY_BRACE_CLOSE
            {
              Expression RESULT = null;
         Report.Error(900, "variable variables");
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(40/*compound_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-3)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 296: // compound_variable ::= T_VARIABLE
            {
              Expression RESULT = null;
        int vleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int vright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        string v = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = new VARIABLE(v, vleft, vright);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(40/*compound_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 295: // reference_variable ::= compound_variable
            {
              Expression RESULT = null;
        int cvleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int cvright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression cv = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = cv;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(39/*reference_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 294: // reference_variable ::= reference_variable CURLY_BRACE_OPEN expr CURLY_BRACE_CLOSE
            {
              Expression RESULT = null;
         Report.Error(900, "offset");
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(39/*reference_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-3)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 293: // reference_variable ::= reference_variable SQUARE_BRACE_OPEN dim_offset SQUARE_BRACE_CLOSE
            {
              Expression RESULT = null;
        int rvleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-3)).left;
        int rvright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-3)).right;
        Expression rv = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-3)).value;
        int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        string t = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int dofleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int dofright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        Expression dof = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
         ((VARIABLE)rv).offset = new OFFSET(OFFSET.SQUARE, dof, tleft, tright); RESULT = rv;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(39/*reference_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-3)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 292: // base_variable ::= static_member
            {
              Expression RESULT = null;
        int smleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int smright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression sm = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = sm;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(38/*base_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 291: // base_variable ::= simple_indirect_reference reference_variable
            {
              Expression RESULT = null;
         Report.Error(900, "variable variables");
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(38/*base_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 290: // base_variable ::= reference_variable
            {
              Expression RESULT = null;
        int rvleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int rvright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression rv = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = rv;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(38/*base_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 289: // base_variable_with_function_calls ::= function_call
            {
              Expression RESULT = null;
        int fcleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int fcright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression fc = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = fc;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(37/*base_variable_with_function_calls*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 288: // base_variable_with_function_calls ::= base_variable
            {
              Expression RESULT = null;
        int bvleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int bvright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression bv = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = bv;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(37/*base_variable_with_function_calls*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 287: // static_member ::= fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects
            {
              Expression RESULT = null;
        int fqcnleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int fqcnright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        string fqcn = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int vwoleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int vworight = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression vwo = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = new PAAMAYIM_NEKUDOTAYIM(fqcn, vwo, fqcnleft, fqcnright);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(36/*static_member*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 286: // variable_without_objects ::= simple_indirect_reference reference_variable
            {
              Expression RESULT = null;
         Report.Error(900, "variable variables");
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(35/*variable_without_objects*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 285: // variable_without_objects ::= reference_variable
            {
              Expression RESULT = null;
        int rvleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int rvright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression rv = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = rv;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(35/*variable_without_objects*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 284: // method_or_not ::=
            {
              ExpressionList RESULT = null;
         RESULT = null;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(62/*method_or_not*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 283: // method_or_not ::= BRACE_OPEN function_call_parameter_list BRACE_CLOSE
            {
              ExpressionList RESULT = null;
        int fcplleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int fcplright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        ExpressionList fcpl = (ExpressionList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
         RESULT = fcpl;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(62/*method_or_not*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 282: // variable_property ::= T_OBJECT_OPERATOR object_property method_or_not
            {
              Expression RESULT = null;
        int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        string t = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int opleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int opright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        Expression op = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
        int monleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int monright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        ExpressionList mon = (ExpressionList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         Expression expr2; if (mon == null) expr2 = (VARIABLE)op; else expr2 = new FUNCTION_CALL(((VARIABLE)op).name, mon, opleft, opright);
           RESULT = new OBJECT_OPERATOR(null, expr2, tleft, tright);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(34/*variable_property*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 281: // variable_properties ::=
            {
              ExpressionList RESULT = null;
         RESULT = new ExpressionList();
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(61/*variable_properties*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 280: // variable_properties ::= variable_properties variable_property
            {
              ExpressionList RESULT = null;
        int vpsleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int vpsright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        ExpressionList vps = (ExpressionList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
        int vpleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int vpright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression vp = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         vps.Add(vp); RESULT = vps;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(61/*variable_properties*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 279: // variable ::= base_variable_with_function_calls
            {
              Expression RESULT = null;
        int bvwfcleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int bvwfcright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression bvwfc = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = bvwfc;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(33/*variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 278: // variable ::= base_variable_with_function_calls T_OBJECT_OPERATOR object_property method_or_not variable_properties
            {
              Expression RESULT = null;
        int bvwfcleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-4)).left;
        int bvwfcright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-4)).right;
        Expression bvwfc = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-4)).value;
        int opleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int opright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        Expression op = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int monleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int monright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        ExpressionList mon = (ExpressionList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
        int vpsleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int vpsright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        ExpressionList vps = (ExpressionList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         Expression expr;
           if (mon == null) expr = (VARIABLE)op; else expr = new FUNCTION_CALL(((VARIABLE)op).name, mon, opleft, opright);
           if (vps.Count() == 0) { RESULT = new OBJECT_OPERATOR(bvwfc, expr, bvwfcleft, bvwfcright); }
           else { for (int i = vps.Count() - 1; i > 0; i--) {
                      OBJECT_OPERATOR curr = (OBJECT_OPERATOR)vps.Get(i);
                      OBJECT_OPERATOR prev = (OBJECT_OPERATOR)vps.Get(i-1);
                      curr.expr1 = prev.expr2;
                      prev.expr2 = curr;
                  }
                  ((OBJECT_OPERATOR)vps.Get(0)).expr1 = expr;
                  RESULT = new OBJECT_OPERATOR(bvwfc, vps.Get(0), bvwfcleft, bvwfcright); }

              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(33/*variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-4)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 277: // rw_variable ::= variable
            {
              Expression RESULT = null;
        int vleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int vright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression v = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = v;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(32/*rw_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 276: // w_variable ::= variable
            {
              Expression RESULT = null;
        int vleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int vright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression v = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = v;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(31/*w_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 275: // r_variable ::= variable
            {
              Expression RESULT = null;
        int vleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int vright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression v = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = v;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(30/*r_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 274: // expr ::= expr_without_variable
            {
              Expression RESULT = null;
        int ewvleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int ewvright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression ewv = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = ewv;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(29/*expr*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 273: // expr ::= r_variable
            {
              Expression RESULT = null;
        int rleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int rright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression r = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = r;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(29/*expr*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 272: // non_empty_static_array_pair_list ::= static_scalar
            {
              ArrayList RESULT = null;
        int ssleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int ssright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression ss = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         ArrayList nesapl = new ArrayList(); nesapl.Add(new ARRAY_PAIR(null, ss, ssleft, ssright)); RESULT = nesapl;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(73/*non_empty_static_array_pair_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 271: // non_empty_static_array_pair_list ::= static_scalar T_DOUBLE_ARROW static_scalar
            {
              ArrayList RESULT = null;
        int ss1left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int ss1right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        Expression ss1 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int ss2left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int ss2right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression ss2 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         ArrayList nesapl = new ArrayList(); nesapl.Add(new ARRAY_PAIR(ss1, ss2, ss1left, ss1right)); RESULT = nesapl;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(73/*non_empty_static_array_pair_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 270: // non_empty_static_array_pair_list ::= non_empty_static_array_pair_list COMMA static_scalar
            {
              ArrayList RESULT = null;
        int nesaplleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int nesaplright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        ArrayList nesapl = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int ssleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int ssright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression ss = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         nesapl.Add(new ARRAY_PAIR(null, ss, ssleft, ssright)); RESULT = nesapl;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(73/*non_empty_static_array_pair_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 269: // non_empty_static_array_pair_list ::= non_empty_static_array_pair_list COMMA static_scalar T_DOUBLE_ARROW static_scalar
            {
              ArrayList RESULT = null;
        int nesaplleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-4)).left;
        int nesaplright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-4)).right;
        ArrayList nesapl = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-4)).value;
        int ss1left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int ss1right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        Expression ss1 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int ss2left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int ss2right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression ss2 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         nesapl.Add(new ARRAY_PAIR(ss1, ss2, ss1left, ss1right)); RESULT = nesapl;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(73/*non_empty_static_array_pair_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-4)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 268: // possible_comma ::= COMMA
            {
              object RESULT = null;

              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(85/*possible_comma*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 267: // possible_comma ::=
            {
              object RESULT = null;

              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(85/*possible_comma*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 266: // static_array_pair_list ::= non_empty_static_array_pair_list
            {
              ArrayList RESULT = null;
        int nesaplleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int nesaplright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        ArrayList nesapl = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = nesapl;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(72/*static_array_pair_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 265: // static_array_pair_list ::=
            {
              ArrayList RESULT = null;
         RESULT = new ArrayList();
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(72/*static_array_pair_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 264: // scalar ::= T_START_HEREDOC encaps_list T_END_HEREDOC
            {
              Expression RESULT = null;
        int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        string t = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int elleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int elright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        ArrayList el = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
         RESULT = new HEREDOC(el, tleft, tright);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(28/*scalar*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 263: // scalar ::= SINGLE_QUOTE encaps_list SINGLE_QUOTE
            {
              Expression RESULT = null;
        int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        string t = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int elleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int elright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        ArrayList el = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
         RESULT = new SINGLE_QUOTES(el, tleft, tright);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(28/*scalar*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 262: // scalar ::= DOUBLE_QUOTES encaps_list DOUBLE_QUOTES
            {
              Expression RESULT = null;
        int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        string t = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int elleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int elright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        ArrayList el = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
         RESULT = new DOUBLE_QUOTES(el, tleft, tright);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(28/*scalar*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 261: // scalar ::= common_scalar
            {
              Expression RESULT = null;
        int csleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int csright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression cs = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = cs;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(28/*scalar*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 260: // scalar ::= class_constant
            {
              Expression RESULT = null;
        int ccleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int ccright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression cc = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = cc;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(28/*scalar*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 259: // scalar ::= T_STRING_VARNAME
            {
              Expression RESULT = null;
        int svleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int svright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        string sv = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = new VARIABLE(sv, svleft, svright);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(28/*scalar*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 258: // scalar ::= T_STRING
            {
              Expression RESULT = null;
        int sleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int sright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        string s = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         if (s == "true".ToLower() || s == "false".ToLower()) RESULT = new STRING_SCALAR(s, sleft, sright); else RESULT = new CONSTANT(s, sleft, sright);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(28/*scalar*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 257: // static_class_constant ::= T_STRING T_PAAMAYIM_NEKUDOTAYIM T_STRING
            {
              Expression RESULT = null;
        int s1left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int s1right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        string s1 = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int s2left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int s2right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        string s2 = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = new PAAMAYIM_NEKUDOTAYIM(s1, new VARIABLE(s2, s1left, s1right), s1left, s1right);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(27/*static_class_constant*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 256: // static_scalar ::= static_class_constant
            {
              Expression RESULT = null;
        int sccleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int sccright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression scc = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = scc;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(26/*static_scalar*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 255: // static_scalar ::= T_ARRAY BRACE_OPEN static_array_pair_list BRACE_CLOSE
            {
              Expression RESULT = null;
        int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-3)).left;
        int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-3)).right;
        string t = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-3)).value;
        int saplleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int saplright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        ArrayList sapl = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
         RESULT = new ARRAY(sapl, tleft, tright);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(26/*static_scalar*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-3)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 254: // static_scalar ::= MINUS static_scalar
            {
              Expression RESULT = null;
        int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        string t = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
        int ssleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int ssright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression ss = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = new MINUS(new LNUMBER_SCALAR(0, tleft, tright), ss, tleft, tright);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(26/*static_scalar*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 253: // static_scalar ::= PLUS static_scalar
            {
              Expression RESULT = null;
        int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        string t = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
        int ssleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int ssright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression ss = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = new PLUS(new LNUMBER_SCALAR(0, tleft, tright), ss, tleft, tright);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(26/*static_scalar*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 252: // static_scalar ::= T_STRING
            {
              Expression RESULT = null;
        int sleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int sright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        string s = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         if (s == "true".ToLower() || s == "false".ToLower()) RESULT = new STRING_SCALAR(s, sleft, sright); else RESULT = new CONSTANT(s, sleft, sright);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(26/*static_scalar*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 251: // static_scalar ::= common_scalar
            {
              Expression RESULT = null;
        int csleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int csright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression cs = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = cs;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(26/*static_scalar*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 250: // common_scalar ::= T_FUNC_C
            {
              Expression RESULT = null;
        int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        string e = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         Report.Error(900, e);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(25/*common_scalar*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 249: // common_scalar ::= T_METHOD_C
            {
              Expression RESULT = null;
        int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        string e = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         Report.Error(900, e);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(25/*common_scalar*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 248: // common_scalar ::= T_CLASS_C
            {
              Expression RESULT = null;
        int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        string e = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         Report.Error(900, e);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(25/*common_scalar*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 247: // common_scalar ::= T_FILE
            {
              Expression RESULT = null;
        int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        string e = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         Report.Error(900, e);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(25/*common_scalar*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 246: // common_scalar ::= T_LINE
            {
              Expression RESULT = null;
        int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        string e = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         Report.Error(900, e);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(25/*common_scalar*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 245: // common_scalar ::= T_CONSTANT_ENCAPSED_STRING
            {
              Expression RESULT = null;
        int cesleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int cesright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        string ces = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = new STRING_SCALAR(ces, cesleft, cesright);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(25/*common_scalar*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 244: // common_scalar ::= T_DNUMBER
            {
              Expression RESULT = null;
        int dleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int dright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        string d = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = new DNUMBER_SCALAR(System.Convert.ToDouble(d), dleft, dright);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(25/*common_scalar*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 243: // common_scalar ::= T_LNUMBER
            {
              Expression RESULT = null;
        int lleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int lright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        string l = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = new LNUMBER_SCALAR(System.Convert.ToInt32(l), lleft, lright);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(25/*common_scalar*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 242: // ctor_arguments ::= BRACE_OPEN function_call_parameter_list BRACE_CLOSE
            {
              ExpressionList RESULT = null;
        int fcplleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int fcplright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        ExpressionList fcpl = (ExpressionList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
         RESULT = fcpl;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(60/*ctor_arguments*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 241: // ctor_arguments ::=
            {
              ExpressionList RESULT = null;
         RESULT = new ExpressionList();
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(60/*ctor_arguments*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 240: // exit_expr ::= BRACE_OPEN expr BRACE_CLOSE
            {
              Expression RESULT = null;
        int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
         RESULT = e;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(24/*exit_expr*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 239: // exit_expr ::= BRACE_OPEN BRACE_CLOSE
            {
              Expression RESULT = null;
         RESULT = null;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(24/*exit_expr*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 238: // exit_expr ::=
            {
              Expression RESULT = null;
         RESULT = null;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(24/*exit_expr*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 237: // dynamic_class_name_variable_property ::= T_OBJECT_OPERATOR object_property
            {
              object RESULT = null;

              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(98/*dynamic_class_name_variable_property*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 236: // dynamic_class_name_variable_properties ::=
            {
              object RESULT = null;

              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(97/*dynamic_class_name_variable_properties*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 235: // dynamic_class_name_variable_properties ::= dynamic_class_name_variable_properties dynamic_class_name_variable_property
            {
              object RESULT = null;

              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(97/*dynamic_class_name_variable_properties*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 234: // dynamic_class_name_reference ::= base_variable
            {
              object RESULT = null;

              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(96/*dynamic_class_name_reference*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 233: // dynamic_class_name_reference ::= base_variable T_OBJECT_OPERATOR object_property dynamic_class_name_variable_properties
            {
              object RESULT = null;

              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(96/*dynamic_class_name_reference*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-3)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 232: // class_name_reference ::= dynamic_class_name_reference
            {
              string RESULT = null;
         Report.Error(900, "dynamic class name references");
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(80/*class_name_reference*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 231: // class_name_reference ::= T_STRING
            {
              string RESULT = null;
        int sleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int sright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        string s = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = s;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(80/*class_name_reference*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 230: // fully_qualified_class_name ::= T_STRING
            {
              string RESULT = null;
        int sleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int sright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        string s = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = s;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(79/*fully_qualified_class_name*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 229: // function_call ::= variable_without_objects BRACE_OPEN function_call_parameter_list BRACE_CLOSE
            {
              Expression RESULT = null;
        int vwoleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-3)).left;
        int vworight = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-3)).right;
        Expression vwo = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-3)).value;
        int fcplleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int fcplright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        ExpressionList fcpl = (ExpressionList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
         Report.Error(900, "variable functions");
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(23/*function_call*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-3)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 228: // function_call ::= fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects BRACE_OPEN function_call_parameter_list BRACE_CLOSE
            {
              Expression RESULT = null;
        int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-4)).left;
        int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-4)).right;
        string e = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-4)).value;
         Report.Error(900, "variable functions");
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(23/*function_call*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-5)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 227: // function_call ::= fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING BRACE_OPEN function_call_parameter_list BRACE_CLOSE
            {
              Expression RESULT = null;
        int fqcnleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-5)).left;
        int fqcnright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-5)).right;
        string fqcn = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-5)).value;
        int sleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-3)).left;
        int sright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-3)).right;
        string s = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-3)).value;
        int fcplleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int fcplright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        ExpressionList fcpl = (ExpressionList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
         RESULT = new PAAMAYIM_NEKUDOTAYIM(fqcn, new FUNCTION_CALL(s, fcpl, fqcnleft, fqcnright), fqcnleft, fqcnright);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(23/*function_call*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-5)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 226: // function_call ::= T_STRING BRACE_OPEN function_call_parameter_list BRACE_CLOSE
            {
              Expression RESULT = null;
        int sleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-3)).left;
        int sright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-3)).right;
        string s = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-3)).value;
        int fcplleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int fcplright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        ExpressionList fcpl = (ExpressionList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
         RESULT = new FUNCTION_CALL(s, fcpl, sleft, sright);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(23/*function_call*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-3)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 225: // expr_without_variable ::= T_PRINT expr
            {
              Expression RESULT = null;
        int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        string t = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
        int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = new PRINT(e, tleft, tright);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(22/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 224: // expr_without_variable ::= BACK_QUOTE encaps_list BACK_QUOTE
            {
              Expression RESULT = null;
        int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        string e = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
         Report.Error(900, e);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(22/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 223: // expr_without_variable ::= T_ARRAY BRACE_OPEN array_pair_list BRACE_CLOSE
            {
              Expression RESULT = null;
        int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-3)).left;
        int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-3)).right;
        string t = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-3)).value;
        int aplleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int aplright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        ArrayList apl = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
         RESULT = new ARRAY(apl, tleft, tright);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(22/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-3)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 222: // expr_without_variable ::= scalar
            {
              Expression RESULT = null;
        int sleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int sright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression s = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = s;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(22/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 221: // expr_without_variable ::= AT expr
            {
              Expression RESULT = null;
        int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        string e = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
         Report.Error(900, e);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(22/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 220: // expr_without_variable ::= T_EXIT exit_expr
            {
              Expression RESULT = null;
        int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        string t = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
        int eeleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int eeright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression ee = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = new EXIT(ee, tleft, tright);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(22/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 219: // expr_without_variable ::= T_UNSET_CAST expr
            {
              Expression RESULT = null;
        int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        string e = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
         Report.Error(900, e);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(22/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 218: // expr_without_variable ::= T_BOOL_CAST expr
            {
              Expression RESULT = null;
        int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        string t = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
        int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = new BOOL_CAST(e, tleft, tright);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(22/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 217: // expr_without_variable ::= T_OBJECT_CAST expr
            {
              Expression RESULT = null;
        int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        string t = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
        int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = new OBJECT_CAST(e, tleft, tright);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(22/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 216: // expr_without_variable ::= T_ARRAY_CAST expr
            {
              Expression RESULT = null;
        int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        string t = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
        int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = new ARRAY_CAST(e, tleft, tright);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(22/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 215: // expr_without_variable ::= T_STRING_CAST expr
            {
              Expression RESULT = null;
        int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        string t = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
        int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = new STRING_CAST(e, tleft, tright);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(22/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 214: // expr_without_variable ::= T_DOUBLE_CAST expr
            {
              Expression RESULT = null;
        int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        string t = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
        int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = new DOUBLE_CAST(e, tleft, tright);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(22/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 213: // expr_without_variable ::= T_INT_CAST expr
            {
              Expression RESULT = null;
        int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        string t = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
        int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = new INT_CAST(e, tleft, tright);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(22/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 212: // expr_without_variable ::= internal_functions_in_yacc
            {
              Expression RESULT = null;

              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(22/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 211: // expr_without_variable ::= expr QUESTION expr COLON expr
            {
              Expression RESULT = null;
        int e1left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-4)).left;
        int e1right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-4)).right;
        Expression e1 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-4)).value;
        int e2left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int e2right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        Expression e2 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int e3left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int e3right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression e3 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = new IF_EXPR(e1, e2, e3, e1left, e1right);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(22/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-4)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 210: // expr_without_variable ::= BRACE_OPEN expr BRACE_CLOSE
            {
              Expression RESULT = null;
        int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
         RESULT = e;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(22/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 209: // expr_without_variable ::= expr T_INSTANCEOF class_name_reference
            {
              Expression RESULT = null;
        int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int cnrleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int cnrright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        string cnr = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = new INSTANCEOF(e, cnr, eleft, eright);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(22/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 208: // expr_without_variable ::= expr T_IS_GREATER_OR_EQUAL expr
            {
              Expression RESULT = null;
        int e1left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int e1right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        Expression e1 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int e2left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int e2right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression e2 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = new IS_GREATER_OR_EQUAL(e1, e2, e1left, e1right);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(22/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 207: // expr_without_variable ::= expr GREATER expr
            {
              Expression RESULT = null;
        int e1left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int e1right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        Expression e1 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int e2left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int e2right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression e2 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = new GREATER(e1, e2, e1left, e1right);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(22/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 206: // expr_without_variable ::= expr T_IS_LOWER_OR_EQUAL expr
            {
              Expression RESULT = null;
        int e1left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int e1right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        Expression e1 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int e2left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int e2right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression e2 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = new IS_LOWER_OR_EQUAL(e1, e2, e1left, e1right);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(22/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 205: // expr_without_variable ::= expr LOWER expr
            {
              Expression RESULT = null;
        int e1left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int e1right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        Expression e1 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int e2left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int e2right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression e2 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = new LOWER(e1, e2, e1left, e1right);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(22/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 204: // expr_without_variable ::= expr T_IS_NOT_EQUAL expr
            {
              Expression RESULT = null;
        int e1left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int e1right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        Expression e1 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int e2left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int e2right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression e2 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = new IS_NOT_EQUAL(e1, e2, e1left, e1right);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(22/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 203: // expr_without_variable ::= expr T_IS_EQUAL expr
            {
              Expression RESULT = null;
        int e1left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int e1right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        Expression e1 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int e2left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int e2right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression e2 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = new IS_EQUAL(e1, e2, e1left, e1right);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(22/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 202: // expr_without_variable ::= expr T_IS_NOT_IDENTICAL expr
            {
              Expression RESULT = null;
        int e1left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int e1right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        Expression e1 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int e2left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int e2right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression e2 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = new IS_NOT_IDENTICAL(e1, e2, e1left, e1right);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(22/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 201: // expr_without_variable ::= expr T_IS_IDENTICAL expr
            {
              Expression RESULT = null;
        int e1left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int e1right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        Expression e1 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int e2left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int e2right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression e2 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = new IS_IDENTICAL(e1, e2, e1left, e1right);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(22/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 200: // expr_without_variable ::= NOT expr
            {
              Expression RESULT = null;
        int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        string t = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
        int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = new NOT(e, tleft, tright);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(22/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 199: // expr_without_variable ::= BOOLEAN_NOT expr
            {
              Expression RESULT = null;
        int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        string t = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
        int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = new BOOLEAN_NOT(e, tleft, tright);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(22/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 198: // expr_without_variable ::= MINUS expr
            {
              Expression RESULT = null;
        int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        string t = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
        int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = new MINUS(new LNUMBER_SCALAR(0, tleft, tright), e, tleft, tright);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(22/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 197: // expr_without_variable ::= PLUS expr
            {
              Expression RESULT = null;
        int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        string t = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
        int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = new PLUS(new LNUMBER_SCALAR(0, tleft, tright), e, tleft, tright);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(22/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 196: // expr_without_variable ::= expr T_SR expr
            {
              Expression RESULT = null;
        int e1left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int e1right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        Expression e1 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int e2left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int e2right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression e2 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = new SR(e1, e2, e1left, e1right);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(22/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 195: // expr_without_variable ::= expr T_SL expr
            {
              Expression RESULT = null;
        int e1left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int e1right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        Expression e1 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int e2left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int e2right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression e2 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = new SL(e1, e2, e1left, e1right);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(22/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 194: // expr_without_variable ::= expr MOD expr
            {
              Expression RESULT = null;
        int e1left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int e1right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        Expression e1 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int e2left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int e2right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression e2 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = new MOD(e1, e2, e1left, e1right);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(22/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 193: // expr_without_variable ::= expr DIV expr
            {
              Expression RESULT = null;
        int e1left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int e1right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        Expression e1 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int e2left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int e2right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression e2 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = new DIV(e1, e2, e1left, e1right);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(22/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 192: // expr_without_variable ::= expr TIMES expr
            {
              Expression RESULT = null;
        int e1left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int e1right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        Expression e1 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int e2left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int e2right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression e2 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = new TIMES(e1, e2, e1left, e1right);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(22/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 191: // expr_without_variable ::= expr MINUS expr
            {
              Expression RESULT = null;
        int e1left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int e1right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        Expression e1 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int e2left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int e2right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression e2 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = new MINUS(e1, e2, e1left, e1right);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(22/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 190: // expr_without_variable ::= expr PLUS expr
            {
              Expression RESULT = null;
        int e1left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int e1right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        Expression e1 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int e2left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int e2right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression e2 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = new PLUS(e1, e2, e1left, e1right);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(22/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 189: // expr_without_variable ::= expr CONCAT expr
            {
              Expression RESULT = null;
        int e1left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int e1right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        Expression e1 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int e2left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int e2right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression e2 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = new CONCAT(e1, e2, e1left, e1right);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(22/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 188: // expr_without_variable ::= expr XOR expr
            {
              Expression RESULT = null;
        int e1left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int e1right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        Expression e1 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int e2left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int e2right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression e2 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = new XOR(e1, e2, e1left, e1right);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(22/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 187: // expr_without_variable ::= expr AND expr
            {
              Expression RESULT = null;
        int e1left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int e1right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        Expression e1 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int e2left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int e2right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression e2 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = new AND(e1, e2, e1left, e1right);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(22/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 186: // expr_without_variable ::= expr OR expr
            {
              Expression RESULT = null;
        int e1left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int e1right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        Expression e1 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int e2left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int e2right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression e2 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = new OR(e1, e2, e1left, e1right);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(22/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 185: // expr_without_variable ::= expr T_LOGICAL_XOR expr
            {
              Expression RESULT = null;
        int e1left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int e1right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        Expression e1 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int e2left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int e2right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression e2 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = new LOGICAL_XOR(e1, e2, e1left, e1right);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(22/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 184: // expr_without_variable ::= expr T_LOGICAL_AND expr
            {
              Expression RESULT = null;
        int e1left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int e1right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        Expression e1 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int e2left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int e2right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression e2 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = new LOGICAL_AND(e1, e2, e1left, e1right);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(22/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 183: // expr_without_variable ::= expr T_LOGICAL_OR expr
            {
              Expression RESULT = null;
        int e1left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int e1right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        Expression e1 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int e2left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int e2right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression e2 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = new LOGICAL_OR(e1, e2, e1left, e1right);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(22/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 182: // expr_without_variable ::= expr T_BOOLEAN_AND expr
            {
              Expression RESULT = null;
        int e1left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int e1right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        Expression e1 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int e2left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int e2right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression e2 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = new BOOLEAN_AND(e1, e2, e1left, e1right);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(22/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 181: // expr_without_variable ::= expr T_BOOLEAN_OR expr
            {
              Expression RESULT = null;
        int e1left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int e1right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        Expression e1 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int e2left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int e2right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression e2 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = new BOOLEAN_OR(e1, e2, e1left, e1right);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(22/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 180: // expr_without_variable ::= T_DEC rw_variable
            {
              Expression RESULT = null;
        int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        string t = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
        int rwleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int rwright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression rw = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = new DEC(rw, 0, tleft, tright);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(22/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 179: // expr_without_variable ::= rw_variable T_DEC
            {
              Expression RESULT = null;
        int rwleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int rwright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        Expression rw = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
         RESULT = new DEC(rw, 1, rwleft, rwright);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(22/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 178: // expr_without_variable ::= T_INC rw_variable
            {
              Expression RESULT = null;
        int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        string t = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
        int rwleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int rwright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression rw = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = new INC(rw, 0, tleft, tright);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(22/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 177: // expr_without_variable ::= rw_variable T_INC
            {
              Expression RESULT = null;
        int rwleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int rwright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        Expression rw = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
         RESULT = new INC(rw, 1, rwleft, rwright);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(22/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 176: // expr_without_variable ::= variable T_SR_EQUAL expr
            {
              Expression RESULT = null;
        int vleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int vright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        Expression v = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = new SR_EQUAL(v, e, vleft, vright);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(22/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 175: // expr_without_variable ::= variable T_SL_EQUAL expr
            {
              Expression RESULT = null;
        int vleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int vright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        Expression v = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = new SL_EQUAL(v, e, vleft, vright);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(22/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 174: // expr_without_variable ::= variable T_XOR_EQUAL expr
            {
              Expression RESULT = null;
        int vleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int vright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        Expression v = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = new XOR_EQUAL(v, e, vleft, vright);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(22/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 173: // expr_without_variable ::= variable T_OR_EQUAL expr
            {
              Expression RESULT = null;
        int vleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int vright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        Expression v = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = new OR_EQUAL(v, e, vleft, vright);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(22/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 172: // expr_without_variable ::= variable T_AND_EQUAL expr
            {
              Expression RESULT = null;
        int vleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int vright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        Expression v = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = new AND_EQUAL(v, e, vleft, vright);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(22/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 171: // expr_without_variable ::= variable T_MOD_EQUAL expr
            {
              Expression RESULT = null;
        int vleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int vright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        Expression v = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = new MOD_EQUAL(v, e, vleft, vright);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(22/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 170: // expr_without_variable ::= variable T_CONCAT_EQUAL expr
            {
              Expression RESULT = null;
        int vleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int vright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        Expression v = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = new CONCAT_EQUAL(v, e, vleft, vright);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(22/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 169: // expr_without_variable ::= variable T_DIV_EQUAL expr
            {
              Expression RESULT = null;
        int vleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int vright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        Expression v = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = new DIV_EQUAL(v, e, vleft, vright);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(22/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 168: // expr_without_variable ::= variable T_MUL_EQUAL expr
            {
              Expression RESULT = null;
        int vleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int vright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        Expression v = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = new MUL_EQUAL(v, e, vleft, vright);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(22/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 167: // expr_without_variable ::= variable T_MINUS_EQUAL expr
            {
              Expression RESULT = null;
        int vleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int vright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        Expression v = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = new MINUS_EQUAL(v, e, vleft, vright);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(22/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 166: // expr_without_variable ::= variable T_PLUS_EQUAL expr
            {
              Expression RESULT = null;
        int vleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int vright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        Expression v = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = new PLUS_EQUAL(v, e, vleft, vright);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(22/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 165: // expr_without_variable ::= T_CLONE expr
            {
              Expression RESULT = null;
        int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        string t = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
        int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = new CLONE(e, tleft, tright);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(22/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 164: // expr_without_variable ::= T_NEW class_name_reference ctor_arguments
            {
              Expression RESULT = null;
        int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        string t = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int cnrleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int cnrright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        string cnr = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
        int caleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int caright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        ExpressionList ca = (ExpressionList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = new NEW(cnr, ca, tleft, tright);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(22/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 163: // expr_without_variable ::= variable EQUALS AND T_NEW class_name_reference ctor_arguments
            {
              Expression RESULT = null;
        int vleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-5)).left;
        int vright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-5)).right;
        Expression v = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-5)).value;
        int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        string t = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int cnrleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int cnrright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        string cnr = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
        int caleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int caright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        ExpressionList ca = (ExpressionList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         Report.Warn(303); RESULT = new EQUALS(v, new NEW(cnr, ca, tleft, tright), vleft, vright);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(22/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-5)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 162: // expr_without_variable ::= variable EQUALS AND variable
            {
              Expression RESULT = null;
        int v1left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-3)).left;
        int v1right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-3)).right;
        Expression v1 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-3)).value;
        int v2left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int v2right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression v2 = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = new EQUALS(v1, new REFERENCE(v2, v1left, v1right), v1left, v1right);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(22/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-3)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 161: // expr_without_variable ::= variable EQUALS expr
            {
              Expression RESULT = null;
        int vleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int vright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        Expression v = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = new EQUALS(v, e, vleft, vright);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(22/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 160: // expr_without_variable ::= T_LIST BRACE_OPEN assignment_list BRACE_CLOSE EQUALS expr
            {
              Expression RESULT = null;
        int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-5)).left;
        int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-5)).right;
        string e = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-5)).value;
         Report.Error(900, e);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(22/*expr_without_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-5)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 159: // non_empty_for_expr ::= expr
            {
              ExpressionList RESULT = null;
        int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         ExpressionList nefe = new ExpressionList(); nefe.Add(e); RESULT = nefe;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(59/*non_empty_for_expr*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 158: // non_empty_for_expr ::= non_empty_for_expr COMMA expr
            {
              ExpressionList RESULT = null;
        int nefeleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int neferight = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        ExpressionList nefe = (ExpressionList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         nefe.Add(e); RESULT = nefe;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(59/*non_empty_for_expr*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 157: // for_expr ::= non_empty_for_expr
            {
              ExpressionList RESULT = null;
        int nefeleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int neferight = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        ExpressionList nefe = (ExpressionList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = nefe;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(58/*for_expr*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 156: // for_expr ::=
            {
              ExpressionList RESULT = null;
         RESULT = new ExpressionList();
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(58/*for_expr*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 155: // echo_expr_list ::= expr
            {
              ExpressionList RESULT = null;
        int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         ExpressionList eel = new ExpressionList(); eel.Add(e); RESULT = eel;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(57/*echo_expr_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 154: // echo_expr_list ::= echo_expr_list COMMA expr
            {
              ExpressionList RESULT = null;
        int eelleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int eelright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        ExpressionList eel = (ExpressionList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         eel.Add(e); RESULT = eel;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(57/*echo_expr_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 153: // class_constant_declaration ::= T_CONST T_STRING EQUALS static_scalar
            {
              Statement RESULT = null;
        int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-3)).left;
        int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-3)).right;
        string t = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-3)).value;
        int sleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int sright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        string s = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int ssleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int ssright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression ss = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         ArrayList modifiers = new ArrayList(); modifiers.Add(Modifiers.CONST); ArrayList names = new ArrayList(); names.Add(s); RESULT = new CLASS_VARIABLE_DECLARATION(modifiers, names, new ExpressionList(ss), tleft, tright);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(17/*class_constant_declaration*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-3)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 152: // class_constant_declaration ::= class_constant_declaration COMMA T_STRING EQUALS static_scalar
            {
              Statement RESULT = null;
        int ccdleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-4)).left;
        int ccdright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-4)).right;
        Statement ccd = (Statement)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-4)).value;
        int sleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int sright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        string s = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int ssleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int ssright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression ss = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         ((CLASS_VARIABLE_DECLARATION)ccd).names.Add(s); ((CLASS_VARIABLE_DECLARATION)ccd).values.Add(ss); RESULT = ccd;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(17/*class_constant_declaration*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-4)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 151: // class_variable_declaration ::= T_VARIABLE EQUALS static_scalar
            {
              Statement RESULT = null;
        int vleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int vright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        string v = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int ssleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int ssright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression ss = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         ArrayList names = new ArrayList(); names.Add(v); RESULT = new CLASS_VARIABLE_DECLARATION(new ArrayList(), names, new ExpressionList(ss), vleft, vright);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(16/*class_variable_declaration*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 150: // class_variable_declaration ::= T_VARIABLE
            {
              Statement RESULT = null;
        int vleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int vright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        string v = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         ArrayList names = new ArrayList(); names.Add(v); RESULT = new CLASS_VARIABLE_DECLARATION(new ArrayList(), names, new ExpressionList(null), vleft, vright);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(16/*class_variable_declaration*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 149: // class_variable_declaration ::= class_variable_declaration COMMA T_VARIABLE EQUALS static_scalar
            {
              Statement RESULT = null;
        int cvdleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-4)).left;
        int cvdright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-4)).right;
        Statement cvd = (Statement)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-4)).value;
        int vleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int vright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        string v = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int ssleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int ssright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression ss = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         ((CLASS_VARIABLE_DECLARATION)cvd).names.Add(v); ((CLASS_VARIABLE_DECLARATION)cvd).values.Add(ss); RESULT = cvd;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(16/*class_variable_declaration*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-4)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 148: // class_variable_declaration ::= class_variable_declaration COMMA T_VARIABLE
            {
              Statement RESULT = null;
        int cvdleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int cvdright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        Statement cvd = (Statement)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int vleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int vright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        string v = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         ((CLASS_VARIABLE_DECLARATION)cvd).names.Add(v); ((CLASS_VARIABLE_DECLARATION)cvd).values.Add(null); RESULT = cvd;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(16/*class_variable_declaration*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 147: // member_modifier ::= T_FINAL
            {
              object RESULT = null;
         RESULT = PHP.Core.Modifiers.FINAL;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(84/*member_modifier*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 146: // member_modifier ::= T_ABSTRACT
            {
              object RESULT = null;
        int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        string e = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         Report.Error(900, e);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(84/*member_modifier*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 145: // member_modifier ::= T_STATIC
            {
              object RESULT = null;
         RESULT = PHP.Core.Modifiers.STATIC;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(84/*member_modifier*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 144: // member_modifier ::= T_PRIVATE
            {
              object RESULT = null;
         RESULT = PHP.Core.Modifiers.PRIVATE;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(84/*member_modifier*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 143: // member_modifier ::= T_PROTECTED
            {
              object RESULT = null;
         RESULT = PHP.Core.Modifiers.PROTECTED;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(84/*member_modifier*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 142: // member_modifier ::= T_PUBLIC
            {
              object RESULT = null;
         RESULT = PHP.Core.Modifiers.PUBLIC;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(84/*member_modifier*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 141: // non_empty_member_modifiers ::= non_empty_member_modifiers member_modifier
            {
              ArrayList RESULT = null;
        int nemmleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int nemmright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        ArrayList nemm = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
        int mmleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int mmright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        object mm = (object)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         nemm.Add(mm); RESULT = nemm;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(71/*non_empty_member_modifiers*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 140: // non_empty_member_modifiers ::= member_modifier
            {
              ArrayList RESULT = null;
        int mmleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int mmright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        object mm = (object)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         ArrayList nemm = new ArrayList(); nemm.Add(mm); RESULT = nemm;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(71/*non_empty_member_modifiers*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 139: // method_modifiers ::= non_empty_member_modifiers
            {
              ArrayList RESULT = null;
        int nemmleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int nemmright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        ArrayList nemm = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = nemm;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(70/*method_modifiers*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 138: // method_modifiers ::=
            {
              ArrayList RESULT = null;
         RESULT = new ArrayList();
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(70/*method_modifiers*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 137: // variable_modifiers ::= T_VAR
            {
              ArrayList RESULT = null;
         ArrayList vm = new ArrayList(); vm.Add(6); RESULT = vm;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(69/*variable_modifiers*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 136: // variable_modifiers ::= non_empty_member_modifiers
            {
              ArrayList RESULT = null;
        int nemmleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int nemmright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        ArrayList nemm = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = nemm;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(69/*variable_modifiers*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 135: // method_body ::= CURLY_BRACE_OPEN inner_statement_list CURLY_BRACE_CLOSE
            {
              StatementList RESULT = null;
        int istlleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int istlright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        StatementList istl = (StatementList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
         RESULT = istl;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(51/*method_body*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 134: // method_body ::= SEMICOLON
            {
              StatementList RESULT = null;
         RESULT = new StatementList();
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(51/*method_body*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 133: // class_statement ::= method_modifiers T_FUNCTION is_reference T_STRING BRACE_OPEN parameter_list BRACE_CLOSE method_body
            {
              Statement RESULT = null;
        int mmleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-7)).left;
        int mmright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-7)).right;
        ArrayList mm = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-7)).value;
        int irleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-5)).left;
        int irright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-5)).right;
        object ir = (object)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-5)).value;
        int sleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-4)).left;
        int sright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-4)).right;
        string s = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-4)).value;
        int plleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int plright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        ArrayList pl = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int mbleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int mbright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        StatementList mb = (StatementList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = new FUNCTION_DECLARATION(mm, (bool)ir, s, pl, mb, mmleft, mmright);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(15/*class_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-7)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 132: // class_statement ::= class_constant_declaration SEMICOLON
            {
              Statement RESULT = null;
        int ccdleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int ccdright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        Statement ccd = (Statement)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
         RESULT = ccd;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(15/*class_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 131: // class_statement ::= variable_modifiers class_variable_declaration SEMICOLON
            {
              Statement RESULT = null;
        int vmleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int vmright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        ArrayList vm = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int cvdleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int cvdright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        Statement cvd = (Statement)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
         ((CLASS_VARIABLE_DECLARATION)cvd).modifiers = vm; RESULT = cvd;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(15/*class_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 130: // class_statement_list ::=
            {
              StatementList RESULT = null;
         RESULT = new StatementList();
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(50/*class_statement_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 129: // class_statement_list ::= class_statement_list class_statement
            {
              StatementList RESULT = null;
        int cstlleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int cstlright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        StatementList cstl = (StatementList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
        int cstleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int cstright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Statement cst = (Statement)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         cstl.Add(cst); RESULT = cstl;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(50/*class_statement_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 128: // static_var_list ::= T_VARIABLE EQUALS static_scalar
            {
              ExpressionList RESULT = null;
        int vleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int vright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        string v = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int ssleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int ssright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression ss = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = new ExpressionList(new EQUALS(new VARIABLE(v, vleft, vright), ss, vleft, vright));
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(56/*static_var_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 127: // static_var_list ::= T_VARIABLE
            {
              ExpressionList RESULT = null;
        int vleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int vright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        string v = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = new ExpressionList(new VARIABLE(v, vleft, vright));
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(56/*static_var_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 126: // static_var_list ::= static_var_list COMMA T_VARIABLE EQUALS static_scalar
            {
              ExpressionList RESULT = null;
        int svlleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-4)).left;
        int svlright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-4)).right;
        ExpressionList svl = (ExpressionList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-4)).value;
        int vleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int vright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        string v = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int ssleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int ssright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression ss = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         svl.Add(new EQUALS(new VARIABLE(v, vleft, vright), ss, vleft, vright)); RESULT = svl;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(56/*static_var_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-4)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 125: // static_var_list ::= static_var_list COMMA T_VARIABLE
            {
              ExpressionList RESULT = null;
        int svlleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int svlright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        ExpressionList svl = (ExpressionList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int vleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int vright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        string v = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         svl.Add(new VARIABLE(v, vleft, vright)); RESULT = svl;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(56/*static_var_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 124: // global_var ::= DOLLAR CURLY_BRACE_OPEN expr CURLY_BRACE_CLOSE
            {
              Expression RESULT = null;
         Report.Error(900, "variable variables");
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(21/*global_var*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-3)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 123: // global_var ::= DOLLAR r_variable
            {
              Expression RESULT = null;
        int rvleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int rvright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression rv = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = (VARIABLE)rv;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(21/*global_var*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 122: // global_var ::= T_VARIABLE
            {
              Expression RESULT = null;
        int vleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int vright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        string v = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = new VARIABLE(v, vleft, vright);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(21/*global_var*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 121: // global_var_list ::= global_var
            {
              ExpressionList RESULT = null;
        int gvleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int gvright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression gv = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = new ExpressionList(gv);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(55/*global_var_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 120: // global_var_list ::= global_var_list COMMA global_var
            {
              ExpressionList RESULT = null;
        int gvlleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int gvlright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        ExpressionList gvl = (ExpressionList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int gvleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int gvright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression gv = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         gvl.Add(gv); RESULT = gvl;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(55/*global_var_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 119: // non_empty_function_call_parameter_list ::= non_empty_function_call_parameter_list COMMA AND w_variable
            {
              ExpressionList RESULT = null;
        int nefcplleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-3)).left;
        int nefcplright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-3)).right;
        ExpressionList nefcpl = (ExpressionList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-3)).value;
        int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        string t = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
        int wvleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int wvright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression wv = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         nefcpl.Add(new REFERENCE(wv, tleft, tright)); RESULT = nefcpl;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(54/*non_empty_function_call_parameter_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-3)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 118: // non_empty_function_call_parameter_list ::= non_empty_function_call_parameter_list COMMA variable
            {
              ExpressionList RESULT = null;
        int nefcplleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int nefcplright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        ExpressionList nefcpl = (ExpressionList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int vleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int vright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression v = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         nefcpl.Add(v); RESULT = nefcpl;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(54/*non_empty_function_call_parameter_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 117: // non_empty_function_call_parameter_list ::= non_empty_function_call_parameter_list COMMA expr_without_variable
            {
              ExpressionList RESULT = null;
        int nefcplleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int nefcplright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        ExpressionList nefcpl = (ExpressionList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int ewvleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int ewvright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression ewv = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         nefcpl.Add(ewv); RESULT = nefcpl;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(54/*non_empty_function_call_parameter_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 116: // non_empty_function_call_parameter_list ::= AND w_variable
            {
              ExpressionList RESULT = null;
        int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        string t = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
        int wvleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int wvright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression wv = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = new ExpressionList(new REFERENCE(wv, tleft, tright));
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(54/*non_empty_function_call_parameter_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 115: // non_empty_function_call_parameter_list ::= variable
            {
              ExpressionList RESULT = null;
        int vleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int vright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression v = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = new ExpressionList(v);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(54/*non_empty_function_call_parameter_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 114: // non_empty_function_call_parameter_list ::= expr_without_variable
            {
              ExpressionList RESULT = null;
        int ewvleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int ewvright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression ewv = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = new ExpressionList(ewv);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(54/*non_empty_function_call_parameter_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 113: // function_call_parameter_list ::=
            {
              ExpressionList RESULT = null;
         RESULT = new ExpressionList();
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(53/*function_call_parameter_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 112: // function_call_parameter_list ::= non_empty_function_call_parameter_list
            {
              ExpressionList RESULT = null;
        int nefcplleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int nefcplright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        ExpressionList nefcpl = (ExpressionList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = nefcpl;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(53/*function_call_parameter_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 111: // optional_class_type ::= T_STRING
            {
              string RESULT = null;
        int sleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int sright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        string s = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = s;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(78/*optional_class_type*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 110: // optional_class_type ::=
            {
              string RESULT = null;
         RESULT = null;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(78/*optional_class_type*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 109: // non_empty_parameter_list ::= non_empty_parameter_list COMMA optional_class_type T_VARIABLE EQUALS static_scalar
            {
              ArrayList RESULT = null;
        int neplleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-5)).left;
        int neplright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-5)).right;
        ArrayList nepl = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-5)).value;
        int octleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-3)).left;
        int octright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-3)).right;
        string oct = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-3)).value;
        int vleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int vright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        string v = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int ssleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int ssright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression ss = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         nepl.Add(new PARAMETER_DECLARATION(oct, false, v, ss, octleft, octright)); RESULT = nepl;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(68/*non_empty_parameter_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-5)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 108: // non_empty_parameter_list ::= non_empty_parameter_list COMMA optional_class_type AND T_VARIABLE EQUALS static_scalar
            {
              ArrayList RESULT = null;
        int neplleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-6)).left;
        int neplright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-6)).right;
        ArrayList nepl = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-6)).value;
        int octleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-4)).left;
        int octright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-4)).right;
        string oct = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-4)).value;
        int vleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int vright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        string v = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int ssleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int ssright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression ss = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         nepl.Add(new PARAMETER_DECLARATION(oct, true, v, ss, octleft, octright)); RESULT = nepl;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(68/*non_empty_parameter_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-6)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 107: // non_empty_parameter_list ::= non_empty_parameter_list COMMA optional_class_type AND T_VARIABLE
            {
              ArrayList RESULT = null;
        int neplleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-4)).left;
        int neplright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-4)).right;
        ArrayList nepl = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-4)).value;
        int octleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int octright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        string oct = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int vleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int vright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        string v = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         nepl.Add(new PARAMETER_DECLARATION(oct, true, v, null, octleft, octright)); RESULT = nepl;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(68/*non_empty_parameter_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-4)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 106: // non_empty_parameter_list ::= non_empty_parameter_list COMMA optional_class_type T_VARIABLE
            {
              ArrayList RESULT = null;
        int neplleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-3)).left;
        int neplright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-3)).right;
        ArrayList nepl = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-3)).value;
        int octleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int octright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        string oct = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
        int vleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int vright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        string v = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         nepl.Add(new PARAMETER_DECLARATION(oct, false, v, null, octleft, octright)); RESULT = nepl;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(68/*non_empty_parameter_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-3)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 105: // non_empty_parameter_list ::= optional_class_type T_VARIABLE EQUALS static_scalar
            {
              ArrayList RESULT = null;
        int octleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-3)).left;
        int octright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-3)).right;
        string oct = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-3)).value;
        int vleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int vright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        string v = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int ssleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int ssright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression ss = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         ArrayList nepl = new ArrayList(); nepl.Add(new PARAMETER_DECLARATION(oct, false, v, ss, octleft, octright)); RESULT = nepl;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(68/*non_empty_parameter_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-3)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 104: // non_empty_parameter_list ::= optional_class_type AND T_VARIABLE EQUALS static_scalar
            {
              ArrayList RESULT = null;
        int octleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-4)).left;
        int octright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-4)).right;
        string oct = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-4)).value;
        int vleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int vright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        string v = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int ssleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int ssright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression ss = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         ArrayList nepl = new ArrayList(); nepl.Add(new PARAMETER_DECLARATION(oct, true, v, ss, octleft, octright)); RESULT = nepl;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(68/*non_empty_parameter_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-4)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 103: // non_empty_parameter_list ::= optional_class_type AND T_VARIABLE
            {
              ArrayList RESULT = null;
        int octleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int octright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        string oct = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int vleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int vright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        string v = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         ArrayList nepl = new ArrayList(); nepl.Add(new PARAMETER_DECLARATION(oct, true, v, null, octleft, octright)); RESULT = nepl;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(68/*non_empty_parameter_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 102: // non_empty_parameter_list ::= optional_class_type T_VARIABLE
            {
              ArrayList RESULT = null;
        int octleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int octright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        string oct = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
        int vleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int vright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        string v = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         ArrayList nepl = new ArrayList(); nepl.Add(new PARAMETER_DECLARATION(oct, false, v, null, octleft, octright)); RESULT = nepl;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(68/*non_empty_parameter_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 101: // parameter_list ::=
            {
              ArrayList RESULT = null;
         RESULT = new ArrayList();
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(67/*parameter_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 100: // parameter_list ::= non_empty_parameter_list
            {
              ArrayList RESULT = null;
        int neplleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int neplright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        ArrayList nepl = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = nepl;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(67/*parameter_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 99: // new_else_single ::= T_ELSE COLON inner_statement_list
            {
              Statement RESULT = null;
        int istlleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int istlright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        StatementList istl = (StatementList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = istl;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(14/*new_else_single*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 98: // new_else_single ::=
            {
              Statement RESULT = null;
         RESULT = null;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(14/*new_else_single*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 97: // else_single ::= T_ELSE statement
            {
              Statement RESULT = null;
        int stleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int stright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Statement st = (Statement)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = st;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(13/*else_single*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 96: // else_single ::=
            {
              Statement RESULT = null;
         RESULT = null;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(13/*else_single*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 95: // new_elseif_list ::= new_elseif_list T_ELSEIF BRACE_OPEN expr BRACE_CLOSE COLON inner_statement_list
            {
              ArrayList RESULT = null;
        int nelleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-6)).left;
        int nelright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-6)).right;
        ArrayList nel = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-6)).value;
        int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-5)).left;
        int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-5)).right;
        string t = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-5)).value;
        int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-3)).left;
        int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-3)).right;
        Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-3)).value;
        int istlleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int istlright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        StatementList istl = (StatementList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         nel.Add(new ELSEIF(e, istl, tleft, tright)); RESULT = nel;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(66/*new_elseif_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-6)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 94: // new_elseif_list ::=
            {
              ArrayList RESULT = null;
         RESULT = new ArrayList();
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(66/*new_elseif_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 93: // elseif_list ::= elseif_list T_ELSEIF BRACE_OPEN expr BRACE_CLOSE statement
            {
              ArrayList RESULT = null;
        int elleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-5)).left;
        int elright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-5)).right;
        ArrayList el = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-5)).value;
        int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-4)).left;
        int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-4)).right;
        string t = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-4)).value;
        int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int stleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int stright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Statement st = (Statement)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         el.Add(new ELSEIF(e, st, tleft, tright)); RESULT = el;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(65/*elseif_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-5)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 92: // elseif_list ::=
            {
              ArrayList RESULT = null;
         RESULT = new ArrayList();
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(65/*elseif_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 91: // while_statement ::= COLON inner_statement_list T_ENDWHILE SEMICOLON
            {
              Statement RESULT = null;
        int istlleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int istlright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        StatementList istl = (StatementList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
         RESULT = istl;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(12/*while_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-3)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 90: // while_statement ::= statement
            {
              Statement RESULT = null;
        int sleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int sright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Statement s = (Statement)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = s;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(12/*while_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 89: // case_separator ::= SEMICOLON
            {
              object RESULT = null;

              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(83/*case_separator*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 88: // case_separator ::= COLON
            {
              object RESULT = null;

              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(83/*case_separator*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 87: // case_list ::= case_list T_DEFAULT case_separator inner_statement_list
            {
              ArrayList RESULT = null;
        int clleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-3)).left;
        int clright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-3)).right;
        ArrayList cl = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-3)).value;
        int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        string t = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int csleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int csright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        object cs = (object)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
        int istlleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int istlright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        StatementList istl = (StatementList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         cl.Add(new DEFAULT(istl, tleft, tright)); RESULT = cl;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(64/*case_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-3)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 86: // case_list ::= case_list T_CASE expr case_separator inner_statement_list
            {
              ArrayList RESULT = null;
        int clleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-4)).left;
        int clright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-4)).right;
        ArrayList cl = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-4)).value;
        int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-3)).left;
        int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-3)).right;
        string t = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-3)).value;
        int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int csleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int csright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        object cs = (object)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
        int istlleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int istlright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        StatementList istl = (StatementList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         cl.Add(new CASE(e, istl, tleft, tright)); RESULT = cl;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(64/*case_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-4)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 85: // case_list ::=
            {
              ArrayList RESULT = null;
         RESULT = new ArrayList();
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(64/*case_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 84: // switch_case_list ::= COLON SEMICOLON case_list T_ENDSWITCH SEMICOLON
            {
              ArrayList RESULT = null;
        int csleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int csright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        ArrayList cs = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
         RESULT = cs;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(63/*switch_case_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-4)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 83: // switch_case_list ::= COLON case_list T_ENDSWITCH SEMICOLON
            {
              ArrayList RESULT = null;
        int csleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int csright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        ArrayList cs = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
         RESULT = cs;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(63/*switch_case_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-3)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 82: // switch_case_list ::= CURLY_BRACE_OPEN SEMICOLON case_list CURLY_BRACE_CLOSE
            {
              ArrayList RESULT = null;
        int csleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int csright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        ArrayList cs = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
         RESULT = cs;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(63/*switch_case_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-3)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 81: // switch_case_list ::= CURLY_BRACE_OPEN case_list CURLY_BRACE_CLOSE
            {
              ArrayList RESULT = null;
        int csleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int csright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        ArrayList cs = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
         RESULT = cs;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(63/*switch_case_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 80: // declare_list ::= declare_list COMMA T_STRING EQUALS static_scalar
            {
              object RESULT = null;

              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(95/*declare_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-4)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 79: // declare_list ::= T_STRING EQUALS static_scalar
            {
              object RESULT = null;

              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(95/*declare_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 78: // declare_statement ::= COLON inner_statement_list T_ENDDECLARE SEMICOLON
            {
              object RESULT = null;

              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(94/*declare_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-3)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 77: // declare_statement ::= statement
            {
              object RESULT = null;

              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(94/*declare_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 76: // foreach_statement ::= COLON inner_statement_list T_ENDFOREACH SEMICOLON
            {
              Statement RESULT = null;
        int istlleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int istlright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        StatementList istl = (StatementList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
         RESULT = istl;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(11/*foreach_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-3)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 75: // foreach_statement ::= statement
            {
              Statement RESULT = null;
        int stleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int stright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Statement st = (Statement)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = st;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(11/*foreach_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 74: // for_statement ::= COLON inner_statement_list T_ENDFOR SEMICOLON
            {
              Statement RESULT = null;
        int istlleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int istlright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        StatementList istl = (StatementList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
         RESULT = istl;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(10/*for_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-3)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 73: // for_statement ::= statement
            {
              Statement RESULT = null;
        int stleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int stright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Statement st = (Statement)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = st;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(10/*for_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 72: // foreach_variable ::= AND w_variable
            {
              Expression RESULT = null;
        int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        string t = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
        int wvleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int wvright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression wv = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = new REFERENCE(wv, tleft, tright);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(20/*foreach_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 71: // foreach_variable ::= w_variable
            {
              Expression RESULT = null;
        int wvleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int wvright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression wv = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = wv;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(20/*foreach_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 70: // foreach_optional_arg ::= T_DOUBLE_ARROW foreach_variable
            {
              Expression RESULT = null;
        int fvleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int fvright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression fv = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = fv;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(19/*foreach_optional_arg*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 69: // foreach_optional_arg ::=
            {
              Expression RESULT = null;
         RESULT = null;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(19/*foreach_optional_arg*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 68: // interface_list ::= interface_list COMMA fully_qualified_class_name
            {
              object RESULT = null;

              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(93/*interface_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 67: // interface_list ::= fully_qualified_class_name
            {
              object RESULT = null;

              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(93/*interface_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 66: // implements_list ::= T_IMPLEMENTS interface_list
            {
              object RESULT = null;
        int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        string e = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
         Report.Error(900, e);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(92/*implements_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 65: // implements_list ::=
            {
              object RESULT = null;

              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(92/*implements_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 64: // interface_extends_list ::= T_EXTENDS interface_list
            {
              object RESULT = null;

              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(91/*interface_extends_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 63: // interface_extends_list ::=
            {
              object RESULT = null;

              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(91/*interface_extends_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 62: // interface_entry ::= T_INTERFACE
            {
              object RESULT = null;

              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(90/*interface_entry*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 61: // extends_from ::= T_EXTENDS fully_qualified_class_name
            {
              string RESULT = null;
        int fqcnleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int fqcnright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        string fqcn = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = fqcn;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(77/*extends_from*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 60: // extends_from ::=
            {
              string RESULT = null;
         RESULT = null;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(77/*extends_from*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 59: // class_entry_type ::= T_FINAL T_CLASS
            {
              object RESULT = null;
         RESULT = PHP.Core.Modifiers.FINAL;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(82/*class_entry_type*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 58: // class_entry_type ::= T_ABSTRACT T_CLASS
            {
              object RESULT = null;
        int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        string e = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
         Report.Error(900, e);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(82/*class_entry_type*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 57: // class_entry_type ::= T_CLASS
            {
              object RESULT = null;
         RESULT = PHP.Core.Modifiers.PUBLIC;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(82/*class_entry_type*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 56: // unticked_class_declaration_statement ::= interface_entry T_STRING interface_extends_list CURLY_BRACE_OPEN class_statement_list CURLY_BRACE_CLOSE
            {
              Statement RESULT = null;
         Report.Error(900, "interface");
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(9/*unticked_class_declaration_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-5)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 55: // unticked_class_declaration_statement ::= class_entry_type T_STRING extends_from implements_list CURLY_BRACE_OPEN class_statement_list CURLY_BRACE_CLOSE
            {
              Statement RESULT = null;
        int cetleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-6)).left;
        int cetright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-6)).right;
        object cet = (object)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-6)).value;
        int sleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-5)).left;
        int sright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-5)).right;
        string s = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-5)).value;
        int efleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-4)).left;
        int efright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-4)).right;
        string ef = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-4)).value;
        int cstlleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int cstlright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        StatementList cstl = (StatementList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
         RESULT = new CLASS_DECLARATION((int)cet, s, ef, cstl, cetleft, cetright);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(9/*unticked_class_declaration_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-6)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 54: // unticked_function_declaration_statement ::= T_FUNCTION is_reference T_STRING BRACE_OPEN parameter_list BRACE_CLOSE CURLY_BRACE_OPEN inner_statement_list CURLY_BRACE_CLOSE
            {
              Statement RESULT = null;
        int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-8)).left;
        int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-8)).right;
        string t = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-8)).value;
        int irleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-7)).left;
        int irright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-7)).right;
        object ir = (object)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-7)).value;
        int sleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-6)).left;
        int sright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-6)).right;
        string s = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-6)).value;
        int plleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-4)).left;
        int plright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-4)).right;
        ArrayList pl = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-4)).value;
        int istlleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int istlright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        StatementList istl = (StatementList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
         RESULT = new FUNCTION_DECLARATION(new ArrayList(), (bool)ir, s, pl, istl, tleft, tright);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(8/*unticked_function_declaration_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-8)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 53: // is_reference ::= AND
            {
              object RESULT = null;
         RESULT = true;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(81/*is_reference*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 52: // is_reference ::=
            {
              object RESULT = null;
         RESULT = false;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(81/*is_reference*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 51: // class_declaration_statement ::= unticked_class_declaration_statement
            {
              Statement RESULT = null;
        int ucdsleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int ucdsright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Statement ucds = (Statement)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = ucds;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(7/*class_declaration_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 50: // function_declaration_statement ::= unticked_function_declaration_statement
            {
              Statement RESULT = null;
        int ufdsleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int ufdsright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Statement ufds = (Statement)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = ufds;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(6/*function_declaration_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 49: // use_filename ::= BRACE_OPEN T_CONSTANT_ENCAPSED_STRING BRACE_CLOSE
            {
              object RESULT = null;

              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(89/*use_filename*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 48: // use_filename ::= T_CONSTANT_ENCAPSED_STRING
            {
              object RESULT = null;

              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(89/*use_filename*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 47: // unset_variable ::= variable
            {
              Expression RESULT = null;
        int vleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int vright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression v = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = v;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(18/*unset_variable*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 46: // unset_variables ::= unset_variables COMMA unset_variable
            {
              ExpressionList RESULT = null;
        int uvsleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int uvsright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        ExpressionList uvs = (ExpressionList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int uvleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int uvright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression uv = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         uvs.Add(uv); RESULT = uvs;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(52/*unset_variables*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 45: // unset_variables ::= unset_variable
            {
              ExpressionList RESULT = null;
        int uvleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int uvright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Expression uv = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = new ExpressionList(uv);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(52/*unset_variables*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 44: // additional_catch ::= T_CATCH BRACE_OPEN fully_qualified_class_name T_VARIABLE BRACE_CLOSE CURLY_BRACE_OPEN inner_statement_list CURLY_BRACE_CLOSE
            {
              object RESULT = null;

              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(88/*additional_catch*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-7)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 43: // non_empty_additional_catches ::= non_empty_additional_catches additional_catch
            {
              object RESULT = null;
        int neacleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int neacright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        object neac = (object)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;

              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(87/*non_empty_additional_catches*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 42: // non_empty_additional_catches ::= additional_catch
            {
              object RESULT = null;

              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(87/*non_empty_additional_catches*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 41: // additional_catches ::=
            {
              object RESULT = null;

              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(86/*additional_catches*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 40: // additional_catches ::= non_empty_additional_catches
            {
              object RESULT = null;

              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(86/*additional_catches*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 39: // unticked_statement ::= T_THROW expr SEMICOLON
            {
              Statement RESULT = null;
        int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        string e = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
         Report.Error(900, e);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(5/*unticked_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 38: // unticked_statement ::= T_TRY CURLY_BRACE_OPEN inner_statement_list CURLY_BRACE_CLOSE T_CATCH BRACE_OPEN fully_qualified_class_name T_VARIABLE BRACE_CLOSE CURLY_BRACE_OPEN inner_statement_list CURLY_BRACE_CLOSE additional_catches
            {
              Statement RESULT = null;
         Report.Error(900, "try/catch");
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(5/*unticked_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-12)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 37: // unticked_statement ::= SEMICOLON
            {
              Statement RESULT = null;
         RESULT = null;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(5/*unticked_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 36: // unticked_statement ::= T_DECLARE BRACE_OPEN declare_list BRACE_CLOSE declare_statement
            {
              Statement RESULT = null;
        int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-4)).left;
        int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-4)).right;
        string e = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-4)).value;
         Report.Error(900, e);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(5/*unticked_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-4)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 35: // unticked_statement ::= T_FOREACH BRACE_OPEN expr_without_variable T_AS w_variable foreach_optional_arg BRACE_CLOSE foreach_statement
            {
              Statement RESULT = null;
        int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-7)).left;
        int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-7)).right;
        string t = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-7)).value;
        int ewvleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-5)).left;
        int ewvright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-5)).right;
        Expression ewv = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-5)).value;
        int wvleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-3)).left;
        int wvright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-3)).right;
        Expression wv = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-3)).value;
        int foaleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int foaright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        Expression foa = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int fstleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int fstright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Statement fst = (Statement)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         Expression array = ewv; Expression key = (foa == null) ? null : wv; Expression value = (foa == null) ? wv : foa; RESULT = new FOREACH(array, key, value, fst, tleft, tright);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(5/*unticked_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-7)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 34: // unticked_statement ::= T_FOREACH BRACE_OPEN variable T_AS foreach_variable foreach_optional_arg BRACE_CLOSE foreach_statement
            {
              Statement RESULT = null;
        int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-7)).left;
        int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-7)).right;
        string t = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-7)).value;
        int vleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-5)).left;
        int vright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-5)).right;
        Expression v = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-5)).value;
        int fvleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-3)).left;
        int fvright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-3)).right;
        Expression fv = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-3)).value;
        int foaleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int foaright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        Expression foa = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int fstleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int fstright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Statement fst = (Statement)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         Expression array = v; Expression key = (foa == null) ? null : fv; Expression value = (foa == null) ? fv : foa; RESULT = new FOREACH(array, key, value, fst, tleft, tright);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(5/*unticked_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-7)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 33: // unticked_statement ::= T_UNSET BRACE_OPEN unset_variables BRACE_CLOSE SEMICOLON
            {
              Statement RESULT = null;
        int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-4)).left;
        int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-4)).right;
        string t = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-4)).value;
        int uvsleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int uvsright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        ExpressionList uvs = (ExpressionList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
         RESULT = new UNSET(uvs, tleft, tright);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(5/*unticked_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-4)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 32: // unticked_statement ::= T_USE use_filename SEMICOLON
            {
              Statement RESULT = null;
        int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        string e = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
         Report.Error(900, e);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(5/*unticked_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 31: // unticked_statement ::= expr SEMICOLON
            {
              Statement RESULT = null;
        int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
         RESULT = new EXPRESSION_AS_STATEMENT(e, eleft, eright);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(5/*unticked_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 30: // unticked_statement ::= T_INLINE_HTML
            {
              Statement RESULT = null;
         /* This case will never be entered as HTML code is filtered by the parser */
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(5/*unticked_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 29: // unticked_statement ::= T_ECHO echo_expr_list SEMICOLON
            {
              Statement RESULT = null;
        int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        string t = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int eelleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int eelright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        ExpressionList eel = (ExpressionList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
         RESULT = new ECHO(eel, tleft, tright);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(5/*unticked_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 28: // unticked_statement ::= T_STATIC static_var_list SEMICOLON
            {
              Statement RESULT = null;
        int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        string t = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int svlleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int svlright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        ExpressionList svl = (ExpressionList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
         RESULT = new STATIC_DECLARATION((ExpressionList)svl, tleft, tright);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(5/*unticked_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 27: // unticked_statement ::= T_GLOBAL global_var_list SEMICOLON
            {
              Statement RESULT = null;
        int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        string t = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int gvlleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int gvlright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        ExpressionList gvl = (ExpressionList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
         RESULT = new GLOBAL(gvl, tleft, tright);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(5/*unticked_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 26: // unticked_statement ::= T_RETURN variable SEMICOLON
            {
              Statement RESULT = null;
        int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        string t = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int vleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int vright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        Expression v = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
         RESULT = new RETURN(v, tleft, tright);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(5/*unticked_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 25: // unticked_statement ::= T_RETURN expr_without_variable SEMICOLON
            {
              Statement RESULT = null;
        int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        string t = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int ewvleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int ewvright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        Expression ewv = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
         RESULT = new RETURN(ewv, tleft, tright);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(5/*unticked_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 24: // unticked_statement ::= T_RETURN SEMICOLON
            {
              Statement RESULT = null;
        int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        string t = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
         RESULT = new RETURN(null, tleft, tright);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(5/*unticked_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 23: // unticked_statement ::= T_CONTINUE expr SEMICOLON
            {
              Statement RESULT = null;
        int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        string t = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
         RESULT = new CONTINUE(e, tleft, tright);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(5/*unticked_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 22: // unticked_statement ::= T_CONTINUE SEMICOLON
            {
              Statement RESULT = null;
        int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        string t = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
         RESULT = new CONTINUE(null, tleft, tright);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(5/*unticked_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 21: // unticked_statement ::= T_BREAK expr SEMICOLON
            {
              Statement RESULT = null;
        int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        string t = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
         RESULT = new BREAK(e, tleft, tright);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(5/*unticked_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 20: // unticked_statement ::= T_BREAK SEMICOLON
            {
              Statement RESULT = null;
        int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        string t = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
         RESULT = new BREAK(null, tleft, tright);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(5/*unticked_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 19: // unticked_statement ::= T_SWITCH BRACE_OPEN expr BRACE_CLOSE switch_case_list
            {
              Statement RESULT = null;
        int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-4)).left;
        int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-4)).right;
        string t = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-4)).value;
        int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int sclleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int sclright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        ArrayList scl = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = new SWITCH(e, scl, tleft, tright);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(5/*unticked_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-4)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 18: // unticked_statement ::= T_FOR BRACE_OPEN for_expr SEMICOLON for_expr SEMICOLON for_expr BRACE_CLOSE for_statement
            {
              Statement RESULT = null;
        int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-8)).left;
        int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-8)).right;
        string t = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-8)).value;
        int fe1left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-6)).left;
        int fe1right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-6)).right;
        ExpressionList fe1 = (ExpressionList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-6)).value;
        int fe2left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-4)).left;
        int fe2right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-4)).right;
        ExpressionList fe2 = (ExpressionList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-4)).value;
        int fe3left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int fe3right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        ExpressionList fe3 = (ExpressionList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int fsleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int fsright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Statement fs = (Statement)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = new FOR(fe1, fe2, fe3, fs, tleft, tright);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(5/*unticked_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-8)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 17: // unticked_statement ::= T_DO statement T_WHILE BRACE_OPEN expr BRACE_CLOSE
            {
              Statement RESULT = null;
        int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-5)).left;
        int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-5)).right;
        string t = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-5)).value;
        int sleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-4)).left;
        int sright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-4)).right;
        Statement s = (Statement)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-4)).value;
        int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
         RESULT = new DO(s, e, tleft, tright);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(5/*unticked_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-5)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 16: // unticked_statement ::= T_WHILE BRACE_OPEN expr BRACE_CLOSE while_statement
            {
              Statement RESULT = null;
        int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-4)).left;
        int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-4)).right;
        string t = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-4)).value;
        int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int wstleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int wstright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Statement wst = (Statement)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = new WHILE(e, wst, tleft, tright);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(5/*unticked_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-4)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 15: // unticked_statement ::= T_IF BRACE_OPEN expr BRACE_CLOSE COLON inner_statement_list new_elseif_list new_else_single T_ENDIF SEMICOLON
            {
              Statement RESULT = null;
        int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-9)).left;
        int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-9)).right;
        string t = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-9)).value;
        int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-7)).left;
        int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-7)).right;
        Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-7)).value;
        int istlleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-4)).left;
        int istlright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-4)).right;
        StatementList istl = (StatementList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-4)).value;
        int nelleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-3)).left;
        int nelright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-3)).right;
        ArrayList nel = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-3)).value;
        int nesleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int nesright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        Statement nes = (Statement)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
         RESULT = new IF(e, istl, nel, nes, tleft, tright);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(5/*unticked_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-9)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 14: // unticked_statement ::= T_IF BRACE_OPEN expr BRACE_CLOSE statement elseif_list else_single
            {
              Statement RESULT = null;
        int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-6)).left;
        int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-6)).right;
        string t = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-6)).value;
        int eleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-4)).left;
        int eright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-4)).right;
        Expression e = (Expression)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-4)).value;
        int stleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int stright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        Statement st = (Statement)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int elleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int elright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        ArrayList el = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
        int esleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int esright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Statement es = (Statement)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = new IF(e, st, el, es, tleft, tright);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(5/*unticked_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-6)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 13: // unticked_statement ::= CURLY_BRACE_OPEN inner_statement_list CURLY_BRACE_CLOSE
            {
              Statement RESULT = null;
        int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left;
        int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).right;
        string t = (string)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-2)).value;
        int istlleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int istlright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        StatementList istl = (StatementList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
         RESULT = new BLOCK(istl, tleft, tright);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(5/*unticked_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-2)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 12: // statement ::= unticked_statement
            {
              Statement RESULT = null;
        int usleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int usright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Statement us = (Statement)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = us;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(4/*statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 11: // inner_statement ::= class_declaration_statement
            {
              Statement RESULT = null;
        int cdsleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int cdsright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Statement cds = (Statement)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = cds;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(3/*inner_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 10: // inner_statement ::= function_declaration_statement
            {
              Statement RESULT = null;
        int fdsleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int fdsright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Statement fds = (Statement)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = fds;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(3/*inner_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 9: // inner_statement ::= statement
            {
              Statement RESULT = null;
        int sleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int sright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Statement s = (Statement)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = s;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(3/*inner_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 8: // inner_statement_list ::=
            {
              StatementList RESULT = null;
         RESULT = new StatementList();
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(49/*inner_statement_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 7: // inner_statement_list ::= inner_statement_list inner_statement
            {
              StatementList RESULT = null;
        int istlleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int istlright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        StatementList istl = (StatementList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
        int istleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int istright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Statement ist = (Statement)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         istl.Add(ist); RESULT = istl;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(49/*inner_statement_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 6: // top_statement ::= class_declaration_statement
            {
              Statement RESULT = null;
        int cdsleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int cdsright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Statement cds = (Statement)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = cds;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(2/*top_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 5: // top_statement ::= function_declaration_statement
            {
              Statement RESULT = null;
        int fdsleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int fdsright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Statement fds = (Statement)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = fds;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(2/*top_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 4: // top_statement ::= statement
            {
              Statement RESULT = null;
        int sleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int sright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Statement s = (Statement)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = s;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(2/*top_statement*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 3: // top_statement_list ::=
            {
              StatementList RESULT = null;
         RESULT = new StatementList();
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(48/*top_statement_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 2: // top_statement_list ::= top_statement_list top_statement
            {
              StatementList RESULT = null;
        int tslleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int tslright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        StatementList tsl = (StatementList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
        int tsleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int tsright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        Statement ts = (Statement)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         tsl.Add(ts); RESULT = tsl;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(48/*top_statement_list*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 1: // $START ::= begin EOF
            {
              object RESULT = null;
        int start_valleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left;
        int start_valright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).right;
        AST start_val = (AST)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-1)).value;
        RESULT = start_val;
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(0/*$START*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-1)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          /* ACCEPT */
          CUP_Parser_parser.done_parsing();
          return CUP_Parser_result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 0: // begin ::= top_statement_list
            {
              AST RESULT = null;
        int tslleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left;
        int tslright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right;
        StatementList tsl = (StatementList)((TUVienna.CS_CUP.Runtime.Symbol) CUP_Parser_stack.elementAt(CUP_Parser_top-0)).value;
         RESULT = new AST(tsl);
              CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(1/*begin*/, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).left, ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top-0)).right, RESULT);
            }
          return CUP_Parser_result;

          /* . . . . . .*/
          default:
            throw new System.Exception(
               "Invalid action number found in internal parse table");

        }
    }