//---------------------------------------------------------------------------------------- //Expr public object VisitMulTermMExprAST(MulTermMExprAST v,object arg) { string t1=(string)v.term.visit(this,arg),t2=(string)v.terms.visit(this,arg); if ((t1==t2)&&((t1=="int")||(t1=="float"))){ return t1; } else{ errores_contextuales+="Error Contextual: Tipos Incompatibles.\n"; } return null; }
//---------------------------------------------------------------------------------------- //Expr public object VisitMulTermMExprAST(MulTermMExprAST v,object arg) { ILGenerator generador=(ILGenerator)arg; v.term.visit(this,arg); v.terms.visit(this,arg); switch (v.operador.value){ case "+": {generador.Emit(OpCodes.Add_Ovf); break;} case "-": {generador.Emit(OpCodes.Sub_Ovf); break;} default : {break;} } return null; }
//---------------------------------------------------------------------------------------- //Expr public object VisitMulTermMExprAST(MulTermMExprAST v,object arg) { int numaux = ((int)arg); printtab(numaux); resultado = resultado +"\n"+(v.GetType()); if (v.term != null) v.term.visit(this,numaux+1); else{ printtab(numaux+1); resultado = resultado +"\n"+("NULL"); } if(v.terms != null){ v.terms.visit(this,numaux+1); } else{ printtab(numaux+1); resultado = resultado +"\n"+("NULL"); } return null; }