public override void Interpret() { var from = FromExp.Interpret(); var to = ToExp.Interpret(); TablaSimbolos.Instance.SetVariableValue(Id.Name, from); while (((IntValue)from).Value <= ((IntValue)to).Value) { foreach (var statementNode in StatementList) { statementNode.Interpret(); } ((IntValue)from).Value += 1; TablaSimbolos.Instance.SetVariableValue(Id.Name, from); } }
public override void ValidSemantic() { var fromExpT = FromExp.EvaluateSemantic(); var toExpT = ToExp.EvaluateSemantic(); if (!(fromExpT is IntTipo) || !(toExpT is IntTipo)) { throw new SemanticException($"Expresion From y To deben ser tipo int, FromT: {fromExpT} ToT:{toExpT}"); } var idT = Id.EvaluateSemantic(); if (!(idT is IntTipo)) { throw new SemanticException($"Id debe de ser de tipo Int, idT: {idT}"); } foreach (var statementNode in StatementList) { statementNode.ValidSemantic(); } }