//----------------------------------------------------------------------------------------
 //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;
        }