Example #1
0
 public static MyError BadAttributeError(PyObj pyObj, IdentifierSegment identifierSegment)
 {
     return(new MyError(String.Format("El atributo: {0} no existe en el tipo: {1}",
                                      identifierSegment.Id,
                                      TypeConstants.GetMyTypeName(pyObj.GetMyType()))
                        ));
 }
Example #2
0
 public static MyError OutOfBounds(PyObj pyObj, int index, int lowerBound, int upperBound)
 {
     return(new MyError(String.Format("Indice fuera de rango: {0}. rango esperado: [{1}-{2}]",
                                      index,
                                      lowerBound,
                                      upperBound)
                        ));
 }
Example #3
0
 public static MyError BadProcedureError(PyObj pyObj, ProcedureSegment procedureSegment)
 {
     return(new MyError(String.Format("La funcion o metodo: {0} con: {1} argumentos no es una funcion o metodo valida para el tipo: {2}",
                                      procedureSegment.Id,
                                      procedureSegment.CountArguments,
                                      TypeConstants.GetMyTypeName(pyObj.GetMyType()))
                        ));
 }
Example #4
0
        //Operaciones
        public virtual Word BinaryOperation(BinaryOperator op, PyObj obj0)
        {
            switch (op)
            {
            case BinaryOperator.Plus:
                return(Calculator.Plus(this, obj0));

            case BinaryOperator.Minus:
                return(Calculator.Minus(this, obj0));

            case BinaryOperator.Mult:
                return(Calculator.Mult(this, obj0));

            case BinaryOperator.Div:
                return(Calculator.Div(this, obj0));

            case BinaryOperator.Pow:
                return(Calculator.Pow(this, obj0));

            case BinaryOperator.GreaterThan:
                return(Calculator.GreaterThan(this, obj0));

            case BinaryOperator.LessThan:
                return(Calculator.LessThan(this, obj0));

            case BinaryOperator.PyEquals:
                return(Calculator.PyEquals(this, obj0));

            case BinaryOperator.PyNotEquals:
                return(Calculator.PyNotEquals(this, obj0));

            case BinaryOperator.GreaterOrEqualTo:
                return(Calculator.GreaterOrEqualTo(this, obj0));

            case BinaryOperator.LessOrEqualTo:
                return(Calculator.LessOrEqualTo(this, obj0));

            case BinaryOperator.And:
                return(Calculator.And(this, obj0));

            case BinaryOperator.Or:
                return(Calculator.Or(this, obj0));

            case BinaryOperator.Xor:
                return(Calculator.Xor(this, obj0));

            default:
                //TODO: Tirar una mejor exception, no una generica
                throw new Exception("Operador Binario no valido: " + op.ToString());
            }
        }
Example #5
0
            public static MyError BadIndexError(PyObj pyObj, IndexSegment indexSegment)
            {
                var indexValue = indexSegment.Index;

                return(new MyError("El indice: " + indexValue.MyToString() + " (" + TypeConstants.GetMyTypeName(indexValue.GetMyType()) + ") no es un indice valido para el tipo: " + TypeConstants.GetMyTypeName(pyObj.GetMyType()) + " valor: " + pyObj.MyToString()));;
            }