public BinaryExpressionAst(ExpressionAst leftExp, ExpressionAst rightExp, string op) { Operator = GetOperator(op); LeftExp = leftExp; RightExp = rightExp; AlwaysReturn = true; }
public AssignExpressionAST(LHSExpressionAST leftExp, ExpressionAst rightExp, int line, int col) : base(line, col) { LeftExpression = leftExp; RightExpression = rightExp; ReturnType = TigerType.GetType <NoType>(); }
public FunctionDeclarationAST(string id, FormalParameterList parameterList, ExpressionAst exprInstructions, string retType) : this(id, parameterList, exprInstructions) { ReturnTypeId = retType; }
public IfExpressionAST(ExpressionAst expCondition, ExpressionAst expThen, ExpressionAst expElse) : this(expCondition, expThen) { ExpressionElse = expElse; ExpConditional = expCondition; ExpressionThen = expThen; }
public ForExpressionAST(string id, ExpressionAst expFrom, ExpressionAst expTo, ExpressionAst expInstruction) : base(expInstruction) { VarId = id; ExpressionFrom = expFrom; ExpressionTo = expTo; AlwaysReturn = false; }
private FunctionDeclarationAST(string id, FormalParameterList parameterList, ExpressionAst exprInstructions) { FunctionId = id; FormalParameterList = parameterList; ParameterList = (parameterList ?? new FormalParameterList()) .Parameters .Select(x => new KeyValuePair <string, string>(x.Name, x.TypeIdentifier)).ToList(); ExprInstructions = exprInstructions; ReturnType = TigerType.GetType <NoType>(); }
/// <summary> /// /// </summary> /// <param name="fieldId">El campo al cual se accede</param> /// <param name="exp">La expresion que representa a la instancia del record</param> /// <param name="line">Linea correspondiente en el codigo</param> /// <param name="col">Columna correspondiente en el codigo</param> public RecordAccessAST(string fieldId, ExpressionAst exp) { FieldId = fieldId; ExpressionRecord = exp; }
/// <summary> /// Cdo el tipo es inferido /// </summary> /// <param name="id">El id de la variable</param> /// <param name="expValue">La expresion que define el valor de la variable</param> public VarDeclarationAST(string id, ExpressionAst expValue) { Id = id; ExpressionValue = expValue; }
/// <summary> /// </summary> /// <param name="id">El id de la variable</param> /// <param name="typeId">El nombre del tipo de la variable</param> /// <param name="expValue">La expresion que define el valor de la variable</param> /// <param name="line">Linea correspondiente en el codigo</param> /// <param name="col">Columna correspondiente en el codigo</param> public VarDeclarationAST(string id, string typeId, ExpressionAst expValue) { TypeId = typeId; Id = id; ExpressionValue = expValue; }
/// <summary> /// Asigna lo que es comun para todos. /// </summary> /// <param name="bodyExpressions">La expression del cuerpo del ciclo</param> /// <param name="line">Linea correspondiente en el codigo</param> /// <param name="col">Columna correspondiente en el codigo</param> protected LoopAST(ExpressionAst bodyExpressions) { BreakPos = new List <int>(); BodyExpressions = bodyExpressions; AlwaysReturn = false; }
public ArrayAccessAST(ExpressionAst array, ExpressionAst indexer) { this.array = array; this.indexer = indexer; }
public FieldInstance(string name, ExpressionAst value) { Name = name; Value = Value; }
public AssignExpressionAST(LHSExpressionAST leftExp, ExpressionAst rightExp) { LeftExpression = leftExp; RightExpression = rightExp; ReturnType = TigerType.GetType <NoType>(); }
public IfExpressionAST(ExpressionAst expCondition, ExpressionAst expThen) { ExpConditional = expCondition; ExpressionThen = expThen; }
public WhileExpressionAST(ExpressionAst expCondition, ExpressionAst expInstruction) : base(expInstruction) { ExpressionConditional = expCondition; }
public NegExpressionAST(ExpressionAst exp) : base(exp) { AlwaysReturn = true; }