public static MyError ArrayDimensionError(AstNode node, Word indexWord) { string type; string value; if (indexWord.IsError()) { type = indexWord.GetType().Name; value = ""; } else { type = TypeConstants.GetMyTypeName(((PyObj)indexWord).GetMyType()); value = ((PyObj)indexWord).MyToString(); } MyError error = new MyError(node.Span.Location.Line, node.Span.Location.Column, node.NodePath.StringValue, "Indice no valido en declaracion de Array: " + type + " valor: " + value, MyError.ErrorType.Semantic, MyError.ErrorLevel.Fatal); AddError(error); return(error); }
public static MyError ArrayTypeError(AstNode node, int[] intIndices, Word word) { string type; string value; if (word.IsError()) { type = word.GetType().Name; value = ""; } else { type = TypeConstants.GetMyTypeName(((PyObj)word).GetMyType()); value = ((PyObj)word).MyToString(); } MyError error = new MyError(node.Span.Location.Line, node.Span.Location.Column, node.NodePath.StringValue, "No se le puede asignar a un array con las dimensiones: [ " + String.Join(", ", intIndices) + " ]. Un objeto tipo: " + type + " valor: " + value, MyError.ErrorType.Semantic, MyError.ErrorLevel.Fatal); AddError(error); return(error); }
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())) )); }
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())) )); }
public virtual MyError UnaryError(UnaryOperator op, PyObj obj0) { return(new MyError(string.Format("No se puede realizar la operacion unaria: {0} ({1}). Con tipo: <{2}> y valor: <{3}>" , op.ToString() , op.ToStringSymbol() , TypeConstants.GetMyTypeName(obj0.GetMyType()) , obj0.MyToString() ))); }
public virtual MyError BinaryError(PyObj obj0, BinaryOperator op, PyObj obj1) { return(new MyError(string.Format("No se puede realizar la operacion binaria: {0} ({1}). Con tipos: <{2}, {3}> y valores: <{4}, {5}>" , op.ToString() , op.ToStringSymbol() , TypeConstants.GetMyTypeName(obj0.GetMyType()) , TypeConstants.GetMyTypeName(obj1.GetMyType()) , obj0.MyToString() , obj1.MyToString() ))); }
public static MyError ForConditionError(AstNode node, Word word) { string type; if (word.IsError()) { type = word.GetType().Name; } else { type = TypeConstants.GetMyTypeName(((PyObj)word).GetMyType()); } MyError error = new MyError(node.Span.Location.Line, node.Span.Location.Column, node.NodePath.StringValue, "Condicion del FOR no es valida. Tipo: " + type + " se esperaba: " + TypeConstants.GetMyTypeName(TypeConstants.BOOLEAN), MyError.ErrorType.Semantic, MyError.ErrorLevel.Fatal); AddError(error); return(error); }
public static MyError CantReturnError(AstNode node, Word word) { string type; if (word.IsError()) { type = word.GetType().Name; } else { type = TypeConstants.GetMyTypeName(((PyObj)word).GetMyType()); } MyError error = new MyError(node.Span.Location.Line, node.Span.Location.Column, node.NodePath.StringValue, "No se puede retornar un tipo: " + type + " se retorno null para poder continuar con la ejecucion", MyError.ErrorType.Semantic, MyError.ErrorLevel.Fatal); AddError(error); return(error); }
public static MyError IncDecError(AstNode node, IncDecOperator op, Word word) { string type; if (word.IsError()) { type = word.GetType().Name; } else { type = TypeConstants.GetMyTypeName(((PyObj)word).GetMyType()); } MyError error = new MyError(node.Span.Location.Line, node.Span.Location.Column, node.NodePath.StringValue, "No se puede hacer " + op.ToStringSymbol() + " con un tipo: " + type, MyError.ErrorType.Semantic, MyError.ErrorLevel.Fatal); AddError(error); return(error); }
public static MyError GraphError(AstNode node, string paramName, Word word) { string type; if (word.IsError()) { type = word.GetType().Name; } else { type = TypeConstants.GetMyTypeName(((PyObj)word).GetMyType()); } MyError error = new MyError(node.Span.Location.Line, node.Span.Location.Column, node.NodePath.StringValue, paramName + " de graph con un tipo: " + type, MyError.ErrorType.Semantic, MyError.ErrorLevel.Fatal); AddError(error); return(error); }
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()));; }