/// <summary> /// Adiciona um parâmetro à lista de parâmetros /// </summary> /// <param name="nomeParametro">Nome do parâmetro</param> /// <param name="tipoParametro">Tipo do parâmetro</param> /// <param name="valor">Valor do parâmetro</param> public void AddParam(string nomeParametro, OracleDbType tipoParametro, object valor) { // Remove o parâmetro caso já exista OracleParameter paramExiste = ListaParametros.Where(x => x.ParameterName.Equals(nomeParametro)).FirstOrDefault(); if (paramExiste != null) { ListaParametros.Remove(paramExiste); } // Adiciona o parâmetro //OracleParameter param = new OracleParameter(nomeParametro, tipoParametro); OracleParameter param = new OracleParameter(); param = new Oracle.DataAccess.Client.OracleParameter(); param.ParameterName = nomeParametro; param.OracleDbType = tipoParametro; param.Direction = ParameterDirection.Input; if (tipoParametro == OracleDbType.Blob) { param.Size = ((byte[])valor).Length; } param.Value = valor; ListaParametros.Add(param); }
/// <summary> /// Adiciona um parâmetro à lista de parâmetros /// </summary> /// <param name="nomeParametro">Nome do parâmetro</param> /// <param name="tipoParametro">Tipo do parâmetro</param> /// <param name="valor">Valor do parâmetro</param> public void AddParam(string nomeParametro, DbType tipoParametro, object valor) { // Remove o parâmetro caso já exista OracleParameter paramExiste = ListaParametros.Where(x => x.ParameterName.Equals(nomeParametro)).FirstOrDefault(); if (paramExiste != null) { ListaParametros.Remove(paramExiste); } // Adiciona o parâmetro //OracleParameter param = new OracleParameter(nomeParametro, tipoParametro); OracleParameter param = new OracleParameter(); param.ParameterName = nomeParametro; param.DbType = tipoParametro; param.Value = valor; param.Value = (valor == null) ? "" : valor; ListaParametros.Add(param); }
public void ejecutarMetodo(Emit.ILGenerator il, ListaParametros lp) { cuerpoDelMetodo(il, lp); }
/** Method with the actual generated action code. */ public TUVienna.CS_CUP.Runtime.Symbol CUP_TinyParser_do_action( int CUP_TinyParser_act_num, TUVienna.CS_CUP.Runtime.lr_parser CUP_TinyParser_parser, System.Collections.Stack xstack1, int CUP_TinyParser_top) { /* Symbol object for return from actions */ mStack CUP_TinyParser_stack = new mStack(xstack1); TUVienna.CS_CUP.Runtime.Symbol CUP_TinyParser_result; /* select the action based on the action number */ switch (CUP_TinyParser_act_num) { /*. . . . . . . . . . . . . . . . . . . .*/ case 30: // factor ::= error { Expresion RESULT = null; CUP_TinyParser_result = new TUVienna.CS_CUP.Runtime.Symbol(13 /*factor*/, RESULT); } return(CUP_TinyParser_result); /*. . . . . . . . . . . . . . . . . . . .*/ case 29: // factor ::= IDENTIFICADOR { Expresion RESULT = null; SimboloAbstracto id = (SimboloAbstracto)((TUVienna.CS_CUP.Runtime.Symbol)CUP_TinyParser_stack.elementAt(CUP_TinyParser_top - 0)).value; RESULT = new Variable(id, id.Linea, id.Columna); CUP_TinyParser_result = new TUVienna.CS_CUP.Runtime.Symbol(13 /*factor*/, RESULT); } return(CUP_TinyParser_result); /*. . . . . . . . . . . . . . . . . . . .*/ case 28: // factor ::= LIT_ENTERO { Expresion RESULT = null; SimboloAbstracto val = (SimboloAbstracto)((TUVienna.CS_CUP.Runtime.Symbol)CUP_TinyParser_stack.elementAt(CUP_TinyParser_top - 0)).value; RESULT = new NumeroEntero(val, val.Linea, val.Columna); CUP_TinyParser_result = new TUVienna.CS_CUP.Runtime.Symbol(13 /*factor*/, RESULT); } return(CUP_TinyParser_result); /*. . . . . . . . . . . . . . . . . . . .*/ case 27: // factor ::= PARENT_IZQ exp PARENT_DER { Expresion RESULT = null; Expresion e = (Expresion)((TUVienna.CS_CUP.Runtime.Symbol)CUP_TinyParser_stack.elementAt(CUP_TinyParser_top - 1)).value; RESULT = e; CUP_TinyParser_result = new TUVienna.CS_CUP.Runtime.Symbol(13 /*factor*/, RESULT); } return(CUP_TinyParser_result); /*. . . . . . . . . . . . . . . . . . . .*/ case 26: // term ::= factor { Expresion RESULT = null; Expresion e = (Expresion)((TUVienna.CS_CUP.Runtime.Symbol)CUP_TinyParser_stack.elementAt(CUP_TinyParser_top - 0)).value; RESULT = e; CUP_TinyParser_result = new TUVienna.CS_CUP.Runtime.Symbol(12 /*term*/, RESULT); } return(CUP_TinyParser_result); /*. . . . . . . . . . . . . . . . . . . .*/ case 25: // term ::= term DIVISION factor { Expresion RESULT = null; Expresion e1 = (Expresion)((TUVienna.CS_CUP.Runtime.Symbol)CUP_TinyParser_stack.elementAt(CUP_TinyParser_top - 2)).value; SimboloAbstracto d = (SimboloAbstracto)((TUVienna.CS_CUP.Runtime.Symbol)CUP_TinyParser_stack.elementAt(CUP_TinyParser_top - 1)).value; Expresion e2 = (Expresion)((TUVienna.CS_CUP.Runtime.Symbol)CUP_TinyParser_stack.elementAt(CUP_TinyParser_top - 0)).value; RESULT = new Division(e1, e2, d.Linea, d.Columna); CUP_TinyParser_result = new TUVienna.CS_CUP.Runtime.Symbol(12 /*term*/, RESULT); } return(CUP_TinyParser_result); /*. . . . . . . . . . . . . . . . . . . .*/ case 24: // term ::= term MULTIPLICACION factor { Expresion RESULT = null; Expresion e1 = (Expresion)((TUVienna.CS_CUP.Runtime.Symbol)CUP_TinyParser_stack.elementAt(CUP_TinyParser_top - 2)).value; SimboloAbstracto m = (SimboloAbstracto)((TUVienna.CS_CUP.Runtime.Symbol)CUP_TinyParser_stack.elementAt(CUP_TinyParser_top - 1)).value; Expresion e2 = (Expresion)((TUVienna.CS_CUP.Runtime.Symbol)CUP_TinyParser_stack.elementAt(CUP_TinyParser_top - 0)).value; RESULT = new Multiplicacion(e1, e2, m.Linea, m.Columna); CUP_TinyParser_result = new TUVienna.CS_CUP.Runtime.Symbol(12 /*term*/, RESULT); } return(CUP_TinyParser_result); /*. . . . . . . . . . . . . . . . . . . .*/ case 23: // exp_simple ::= term { Expresion RESULT = null; Expresion e = (Expresion)((TUVienna.CS_CUP.Runtime.Symbol)CUP_TinyParser_stack.elementAt(CUP_TinyParser_top - 0)).value; RESULT = e; CUP_TinyParser_result = new TUVienna.CS_CUP.Runtime.Symbol(11 /*exp_simple*/, RESULT); } return(CUP_TinyParser_result); /*. . . . . . . . . . . . . . . . . . . .*/ case 22: // exp_simple ::= exp_simple RESTA term { Expresion RESULT = null; Expresion e1 = (Expresion)((TUVienna.CS_CUP.Runtime.Symbol)CUP_TinyParser_stack.elementAt(CUP_TinyParser_top - 2)).value; SimboloAbstracto r = (SimboloAbstracto)((TUVienna.CS_CUP.Runtime.Symbol)CUP_TinyParser_stack.elementAt(CUP_TinyParser_top - 1)).value; Expresion e2 = (Expresion)((TUVienna.CS_CUP.Runtime.Symbol)CUP_TinyParser_stack.elementAt(CUP_TinyParser_top - 0)).value; RESULT = new Resta(e1, e2, r.Linea, r.Columna); CUP_TinyParser_result = new TUVienna.CS_CUP.Runtime.Symbol(11 /*exp_simple*/, RESULT); } return(CUP_TinyParser_result); /*. . . . . . . . . . . . . . . . . . . .*/ case 21: // exp_simple ::= exp_simple SUMA term { Expresion RESULT = null; Expresion e1 = (Expresion)((TUVienna.CS_CUP.Runtime.Symbol)CUP_TinyParser_stack.elementAt(CUP_TinyParser_top - 2)).value; SimboloAbstracto s = (SimboloAbstracto)((TUVienna.CS_CUP.Runtime.Symbol)CUP_TinyParser_stack.elementAt(CUP_TinyParser_top - 1)).value; Expresion e2 = (Expresion)((TUVienna.CS_CUP.Runtime.Symbol)CUP_TinyParser_stack.elementAt(CUP_TinyParser_top - 0)).value; RESULT = new Suma(e1, e2, s.Linea, s.Columna); CUP_TinyParser_result = new TUVienna.CS_CUP.Runtime.Symbol(11 /*exp_simple*/, RESULT); } return(CUP_TinyParser_result); /*. . . . . . . . . . . . . . . . . . . .*/ case 20: // exp ::= exp_simple { Expresion RESULT = null; Expresion e = (Expresion)((TUVienna.CS_CUP.Runtime.Symbol)CUP_TinyParser_stack.elementAt(CUP_TinyParser_top - 0)).value; RESULT = e; CUP_TinyParser_result = new TUVienna.CS_CUP.Runtime.Symbol(10 /*exp*/, RESULT); } return(CUP_TinyParser_result); /*. . . . . . . . . . . . . . . . . . . .*/ case 19: // exp ::= exp_simple IGUAL exp_simple { Expresion RESULT = null; Expresion e1 = (Expresion)((TUVienna.CS_CUP.Runtime.Symbol)CUP_TinyParser_stack.elementAt(CUP_TinyParser_top - 2)).value; SimboloAbstracto i = (SimboloAbstracto)((TUVienna.CS_CUP.Runtime.Symbol)CUP_TinyParser_stack.elementAt(CUP_TinyParser_top - 1)).value; Expresion e2 = (Expresion)((TUVienna.CS_CUP.Runtime.Symbol)CUP_TinyParser_stack.elementAt(CUP_TinyParser_top - 0)).value; RESULT = new Igual(e1, e2, i.Linea, i.Columna); CUP_TinyParser_result = new TUVienna.CS_CUP.Runtime.Symbol(10 /*exp*/, RESULT); } return(CUP_TinyParser_result); /*. . . . . . . . . . . . . . . . . . . .*/ case 18: // exp ::= exp_simple MENOR exp_simple { Expresion RESULT = null; Expresion e1 = (Expresion)((TUVienna.CS_CUP.Runtime.Symbol)CUP_TinyParser_stack.elementAt(CUP_TinyParser_top - 2)).value; SimboloAbstracto m = (SimboloAbstracto)((TUVienna.CS_CUP.Runtime.Symbol)CUP_TinyParser_stack.elementAt(CUP_TinyParser_top - 1)).value; Expresion e2 = (Expresion)((TUVienna.CS_CUP.Runtime.Symbol)CUP_TinyParser_stack.elementAt(CUP_TinyParser_top - 0)).value; RESULT = new Menor(e1, e2, m.Linea, m.Columna); CUP_TinyParser_result = new TUVienna.CS_CUP.Runtime.Symbol(10 /*exp*/, RESULT); } return(CUP_TinyParser_result); /*. . . . . . . . . . . . . . . . . . . .*/ case 17: // args ::= args COMA exp { ListaParametros RESULT = null; ListaParametros p = (ListaParametros)((TUVienna.CS_CUP.Runtime.Symbol)CUP_TinyParser_stack.elementAt(CUP_TinyParser_top - 2)).value; Expresion e = (Expresion)((TUVienna.CS_CUP.Runtime.Symbol)CUP_TinyParser_stack.elementAt(CUP_TinyParser_top - 0)).value; p.agregarElemento(e); RESULT = p; CUP_TinyParser_result = new TUVienna.CS_CUP.Runtime.Symbol(9 /*args*/, RESULT); } return(CUP_TinyParser_result); /*. . . . . . . . . . . . . . . . . . . .*/ case 16: // args ::= exp { ListaParametros RESULT = null; Expresion e = (Expresion)((TUVienna.CS_CUP.Runtime.Symbol)CUP_TinyParser_stack.elementAt(CUP_TinyParser_top - 0)).value; RESULT = new ListaParametros(); RESULT.agregarElemento(e); CUP_TinyParser_result = new TUVienna.CS_CUP.Runtime.Symbol(9 /*args*/, RESULT); } return(CUP_TinyParser_result); /*. . . . . . . . . . . . . . . . . . . .*/ case 15: // opt_args ::= { ListaParametros RESULT = null; RESULT = new ListaParametros(); CUP_TinyParser_result = new TUVienna.CS_CUP.Runtime.Symbol(8 /*opt_args*/, RESULT); } return(CUP_TinyParser_result); /*. . . . . . . . . . . . . . . . . . . .*/ case 14: // opt_args ::= args { ListaParametros RESULT = null; ListaParametros p = (ListaParametros)((TUVienna.CS_CUP.Runtime.Symbol)CUP_TinyParser_stack.elementAt(CUP_TinyParser_top - 0)).value; RESULT = p; CUP_TinyParser_result = new TUVienna.CS_CUP.Runtime.Symbol(8 /*opt_args*/, RESULT); } return(CUP_TinyParser_result); /*. . . . . . . . . . . . . . . . . . . .*/ case 13: // fuction_call ::= IDENTIFICADOR opt_args { Sentencia RESULT = null; SimboloAbstracto id = (SimboloAbstracto)((TUVienna.CS_CUP.Runtime.Symbol)CUP_TinyParser_stack.elementAt(CUP_TinyParser_top - 1)).value; ListaParametros p = (ListaParametros)((TUVienna.CS_CUP.Runtime.Symbol)CUP_TinyParser_stack.elementAt(CUP_TinyParser_top - 0)).value; RESULT = new LLamadaFuncion(id, p, id.Linea, id.Columna); CUP_TinyParser_result = new TUVienna.CS_CUP.Runtime.Symbol(7 /*fuction_call*/, RESULT); } return(CUP_TinyParser_result); /*. . . . . . . . . . . . . . . . . . . .*/ case 12: // sent_assign ::= IDENTIFICADOR ASIGNACION exp { Sentencia RESULT = null; SimboloAbstracto id = (SimboloAbstracto)((TUVienna.CS_CUP.Runtime.Symbol)CUP_TinyParser_stack.elementAt(CUP_TinyParser_top - 2)).value; SimboloAbstracto a = (SimboloAbstracto)((TUVienna.CS_CUP.Runtime.Symbol)CUP_TinyParser_stack.elementAt(CUP_TinyParser_top - 1)).value; Expresion e = (Expresion)((TUVienna.CS_CUP.Runtime.Symbol)CUP_TinyParser_stack.elementAt(CUP_TinyParser_top - 0)).value; RESULT = new Asignacion(new Variable(id, id.Linea, id.Columna), e, a.Linea, a.Columna); CUP_TinyParser_result = new TUVienna.CS_CUP.Runtime.Symbol(6 /*sent_assign*/, RESULT); } return(CUP_TinyParser_result); /*. . . . . . . . . . . . . . . . . . . .*/ case 11: // sent_repeat ::= REPITA secuencia_sent HASTA exp { Sentencia RESULT = null; SimboloAbstracto r = (SimboloAbstracto)((TUVienna.CS_CUP.Runtime.Symbol)CUP_TinyParser_stack.elementAt(CUP_TinyParser_top - 3)).value; ListaSentencia s = (ListaSentencia)((TUVienna.CS_CUP.Runtime.Symbol)CUP_TinyParser_stack.elementAt(CUP_TinyParser_top - 2)).value; Expresion c = (Expresion)((TUVienna.CS_CUP.Runtime.Symbol)CUP_TinyParser_stack.elementAt(CUP_TinyParser_top - 0)).value; RESULT = new RepitaHasta(c, s, r.Linea, r.Columna); CUP_TinyParser_result = new TUVienna.CS_CUP.Runtime.Symbol(5 /*sent_repeat*/, RESULT); } return(CUP_TinyParser_result); /*. . . . . . . . . . . . . . . . . . . .*/ case 10: // sent_if ::= SI exp ENTONCES secuencia_sent SINO secuencia_sent FIN { Sentencia RESULT = null; SimboloAbstracto s = (SimboloAbstracto)((TUVienna.CS_CUP.Runtime.Symbol)CUP_TinyParser_stack.elementAt(CUP_TinyParser_top - 6)).value; Expresion c = (Expresion)((TUVienna.CS_CUP.Runtime.Symbol)CUP_TinyParser_stack.elementAt(CUP_TinyParser_top - 5)).value; ListaSentencia en = (ListaSentencia)((TUVienna.CS_CUP.Runtime.Symbol)CUP_TinyParser_stack.elementAt(CUP_TinyParser_top - 3)).value; ListaSentencia sn = (ListaSentencia)((TUVienna.CS_CUP.Runtime.Symbol)CUP_TinyParser_stack.elementAt(CUP_TinyParser_top - 1)).value; RESULT = new Condicional(c, en, sn, s.Linea, s.Columna); CUP_TinyParser_result = new TUVienna.CS_CUP.Runtime.Symbol(4 /*sent_if*/, RESULT); } return(CUP_TinyParser_result); /*. . . . . . . . . . . . . . . . . . . .*/ case 9: // sent_if ::= SI exp ENTONCES secuencia_sent FIN { Sentencia RESULT = null; SimboloAbstracto s = (SimboloAbstracto)((TUVienna.CS_CUP.Runtime.Symbol)CUP_TinyParser_stack.elementAt(CUP_TinyParser_top - 4)).value; Expresion c = (Expresion)((TUVienna.CS_CUP.Runtime.Symbol)CUP_TinyParser_stack.elementAt(CUP_TinyParser_top - 3)).value; ListaSentencia en = (ListaSentencia)((TUVienna.CS_CUP.Runtime.Symbol)CUP_TinyParser_stack.elementAt(CUP_TinyParser_top - 1)).value; RESULT = new Condicional(c, en, null, s.Linea, s.Columna); CUP_TinyParser_result = new TUVienna.CS_CUP.Runtime.Symbol(4 /*sent_if*/, RESULT); } return(CUP_TinyParser_result); /*. . . . . . . . . . . . . . . . . . . .*/ case 8: // sent ::= error { Sentencia RESULT = null; CUP_TinyParser_result = new TUVienna.CS_CUP.Runtime.Symbol(3 /*sent*/, RESULT); } return(CUP_TinyParser_result); /*. . . . . . . . . . . . . . . . . . . .*/ case 7: // sent ::= fuction_call { Sentencia RESULT = null; Sentencia s = (Sentencia)((TUVienna.CS_CUP.Runtime.Symbol)CUP_TinyParser_stack.elementAt(CUP_TinyParser_top - 0)).value; RESULT = s; CUP_TinyParser_result = new TUVienna.CS_CUP.Runtime.Symbol(3 /*sent*/, RESULT); } return(CUP_TinyParser_result); /*. . . . . . . . . . . . . . . . . . . .*/ case 6: // sent ::= sent_assign { Sentencia RESULT = null; Sentencia s = (Sentencia)((TUVienna.CS_CUP.Runtime.Symbol)CUP_TinyParser_stack.elementAt(CUP_TinyParser_top - 0)).value; RESULT = s; CUP_TinyParser_result = new TUVienna.CS_CUP.Runtime.Symbol(3 /*sent*/, RESULT); } return(CUP_TinyParser_result); /*. . . . . . . . . . . . . . . . . . . .*/ case 5: // sent ::= sent_repeat { Sentencia RESULT = null; Sentencia s = (Sentencia)((TUVienna.CS_CUP.Runtime.Symbol)CUP_TinyParser_stack.elementAt(CUP_TinyParser_top - 0)).value; RESULT = s; CUP_TinyParser_result = new TUVienna.CS_CUP.Runtime.Symbol(3 /*sent*/, RESULT); } return(CUP_TinyParser_result); /*. . . . . . . . . . . . . . . . . . . .*/ case 4: // sent ::= sent_if { Sentencia RESULT = null; Sentencia s = (Sentencia)((TUVienna.CS_CUP.Runtime.Symbol)CUP_TinyParser_stack.elementAt(CUP_TinyParser_top - 0)).value; RESULT = s; CUP_TinyParser_result = new TUVienna.CS_CUP.Runtime.Symbol(3 /*sent*/, RESULT); } return(CUP_TinyParser_result); /*. . . . . . . . . . . . . . . . . . . .*/ case 3: // secuencia_sent ::= sent { ListaSentencia RESULT = null; Sentencia s = (Sentencia)((TUVienna.CS_CUP.Runtime.Symbol)CUP_TinyParser_stack.elementAt(CUP_TinyParser_top - 0)).value; RESULT = new ListaSentencia(); RESULT.agregarElemento(s); CUP_TinyParser_result = new TUVienna.CS_CUP.Runtime.Symbol(2 /*secuencia_sent*/, RESULT); } return(CUP_TinyParser_result); /*. . . . . . . . . . . . . . . . . . . .*/ case 2: // secuencia_sent ::= secuencia_sent PUNTO_Y_COMA sent { ListaSentencia RESULT = null; ListaSentencia sc = (ListaSentencia)((TUVienna.CS_CUP.Runtime.Symbol)CUP_TinyParser_stack.elementAt(CUP_TinyParser_top - 2)).value; Sentencia s = (Sentencia)((TUVienna.CS_CUP.Runtime.Symbol)CUP_TinyParser_stack.elementAt(CUP_TinyParser_top - 0)).value; sc.agregarElemento(s); RESULT = sc; CUP_TinyParser_result = new TUVienna.CS_CUP.Runtime.Symbol(2 /*secuencia_sent*/, RESULT); } return(CUP_TinyParser_result); /*. . . . . . . . . . . . . . . . . . . .*/ case 1: // programa ::= secuencia_sent { Programa RESULT = null; ListaSentencia sc = (ListaSentencia)((TUVienna.CS_CUP.Runtime.Symbol)CUP_TinyParser_stack.elementAt(CUP_TinyParser_top - 0)).value; RESULT = new Programa(sc, 1, 0); CUP_TinyParser_result = new TUVienna.CS_CUP.Runtime.Symbol(1 /*programa*/, RESULT); } return(CUP_TinyParser_result); /*. . . . . . . . . . . . . . . . . . . .*/ case 0: // $START ::= programa EOF { object RESULT = null; Programa start_val = (Programa)((TUVienna.CS_CUP.Runtime.Symbol)CUP_TinyParser_stack.elementAt(CUP_TinyParser_top - 1)).value; RESULT = start_val; CUP_TinyParser_result = new TUVienna.CS_CUP.Runtime.Symbol(0 /*$START*/, RESULT); } /* ACCEPT */ CUP_TinyParser_parser.done_parsing(); return(CUP_TinyParser_result); /* . . . . . .*/ default: throw new System.Exception( "Invalid action number found in internal parse table"); } }
public LLamadaFuncion(SimboloAbstracto id, ListaParametros lparams, int linea, int columna) : base(linea, columna) { this.id = id; this.lparams = lparams; }
/** Method with the actual generated action code. */ public TUVienna.CS_CUP.Runtime.Symbol CUP_TinyParser_do_action( int CUP_TinyParser_act_num, TUVienna.CS_CUP.Runtime.lr_parser CUP_TinyParser_parser, System.Collections.Stack xstack1, int CUP_TinyParser_top) { /* Symbol object for return from actions */ mStack CUP_TinyParser_stack =new mStack(xstack1); TUVienna.CS_CUP.Runtime.Symbol CUP_TinyParser_result; /* select the action based on the action number */ switch (CUP_TinyParser_act_num) { /*. . . . . . . . . . . . . . . . . . . .*/ case 30: // factor ::= error { Expresion RESULT = null; CUP_TinyParser_result = new TUVienna.CS_CUP.Runtime.Symbol(13/*factor*/, RESULT); } return CUP_TinyParser_result; /*. . . . . . . . . . . . . . . . . . . .*/ case 29: // factor ::= IDENTIFICADOR { Expresion RESULT = null; SimboloAbstracto id = (SimboloAbstracto)((TUVienna.CS_CUP.Runtime.Symbol) CUP_TinyParser_stack.elementAt(CUP_TinyParser_top-0)).value; RESULT = new Variable(id, id.Linea, id.Columna); CUP_TinyParser_result = new TUVienna.CS_CUP.Runtime.Symbol(13/*factor*/, RESULT); } return CUP_TinyParser_result; /*. . . . . . . . . . . . . . . . . . . .*/ case 28: // factor ::= LIT_ENTERO { Expresion RESULT = null; SimboloAbstracto val = (SimboloAbstracto)((TUVienna.CS_CUP.Runtime.Symbol) CUP_TinyParser_stack.elementAt(CUP_TinyParser_top-0)).value; RESULT = new NumeroEntero(val, val.Linea, val.Columna); CUP_TinyParser_result = new TUVienna.CS_CUP.Runtime.Symbol(13/*factor*/, RESULT); } return CUP_TinyParser_result; /*. . . . . . . . . . . . . . . . . . . .*/ case 27: // factor ::= PARENT_IZQ exp PARENT_DER { Expresion RESULT = null; Expresion e = (Expresion)((TUVienna.CS_CUP.Runtime.Symbol) CUP_TinyParser_stack.elementAt(CUP_TinyParser_top-1)).value; RESULT = e; CUP_TinyParser_result = new TUVienna.CS_CUP.Runtime.Symbol(13/*factor*/, RESULT); } return CUP_TinyParser_result; /*. . . . . . . . . . . . . . . . . . . .*/ case 26: // term ::= factor { Expresion RESULT = null; Expresion e = (Expresion)((TUVienna.CS_CUP.Runtime.Symbol) CUP_TinyParser_stack.elementAt(CUP_TinyParser_top-0)).value; RESULT = e; CUP_TinyParser_result = new TUVienna.CS_CUP.Runtime.Symbol(12/*term*/, RESULT); } return CUP_TinyParser_result; /*. . . . . . . . . . . . . . . . . . . .*/ case 25: // term ::= term DIVISION factor { Expresion RESULT = null; Expresion e1 = (Expresion)((TUVienna.CS_CUP.Runtime.Symbol) CUP_TinyParser_stack.elementAt(CUP_TinyParser_top-2)).value; SimboloAbstracto d = (SimboloAbstracto)((TUVienna.CS_CUP.Runtime.Symbol) CUP_TinyParser_stack.elementAt(CUP_TinyParser_top-1)).value; Expresion e2 = (Expresion)((TUVienna.CS_CUP.Runtime.Symbol) CUP_TinyParser_stack.elementAt(CUP_TinyParser_top-0)).value; RESULT = new Division(e1, e2, d.Linea, d.Columna); CUP_TinyParser_result = new TUVienna.CS_CUP.Runtime.Symbol(12/*term*/, RESULT); } return CUP_TinyParser_result; /*. . . . . . . . . . . . . . . . . . . .*/ case 24: // term ::= term MULTIPLICACION factor { Expresion RESULT = null; Expresion e1 = (Expresion)((TUVienna.CS_CUP.Runtime.Symbol) CUP_TinyParser_stack.elementAt(CUP_TinyParser_top-2)).value; SimboloAbstracto m = (SimboloAbstracto)((TUVienna.CS_CUP.Runtime.Symbol) CUP_TinyParser_stack.elementAt(CUP_TinyParser_top-1)).value; Expresion e2 = (Expresion)((TUVienna.CS_CUP.Runtime.Symbol) CUP_TinyParser_stack.elementAt(CUP_TinyParser_top-0)).value; RESULT = new Multiplicacion(e1, e2, m.Linea, m.Columna); CUP_TinyParser_result = new TUVienna.CS_CUP.Runtime.Symbol(12/*term*/, RESULT); } return CUP_TinyParser_result; /*. . . . . . . . . . . . . . . . . . . .*/ case 23: // exp_simple ::= term { Expresion RESULT = null; Expresion e = (Expresion)((TUVienna.CS_CUP.Runtime.Symbol) CUP_TinyParser_stack.elementAt(CUP_TinyParser_top-0)).value; RESULT = e; CUP_TinyParser_result = new TUVienna.CS_CUP.Runtime.Symbol(11/*exp_simple*/, RESULT); } return CUP_TinyParser_result; /*. . . . . . . . . . . . . . . . . . . .*/ case 22: // exp_simple ::= exp_simple RESTA term { Expresion RESULT = null; Expresion e1 = (Expresion)((TUVienna.CS_CUP.Runtime.Symbol) CUP_TinyParser_stack.elementAt(CUP_TinyParser_top-2)).value; SimboloAbstracto r = (SimboloAbstracto)((TUVienna.CS_CUP.Runtime.Symbol) CUP_TinyParser_stack.elementAt(CUP_TinyParser_top-1)).value; Expresion e2 = (Expresion)((TUVienna.CS_CUP.Runtime.Symbol) CUP_TinyParser_stack.elementAt(CUP_TinyParser_top-0)).value; RESULT = new Resta(e1, e2, r.Linea, r.Columna); CUP_TinyParser_result = new TUVienna.CS_CUP.Runtime.Symbol(11/*exp_simple*/, RESULT); } return CUP_TinyParser_result; /*. . . . . . . . . . . . . . . . . . . .*/ case 21: // exp_simple ::= exp_simple SUMA term { Expresion RESULT = null; Expresion e1 = (Expresion)((TUVienna.CS_CUP.Runtime.Symbol) CUP_TinyParser_stack.elementAt(CUP_TinyParser_top-2)).value; SimboloAbstracto s = (SimboloAbstracto)((TUVienna.CS_CUP.Runtime.Symbol) CUP_TinyParser_stack.elementAt(CUP_TinyParser_top-1)).value; Expresion e2 = (Expresion)((TUVienna.CS_CUP.Runtime.Symbol) CUP_TinyParser_stack.elementAt(CUP_TinyParser_top-0)).value; RESULT = new Suma(e1, e2, s.Linea, s.Columna); CUP_TinyParser_result = new TUVienna.CS_CUP.Runtime.Symbol(11/*exp_simple*/, RESULT); } return CUP_TinyParser_result; /*. . . . . . . . . . . . . . . . . . . .*/ case 20: // exp ::= exp_simple { Expresion RESULT = null; Expresion e = (Expresion)((TUVienna.CS_CUP.Runtime.Symbol) CUP_TinyParser_stack.elementAt(CUP_TinyParser_top-0)).value; RESULT = e; CUP_TinyParser_result = new TUVienna.CS_CUP.Runtime.Symbol(10/*exp*/, RESULT); } return CUP_TinyParser_result; /*. . . . . . . . . . . . . . . . . . . .*/ case 19: // exp ::= exp_simple IGUAL exp_simple { Expresion RESULT = null; Expresion e1 = (Expresion)((TUVienna.CS_CUP.Runtime.Symbol) CUP_TinyParser_stack.elementAt(CUP_TinyParser_top-2)).value; SimboloAbstracto i = (SimboloAbstracto)((TUVienna.CS_CUP.Runtime.Symbol) CUP_TinyParser_stack.elementAt(CUP_TinyParser_top-1)).value; Expresion e2 = (Expresion)((TUVienna.CS_CUP.Runtime.Symbol) CUP_TinyParser_stack.elementAt(CUP_TinyParser_top-0)).value; RESULT = new Igual(e1, e2, i.Linea, i.Columna); CUP_TinyParser_result = new TUVienna.CS_CUP.Runtime.Symbol(10/*exp*/, RESULT); } return CUP_TinyParser_result; /*. . . . . . . . . . . . . . . . . . . .*/ case 18: // exp ::= exp_simple MENOR exp_simple { Expresion RESULT = null; Expresion e1 = (Expresion)((TUVienna.CS_CUP.Runtime.Symbol) CUP_TinyParser_stack.elementAt(CUP_TinyParser_top-2)).value; SimboloAbstracto m = (SimboloAbstracto)((TUVienna.CS_CUP.Runtime.Symbol) CUP_TinyParser_stack.elementAt(CUP_TinyParser_top-1)).value; Expresion e2 = (Expresion)((TUVienna.CS_CUP.Runtime.Symbol) CUP_TinyParser_stack.elementAt(CUP_TinyParser_top-0)).value; RESULT = new Menor(e1, e2, m.Linea, m.Columna); CUP_TinyParser_result = new TUVienna.CS_CUP.Runtime.Symbol(10/*exp*/, RESULT); } return CUP_TinyParser_result; /*. . . . . . . . . . . . . . . . . . . .*/ case 17: // args ::= args COMA exp { ListaParametros RESULT = null; ListaParametros p = (ListaParametros)((TUVienna.CS_CUP.Runtime.Symbol) CUP_TinyParser_stack.elementAt(CUP_TinyParser_top-2)).value; Expresion e = (Expresion)((TUVienna.CS_CUP.Runtime.Symbol) CUP_TinyParser_stack.elementAt(CUP_TinyParser_top-0)).value; p.agregarElemento(e); RESULT = p; CUP_TinyParser_result = new TUVienna.CS_CUP.Runtime.Symbol(9/*args*/, RESULT); } return CUP_TinyParser_result; /*. . . . . . . . . . . . . . . . . . . .*/ case 16: // args ::= exp { ListaParametros RESULT = null; Expresion e = (Expresion)((TUVienna.CS_CUP.Runtime.Symbol) CUP_TinyParser_stack.elementAt(CUP_TinyParser_top-0)).value; RESULT = new ListaParametros(); RESULT.agregarElemento(e); CUP_TinyParser_result = new TUVienna.CS_CUP.Runtime.Symbol(9/*args*/, RESULT); } return CUP_TinyParser_result; /*. . . . . . . . . . . . . . . . . . . .*/ case 15: // opt_args ::= { ListaParametros RESULT = null; RESULT = new ListaParametros(); CUP_TinyParser_result = new TUVienna.CS_CUP.Runtime.Symbol(8/*opt_args*/, RESULT); } return CUP_TinyParser_result; /*. . . . . . . . . . . . . . . . . . . .*/ case 14: // opt_args ::= args { ListaParametros RESULT = null; ListaParametros p = (ListaParametros)((TUVienna.CS_CUP.Runtime.Symbol) CUP_TinyParser_stack.elementAt(CUP_TinyParser_top-0)).value; RESULT = p; CUP_TinyParser_result = new TUVienna.CS_CUP.Runtime.Symbol(8/*opt_args*/, RESULT); } return CUP_TinyParser_result; /*. . . . . . . . . . . . . . . . . . . .*/ case 13: // fuction_call ::= IDENTIFICADOR opt_args { Sentencia RESULT = null; SimboloAbstracto id = (SimboloAbstracto)((TUVienna.CS_CUP.Runtime.Symbol) CUP_TinyParser_stack.elementAt(CUP_TinyParser_top-1)).value; ListaParametros p = (ListaParametros)((TUVienna.CS_CUP.Runtime.Symbol) CUP_TinyParser_stack.elementAt(CUP_TinyParser_top-0)).value; RESULT = new LLamadaFuncion(id, p, id.Linea, id.Columna); CUP_TinyParser_result = new TUVienna.CS_CUP.Runtime.Symbol(7/*fuction_call*/, RESULT); } return CUP_TinyParser_result; /*. . . . . . . . . . . . . . . . . . . .*/ case 12: // sent_assign ::= IDENTIFICADOR ASIGNACION exp { Sentencia RESULT = null; SimboloAbstracto id = (SimboloAbstracto)((TUVienna.CS_CUP.Runtime.Symbol) CUP_TinyParser_stack.elementAt(CUP_TinyParser_top-2)).value; SimboloAbstracto a = (SimboloAbstracto)((TUVienna.CS_CUP.Runtime.Symbol) CUP_TinyParser_stack.elementAt(CUP_TinyParser_top-1)).value; Expresion e = (Expresion)((TUVienna.CS_CUP.Runtime.Symbol) CUP_TinyParser_stack.elementAt(CUP_TinyParser_top-0)).value; RESULT = new Asignacion(new Variable(id, id.Linea, id.Columna), e, a.Linea, a.Columna); CUP_TinyParser_result = new TUVienna.CS_CUP.Runtime.Symbol(6/*sent_assign*/, RESULT); } return CUP_TinyParser_result; /*. . . . . . . . . . . . . . . . . . . .*/ case 11: // sent_repeat ::= REPITA secuencia_sent HASTA exp { Sentencia RESULT = null; SimboloAbstracto r = (SimboloAbstracto)((TUVienna.CS_CUP.Runtime.Symbol) CUP_TinyParser_stack.elementAt(CUP_TinyParser_top-3)).value; ListaSentencia s = (ListaSentencia)((TUVienna.CS_CUP.Runtime.Symbol) CUP_TinyParser_stack.elementAt(CUP_TinyParser_top-2)).value; Expresion c = (Expresion)((TUVienna.CS_CUP.Runtime.Symbol) CUP_TinyParser_stack.elementAt(CUP_TinyParser_top-0)).value; RESULT = new RepitaHasta(c, s, r.Linea, r.Columna); CUP_TinyParser_result = new TUVienna.CS_CUP.Runtime.Symbol(5/*sent_repeat*/, RESULT); } return CUP_TinyParser_result; /*. . . . . . . . . . . . . . . . . . . .*/ case 10: // sent_if ::= SI exp ENTONCES secuencia_sent SINO secuencia_sent FIN { Sentencia RESULT = null; SimboloAbstracto s = (SimboloAbstracto)((TUVienna.CS_CUP.Runtime.Symbol) CUP_TinyParser_stack.elementAt(CUP_TinyParser_top-6)).value; Expresion c = (Expresion)((TUVienna.CS_CUP.Runtime.Symbol) CUP_TinyParser_stack.elementAt(CUP_TinyParser_top-5)).value; ListaSentencia en = (ListaSentencia)((TUVienna.CS_CUP.Runtime.Symbol) CUP_TinyParser_stack.elementAt(CUP_TinyParser_top-3)).value; ListaSentencia sn = (ListaSentencia)((TUVienna.CS_CUP.Runtime.Symbol) CUP_TinyParser_stack.elementAt(CUP_TinyParser_top-1)).value; RESULT = new Condicional(c, en, sn, s.Linea, s.Columna); CUP_TinyParser_result = new TUVienna.CS_CUP.Runtime.Symbol(4/*sent_if*/, RESULT); } return CUP_TinyParser_result; /*. . . . . . . . . . . . . . . . . . . .*/ case 9: // sent_if ::= SI exp ENTONCES secuencia_sent FIN { Sentencia RESULT = null; SimboloAbstracto s = (SimboloAbstracto)((TUVienna.CS_CUP.Runtime.Symbol) CUP_TinyParser_stack.elementAt(CUP_TinyParser_top-4)).value; Expresion c = (Expresion)((TUVienna.CS_CUP.Runtime.Symbol) CUP_TinyParser_stack.elementAt(CUP_TinyParser_top-3)).value; ListaSentencia en = (ListaSentencia)((TUVienna.CS_CUP.Runtime.Symbol) CUP_TinyParser_stack.elementAt(CUP_TinyParser_top-1)).value; RESULT = new Condicional(c, en, null, s.Linea, s.Columna); CUP_TinyParser_result = new TUVienna.CS_CUP.Runtime.Symbol(4/*sent_if*/, RESULT); } return CUP_TinyParser_result; /*. . . . . . . . . . . . . . . . . . . .*/ case 8: // sent ::= error { Sentencia RESULT = null; CUP_TinyParser_result = new TUVienna.CS_CUP.Runtime.Symbol(3/*sent*/, RESULT); } return CUP_TinyParser_result; /*. . . . . . . . . . . . . . . . . . . .*/ case 7: // sent ::= fuction_call { Sentencia RESULT = null; Sentencia s = (Sentencia)((TUVienna.CS_CUP.Runtime.Symbol) CUP_TinyParser_stack.elementAt(CUP_TinyParser_top-0)).value; RESULT = s; CUP_TinyParser_result = new TUVienna.CS_CUP.Runtime.Symbol(3/*sent*/, RESULT); } return CUP_TinyParser_result; /*. . . . . . . . . . . . . . . . . . . .*/ case 6: // sent ::= sent_assign { Sentencia RESULT = null; Sentencia s = (Sentencia)((TUVienna.CS_CUP.Runtime.Symbol) CUP_TinyParser_stack.elementAt(CUP_TinyParser_top-0)).value; RESULT = s; CUP_TinyParser_result = new TUVienna.CS_CUP.Runtime.Symbol(3/*sent*/, RESULT); } return CUP_TinyParser_result; /*. . . . . . . . . . . . . . . . . . . .*/ case 5: // sent ::= sent_repeat { Sentencia RESULT = null; Sentencia s = (Sentencia)((TUVienna.CS_CUP.Runtime.Symbol) CUP_TinyParser_stack.elementAt(CUP_TinyParser_top-0)).value; RESULT = s; CUP_TinyParser_result = new TUVienna.CS_CUP.Runtime.Symbol(3/*sent*/, RESULT); } return CUP_TinyParser_result; /*. . . . . . . . . . . . . . . . . . . .*/ case 4: // sent ::= sent_if { Sentencia RESULT = null; Sentencia s = (Sentencia)((TUVienna.CS_CUP.Runtime.Symbol) CUP_TinyParser_stack.elementAt(CUP_TinyParser_top-0)).value; RESULT = s; CUP_TinyParser_result = new TUVienna.CS_CUP.Runtime.Symbol(3/*sent*/, RESULT); } return CUP_TinyParser_result; /*. . . . . . . . . . . . . . . . . . . .*/ case 3: // secuencia_sent ::= sent { ListaSentencia RESULT = null; Sentencia s = (Sentencia)((TUVienna.CS_CUP.Runtime.Symbol) CUP_TinyParser_stack.elementAt(CUP_TinyParser_top-0)).value; RESULT = new ListaSentencia(); RESULT.agregarElemento(s); CUP_TinyParser_result = new TUVienna.CS_CUP.Runtime.Symbol(2/*secuencia_sent*/, RESULT); } return CUP_TinyParser_result; /*. . . . . . . . . . . . . . . . . . . .*/ case 2: // secuencia_sent ::= secuencia_sent PUNTO_Y_COMA sent { ListaSentencia RESULT = null; ListaSentencia sc = (ListaSentencia)((TUVienna.CS_CUP.Runtime.Symbol) CUP_TinyParser_stack.elementAt(CUP_TinyParser_top-2)).value; Sentencia s = (Sentencia)((TUVienna.CS_CUP.Runtime.Symbol) CUP_TinyParser_stack.elementAt(CUP_TinyParser_top-0)).value; sc.agregarElemento(s); RESULT = sc; CUP_TinyParser_result = new TUVienna.CS_CUP.Runtime.Symbol(2/*secuencia_sent*/, RESULT); } return CUP_TinyParser_result; /*. . . . . . . . . . . . . . . . . . . .*/ case 1: // programa ::= secuencia_sent { Programa RESULT = null; ListaSentencia sc = (ListaSentencia)((TUVienna.CS_CUP.Runtime.Symbol) CUP_TinyParser_stack.elementAt(CUP_TinyParser_top-0)).value; RESULT = new Programa(sc, 1, 0); CUP_TinyParser_result = new TUVienna.CS_CUP.Runtime.Symbol(1/*programa*/, RESULT); } return CUP_TinyParser_result; /*. . . . . . . . . . . . . . . . . . . .*/ case 0: // $START ::= programa EOF { object RESULT = null; Programa start_val = (Programa)((TUVienna.CS_CUP.Runtime.Symbol) CUP_TinyParser_stack.elementAt(CUP_TinyParser_top-1)).value; RESULT = start_val; CUP_TinyParser_result = new TUVienna.CS_CUP.Runtime.Symbol(0/*$START*/, RESULT); } /* ACCEPT */ CUP_TinyParser_parser.done_parsing(); return CUP_TinyParser_result; /* . . . . . .*/ default: throw new System.Exception( "Invalid action number found in internal parse table"); } }