public MainMethodVisitor() { // create public class __MAIN CD__MAIN = new CLASS_DECLARATION(Modifiers.PUBLIC, "__MAIN", null, new ArrayList(), new StatementList(), 0, 0); // create public function __MAIN() ArrayList modifiers = new ArrayList(); modifiers.Add(Modifiers.PUBLIC); modifiers.Add(Modifiers.STATIC); FD__MAIN = new FUNCTION_DECLARATION(modifiers, false, "__MAIN", new ArrayList(), new StatementList(), 0, 0); // add function __MAIN() to class __MAIN CD__MAIN.StmtList.Add(FD__MAIN); // create modified statement list ModifiedStmtList = new StatementList(); }
protected void Visit(ASTNode node) { if (node == null) return; else if (node is INTERFACE_DECLARATION) { ID = (INTERFACE_DECLARATION)node; // process each statement within interface SymbolTable.GetInstance().openScope(); ID.Scope = SymbolTable.GetInstance().CurScope; foreach (Statement stmt in ID.StmtList) Visit(stmt); SymbolTable.GetInstance().CloseScope(); ID = null; } else if (node is CLASS_DECLARATION) { CD = (CLASS_DECLARATION)node; // if class implemens interfaces, ensure all interface methods are implemented and ensure all interface methods are named differently if (CD.Implements.Count > 0) { // collect all methods of class and parent classes ArrayList methods = new ArrayList(); foreach (Statement stmt in CD.StmtList) { if (stmt is FUNCTION_DECLARATION) { FUNCTION_DECLARATION tmpFD = (FUNCTION_DECLARATION)stmt; methods.Add(tmpFD.Name); } } CLASS_DECLARATION tmpCD = CD; while (tmpCD.Extends != null) { SymbolTableEntry parentCDEntry = SymbolTable.GetInstance().LookupGlobal(tmpCD.Extends, SymbolTable.CLASS); tmpCD = (CLASS_DECLARATION)parentCDEntry.Node; foreach (Statement stmt in tmpCD.StmtList) { if (stmt is FUNCTION_DECLARATION) { FUNCTION_DECLARATION tmpFD = (FUNCTION_DECLARATION)stmt; methods.Add(tmpFD.Name); } } } // iterate over all implemented interfaces ArrayList interfacesToProcess = new ArrayList(); interfacesToProcess.AddRange(CD.Implements); ArrayList interfacesFunctions = new ArrayList(); INTERFACE_DECLARATION tmpID = ID; while (interfacesToProcess.Count > 0) { string s = (string)(interfacesToProcess[0]); SymbolTableEntry interfaceEntry = SymbolTable.GetInstance().LookupGlobal(s, SymbolTable.INTERFACE); tmpID = (INTERFACE_DECLARATION)interfaceEntry.Node; foreach (Statement stmt in tmpID.StmtList) if (stmt is FUNCTION_DECLARATION) { FUNCTION_DECLARATION tmpFD = (FUNCTION_DECLARATION)stmt; if (!methods.Contains(tmpFD.Name)) Report.Error(116, CD.Name, CD.Line, CD.Column); if (interfacesFunctions.Contains(tmpFD.Name)) Report.Error(117, tmpFD.Name, tmpFD.Line, tmpFD.Column); interfacesFunctions.Add(tmpFD.Name); } interfacesToProcess.RemoveAt(0); if (tmpID.Extends != null) interfacesToProcess.AddRange(tmpID.Extends); } } // if this is a concrete class (not abstract) if (CD.Modifier != Modifiers.ABSTRACT) { // ensure it doesn't define abstract methods ArrayList concreteFunctions = new ArrayList(); foreach (Statement stmt in CD.StmtList) { if (stmt is FUNCTION_DECLARATION) { FD = (FUNCTION_DECLARATION)stmt; if (FD.Modifiers.Contains(Modifiers.ABSTRACT)) Report.Error(106, CD.Name, CD.Line, CD.Column); else concreteFunctions.Add(FD.Name); } } FD = null; // and ensure all inherited abstract methods are overridden ArrayList inheritedAbstractFunctions = new ArrayList(); ArrayList inheritedConcreteFunctions = new ArrayList(); CLASS_DECLARATION tmpCD = CD; while (tmpCD.Extends != null) { SymbolTableEntry parentCDEntry = SymbolTable.GetInstance().LookupGlobal(tmpCD.Extends, SymbolTable.CLASS); tmpCD = (CLASS_DECLARATION)parentCDEntry.Node; foreach (Statement stmt in tmpCD.StmtList) { if (stmt is FUNCTION_DECLARATION) { FD = (FUNCTION_DECLARATION)stmt; if (!inheritedConcreteFunctions.Contains(FD.Name)) { if (FD.Modifiers.Contains(Modifiers.ABSTRACT)) inheritedAbstractFunctions.Add(FD.Name); else inheritedConcreteFunctions.Add(FD.Name); } } } } FD = null; foreach (string s in inheritedAbstractFunctions) if (!concreteFunctions.Contains(s)) Report.Error(109, CD.Name, CD.Line, CD.Column); } // process each statement within class SymbolTable.GetInstance().openScope(); CD.Scope = SymbolTable.GetInstance().CurScope; foreach (Statement stmt in CD.StmtList) Visit(stmt); SymbolTable.GetInstance().CloseScope(); CD = null; } else if (node is CLASS_VARIABLE_DECLARATION) { CLASS_VARIABLE_DECLARATION cvd = (CLASS_VARIABLE_DECLARATION)node; // ensure no class variable is defined in an interface if (ID != null) Report.Error(114, cvd.Line, cvd.Column); // create field builders FieldAttributes modifiers = 0; if (cvd.Modifiers.Count == 0) modifiers = FieldAttributes.Public | FieldAttributes.Static; else if (cvd.Modifiers.Contains(Modifiers.CONST)) modifiers = FieldAttributes.Public | FieldAttributes.Static | FieldAttributes.InitOnly; else if (!cvd.Modifiers.Contains(Modifiers.PUBLIC) && !cvd.Modifiers.Contains(Modifiers.PROTECTED) && !cvd.Modifiers.Contains(Modifiers.PRIVATE)) modifiers = FieldAttributes.Public; else { ArrayList tmpModifiers = (ArrayList)cvd.Modifiers.Clone(); if (cvd.Modifiers.Contains(Modifiers.PUBLIC)) { modifiers = FieldAttributes.Public; tmpModifiers.Remove(Modifiers.PUBLIC); } else if (cvd.Modifiers.Contains(Modifiers.PROTECTED)) { modifiers = FieldAttributes.Family; tmpModifiers.Remove(Modifiers.PROTECTED); } else if (cvd.Modifiers.Contains(Modifiers.PRIVATE)) { modifiers = FieldAttributes.Private; tmpModifiers.Remove(Modifiers.PRIVATE); } if (tmpModifiers.Contains(Modifiers.PUBLIC) || tmpModifiers.Contains(Modifiers.PROTECTED) || tmpModifiers.Contains(Modifiers.PRIVATE)) Report.Error(105, cvd.Line, cvd.Column); } foreach (int modifier in cvd.Modifiers) { switch (modifier) { case Modifiers.STATIC: modifiers |= FieldAttributes.Static; break; case Modifiers.ABSTRACT: Report.Error(103, "abstract", cvd.Line, cvd.Column); break; case Modifiers.FINAL: Report.Error(103, "final", cvd.Line, cvd.Column); break; } } cvd.FieldBuilders = new ArrayList(); for (int i = 0; i < cvd.Names.Count; i++) { string name = (string)cvd.Names[i]; // remove $ at beginning of class member names if (name.StartsWith("$")) { name = name.Remove(0, 1); cvd.Names[i] = name; } // we're inside an interface if (ID != null) cvd.FieldBuilders.Add(ID.TypBld.DefineField(name, typeof(object), modifiers)); // we're inside an class else cvd.FieldBuilders.Add(CD.TypBld.DefineField(name, typeof(object), modifiers)); // insert member symbol SymbolTable.GetInstance().InsertLocal(name, SymbolTable.CLASS_VARIABLE, cvd); } } else if (node is FUNCTION_DECLARATION) { FD = (FUNCTION_DECLARATION)node; // we're inside an interface if (ID != null) { // ensure an interface function doesn't have forbidden modifiers if (FD.Modifiers.Contains(Modifiers.PROTECTED)) Report.Error(111, "protected", FD.Line, FD.Column); else if (FD.Modifiers.Contains(Modifiers.PRIVATE)) Report.Error(111, "private", FD.Line, FD.Column); else if (FD.Modifiers.Contains(Modifiers.ABSTRACT)) Report.Error(111, "abstract", FD.Line, FD.Column); else if (FD.Modifiers.Contains(Modifiers.FINAL)) Report.Error(111, "final", FD.Line, FD.Column); if ((FD.Name == "__construct" || FD.Name == "__constructStatic") && FD.Modifiers.Contains(Modifiers.STATIC)) Report.Error(104, "static", FD.Line, FD.Column); // ensure an interface function doesn't override a function at all INTERFACE_DECLARATION tmpID; ArrayList parentIDs = ID.Extends; while (parentIDs.Count > 0) { ArrayList newParentIDs = new ArrayList(); foreach (string s in parentIDs) { SymbolTableEntry parentIDEntry = SymbolTable.GetInstance().LookupGlobal(s, SymbolTable.INTERFACE); tmpID = (INTERFACE_DECLARATION)parentIDEntry.Node; SymbolTableEntry superFDEntry = tmpID.Scope.Lookup(FD.Name, SymbolTable.FUNCTION); if (superFDEntry != null) { Report.Error(110, FD.Name, FD.Line, FD.Column); break; } newParentIDs.AddRange(tmpID.Extends); } parentIDs = newParentIDs; } // ensure an interface function doesn't have a function body if (FD.StmtList != null) Report.Error(112, FD.Name, FD.Line, FD.Column); // create constructor and method builders MethodAttributes modifiers = MethodAttributes.Public | MethodAttributes.Abstract | MethodAttributes.Virtual; if (FD.Modifiers.Contains(Modifiers.STATIC) || FD.Name == "__constructStatic") modifiers |= MethodAttributes.Static; Type[] parameterTypes = new Type[FD.Parameters.Count]; for (int i = 0; i < parameterTypes.Length; i++) { PARAMETER_DECLARATION pd = (PARAMETER_DECLARATION)FD.Parameters[i]; // if a reference is desired, use PHP.Reference as type if (pd.ByReference) parameterTypes[i] = PHPReference; // otherwise and if no type hint is available, use object as type else if (pd.Type == null) parameterTypes[i] = typeof(object); // otherwise use desired type as type else { SymbolTableEntry typeEntry = SymbolTable.GetInstance().LookupGlobal(pd.Type, SymbolTable.CLASS); // type is defined in script if (typeEntry != null) { if (typeEntry.Node is CLASS_DECLARATION) parameterTypes[i] = ((CLASS_DECLARATION)typeEntry.Node).TypBld; else parameterTypes[i] = ((INTERFACE_DECLARATION)typeEntry.Node).TypBld; } // type is an external type else { Type t = SymbolTable.GetInstance().GetExternalType(pd.Type); if (t != null) parameterTypes[i] = t; else Report.Error(203, pd.Type, pd.Line, pd.Column); } } } Type returnType = typeof(object); if (FD.Name == "__construct" || FD.Name == "__constructStatic") FD.CtrBld = ID.TypBld.DefineConstructor(modifiers, CallingConventions.Standard, parameterTypes); else FD.MthBld = ID.TypBld.DefineMethod(FD.Name, modifiers, returnType, parameterTypes); // insert function symbol (which is case insensitive) SymbolTable.GetInstance().InsertLocal(FD.Name, SymbolTable.FUNCTION, FD); // remember scope SymbolTable.GetInstance().openScope(); FD.Scope = SymbolTable.GetInstance().CurScope; SymbolTable.GetInstance().CloseScope(); FD = null; } // we're inside an class else { // ensure an abstract function doesn't have a function body if (FD.Modifiers.Contains(Modifiers.ABSTRACT) && FD.StmtList != null) Report.Error(113, FD.Name, FD.Line, FD.Column); // ensure a concrete function does have a function body if (!FD.Modifiers.Contains(Modifiers.ABSTRACT) && FD.StmtList == null) Report.Error(115, FD.Name, FD.Line, FD.Column); // if there is a overridden parent function CLASS_DECLARATION tmpCD = CD; while (tmpCD.Extends != null) { SymbolTableEntry parentCDEntry = SymbolTable.GetInstance().LookupGlobal(tmpCD.Extends, SymbolTable.CLASS); tmpCD = (CLASS_DECLARATION)parentCDEntry.Node; SymbolTableEntry superFDEntry = tmpCD.Scope.Lookup(FD.Name, SymbolTable.FUNCTION); if (superFDEntry != null) { FUNCTION_DECLARATION superFD = (FUNCTION_DECLARATION)superFDEntry.Node; // ensure function doesn't override a final function if (superFD.Modifiers.Contains(Modifiers.FINAL)) { StringBuilder parameters = new StringBuilder(); foreach (PARAMETER_DECLARATION pd in superFD.Parameters) { if (pd.Type != null) { parameters.Append(pd.Type); parameters.Append(" "); } parameters.Append(pd.Name); parameters.Append(", "); } if (parameters.Length > 0) parameters.Remove(parameters.Length - 2, 2); Report.Error(102, tmpCD.Name + "::" + superFD.Name + "(" + parameters.ToString() + ")", FD.Line, FD.Column); } // ensure an abstract function doesn't override a function at all else if (FD.Modifiers.Contains(Modifiers.ABSTRACT)) { Report.Error(107, FD.Name, FD.Line, FD.Column); } // ensure visibility is same or weaker visibility of parent function else { if (superFD.Modifiers.Contains(Modifiers.PUBLIC) && !FD.Modifiers.Contains(Modifiers.PUBLIC)) Report.Error(108, FD.Name, FD.Line, FD.Column); else if (superFD.Modifiers.Contains(Modifiers.PROTECTED) && FD.Modifiers.Contains(Modifiers.PRIVATE)) Report.Error(108, FD.Name, FD.Line, FD.Column); } break; } } // create constructor and method builders MethodAttributes modifiers = 0; if (FD.Modifiers.Count == 0) modifiers = MethodAttributes.Public; else if (!FD.Modifiers.Contains(Modifiers.PUBLIC) && !FD.Modifiers.Contains(Modifiers.PROTECTED) && !FD.Modifiers.Contains(Modifiers.PRIVATE)) modifiers = MethodAttributes.Public; else { ArrayList tmpModifiers = (ArrayList)FD.Modifiers.Clone(); if (FD.Modifiers.Contains(Modifiers.PUBLIC)) { modifiers = MethodAttributes.Public; tmpModifiers.Remove(Modifiers.PUBLIC); } else if (FD.Modifiers.Contains(Modifiers.PROTECTED)) { modifiers = MethodAttributes.Family; tmpModifiers.Remove(Modifiers.PROTECTED); } else if (FD.Modifiers.Contains(Modifiers.PRIVATE)) { modifiers = MethodAttributes.Private; tmpModifiers.Remove(Modifiers.PRIVATE); } if (tmpModifiers.Contains(Modifiers.PUBLIC) || tmpModifiers.Contains(Modifiers.PROTECTED) || tmpModifiers.Contains(Modifiers.PRIVATE)) Report.Error(105, FD.Line, FD.Column); } foreach (int modifier in FD.Modifiers) { if (FD.Name == "__construct") switch (modifier) { case Modifiers.STATIC: Report.Error(104, "static", FD.Line, FD.Column); break; case Modifiers.ABSTRACT: Report.Error(104, "abstract", FD.Line, FD.Column); break; case Modifiers.FINAL: modifiers |= MethodAttributes.Final; break; } else if (FD.Name == "__constructStatic") { modifiers |= MethodAttributes.Static; switch (modifier) { case Modifiers.ABSTRACT: Report.Error(104, "abstract", FD.Line, FD.Column); break; case Modifiers.FINAL: modifiers |= MethodAttributes.Final; break; } } else switch (modifier) { case Modifiers.STATIC: modifiers |= MethodAttributes.Static; break; case Modifiers.ABSTRACT: modifiers |= MethodAttributes.Abstract; break; case Modifiers.FINAL: modifiers |= MethodAttributes.Final; break; } } Type[] parameterTypes = new Type[FD.Parameters.Count]; for (int i = 0; i < parameterTypes.Length; i++) { PARAMETER_DECLARATION pd = (PARAMETER_DECLARATION)FD.Parameters[i]; // if a reference is desired, use PHP.Reference as type if (pd.ByReference) parameterTypes[i] = PHPReference; // otherwise and if no type hint is available, use object as type else if (pd.Type == null) parameterTypes[i] = typeof(object); // otherwise use desired type as type else { SymbolTableEntry typeEntry = SymbolTable.GetInstance().LookupGlobal(pd.Type, SymbolTable.CLASS); // type is defined in script if (typeEntry != null) { if (typeEntry.Node is CLASS_DECLARATION) parameterTypes[i] = ((CLASS_DECLARATION)typeEntry.Node).TypBld; else parameterTypes[i] = ((INTERFACE_DECLARATION)typeEntry.Node).TypBld; } // type is an external type else { Type t = SymbolTable.GetInstance().GetExternalType(pd.Type); if (t != null) parameterTypes[i] = t; else Report.Error(203, pd.Type, pd.Line, pd.Column); } } } Type returnType; if (FD.Name == "__MAIN") returnType = typeof(void); else if (FD.ReturnByReference) returnType = PHPReference; else returnType = typeof(object); if (FD.Name == "__construct" || FD.Name == "__constructStatic") FD.CtrBld = CD.TypBld.DefineConstructor(modifiers, CallingConventions.Standard, parameterTypes); else FD.MthBld = CD.TypBld.DefineMethod(FD.Name, modifiers, returnType, parameterTypes); // at beginning of script if (FD.Name == "__MAIN") { MainMethod = FD.MthBld; // disable warnings, if desired if (!Report.WarningsEnabled) { mPHPRuntime = Assembly.LoadFrom("mPHPRuntime.dll"); Type report = mPHPRuntime.GetType("PHP.Report"); FD.MthBld.GetILGenerator().Emit(OpCodes.Ldc_I4_0); FD.MthBld.GetILGenerator().Emit(OpCodes.Stsfld, report.GetField("WarningsEnabled")); } // initialize local settings to en-US FD.MthBld.GetILGenerator().Emit(OpCodes.Call, PHPRuntimeCore.GetMethod("Init", Type.EmptyTypes)); } // insert function symbol (which is case insensitive) SymbolTable.GetInstance().InsertLocal(FD.Name, SymbolTable.FUNCTION, FD); // remember scope SymbolTable.GetInstance().openScope(); FD.Scope = SymbolTable.GetInstance().CurScope; SymbolTable.GetInstance().CloseScope(); FD = null; } } }
protected void Visit(ASTNode node) { if (node == null) return; else if (node is INTERFACE_DECLARATION) { ID = (INTERFACE_DECLARATION)node; // process each statement of interface foreach (Statement stmt in ID.StmtList) Visit(stmt); // bake the interface ID.Typ = ID.TypBld.CreateType(); ID = null; } else if (node is CLASS_DECLARATION) { CD = (CLASS_DECLARATION)node; // remember __main class if (CD.Name == "__MAIN") CD__MAIN = CD; // process each statement of class foreach (Statement stmt in CD.StmtList) Visit(stmt); // bake the class CD.Typ = CD.TypBld.CreateType(); CD = null; } else if (node is FUNCTION_DECLARATION) { FD = (FUNCTION_DECLARATION)node; // if function is abstract or an interface function, do nothing if (FD.StmtList == null) return; // remember __main method if (FD.Name == "__MAIN") FD__MAIN = FD; // get ILGenerator and check if this is a static function or not bool staticFunction; if (FD.Name == "__construct" || FD.Name == "__constructStatic") { IlGen = FD.CtrBld.GetILGenerator(); staticFunction = FD.CtrBld.IsStatic; } else { IlGen = FD.MthBld.GetILGenerator(); staticFunction = FD.MthBld.IsStatic; } // in constructors, store initial class member values if (FD.Name == "__construct" || FD.Name == "__constructStatic") { CLASS_DECLARATION tmpCD = CD; ArrayList namesAlreadyAdded = new ArrayList(); do { // fetch class variable declarations of current class ArrayList classVarDecls = tmpCD.Scope.Lookup(SymbolTable.CLASS_VARIABLE); foreach (SymbolTableEntry cvdEntry in classVarDecls) { CLASS_VARIABLE_DECLARATION cvd = (CLASS_VARIABLE_DECLARATION)cvdEntry.Node; for (int i = 0; i < cvd.Names.Count; i++) { FieldBuilder fb = (FieldBuilder)cvd.FieldBuilders[i]; string name = (string)cvd.Names[i]; Expression value = cvd.Values.Get(i); // only process names not already added if (namesAlreadyAdded.Contains(name)) continue; bool cvdIsVisible = tmpCD == CD || !cvd.Modifiers.Contains(Modifiers.PRIVATE); bool cvdIsStatic = cvd.Modifiers.Contains(Modifiers.STATIC) || cvd.Modifiers.Contains(Modifiers.CONST); // in a static constructor, store initial static class member values if (FD.Name == "__constructStatic" && cvdIsVisible && cvdIsStatic) { if (value == null) IlGen.Emit(OpCodes.Ldnull); else Visit(value); IlGen.Emit(OpCodes.Stsfld, fb); namesAlreadyAdded.Add(name); } // in a local constructor, store initial local class member values if (FD.Name == "__construct" && cvdIsVisible && !cvdIsStatic) { IlGen.Emit(OpCodes.Ldarg_0); if (value == null) IlGen.Emit(OpCodes.Ldnull); else Visit(value); IlGen.Emit(OpCodes.Stfld, fb); namesAlreadyAdded.Add(name); } } } // fetch parent class declaration if (tmpCD.Extends == null) tmpCD = null; else { SymbolTableEntry parentCDEntry = SymbolTable.GetInstance().LookupGlobal(tmpCD.Extends, SymbolTable.CLASS); tmpCD = (CLASS_DECLARATION)parentCDEntry.Node; } } while (tmpCD != null); } // store parameters passed as local variables PARAMETER_DECLARATION pd; for (int i = 0; i < FD.Parameters.Count; i++) { pd = (PARAMETER_DECLARATION)FD.Parameters[i]; // push value passed IlGen.Emit(OpCodes.Ldarg, i + (staticFunction ? 0 : 1)); // if value passed is null, use default value, if available if (pd.DefaultValue != null) { Label skip = IlGen.DefineLabel(); IlGen.Emit(OpCodes.Dup); IlGen.Emit(OpCodes.Brtrue, skip); IlGen.Emit(OpCodes.Pop); Visit(pd.DefaultValue); IlGen.MarkLabel(skip); } // check if class type hint is ok if (pd.Type != null) { IlGen.Emit(OpCodes.Dup); SymbolTableEntry cdEntry = SymbolTable.GetInstance().LookupGlobal(pd.Type, SymbolTable.CLASS); // type is defined in an referenced assembly if (cdEntry == null) { Type t = SymbolTable.GetInstance().GetExternalType(pd.Type); IlGen.Emit(OpCodes.Ldstr, t.AssemblyQualifiedName); } // type is defined in script else IlGen.Emit(OpCodes.Ldstr, pd.Type); IlGen.Emit(OpCodes.Ldc_I4, i + (staticFunction ? 1 : 2)); IlGen.Emit(OpCodes.Call, PHPRuntimeCore.GetMethod("CheckTypeHint", new Type[] { typeof(object), typeof(string), typeof(int) })); } // store StoreToVariable(pd.Name); } // process statements if (FD.StmtList.Count() == 0) IlGen.Emit(OpCodes.Nop); else foreach (Statement stmt in FD.StmtList) Visit(stmt); IlGen = null; FD = null; } else if (node is GLOBAL) { GLOBAL g = (GLOBAL)node; foreach (VARIABLE var in g.VarList) { IlGen.Emit(OpCodes.Ldstr, var.Name); IlGen.Emit(OpCodes.Call, PHPReference.GetMethod("CreateReferenceToGlobal", new Type[] { typeof(object) })); IlGen.Emit(OpCodes.Ldstr, var.Name); IlGen.Emit(OpCodes.Call, PHPRuntimeCore.GetMethod("StoreToVariable", new Type[] { typeof(object), typeof(object) })); } } else if (node is STATIC_DECLARATION) { STATIC_DECLARATION sd = (STATIC_DECLARATION)node; foreach (Expression expr in sd.ExprList) { if (expr is VARIABLE) { IlGen.Emit(OpCodes.Ldnull); StoreToStaticVariable(((VARIABLE)expr).Name); } if (expr is EQUALS) { Visit(((EQUALS)expr).Expr2); StoreToStaticVariable(((VARIABLE)((EQUALS)expr).Expr1).Name); } } } else if (node is BLOCK) { BLOCK b = (BLOCK)node; foreach (Statement stmt in b.StmtList) Visit(stmt); } else if (node is StatementList) { StatementList s = (StatementList)node; // process statements of block foreach (Statement stmt in s) Visit(stmt); } else if (node is TRY) { TRY t = (TRY)node; // begin try block IlGen.BeginExceptionBlock(); // process statements of try block foreach (Statement stmt in t.StmtList) Visit(stmt); // process catch blocks foreach (CATCH c in t.Catches) Visit(c); // end last catch block IlGen.EndExceptionBlock(); } else if (node is CATCH) { CATCH c = (CATCH)node; // retrieve type of exception to be caught Type t; SymbolTableEntry cdEntry = SymbolTable.GetInstance().LookupGlobal(c.Type, SymbolTable.CLASS); if (cdEntry == null) t = SymbolTable.GetInstance().GetExternalType(c.Type); else { CLASS_DECLARATION cd = (CLASS_DECLARATION)cdEntry.Node; t = cd.TypBld; } // end last block (which is try or catch) and start new catch block IlGen.BeginCatchBlock(t); // make the current exception available as variable under the desired name StoreToVariable(c.Variable); // process catch statements foreach (Statement stmt in c.StmtList) Visit(stmt); } else if (node is THROW) { THROW t = (THROW)node; // process throw expression Visit(t.Expr); // ensure thrown object is an exception IlGen.Emit(OpCodes.Call, PHPRuntimeConvert.GetMethod("ToException", new Type[] { typeof(object) })); IlGen.Emit(OpCodes.Throw); } else if (node is IF) { IF i = (IF)node; Label nextCheck = IlGen.DefineLabel(); Label endIf = IlGen.DefineLabel(); // process if statement Visit(i.Expr); IlGen.Emit(OpCodes.Call, PHPRuntimeConvert.GetMethod("ToBool", new Type[] { typeof(object) })); IlGen.Emit(OpCodes.Brfalse, nextCheck); Visit(i.Stmt); IlGen.Emit(OpCodes.Br, endIf); IlGen.MarkLabel(nextCheck); // process elseif statements foreach (ELSEIF e in i.ElseifList) { //Visit(e); ELSEIF ei = (ELSEIF)node; Label nextCheck2 = IlGen.DefineLabel(); // process else statement Visit(ei.Expr); IlGen.Emit(OpCodes.Call, PHPRuntimeConvert.GetMethod("ToBool", new Type[] { typeof(object) })); IlGen.Emit(OpCodes.Brfalse, nextCheck2); Visit(ei.Stmt); IlGen.Emit(OpCodes.Br, endIf); IlGen.MarkLabel(nextCheck2); } // process else statement Visit(i.ElseStmt); // done IlGen.MarkLabel(endIf); endIf = IlGen.DefineLabel(); } else if (node is WHILE) { WHILE w = (WHILE)node; Label enterLoop = IlGen.DefineLabel(); Label exitLoop = IlGen.DefineLabel(); EnterLoopLabels.Add(enterLoop); ExitLoopLabels.Add(exitLoop); IlGen.MarkLabel(enterLoop); Visit(w.Expr); IlGen.Emit(OpCodes.Call, PHPRuntimeConvert.GetMethod("ToBool", new Type[] { typeof(object) })); IlGen.Emit(OpCodes.Brfalse, exitLoop); Visit(w.Stmt); IlGen.Emit(OpCodes.Br, enterLoop); IlGen.MarkLabel(exitLoop); EnterLoopLabels.RemoveAt(EnterLoopLabels.Count - 1); ExitLoopLabels.RemoveAt(ExitLoopLabels.Count - 1); } else if (node is DO) { DO d = (DO)node; Label enterLoop = IlGen.DefineLabel(); Label exitLoop = IlGen.DefineLabel(); EnterLoopLabels.Add(enterLoop); ExitLoopLabels.Add(exitLoop); IlGen.MarkLabel(enterLoop); Visit(d.Stmt); Visit(d.Expr); IlGen.Emit(OpCodes.Call, PHPRuntimeConvert.GetMethod("ToBool", new Type[] { typeof(object) })); IlGen.Emit(OpCodes.Brfalse, exitLoop); IlGen.Emit(OpCodes.Br, enterLoop); IlGen.MarkLabel(exitLoop); EnterLoopLabels.RemoveAt(EnterLoopLabels.Count - 1); ExitLoopLabels.RemoveAt(ExitLoopLabels.Count - 1); } else if (node is FOR) { FOR f = (FOR)node; Label enterLoop = IlGen.DefineLabel(); Label exitLoop = IlGen.DefineLabel(); EnterLoopLabels.Add(enterLoop); ExitLoopLabels.Add(exitLoop); foreach (Expression expr in f.ExprList1) { Visit(expr); // pop to treat for expression(s) 1 as statement(s) IlGen.Emit(OpCodes.Pop); } IlGen.MarkLabel(enterLoop); IEnumerator ienum = f.ExprList2.GetEnumerator(); bool hasMore = ienum.MoveNext(); while (hasMore) { Visit((Expression)ienum.Current); hasMore = ienum.MoveNext(); if (hasMore) // if more than one expression 2, pop all except last one to only decide on last one for jumping IlGen.Emit(OpCodes.Pop); } // if for expression 2 is empty, the loop should run indefinitely if (f.ExprList2.Count() > 0) { IlGen.Emit(OpCodes.Call, PHPRuntimeConvert.GetMethod("ToBool", new Type[] { typeof(object) })); IlGen.Emit(OpCodes.Brfalse, exitLoop); } Visit(f.Stmt); foreach (Expression expr in f.ExprList3) { Visit(expr); // pop to treat for expression(s) 3 as statement(s) IlGen.Emit(OpCodes.Pop); } IlGen.Emit(OpCodes.Br, enterLoop); IlGen.MarkLabel(exitLoop); EnterLoopLabels.RemoveAt(EnterLoopLabels.Count - 1); ExitLoopLabels.RemoveAt(ExitLoopLabels.Count - 1); } else if (node is FOREACH) { FOREACH f = (FOREACH)node; if (f.Key != null && f.Key is FUNCTION_CALL) Report.Error(408, f.Key.Line, f.Key.Column); if (f.Value is FUNCTION_CALL) Report.Error(408, f.Value.Line, f.Value.Column); Label enterLoop = IlGen.DefineLabel(); Label exitLoop = IlGen.DefineLabel(); EnterLoopLabels.Add(enterLoop); ExitLoopLabels.Add(exitLoop); Label warn = IlGen.DefineLabel(); // push array reference Visit(f.Array); // if type is not array, throw exception IlGen.Emit(OpCodes.Dup); IlGen.Emit(OpCodes.Call, PHPRuntimeCore.GetMethod("EnsureArray", new Type[] { typeof(object) })); // if array is not referenced, clone to work on a copy if (!(f.Value is REFERENCE)) IlGen.Emit(OpCodes.Call, PHPRuntimeOperators.GetMethod("Clone", new Type[] { typeof(object) })); // declare key and value variable string valueName; if (f.Value is VARIABLE) valueName = ((VARIABLE)f.Value).Name; else valueName = ((VARIABLE)((REFERENCE)f.Value).Expr).Name; if (f.Key != null) { IlGen.Emit(OpCodes.Ldnull); StoreToVariable(((VARIABLE)f.Key).Name); } IlGen.Emit(OpCodes.Ldnull); StoreToVariable(valueName); // reset public array pointer IlGen.Emit(OpCodes.Dup); IlGen.Emit(OpCodes.Callvirt, PHPArray.GetMethod("Reset", Type.EmptyTypes)); IlGen.Emit(OpCodes.Pop); // enter loop IlGen.MarkLabel(enterLoop); // check if public array pointer is inside the array IlGen.Emit(OpCodes.Dup); IlGen.Emit(OpCodes.Callvirt, PHPArray.GetMethod("CurrentIsValid", Type.EmptyTypes)); // if not, exit loop IlGen.Emit(OpCodes.Brfalse, exitLoop); // if key variable declared, push current key of array and store to key variable if (f.Key != null) { IlGen.Emit(OpCodes.Dup); IlGen.Emit(OpCodes.Callvirt, PHPArray.GetMethod("Key", Type.EmptyTypes)); StoreToVariable(((VARIABLE)f.Key).Name); } // push current value of array and store to value variable IlGen.Emit(OpCodes.Dup); IlGen.Emit(OpCodes.Callvirt, PHPArray.GetMethod("Current", Type.EmptyTypes)); StoreToVariable(valueName); // process foreach statement Visit(f.Stmt); // load value variable and store as current value of array IlGen.Emit(OpCodes.Dup); IlGen.Emit(OpCodes.Dup); IlGen.Emit(OpCodes.Callvirt, PHPArray.GetMethod("Key", Type.EmptyTypes)); LoadFromVariable(valueName); IlGen.Emit(OpCodes.Callvirt, PHPArray.GetMethod("Append", new Type[] { typeof(object), typeof(object) })); // advance public array pointer IlGen.Emit(OpCodes.Dup); IlGen.Emit(OpCodes.Callvirt, PHPArray.GetMethod("Next", Type.EmptyTypes)); IlGen.Emit(OpCodes.Pop); // and reenter loop IlGen.Emit(OpCodes.Br, enterLoop); // pop array reference IlGen.MarkLabel(exitLoop); IlGen.Emit(OpCodes.Pop); EnterLoopLabels.RemoveAt(EnterLoopLabels.Count - 1); ExitLoopLabels.RemoveAt(ExitLoopLabels.Count - 1); } else if (node is SWITCH) { SWITCH s = (SWITCH)node; Label enterLoop = IlGen.DefineLabel(); Label exitLoop = IlGen.DefineLabel(); EnterLoopLabels.Add(enterLoop); ExitLoopLabels.Add(exitLoop); // push switch expression and enter loop Visit(s.Expr); IlGen.MarkLabel(enterLoop); // process case and default statements foreach (ASTNode node2 in s.SwitchCaseList) { if (node2 is CASE) Visit((CASE)node2); else if (node2 is DEFAULT) Visit((DEFAULT)node2); } // done IlGen.MarkLabel(exitLoop); IlGen.Emit(OpCodes.Pop); IlGen.Emit(OpCodes.Ldc_I4_0); IlGen.Emit(OpCodes.Stsfld, PHPRuntimeCore.GetField("SwitchInProgress")); EnterLoopLabels.RemoveAt(EnterLoopLabels.Count - 1); ExitLoopLabels.RemoveAt(ExitLoopLabels.Count - 1); } else if (node is CASE) { CASE c = (CASE)node; Label processCase = IlGen.DefineLabel(); Label nextCase = IlGen.DefineLabel(); // if statements already processing, process this one as well IlGen.Emit(OpCodes.Ldsfld, PHPRuntimeCore.GetField("SwitchInProgress")); IlGen.Emit(OpCodes.Brtrue, processCase); // else if case expression doesn't equal switch expression, jump to next case IlGen.Emit(OpCodes.Dup); Visit(c.Expr); IlGen.Emit(OpCodes.Call, PHPRuntimeOperators.GetMethod("IsEqual", new Type[] { typeof(object), typeof(object) })); IlGen.Emit(OpCodes.Call, PHPRuntimeConvert.GetMethod("ToBool", new Type[] { typeof(object) })); IlGen.Emit(OpCodes.Brfalse, nextCase); // else start processing switch statements IlGen.Emit(OpCodes.Ldc_I4_1); IlGen.Emit(OpCodes.Stsfld, PHPRuntimeCore.GetField("SwitchInProgress")); // process case statement IlGen.MarkLabel(processCase); Visit(c.Stmt); // mark start of next case IlGen.MarkLabel(nextCase); } else if (node is DEFAULT) { DEFAULT d = (DEFAULT)node; // process default statement IlGen.Emit(OpCodes.Ldc_I4_1); IlGen.Emit(OpCodes.Stsfld, PHPRuntimeCore.GetField("SwitchInProgress")); Visit(d.Stmt); } else if (node is BREAK) { BREAK b = (BREAK)node; // if no number of levels to jump was performed jump out of current loop if (b.Expr == null) { Label exitLoop = (Label)ExitLoopLabels[ExitLoopLabels.Count - 1]; IlGen.Emit(OpCodes.Br, exitLoop); } // otherwise jump out the number of levels desired else { // create jump table for each level Label[] jumpTable = new Label[ExitLoopLabels.Count + 1]; jumpTable[0] = (Label)ExitLoopLabels[ExitLoopLabels.Count - 1]; for (int i = 1; i <= ExitLoopLabels.Count; i++) jumpTable[i] = (Label)ExitLoopLabels[ExitLoopLabels.Count - i]; // retrieve number of levels desired Visit(b.Expr); IlGen.Emit(OpCodes.Call, PHPRuntimeConvert.GetMethod("ToInt", new Type[] { typeof(object) })); // if a negative number of levels is provided, replace by 0 Label skipReplace = IlGen.DefineLabel(); IlGen.Emit(OpCodes.Dup); IlGen.Emit(OpCodes.Ldc_I4_0); IlGen.Emit(OpCodes.Bgt, skipReplace); IlGen.Emit(OpCodes.Pop); IlGen.Emit(OpCodes.Ldc_I4_0); IlGen.MarkLabel(skipReplace); // jump to the label desired IlGen.Emit(OpCodes.Switch, jumpTable); // if no jump was performed an invalid jump was requested IlGen.Emit(OpCodes.Ldc_I4, 504); IlGen.Emit(OpCodes.Call, mPHPRuntime.GetType("PHP.Report").GetMethod("Error", new Type[] { typeof(int) })); } } else if (node is CONTINUE) { CONTINUE c = (CONTINUE)node; // if no number of levels to jump was performed jump out of current loop if (c.Expr == null) { Label enterLoop = (Label)EnterLoopLabels[EnterLoopLabels.Count - 1]; IlGen.Emit(OpCodes.Br, enterLoop); } // otherwise jump out the number of levels desired else { // create jump table for each level Label[] jumpTable = new Label[EnterLoopLabels.Count + 1]; jumpTable[0] = (Label)EnterLoopLabels[EnterLoopLabels.Count - 1]; for (int i = 1; i <= EnterLoopLabels.Count; i++) jumpTable[i] = (Label)EnterLoopLabels[EnterLoopLabels.Count - i]; // retrieve number of levels desired Visit(c.Expr); IlGen.Emit(OpCodes.Call, PHPRuntimeConvert.GetMethod("ToInt", new Type[] { typeof(object) })); // if a negative number of levels is provided, replace by 0 Label skipReplace = IlGen.DefineLabel(); IlGen.Emit(OpCodes.Dup); IlGen.Emit(OpCodes.Ldc_I4_0); IlGen.Emit(OpCodes.Bgt, skipReplace); IlGen.Emit(OpCodes.Pop); IlGen.Emit(OpCodes.Ldc_I4_0); IlGen.MarkLabel(skipReplace); // jump to the label desired IlGen.Emit(OpCodes.Switch, jumpTable); // if no jump was performed an invalid jump was requested IlGen.Emit(OpCodes.Ldc_I4, 504); IlGen.Emit(OpCodes.Call, mPHPRuntime.GetType("PHP.Report").GetMethod("Error", new Type[] { typeof(int) })); } } else if (node is RETURN) { RETURN r = (RETURN)node; if (FD.Name != "__MAIN" && FD.Name != "__construct" && FD.Name != "__constructStatic") { // if no return value specified, use null as return value; otherwise use return value specified if (r.Expr == null) IlGen.Emit(OpCodes.Ldnull); else { // ensure a reference is returned if one is required if (FD.ReturnByReference) Visit(new REFERENCE(r.Expr, r.Line, r.Column)); // if no reference should be returned, dereference else { Visit(r.Expr); IlGen.Emit(OpCodes.Call, PHPRuntimeCore.GetMethod("DeReference", new Type[] { typeof(object) })); } } } IlGen.Emit(OpCodes.Ret); } else if (node is UNSET) { UNSET u = (UNSET)node; // unset variables for (int i = 0; i < u.VarList.Count(); i++) { if (u.VarList.Get(i) is FUNCTION_CALL) Report.Error(408, u.VarList.Get(i).Line, u.VarList.Get(i).Column); VARIABLE var = (VARIABLE)u.VarList.Get(i); // regular variable, so unset if (var.Offset == null) { IlGen.Emit(OpCodes.Ldstr, var.Name); IlGen.Emit(OpCodes.Call, PHPRuntimeCore.GetMethod("UnsetVariable", new Type[] { typeof(object) })); } // array item, so remove from array else if (var.Offset.Kind == OFFSET.SQUARE) { LoadFromVariable(var.Name); // convert to Array (in case the variable was unset) IlGen.Emit(OpCodes.Call, PHPRuntimeConvert.GetMethod("ToArray", new Type[] { typeof(object) })); if (var.Offset.Value == null) IlGen.Emit(OpCodes.Ldnull); else Visit(var.Offset); IlGen.Emit(OpCodes.Callvirt, PHPArray.GetMethod("Remove", new Type[] { typeof(object) })); } } } else if (node is ECHO) { ECHO e = (ECHO)node; foreach (Expression e2 in e.ExprList) { Visit(e2); IlGen.Emit(OpCodes.Call, PHPRuntimeOperators.GetMethod("Echo", new Type[] { typeof(object) })); } } else if (node is EXPRESSION_AS_STATEMENT) { EXPRESSION_AS_STATEMENT eas = (EXPRESSION_AS_STATEMENT)node; Visit(eas.Expr); IlGen.Emit(OpCodes.Pop); } else if (node is VARIABLE) { VARIABLE var = (VARIABLE)node; // get desired variable value LoadFromVariable(var.Name); // 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, PHPRuntimeCore.GetMethod("Offset", new Type[] { typeof(object), typeof(object), typeof(int) })); } } } else if (node is REFERENCE) { REFERENCE r = (REFERENCE)node; // process enclosed variable if (r.Expr is VARIABLE) { VARIABLE var = (VARIABLE)r.Expr; // if there is no offset, just reference to that variable if (var.Offset == null) { IlGen.Emit(OpCodes.Ldstr, var.Name); IlGen.Emit(OpCodes.Call, PHPReference.GetMethod("CreateReferenceToLocal", new Type[] { typeof(object) })); } // if there is an array offset, load array and store to specified place of that array else if (var.Offset.Kind == OFFSET.SQUARE) { LoadFromVariable(var.Name); // if array loaded is null, create a new one and store Label skip = IlGen.DefineLabel(); IlGen.Emit(OpCodes.Brtrue, skip); IlGen.Emit(OpCodes.Newobj, PHPArray.GetConstructor(Type.EmptyTypes)); StoreToVariable(var.Name); IlGen.MarkLabel(skip); LoadFromVariable(var.Name); // if no offset available, append new key with null value and reference to that key if (var.Offset.Value == null) { IlGen.Emit(OpCodes.Ldnull); IlGen.Emit(OpCodes.Call, PHPReference.GetMethod("CreateReference", new Type[] { typeof(object), typeof(object) })); } // otherwise reference to the key desired else { Visit(var.Offset); IlGen.Emit(OpCodes.Call, PHPReference.GetMethod("CreateReference", new Type[] { typeof(object), typeof(object) })); } } } // process enclosed function call else if (r.Expr is FUNCTION_CALL) { FUNCTION_CALL fc = (FUNCTION_CALL)r.Expr; // look in global scope as calls to instance or static methods in user defined classes are handled by object operator or paamayim nekudotayim SymbolTableEntry entry = CD__MAIN.Scope.Lookup(fc.FunctionName, SymbolTable.FUNCTION); FUNCTION_DECLARATION fd = (FUNCTION_DECLARATION)entry.Node; if (!fd.ReturnByReference) Report.Error(305, fd.Name, fc.Line, fc.Column); // get returned reference Visit(fc); } // process enclosed pyymayim nedudotayim else if (r.Expr is PAAMAYIM_NEKUDOTAYIM) { PAAMAYIM_NEKUDOTAYIM pn = (PAAMAYIM_NEKUDOTAYIM)r.Expr; LoadFromPaamayimNekudotayimAsReference(pn); } // process enclosed object operator else if (r.Expr is OBJECT_OPERATOR) { OBJECT_OPERATOR oo = (OBJECT_OPERATOR)r.Expr; LoadFromObjectOperatorAsReference(oo); } // other expressions cannot be referenced else Report.Error(306, r.Line, r.Column); } else if (node is CONSTANT) { CONSTANT c = (CONSTANT)node; // check if a null is desired if (c.Name.ToLower() == "null") IlGen.Emit(OpCodes.Ldnull); else { // check if a function pointer is desired SymbolTableEntry tmpFDEntry = SymbolTable.GetInstance().Lookup(c.Name, SymbolTable.FUNCTION); if (tmpFDEntry != null) { FUNCTION_DECLARATION tmpFD = (FUNCTION_DECLARATION)tmpFDEntry.Node; IlGen.Emit(OpCodes.Ldftn, tmpFD.MthBld); IlGen.Emit(OpCodes.Box, typeof(IntPtr)); } // push constant value else { IlGen.Emit(OpCodes.Ldstr, c.Name); IlGen.Emit(OpCodes.Call, PHPRuntimeCore.GetMethod("GetConstant", new Type[] { typeof(object) })); } } } else if (node is OFFSET) { OFFSET o = (OFFSET)node; // process offset expression Visit(o.Value); } else if (node is FUNCTION_CALL) { FUNCTION_CALL fc = (FUNCTION_CALL)node; // check if a predefined function is invoked string functionName = fc.FunctionName.ToLower(); if (predefinedFunctions.ContainsKey(functionName)) { int numberOfParameters = (int)predefinedFunctions[functionName]; PushParameters(fc.Parameters, numberOfParameters); Type[] parameterTypes = new Type[numberOfParameters]; for (int i = 0; i < numberOfParameters; i++) parameterTypes[i] = typeof(object); IlGen.Emit(OpCodes.Call, PHPRuntimeLang.GetMethod(functionName, parameterTypes)); } // otherwise call user defined function else { // look in global scope as calls to instance or static methods in user defined classes are handled by object operator or paamayim nekudotayim SymbolTableEntry entry = CD__MAIN.Scope.Lookup(fc.FunctionName, SymbolTable.FUNCTION); if (entry == null) Report.Error(212, fc.FunctionName, fc.Line, fc.Column); FUNCTION_DECLARATION fd = (FUNCTION_DECLARATION)entry.Node; // pass parameters (only as many as needed) int parametersPassedActually = (int)Math.Min(fd.Parameters.Count, fc.Parameters.Count()); for (int i = 0; i < parametersPassedActually; i++) { PARAMETER_DECLARATION pd = (PARAMETER_DECLARATION)fd.Parameters[i]; Expression expr = (Expression)fc.Parameters.Get(i); // ensure a reference is passed, if a reference is required if (pd.ByReference && !(expr is REFERENCE)) expr = new REFERENCE(expr, expr.Line, expr.Column); // process parameter Visit(expr); } // if less parameters actually passed then necessary, pass null references instead for (int i = parametersPassedActually; i < fd.Parameters.Count; i++) { PARAMETER_DECLARATION pd = (PARAMETER_DECLARATION)fd.Parameters[i]; if (pd.DefaultValue == null) Report.Warn(300, System.Convert.ToString(i + 1), fc.Line, fc.Column); IlGen.Emit(OpCodes.Ldnull); } // add function call to call trace IlGen.Emit(OpCodes.Ldstr, CD.Name + "->" + fc.FunctionName); IlGen.Emit(OpCodes.Call, PHPRuntimeCore.GetMethod("AddFunctionCallToTrace", new Type[] { typeof(string) })); // if an object operator in progress, call instance function if (ObjectOperatorInProgress) IlGen.Emit(OpCodes.Call, fd.MthBld); // else call static function else IlGen.Emit(OpCodes.Call, fd.MthBld); // remove function call from call trace IlGen.Emit(OpCodes.Call, PHPRuntimeCore.GetMethod("RemoveFunctionCallFromTrace", Type.EmptyTypes)); } } else if (node is NEW) { NEW n = (NEW)node; SymbolTableEntry cdEntry = SymbolTable.GetInstance().LookupGlobal(n.Type, SymbolTable.CLASS); // type is defined in an referenced assembly if (cdEntry == null) { Type t = SymbolTable.GetInstance().GetExternalType(n.Type); IlGen.Emit(OpCodes.Ldstr, t.AssemblyQualifiedName); IlGen.Emit(OpCodes.Newobj, typeof(ArrayList).GetConstructor(Type.EmptyTypes)); foreach (Expression expr in n.CtorArgs) { IlGen.Emit(OpCodes.Dup); Visit(expr); IlGen.Emit(OpCodes.Call, typeof(ArrayList).GetMethod("Add", new Type[] { typeof(object) })); IlGen.Emit(OpCodes.Pop); } IlGen.Emit(OpCodes.Call, PHPRuntimeCore.GetMethod("InvokeExternalConstructor", new Type[] { typeof(string), typeof(ArrayList) })); } // type is defined in script else { CLASS_DECLARATION cd = (CLASS_DECLARATION)cdEntry.Node; // ensure no instance of an abstract class is created if (cd.Modifier == Modifiers.ABSTRACT) Report.Error(409, cd.Name, n.Line, n.Column); SymbolTableEntry ctorEntry = cd.Scope.Lookup("__construct", SymbolTable.FUNCTION); FUNCTION_DECLARATION ctorDecl = (FUNCTION_DECLARATION)ctorEntry.Node; // pass parameters (only as many as needed) int parametersPassedActually = (int)Math.Min(ctorDecl.Parameters.Count, n.CtorArgs.Count()); for (int i = 0; i < parametersPassedActually; i++) { PARAMETER_DECLARATION pd = (PARAMETER_DECLARATION)ctorDecl.Parameters[i]; Expression expr = (Expression)n.CtorArgs.Get(i); // ensure a reference is passed, if a reference is required if (pd.ByReference && !(expr is REFERENCE)) expr = new REFERENCE(expr, expr.Line, expr.Column); // process parameter Visit(expr); } // if less parameters actually passed then necessary, pass null references instead for (int i = parametersPassedActually; i < ctorDecl.Parameters.Count; i++) { PARAMETER_DECLARATION pd = (PARAMETER_DECLARATION)ctorDecl.Parameters[i]; if (pd.DefaultValue == null) Report.Warn(300, System.Convert.ToString(i + 1), n.Line, n.Column); IlGen.Emit(OpCodes.Ldnull); } // add constructor call to call trace IlGen.Emit(OpCodes.Ldstr, n.Type + "->__construct"); IlGen.Emit(OpCodes.Call, PHPRuntimeCore.GetMethod("AddFunctionCallToTrace", new Type[] { typeof(string) })); // call constructor IlGen.Emit(OpCodes.Newobj, ctorDecl.CtrBld); // remove constructor call from call trace IlGen.Emit(OpCodes.Call, PHPRuntimeCore.GetMethod("RemoveFunctionCallFromTrace", Type.EmptyTypes)); } } else if (node is INSTANCEOF) { INSTANCEOF i = (INSTANCEOF)node; Visit(i.Expr); IlGen.Emit(OpCodes.Ldstr, i.Type); IlGen.Emit(OpCodes.Ldc_I4_0); IlGen.Emit(OpCodes.Ldc_I4_1); IlGen.Emit(OpCodes.Call, typeof(Type).GetMethod("GetType", new Type[] { typeof(string), typeof(bool), typeof(bool) })); IlGen.Emit(OpCodes.Call, PHPRuntimeOperators.GetMethod("Instanceof", new Type[] { typeof(object), typeof(Type) })); } else if (node is ARRAY) { ARRAY a = (ARRAY)node; // create new empty array IlGen.Emit(OpCodes.Newobj, PHPArray.GetConstructor(Type.EmptyTypes)); // process array pairs foreach (ARRAY_PAIR ap in a.ArrayPairList) { // duplicate reference to array (in order not to loose it after append) IlGen.Emit(OpCodes.Dup); // process key if (ap.Key == null) IlGen.Emit(OpCodes.Ldnull); else Visit(ap.Key); // process value Visit(ap.Value); IlGen.Emit(OpCodes.Callvirt, PHPArray.GetMethod("Append", new Type[] { typeof(object), typeof(object) })); } } else if (node is INC) { INC i = (INC)node; if (i.Expr is FUNCTION_CALL) Report.Error(408, i.Expr.Line, i.Expr.Column); LoadFromVariable(((VARIABLE)i.Expr).Name); if (i.Kind == 1) IlGen.Emit(OpCodes.Dup); IlGen.Emit(OpCodes.Ldc_I4_1); IlGen.Emit(OpCodes.Box, typeof(int)); IlGen.Emit(OpCodes.Call, PHPRuntimeOperators.GetMethod("Plus", new Type[] { typeof(object), typeof(object) })); if (i.Kind == 0) IlGen.Emit(OpCodes.Dup); StoreToVariable(((VARIABLE)i.Expr).Name); } else if (node is DEC) { DEC d = (DEC)node; if (d.Expr is FUNCTION_CALL) Report.Error(408, d.Expr.Line, d.Expr.Column); LoadFromVariable(((VARIABLE)d.Expr).Name); if (d.Kind == 1) IlGen.Emit(OpCodes.Dup); IlGen.Emit(OpCodes.Ldc_I4_1); IlGen.Emit(OpCodes.Box, typeof(int)); IlGen.Emit(OpCodes.Call, PHPRuntimeOperators.GetMethod("Minus", new Type[] { typeof(object), typeof(object) })); if (d.Kind == 0) IlGen.Emit(OpCodes.Dup); StoreToVariable(((VARIABLE)d.Expr).Name); } else if (node is BOOLEAN_NOT) { BOOLEAN_NOT bn = (BOOLEAN_NOT)node; Visit(bn.Expr); IlGen.Emit(OpCodes.Call, PHPRuntimeOperators.GetMethod("BooleanNot", new Type[] { typeof(object) })); } else if (node is NOT) { NOT n = (NOT)node; Visit(n.Expr); IlGen.Emit(OpCodes.Call, PHPRuntimeOperators.GetMethod("Not", new Type[] { typeof(object) })); } else if (node is EXIT) { EXIT e = (EXIT)node; if (e.Expr == null) IlGen.Emit(OpCodes.Ldnull); else Visit(e.Expr); IlGen.Emit(OpCodes.Call, PHPRuntimeOperators.GetMethod("Exit", new Type[] { typeof(object) })); } else if (node is PRINT) { PRINT p = (PRINT)node; Visit(p.Expr); IlGen.Emit(OpCodes.Call, PHPRuntimeOperators.GetMethod("Print", new Type[] { typeof(object) })); } else if (node is BOOL_CAST) { BOOL_CAST bc = (BOOL_CAST)node; Visit(bc.Expr); IlGen.Emit(OpCodes.Call, PHPRuntimeConvert.GetMethod("ToBool", new Type[] { typeof(object) })); } else if (node is INT_CAST) { INT_CAST ic = (INT_CAST)node; Visit(ic.Expr); IlGen.Emit(OpCodes.Call, PHPRuntimeConvert.GetMethod("ToInt", new Type[] { typeof(object) })); } else if (node is DOUBLE_CAST) { DOUBLE_CAST dc = (DOUBLE_CAST)node; Visit(dc.Expr); IlGen.Emit(OpCodes.Call, PHPRuntimeConvert.GetMethod("ToDouble", new Type[] { typeof(object) })); } else if (node is STRING_CAST) { STRING_CAST sc = (STRING_CAST)node; Visit(sc.Expr); IlGen.Emit(OpCodes.Call, PHPRuntimeConvert.GetMethod("ToString", new Type[] { typeof(object) })); } else if (node is ARRAY_CAST) { ARRAY_CAST ac = (ARRAY_CAST)node; Visit(ac.Expr); IlGen.Emit(OpCodes.Call, PHPRuntimeConvert.GetMethod("ToArray", new Type[] { typeof(object) })); } else if (node is OBJECT_CAST) { OBJECT_CAST oc = (OBJECT_CAST)node; Visit(oc.Expr); IlGen.Emit(OpCodes.Call, PHPRuntimeConvert.GetMethod("ToObject", new Type[] { typeof(object) })); } else if (node is CLONE) { CLONE c = (CLONE)node; Visit(c.Expr); IlGen.Emit(OpCodes.Call, PHPRuntimeOperators.GetMethod("Clone", new Type[] { typeof(object) })); } else if (node is PAAMAYIM_NEKUDOTAYIM) { PAAMAYIM_NEKUDOTAYIM pn = (PAAMAYIM_NEKUDOTAYIM)node; LoadFromPaamayimNekudotayim(pn); } else if (node is OBJECT_OPERATOR) { OBJECT_OPERATOR oo = (OBJECT_OPERATOR)node; LoadFromObjectOperator(oo); } else if (node is EQUALS) { EQUALS e = (EQUALS)node; if (e.Expr1 is FUNCTION_CALL) Report.Error(408, e.Expr1.Line, e.Expr1.Column); // push assigned value as result of this equals expression Visit(e.Expr2); // if no reference is desired, dereference in case a reference is evaluated if (!(e.Expr2 is REFERENCE)) IlGen.Emit(OpCodes.Call, PHPRuntimeCore.GetMethod("DeReference", new Type[] { typeof(object) })); // store to an object operator expression if (e.Expr1 is OBJECT_OPERATOR) StoreToObjectOperator((OBJECT_OPERATOR)e.Expr1, e.Expr2); // store to an object operator expression else if (e.Expr1 is PAAMAYIM_NEKUDOTAYIM) StoreToPaamayimNekudotayim((PAAMAYIM_NEKUDOTAYIM)e.Expr1, e.Expr2); // store to a variable expression else if (e.Expr1 is VARIABLE) { VARIABLE var = (VARIABLE)e.Expr1; // if there is no offset, just store to that variable if (var.Offset == null) { IlGen.Emit(OpCodes.Dup); StoreToVariable(var.Name); } // if there is an array offset, load array and store to specified place of that array else if (var.Offset.Kind == OFFSET.SQUARE) { LoadFromVariable(var.Name); // if array loaded is null, create a new one and store Label skip = IlGen.DefineLabel(); IlGen.Emit(OpCodes.Brtrue, skip); IlGen.Emit(OpCodes.Newobj, PHPArray.GetConstructor(Type.EmptyTypes)); StoreToVariable(var.Name); IlGen.MarkLabel(skip); LoadFromVariable(var.Name); // convert to Array (in case the variable was unset) IlGen.Emit(OpCodes.Call, PHPRuntimeConvert.GetMethod("ToArray", new Type[] { typeof(object) })); // if no offset available, append without user defined key if (var.Offset.Value == null) { Visit(e.Expr2); IlGen.Emit(OpCodes.Callvirt, PHPArray.GetMethod("Append", new Type[] { typeof(object) })); } // otherwise use user defined key else { Visit(var.Offset.Value); Visit(e.Expr2); IlGen.Emit(OpCodes.Callvirt, PHPArray.GetMethod("Append", new Type[] { typeof(object), typeof(object) })); } } } } else if (node is PLUS_EQUAL) { PLUS_EQUAL pe = (PLUS_EQUAL)node; // treat as if it was an EQUALS node Visit(new EQUALS(pe.Expr1, new PLUS(pe.Expr1, pe.Expr2, pe.Line, pe.Column), pe.Line, pe.Column)); } else if (node is MINUS_EQUAL) { MINUS_EQUAL me = (MINUS_EQUAL)node; // treat as if it was an EQUALS node Visit(new EQUALS(me.Expr1, new MINUS(me.Expr1, me.Expr2, me.Line, me.Column), me.Line, me.Column)); } else if (node is MUL_EQUAL) { MUL_EQUAL me = (MUL_EQUAL)node; // treat as if it was an EQUALS node Visit(new EQUALS(me.Expr1, new TIMES(me.Expr1, me.Expr2, me.Line, me.Column), me.Line, me.Column)); } else if (node is DIV_EQUAL) { DIV_EQUAL de = (DIV_EQUAL)node; // treat as if it was an EQUALS node Visit(new EQUALS(de.Expr1, new DIV(de.Expr1, de.Expr2, de.Line, de.Column), de.Line, de.Column)); } else if (node is CONCAT_EQUAL) { CONCAT_EQUAL ce = (CONCAT_EQUAL)node; // treat as if it was an EQUALS node Visit(new EQUALS(ce.Expr1, new CONCAT(ce.Expr1, ce.Expr2, ce.Line, ce.Column), ce.Line, ce.Column)); } else if (node is MOD_EQUAL) { MOD_EQUAL me = (MOD_EQUAL)node; // treat as if it was an EQUALS node Visit(new EQUALS(me.Expr1, new MOD(me.Expr1, me.Expr2, me.Line, me.Column), me.Line, me.Column)); } else if (node is AND_EQUAL) { AND_EQUAL ae = (AND_EQUAL)node; // treat as if it was an EQUALS node Visit(new EQUALS(ae.Expr1, new AND(ae.Expr1, ae.Expr2, ae.Line, ae.Column), ae.Line, ae.Column)); } else if (node is OR_EQUAL) { OR_EQUAL oe = (OR_EQUAL)node; // treat as if it was an EQUALS node Visit(new EQUALS(oe.Expr1, new OR(oe.Expr1, oe.Expr2, oe.Line, oe.Column), oe.Line, oe.Column)); } else if (node is XOR_EQUAL) { XOR_EQUAL xe = (XOR_EQUAL)node; // treat as if it was an EQUALS node Visit(new EQUALS(xe.Expr1, new XOR(xe.Expr1, xe.Expr2, xe.Line, xe.Column), xe.Line, xe.Column)); } else if (node is SL_EQUAL) { SL_EQUAL se = (SL_EQUAL)node; // treat as if it was an EQUALS node Visit(new EQUALS(se.Expr1, new SL(se.Expr1, se.Expr2, se.Line, se.Column), se.Line, se.Column)); } else if (node is SR_EQUAL) { SR_EQUAL se = (SR_EQUAL)node; // treat as if it was an EQUALS node Visit(new EQUALS(se.Expr1, new SR(se.Expr1, se.Expr2, se.Line, se.Column), se.Line, se.Column)); } else if (node is BOOLEAN_AND) { BOOLEAN_AND ba = (BOOLEAN_AND)node; Visit(ba.Expr1); Visit(ba.Expr2); IlGen.Emit(OpCodes.Call, PHPRuntimeOperators.GetMethod("BooleanAnd", new Type[] { typeof(object), typeof(object) })); } else if (node is BOOLEAN_OR) { BOOLEAN_OR bo = (BOOLEAN_OR)node; Visit(bo.Expr1); Visit(bo.Expr2); IlGen.Emit(OpCodes.Call, PHPRuntimeOperators.GetMethod("BooleanOr", new Type[] { typeof(object), typeof(object) })); } else if (node is LOGICAL_AND) { LOGICAL_AND la = (LOGICAL_AND)node; Visit(la.Expr1); Visit(la.Expr2); IlGen.Emit(OpCodes.Call, PHPRuntimeOperators.GetMethod("LogicalAnd", new Type[] { typeof(object), typeof(object) })); } else if (node is LOGICAL_OR) { LOGICAL_OR lo = (LOGICAL_OR)node; Visit(lo.Expr1); Visit(lo.Expr2); IlGen.Emit(OpCodes.Call, PHPRuntimeOperators.GetMethod("LogicalOr", new Type[] { typeof(object), typeof(object) })); } else if (node is LOGICAL_XOR) { LOGICAL_XOR lx = (LOGICAL_XOR)node; Visit(lx.Expr1); Visit(lx.Expr2); IlGen.Emit(OpCodes.Call, PHPRuntimeOperators.GetMethod("LogicalXor", new Type[] { typeof(object), typeof(object) })); } else if (node is CONCAT) { CONCAT c = (CONCAT)node; Visit(c.Expr1); Visit(c.Expr2); IlGen.Emit(OpCodes.Call, PHPRuntimeOperators.GetMethod("Concat", new Type[] { typeof(object), typeof(object) })); } else if (node is PLUS) { PLUS p = (PLUS)node; Visit(p.Expr1); Visit(p.Expr2); IlGen.Emit(OpCodes.Call, PHPRuntimeOperators.GetMethod("Plus", new Type[] { typeof(object), typeof(object) })); } else if (node is MINUS) { MINUS m = (MINUS)node; Visit(m.Expr1); Visit(m.Expr2); IlGen.Emit(OpCodes.Call, PHPRuntimeOperators.GetMethod("Minus", new Type[] { typeof(object), typeof(object) })); } else if (node is TIMES) { TIMES t = (TIMES)node; Visit(t.Expr1); Visit(t.Expr2); IlGen.Emit(OpCodes.Call, PHPRuntimeOperators.GetMethod("Times", new Type[] { typeof(object), typeof(object) })); } else if (node is DIV) { DIV d = (DIV)node; Visit(d.Expr1); Visit(d.Expr2); IlGen.Emit(OpCodes.Call, PHPRuntimeOperators.GetMethod("Div", new Type[] { typeof(object), typeof(object) })); } else if (node is MOD) { MOD m = (MOD)node; Visit(m.Expr1); Visit(m.Expr2); IlGen.Emit(OpCodes.Call, PHPRuntimeOperators.GetMethod("Mod", new Type[] { typeof(object), typeof(object) })); } else if (node is AND) { AND a = (AND)node; Visit(a.Expr1); Visit(a.Expr2); IlGen.Emit(OpCodes.Call, PHPRuntimeOperators.GetMethod("And", new Type[] { typeof(object), typeof(object) })); } else if (node is OR) { OR o = (OR)node; Visit(o.Expr1); Visit(o.Expr2); IlGen.Emit(OpCodes.Call, PHPRuntimeOperators.GetMethod("Or", new Type[] { typeof(object), typeof(object) })); } else if (node is XOR) { XOR x = (XOR)node; Visit(x.Expr1); Visit(x.Expr2); IlGen.Emit(OpCodes.Call, PHPRuntimeOperators.GetMethod("Xor", new Type[] { typeof(object), typeof(object) })); } else if (node is SL) { SL s = (SL)node; Visit(s.Expr1); Visit(s.Expr2); IlGen.Emit(OpCodes.Call, PHPRuntimeOperators.GetMethod("Sl", new Type[] { typeof(object), typeof(object) })); } else if (node is SR) { SL s = (SL)node; Visit(s.Expr1); Visit(s.Expr2); IlGen.Emit(OpCodes.Call, PHPRuntimeOperators.GetMethod("Sr", new Type[] { typeof(object), typeof(object) })); } else if (node is IS_EQUAL) { IS_EQUAL ie = (IS_EQUAL)node; Visit(ie.Expr1); Visit(ie.Expr2); IlGen.Emit(OpCodes.Call, PHPRuntimeOperators.GetMethod("IsEqual", new Type[] { typeof(object), typeof(object) })); } else if (node is IS_NOT_EQUAL) { IS_NOT_EQUAL ine = (IS_NOT_EQUAL)node; Visit(ine.Expr1); Visit(ine.Expr2); IlGen.Emit(OpCodes.Call, PHPRuntimeOperators.GetMethod("IsNotEqual", new Type[] { typeof(object), typeof(object) })); } else if (node is IS_IDENTICAL) { IS_IDENTICAL ii = (IS_IDENTICAL)node; Visit(ii.Expr1); Visit(ii.Expr2); IlGen.Emit(OpCodes.Call, PHPRuntimeOperators.GetMethod("IsIdentical", new Type[] { typeof(object), typeof(object) })); } else if (node is IS_NOT_IDENTICAL) { IS_NOT_IDENTICAL ini = (IS_NOT_IDENTICAL)node; Visit(ini.Expr1); Visit(ini.Expr2); IlGen.Emit(OpCodes.Call, PHPRuntimeOperators.GetMethod("IsNotIdentical", new Type[] { typeof(object), typeof(object) })); } else if (node is LOWER) { LOWER l = (LOWER)node; Visit(l.Expr1); Visit(l.Expr2); IlGen.Emit(OpCodes.Call, PHPRuntimeOperators.GetMethod("Lower", new Type[] { typeof(object), typeof(object) })); } else if (node is IS_LOWER_OR_EQUAL) { IS_LOWER_OR_EQUAL iloe = (IS_LOWER_OR_EQUAL)node; Visit(iloe.Expr1); Visit(iloe.Expr2); IlGen.Emit(OpCodes.Call, PHPRuntimeOperators.GetMethod("IsLowerOrEqual", new Type[] { typeof(object), typeof(object) })); } else if (node is GREATER) { GREATER g = (GREATER)node; Visit(g.Expr1); Visit(g.Expr2); IlGen.Emit(OpCodes.Call, PHPRuntimeOperators.GetMethod("Greater", new Type[] { typeof(object), typeof(object) })); } else if (node is IS_GREATER_OR_EQUAL) { IS_GREATER_OR_EQUAL igoe = (IS_GREATER_OR_EQUAL)node; Visit(igoe.Expr1); Visit(igoe.Expr2); IlGen.Emit(OpCodes.Call, PHPRuntimeOperators.GetMethod("IsGreaterOrEqual", new Type[] { typeof(object), typeof(object) })); } else if (node is IF_EXPR) { IF_EXPR ie = (IF_EXPR)node; Label falseBranch = IlGen.DefineLabel(); Label mergeBranches = IlGen.DefineLabel(); Visit(ie.Expr1); IlGen.Emit(OpCodes.Call, PHPRuntimeConvert.GetMethod("ToBool", new Type[] { typeof(object) })); IlGen.Emit(OpCodes.Brfalse, falseBranch); Visit(ie.Expr2); IlGen.Emit(OpCodes.Br, mergeBranches); IlGen.MarkLabel(falseBranch); Visit(ie.Expr3); IlGen.MarkLabel(mergeBranches); } else if (node is MAGIC_CONSTANT) { MAGIC_CONSTANT mc = (MAGIC_CONSTANT)node; if (mc.Kind == MAGIC_CONSTANT.LINE) { IlGen.Emit(OpCodes.Ldc_I4, mc.Line); IlGen.Emit(OpCodes.Box, typeof(int)); } else if (mc.Kind == MAGIC_CONSTANT.FILE) IlGen.Emit(OpCodes.Ldstr, PEmitter.OutputFile.FullName); else if (mc.Kind == MAGIC_CONSTANT.CLASS) IlGen.Emit(OpCodes.Ldstr, CD.Name); else if (mc.Kind == MAGIC_CONSTANT.METHOD) { if (CD == CD__MAIN) IlGen.Emit(OpCodes.Ldstr, FD.Name); else IlGen.Emit(OpCodes.Ldstr, CD.Name + "::" + FD.Name); } else if (mc.Kind == MAGIC_CONSTANT.FUNCTION) IlGen.Emit(OpCodes.Ldstr, FD.Name); } else if (node is LNUMBER_SCALAR) { LNUMBER_SCALAR ls = (LNUMBER_SCALAR)node; IlGen.Emit(OpCodes.Ldc_I4, ls.Value); IlGen.Emit(OpCodes.Box, typeof(int)); } else if (node is DNUMBER_SCALAR) { DNUMBER_SCALAR ds = (DNUMBER_SCALAR)node; IlGen.Emit(OpCodes.Ldc_R8, ds.Value); IlGen.Emit(OpCodes.Box, typeof(double)); } else if (node is STRING_SCALAR) { STRING_SCALAR ss = (STRING_SCALAR)node; if (ss.Value.ToLower() == "true") { IlGen.Emit(OpCodes.Ldc_I4_1); IlGen.Emit(OpCodes.Box, typeof(bool)); } else if (ss.Value.ToLower() == "false") { IlGen.Emit(OpCodes.Ldc_I4_0); IlGen.Emit(OpCodes.Box, typeof(bool)); } else IlGen.Emit(OpCodes.Ldstr, ss.Value); } else if (node is SINGLE_QUOTES) { SINGLE_QUOTES sq = (SINGLE_QUOTES)node; StringBuilder result = new StringBuilder(); foreach (object o in sq.EncapsList) { if (o is string) result.Append((string)o); else if (o is VARIABLE) { result.Append('$'); result.Append(((VARIABLE)o).Name); } } IlGen.Emit(OpCodes.Ldstr, result.ToString()); } else if (node is DOUBLE_QUOTES) { DOUBLE_QUOTES dq = (DOUBLE_QUOTES)node; StringBuilder output = new StringBuilder(); bool concat = false; foreach (object o in dq.EncapsList) { if (o is string) output.Append((string)o); else { // push substring between last variable and current one and concat, if necessary if (output.Length > 0) { IlGen.Emit(OpCodes.Ldstr, output.ToString()); if (concat) IlGen.Emit(OpCodes.Call, PHPRuntimeOperators.GetMethod("Concat", new Type[] { typeof(object), typeof(object) })); concat = true; output = new StringBuilder(); } // push variable value if (o is VARIABLE) Visit((VARIABLE)o); // or push object operator result else if (o is OBJECT_OPERATOR) Visit((OBJECT_OPERATOR)o); // or push null else IlGen.Emit(OpCodes.Ldnull); // concat, if necessary if (concat) IlGen.Emit(OpCodes.Call, PHPRuntimeOperators.GetMethod("Concat", new Type[] { typeof(object), typeof(object) })); concat = true; } } // push substring after last variable and concat, if necessary if (output.Length > 0) { IlGen.Emit(OpCodes.Ldstr, output.ToString()); if (concat) IlGen.Emit(OpCodes.Call, PHPRuntimeOperators.GetMethod("Concat", new Type[] { typeof(object), typeof(object) })); output = null; } } else if (node is HEREDOC) { HEREDOC h = (HEREDOC)node; StringBuilder output = new StringBuilder(); bool concat = false; foreach (object o in h.EncapsList) { if (o is string) output.Append((string)o); else { // push substring between last variable and current one and concat, if necessary if (output.Length > 0) { IlGen.Emit(OpCodes.Ldstr, output.ToString()); if (concat) IlGen.Emit(OpCodes.Call, PHPRuntimeOperators.GetMethod("Concat", new Type[] { typeof(object), typeof(object) })); concat = true; output = new StringBuilder(); } // push variable value if (o is VARIABLE) Visit((VARIABLE)o); // or push object operator result else if (o is OBJECT_OPERATOR) Visit((OBJECT_OPERATOR)o); // or push null else IlGen.Emit(OpCodes.Ldnull); // concat, if necessary if (concat) IlGen.Emit(OpCodes.Call, PHPRuntimeOperators.GetMethod("Concat", new Type[] { typeof(object), typeof(object) })); concat = true; } } // push substring after last variable and concat, if necessary if (output.Length > 0) { IlGen.Emit(OpCodes.Ldstr, output.ToString()); if (concat) IlGen.Emit(OpCodes.Call, PHPRuntimeOperators.GetMethod("Concat", new Type[] { typeof(object), typeof(object) })); output = null; } } else if (node is UnaryExpression) { UnaryExpression ue = (UnaryExpression)node; // process expression Visit(ue.Expr); } else if (node is BinaryExpression) { BinaryExpression be = (BinaryExpression)node; // process expressions Visit(be.Expr1); Visit(be.Expr2); } else if (node is TernaryExpression) { TernaryExpression te = (TernaryExpression)node; // process expressions Visit(te.Expr1); Visit(te.Expr2); Visit(te.Expr3); } else if (node is Expression) { Expression e = (Expression)node; if (e is VARIABLE) Visit((VARIABLE)e); else if (e is FUNCTION_CALL) Visit((FUNCTION_CALL)e); else if (e is ARRAY) Visit((ARRAY)e); else if (e is UnaryExpression) Visit((UnaryExpression)e); else if (e is BinaryExpression) Visit((BinaryExpression)e); else if (e is TernaryExpression) Visit((TernaryExpression)e); } }
protected void Visit(ASTNode node) { if (node == null) return; else if (node is INTERFACE_DECLARATION) { INTERFACE_DECLARATION id = (INTERFACE_DECLARATION)node; // process statements of interface SymbolTable.GetInstance().CurScope = id.Scope; foreach (Statement stmt in id.StmtList) Visit(stmt); } else if (node is CLASS_DECLARATION) { CLASS_DECLARATION cd = (CLASS_DECLARATION)node; // remember __main class if (cd.Name == "__MAIN") CD__MAIN = cd; // process statements of class SymbolTable.GetInstance().CurScope = cd.Scope; foreach (Statement stmt in cd.StmtList) Visit(stmt); } else if (node is CLASS_VARIABLE_DECLARATION) { CLASS_VARIABLE_DECLARATION cvd = (CLASS_VARIABLE_DECLARATION)node; // process all values assigned foreach (Expression expr in cvd.Values) Visit(expr); } else if (node is FUNCTION_DECLARATION) { FUNCTION_DECLARATION fd = (FUNCTION_DECLARATION)node; // process parameters and statements of function SymbolTable.GetInstance().CurScope = fd.Scope; foreach (PARAMETER_DECLARATION pd in fd.Parameters) Visit(pd); if (fd.StmtList != null) foreach (Statement stmt in fd.StmtList) Visit(stmt); } else if (node is PARAMETER_DECLARATION) { PARAMETER_DECLARATION pd = (PARAMETER_DECLARATION)node; // ensure hinted type is available if (pd.Type != null) { SymbolTableEntry cdEntry = SymbolTable.GetInstance().LookupGlobal(pd.Type, SymbolTable.CLASS); if (cdEntry == null) { Type t = SymbolTable.GetInstance().GetExternalType(pd.Type); if (t == null) Report.Error(203, pd.Type, pd.Line, pd.Column); } } // process default value Visit(pd.DefaultValue); } else if (node is GLOBAL) { GLOBAL g = (GLOBAL)node; // process expressions foreach (Expression expr in g.VarList) Visit(expr); } else if (node is STATIC_DECLARATION) { STATIC_DECLARATION sd = (STATIC_DECLARATION)node; // process expressions foreach (Expression expr in sd.ExprList) Visit(expr); } else if (node is BLOCK) { BLOCK b = (BLOCK)node; // process statements of block foreach (Statement stmt in b.StmtList) Visit(stmt); } else if (node is StatementList) { StatementList s = (StatementList)node; // process statements of block foreach (Statement stmt in s) Visit(stmt); } else if (node is TRY) { TRY t = (TRY)node; // process statements of try block foreach (Statement stmt in t.StmtList) Visit(stmt); // process catch blocks foreach (CATCH c in t.Catches) Visit(c); } else if (node is CATCH) { CATCH c = (CATCH)node; // ensure exception type is defined SymbolTableEntry cdEntry = SymbolTable.GetInstance().LookupGlobal(c.Type, SymbolTable.CLASS); if (cdEntry == null) { Type externalType = SymbolTable.GetInstance().GetExternalType(c.Type); if (externalType == null) Report.Error(203, c.Type, c.Line, c.Column); } // process statements of try block foreach (Statement stmt in c.StmtList) Visit(stmt); } else if (node is THROW) { THROW t = (THROW)node; // process throw expression Visit(t.Expr); } else if (node is IF) { // process if statement IF i = (IF)node; Visit(i.Expr); Visit(i.Stmt); // process else if statements foreach (ELSEIF e in i.ElseifList) Visit(e); // process else statement Visit(i.ElseStmt); } else if (node is ELSEIF) { // process if statement ELSEIF e = (ELSEIF)node; Visit(e.Expr); Visit(e.Stmt); } else if (node is WHILE) { WHILE w = (WHILE)node; // process while expression and statement Visit(w.Expr); Visit(w.Stmt); } else if (node is DO) { DO d = (DO)node; // process do expression and statement Visit(d.Stmt); Visit(d.Expr); } else if (node is FOR) { FOR f = (FOR)node; // process for expressions and statement foreach (Expression e in f.ExprList1) Visit(e); foreach (Expression e2 in f.ExprList2) Visit(e2); Visit(f.Stmt); foreach (Expression e3 in f.ExprList3) Visit(e3); } else if (node is FOREACH) { FOREACH f = (FOREACH)node; // process foreach expressions and statement if (f.Key != null && f.Key is FUNCTION_CALL) Report.Error(406, ((FUNCTION_CALL)f.Key).FunctionName, f.Key.Line, f.Key.Column); if (f.Value is FUNCTION_CALL) Report.Error(406, ((FUNCTION_CALL)f.Value).FunctionName, f.Value.Column, f.Value.Line); Visit(f.Stmt); } else if (node is SWITCH) { SWITCH s = (SWITCH)node; // process cases and default foreach (ASTNode tmpNnode in s.SwitchCaseList) Visit(tmpNnode); } else if (node is CASE) { CASE c = (CASE)node; // process case expression and statement Visit(c.Expr); Visit(c.Stmt); } else if (node is DEFAULT) { DEFAULT d = (DEFAULT)node; // process default statement Visit(d.Stmt); } else if (node is BREAK) { BREAK b = (BREAK)node; // process expression Visit(b.Expr); } else if (node is CONTINUE) { CONTINUE c = (CONTINUE)node; // process expression Visit(c.Expr); } else if (node is RETURN) { RETURN r = (RETURN)node; // process expression Visit(r.Expr); } else if (node is UNSET) { UNSET u = (UNSET)node; // process for unset expressions foreach (Expression e in u.VarList) Visit(e); } else if (node is ECHO) { ECHO e = (ECHO)node; // process echo expressions foreach (Expression e2 in e.ExprList) Visit(e2); } else if (node is EXPRESSION_AS_STATEMENT) { EXPRESSION_AS_STATEMENT eas = (EXPRESSION_AS_STATEMENT)node; // process expression Visit(eas.Expr); } else if (node is VARIABLE) { VARIABLE var = (VARIABLE)node; // process offset, if available if (var.Offset != null) Visit(var.Offset); } else if (node is OFFSET) { OFFSET o = (OFFSET)node; // process offset expression Visit(o.Value); } else if (node is FUNCTION_CALL) { FUNCTION_CALL fc = (FUNCTION_CALL)node; // process parameters foreach (Expression expr in fc.Parameters) Visit(expr); } else if (node is NEW) { NEW n = (NEW)node; // ensure type is available SymbolTableEntry cdEntry = SymbolTable.GetInstance().LookupGlobal(n.Type, SymbolTable.CLASS); if (cdEntry == null) { Type externalType = SymbolTable.GetInstance().GetExternalType(n.Type); if (externalType == null) Report.Error(203, n.Type, n.Line, n.Column); } } else if (node is INSTANCEOF) { INSTANCEOF i = (INSTANCEOF)node; // ensure type is available SymbolTableEntry cdEntry = SymbolTable.GetInstance().LookupGlobal(i.Type, SymbolTable.CLASS); if (cdEntry == null) { Type externalType = SymbolTable.GetInstance().GetExternalType(i.Type); if (externalType == null) Report.Error(203, i.Type, i.Line, i.Column); } // process expression Visit(i.Expr); } else if (node is ARRAY) { ARRAY a = (ARRAY)node; // process array pairs foreach (ARRAY_PAIR ap in a.ArrayPairList) { Visit(ap.Key); Visit(ap.Value); } } else if (node is PAAMAYIM_NEKUDOTAYIM) { PAAMAYIM_NEKUDOTAYIM pn = (PAAMAYIM_NEKUDOTAYIM)node; // ensure type is available if (pn.Type != "self" && pn.Type != "parent") { SymbolTableEntry cdEntry = SymbolTable.GetInstance().LookupGlobal(pn.Type, SymbolTable.CLASS); if (cdEntry == null) { Type externalType = SymbolTable.GetInstance().GetExternalType(pn.Type); if (externalType == null) Report.Error(203, pn.Type, pn.Line, pn.Column); } } // process expression Visit(pn.Expr); } else if (node is OBJECT_OPERATOR) { OBJECT_OPERATOR oo = (OBJECT_OPERATOR)node; // process left part Visit(oo.Expr1); // process right part Visit(oo.Expr2); } else if (node is EQUALS) { EQUALS e = (EQUALS)node; // process expressions Visit(e.Expr1); Visit(e.Expr2); } else if (node is UnaryExpression) { UnaryExpression ue = (UnaryExpression)node; // process expression Visit(ue.Expr); } else if (node is BinaryExpression) { BinaryExpression be = (BinaryExpression)node; // process expressions Visit(be.Expr1); Visit(be.Expr2); } else if (node is TernaryExpression) { TernaryExpression te = (TernaryExpression)node; // process expressions Visit(te.Expr1); Visit(te.Expr2); Visit(te.Expr3); } else if (node is Expression) { Expression e = (Expression)node; if (e is UnaryExpression) Visit((UnaryExpression)e); else if (e is BinaryExpression) Visit((BinaryExpression)e); else if (e is TernaryExpression) Visit((TernaryExpression)e); } }
/** 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 358: // 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(48/*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 357: // isset_variables ::= isset_variables COMMA variable { object RESULT = null; CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(105/*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 356: // isset_variables ::= variable { object RESULT = null; CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(105/*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 355: // 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(104/*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 354: // 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(104/*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 353: // 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(104/*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 352: // 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(104/*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 351: // 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(104/*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_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(104/*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 349: // 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(104/*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: // 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(47/*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 347: // 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(47/*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 346: // 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(47/*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 345: // 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(46/*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 344: // 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(46/*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 343: // 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(46/*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 342: // 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(46/*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 341: // 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(46/*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 340: // 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(46/*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 339: // encaps_list ::= { ArrayList RESULT = null; RESULT = new ArrayList(); CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(82/*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 338: // 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(82/*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 337: // 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(82/*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 336: // 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(82/*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 335: // 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(82/*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 334: // 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(82/*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 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(82/*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 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(82/*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 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(82/*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 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(82/*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_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(82/*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 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(82/*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: // 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(81/*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 326: // 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(81/*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 325: // 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(81/*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 324: // 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(81/*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 323: // 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(81/*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 322: // 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(81/*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 321: // 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(81/*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 320: // 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(81/*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 319: // 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(80/*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 318: // array_pair_list ::= { ArrayList RESULT = null; RESULT = new ArrayList(); CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(80/*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 317: // assignment_list_element ::= { object RESULT = null; CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(103/*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 316: // assignment_list_element ::= T_LIST BRACE_OPEN assignment_list BRACE_CLOSE { object RESULT = null; CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(103/*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 315: // assignment_list_element ::= variable { object RESULT = null; CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(103/*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 314: // assignment_list ::= assignment_list_element { object RESULT = null; CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(102/*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 313: // assignment_list ::= assignment_list COMMA assignment_list_element { object RESULT = null; CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(102/*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 312: // simple_indirect_reference ::= simple_indirect_reference DOLLAR { object RESULT = null; CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(101/*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 311: // simple_indirect_reference ::= DOLLAR { object RESULT = null; CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(101/*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 310: // 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(45/*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 309: // 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(45/*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 308: // 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(44/*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 307: // 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(44/*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 306: // 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(44/*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 305: // 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(43/*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 304: // 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(43/*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 303: // 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(42/*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 302: // dim_offset ::= { Expression RESULT = null; RESULT = null; CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(42/*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 301: // 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(41/*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 300: // 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(41/*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 299: // 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(40/*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 298: // 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(40/*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 297: // 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(40/*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 296: // 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(39/*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 295: // base_variable ::= simple_indirect_reference reference_variable { Expression RESULT = null; Report.Error(900, "variable variables"); CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(39/*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 294: // 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(39/*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 293: // 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(38/*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 292: // 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(38/*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 291: // 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(37/*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 290: // 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(36/*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 289: // 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(36/*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 288: // method_or_not ::= { ExpressionList RESULT = null; RESULT = null; CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(63/*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 287: // 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(63/*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 286: // 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(35/*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 285: // variable_properties ::= { ExpressionList RESULT = null; RESULT = new ExpressionList(); CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(62/*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 284: // 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(62/*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 283: // 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(34/*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 282: // 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(34/*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 281: // 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(33/*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 280: // 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(32/*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 279: // 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(31/*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 278: // 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(30/*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 277: // 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(30/*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 276: // 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(79/*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 275: // 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(79/*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 274: // 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(79/*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 273: // 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(79/*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 272: // possible_comma ::= COMMA { object RESULT = null; CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(94/*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 271: // possible_comma ::= { object RESULT = null; CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(94/*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 270: // 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(78/*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 269: // static_array_pair_list ::= { ArrayList RESULT = null; RESULT = new ArrayList(); CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(78/*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 268: // 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(29/*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 267: // 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(29/*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 266: // 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(29/*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 265: // 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(29/*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 264: // 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(29/*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 263: // 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(29/*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 262: // 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(29/*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 261: // 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(28/*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 260: // 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(27/*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 259: // 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(27/*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 258: // 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(27/*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 257: // 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(27/*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 256: // 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(27/*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 ::= 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(27/*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 254: // common_scalar ::= T_FUNC_C { Expression RESULT = null; int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left; int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right; string t = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value; RESULT = new MAGIC_CONSTANT(MAGIC_CONSTANT.FUNCTION, tleft, tright); CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(26/*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 253: // common_scalar ::= T_METHOD_C { Expression RESULT = null; int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left; int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right; string t = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value; RESULT = new MAGIC_CONSTANT(MAGIC_CONSTANT.METHOD, tleft, tright); CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(26/*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 252: // common_scalar ::= T_CLASS_C { Expression RESULT = null; int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left; int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right; string t = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value; RESULT = new MAGIC_CONSTANT(MAGIC_CONSTANT.CLASS, tleft, tright); CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(26/*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 251: // common_scalar ::= T_FILE { Expression RESULT = null; int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left; int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right; string t = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value; RESULT = new MAGIC_CONSTANT(MAGIC_CONSTANT.FILE, tleft, tright); CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(26/*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 250: // common_scalar ::= T_LINE { Expression RESULT = null; int tleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left; int tright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right; string t = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value; RESULT = new MAGIC_CONSTANT(MAGIC_CONSTANT.LINE, tleft, tright); CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(26/*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_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(26/*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_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(26/*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_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(26/*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: // 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(61/*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 245: // ctor_arguments ::= { ExpressionList RESULT = null; RESULT = new ExpressionList(); CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(61/*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 244: // 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(25/*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 243: // exit_expr ::= BRACE_OPEN BRACE_CLOSE { Expression RESULT = null; RESULT = null; CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(25/*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 242: // exit_expr ::= { Expression RESULT = null; RESULT = null; CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(25/*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 241: // dynamic_class_name_variable_property ::= T_OBJECT_OPERATOR object_property { object RESULT = null; CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(100/*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 240: // dynamic_class_name_variable_properties ::= { object RESULT = null; CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(99/*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 239: // 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(99/*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 238: // dynamic_class_name_reference ::= base_variable { object RESULT = null; CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(98/*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 237: // 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(98/*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 236: // 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(87/*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 235: // class_name_reference ::= 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(87/*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 234: // fully_qualified_class_name ::= fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING { string 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 = fqcn + "::" + s; CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(86/*fully_qualified_class_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 233: // 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(86/*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 232: // 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(24/*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 231: // 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(24/*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 230: // 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(24/*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 229: // 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(24/*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: // 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(23/*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 227: // 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(23/*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 226: // 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(23/*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 225: // 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(23/*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 224: // 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(23/*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 223: // 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(23/*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 222: // 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(23/*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 221: // 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(23/*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_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(23/*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_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(23/*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_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(23/*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_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(23/*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_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(23/*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 ::= internal_functions_in_yacc { Expression RESULT = null; CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(23/*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 214: // 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(23/*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 213: // 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(23/*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 212: // 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(23/*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 211: // 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(23/*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 210: // 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(23/*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_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(23/*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 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(23/*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 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(23/*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_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(23/*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 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(23/*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_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(23/*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 ::= 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(23/*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 202: // 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(23/*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 201: // 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(23/*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 200: // 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(23/*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 ::= 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(23/*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 198: // 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(23/*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 197: // 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(23/*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 196: // 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(23/*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 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(23/*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 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(23/*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 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(23/*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 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(23/*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 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(23/*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 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(23/*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 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(23/*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 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(23/*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 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(23/*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 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(23/*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_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(23/*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_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(23/*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 ::= 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(23/*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 182: // 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(23/*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 181: // 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(23/*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 180: // 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(23/*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 ::= 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(23/*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 178: // 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(23/*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 177: // 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(23/*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 176: // 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(23/*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_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(23/*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_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(23/*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_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(23/*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_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(23/*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_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(23/*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_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(23/*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_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(23/*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 ::= 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(23/*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 167: // 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(23/*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 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(23/*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 165: // 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(23/*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 164: // 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(23/*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 ::= 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(23/*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: // 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(60/*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 161: // 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(60/*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 160: // 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(59/*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 159: // for_expr ::= { ExpressionList RESULT = null; RESULT = new ExpressionList(); CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(59/*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 158: // 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(58/*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 157: // 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(58/*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 156: // 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(18/*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 155: // 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(18/*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 154: // 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(17/*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 153: // 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(17/*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 152: // 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(17/*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 151: // 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(17/*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: // member_modifier ::= T_FINAL { object RESULT = null; RESULT = PHP.Compiler.Modifiers.FINAL; CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(93/*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 149: // 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; RESULT = PHP.Compiler.Modifiers.ABSTRACT; CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(93/*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 148: // member_modifier ::= T_STATIC { object RESULT = null; RESULT = PHP.Compiler.Modifiers.STATIC; CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(93/*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 147: // member_modifier ::= T_PRIVATE { object RESULT = null; RESULT = PHP.Compiler.Modifiers.PRIVATE; CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(93/*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_PROTECTED { object RESULT = null; RESULT = PHP.Compiler.Modifiers.PROTECTED; CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(93/*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_PUBLIC { object RESULT = null; RESULT = PHP.Compiler.Modifiers.PUBLIC; CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(93/*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: // 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(77/*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 143: // 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(77/*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 142: // 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(76/*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 141: // method_modifiers ::= { ArrayList RESULT = null; RESULT = new ArrayList(); CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(76/*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 140: // 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(75/*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 139: // 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(75/*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 138: // 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(52/*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 137: // method_body ::= SEMICOLON { StatementList RESULT = null; RESULT = null; CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(52/*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 136: // 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 fleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 6)).left; int fright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 6)).right; string f = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 6)).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 == 1) ? fleft : mmleft, (mmright == 1) ? fright : mmright); CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(16/*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 135: // 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(16/*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 134: // 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(16/*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 133: // class_statement_list ::= { StatementList RESULT = null; RESULT = new StatementList(); CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(51/*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 132: // 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(51/*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 131: // 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(57/*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 130: // 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(57/*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 129: // 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(57/*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 128: // 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(57/*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: // 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(22/*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 126: // 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(22/*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 125: // 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(22/*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 124: // 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(56/*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 123: // 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(56/*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 122: // 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(55/*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 121: // 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(55/*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 120: // 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(55/*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 119: // 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(55/*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 118: // 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(55/*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 117: // 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(55/*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 116: // function_call_parameter_list ::= { ExpressionList RESULT = null; RESULT = new ExpressionList(); CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(54/*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 115: // 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(54/*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: // 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(85/*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 113: // optional_class_type ::= { string RESULT = null; RESULT = null; CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(85/*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 112: // 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(74/*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 111: // 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(74/*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 110: // 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(74/*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 109: // 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(74/*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 108: // 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(74/*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 107: // 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(74/*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 ::= 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(74/*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 105: // 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(74/*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 104: // parameter_list ::= { ArrayList RESULT = null; RESULT = new ArrayList(); CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(73/*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 103: // 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(73/*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 102: // 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(15/*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 101: // new_else_single ::= { Statement RESULT = null; RESULT = null; CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(15/*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 100: // 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(14/*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 99: // else_single ::= { Statement RESULT = null; RESULT = null; CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(14/*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 98: // 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(72/*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 97: // new_elseif_list ::= { ArrayList RESULT = null; RESULT = new ArrayList(); CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(72/*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 96: // 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(71/*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 95: // elseif_list ::= { ArrayList RESULT = null; RESULT = new ArrayList(); CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(71/*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 94: // 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(13/*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 93: // 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(13/*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 92: // case_separator ::= SEMICOLON { object RESULT = null; CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(92/*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 91: // case_separator ::= COLON { object RESULT = null; CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(92/*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 90: // 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(70/*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 89: // 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(70/*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 88: // case_list ::= { ArrayList RESULT = null; RESULT = new ArrayList(); CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(70/*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 87: // 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(69/*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 86: // 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(69/*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 85: // 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(69/*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 84: // 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(69/*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 83: // declare_list ::= declare_list COMMA T_STRING EQUALS static_scalar { object RESULT = null; CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(97/*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 82: // declare_list ::= T_STRING EQUALS static_scalar { object RESULT = null; CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(97/*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 81: // declare_statement ::= COLON inner_statement_list T_ENDDECLARE SEMICOLON { object RESULT = null; CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(96/*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 80: // declare_statement ::= statement { object RESULT = null; CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(96/*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 79: // 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(12/*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 78: // 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(12/*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 77: // 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(11/*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 76: // 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(11/*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 75: // 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(21/*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 74: // 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(21/*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 73: // 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(20/*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 72: // foreach_optional_arg ::= { Expression RESULT = null; RESULT = null; CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(20/*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 71: // interface_list ::= interface_list COMMA fully_qualified_class_name { ArrayList RESULT = null; int illeft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left; int ilright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right; ArrayList il = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value; 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; il.Add(fqcn); RESULT = il; CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(68/*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 70: // interface_list ::= fully_qualified_class_name { ArrayList 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; ArrayList il = new ArrayList(); il.Add(fqcn); RESULT = il; CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(68/*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 69: // implements_list ::= T_IMPLEMENTS interface_list { ArrayList RESULT = null; int illeft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left; int ilright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right; ArrayList il = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value; RESULT = il; CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(67/*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 68: // implements_list ::= { ArrayList RESULT = null; RESULT = new ArrayList(); CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(67/*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 67: // interface_extends_list ::= T_EXTENDS interface_list { ArrayList RESULT = null; int illeft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left; int ilright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right; ArrayList il = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value; RESULT = il; CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(66/*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 66: // interface_extends_list ::= { ArrayList RESULT = null; RESULT = new ArrayList(); CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(66/*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 65: // interface_entry ::= T_INTERFACE { object RESULT = null; CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(91/*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 64: // 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(84/*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 63: // extends_from ::= { string RESULT = null; RESULT = null; CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(84/*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 62: // class_entry_type ::= T_FINAL T_CLASS { object RESULT = null; RESULT = PHP.Compiler.Modifiers.FINAL; CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(90/*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 61: // class_entry_type ::= T_ABSTRACT T_CLASS { object RESULT = null; RESULT = PHP.Compiler.Modifiers.ABSTRACT; CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(90/*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 60: // class_entry_type ::= T_CLASS { object RESULT = null; RESULT = PHP.Compiler.Modifiers.PUBLIC; CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(90/*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 59: // unticked_class_declaration_statement ::= interface_entry T_STRING interface_extends_list CURLY_BRACE_OPEN class_statement_list CURLY_BRACE_CLOSE { Statement RESULT = null; int ieleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 5)).left; int ieright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 5)).right; object ie = (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 ielleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).left; int ielright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).right; ArrayList iel = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).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 INTERFACE_DECLARATION(s, iel, cstl, ieleft, ieright); CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(10/*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 58: // 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 illeft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).left; int ilright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).right; ArrayList il = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 3)).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, il, cstl, cetleft, cetright); CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(10/*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 57: // 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(9/*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 56: // is_reference ::= AND { object RESULT = null; RESULT = true; CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(89/*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 55: // is_reference ::= { object RESULT = null; RESULT = false; CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(89/*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 54: // 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(8/*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 53: // 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(7/*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 52: // use_filename ::= BRACE_OPEN T_CONSTANT_ENCAPSED_STRING BRACE_CLOSE { object RESULT = null; CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(95/*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 51: // use_filename ::= T_CONSTANT_ENCAPSED_STRING { object RESULT = null; CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(95/*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 50: // 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(19/*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 49: // 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(53/*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 48: // 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(53/*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 47: // 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; 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 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 vleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).left; int vright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 4)).right; string v = (string)((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 CATCH(fqcn, v, istl, tleft, tright); 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 46: // non_empty_additional_catches ::= non_empty_additional_catches additional_catch { ArrayList 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; ArrayList neac = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value; int acleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left; int acright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right; object ac = (object)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value; neac.Add(ac); RESULT = neac; CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(65/*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 45: // non_empty_additional_catches ::= additional_catch { ArrayList RESULT = null; int acleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left; int acright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right; object ac = (object)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value; ArrayList al = new ArrayList(); al.Add(ac); RESULT = al; CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(65/*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 44: // additional_catches ::= { ArrayList RESULT = null; RESULT = new ArrayList(); CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(64/*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 43: // additional_catches ::= non_empty_additional_catches { ArrayList RESULT = null; int neacleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left; int neacright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right; ArrayList neac = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value; RESULT = neac; CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(64/*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 42: // unticked_statement ::= T_THROW 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 THROW(e, tleft, tright); CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(6/*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 41: // 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; int t1left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 12)).left; int t1right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 12)).right; string t1 = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 12)).value; int istl1left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 10)).left; int istl1right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 10)).right; StatementList istl1 = (StatementList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 10)).value; int t2left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 8)).left; int t2right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 8)).right; string t2 = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 8)).value; int fqcnleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 6)).left; int fqcnright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 6)).right; string fqcn = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 6)).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; string v = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 5)).value; int istl2left = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left; int istl2right = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right; StatementList istl2 = (StatementList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).value; int acleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).left; int acright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).right; ArrayList ac = (ArrayList)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 0)).value; ac.Add(new CATCH(fqcn, v, istl2, t2left, t2right)); RESULT = new TRY(istl1, ac, t1left, t1right); CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(6/*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 40: // unticked_statement ::= SEMICOLON { Statement RESULT = null; RESULT = null; CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(6/*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 39: // 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(6/*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 38: // 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(6/*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 37: // 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(6/*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 36: // 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(6/*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_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(6/*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 34: // 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(6/*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 33: // 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(6/*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 32: // 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(6/*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 ::= 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(6/*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 30: // 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(6/*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 29: // 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(6/*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_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(6/*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_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(6/*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 26: // 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(6/*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_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(6/*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 24: // 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(6/*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 23: // 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(6/*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 22: // 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(6/*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 21: // 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(6/*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 20: // 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(6/*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 19: // 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(6/*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_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(6/*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 17: // 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(6/*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 16: // unticked_statement ::= CURLY_BRACE_OPEN inner_statement_list CURLY_BRACE_CLOSE { Statement RESULT = null; int cleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).left; int cright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 2)).right; string c = (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, cleft, cright); CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(6/*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 15: // 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(5/*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 14: // 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(4/*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 13: // 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(4/*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 12: // 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(4/*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 11: // inner_statement_list ::= { StatementList RESULT = null; RESULT = new StatementList(); CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(50/*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 10: // 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(50/*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 9: // using_statement ::= T_USING T_STRING EQUALS fully_qualified_class_name 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 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 fqcnleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left; int fqcnright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right; string fqcn = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value; RESULT = new USING(fqcn, s, tleft, tright); CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(3/*using_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 8: // using_statement ::= T_USING fully_qualified_class_name 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 fqcnleft = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).left; int fqcnright = ((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).right; string fqcn = (string)((TUVienna.CS_CUP.Runtime.Symbol)CUP_Parser_stack.elementAt(CUP_Parser_top - 1)).value; RESULT = new USING(fqcn, null, tleft, tright); CUP_Parser_result = new TUVienna.CS_CUP.Runtime.Symbol(3/*using_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 7: // top_statement ::= using_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(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 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(49/*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(49/*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"); } }