private static void ParseVariableDeclaration(FunctionDefinitionSet functionSet, StringAbstraction s, Block block) { var split = s.Split("="); IIntegerReturningStatement toSetTo = ParseIntReturningExpression(s.AfterFirstOccuranceOf("="), functionSet); block.AddChild(new IntegerAssignment(new VariableName(s.BeforeFirstOccuranceOf("=").ToString()), toSetTo)); }
private static IIntegerReturningStatement ParseSum(StringAbstraction s, FunctionDefinitionSet functionSet) { List <StringAbstraction> args = s.AfterFirstColon().Split(","); IIntegerReturningStatement a = ParseIntReturningExpression(args[0], functionSet); IIntegerReturningStatement b = ParseIntReturningExpression(args[1], functionSet); return(new Sum(a, b)); }
private static IBooleanReturningStatement ParseLessThanCondition(CodeFileAbstraction codeFile, FunctionDefinitionSet functionSet) { StringAbstraction expression = codeFile.GetCurrentLine().AfterFirstColon(); IIntegerReturningStatement smaller = ParseIntReturningExpression(expression.BeforeFirstOccuranceOf("<"), functionSet); IIntegerReturningStatement bigger = ParseIntReturningExpression(expression.AfterFirstOccuranceOf("<"), functionSet); IBooleanReturningStatement condition = new CompareLessThan(smaller, bigger); return(condition); }
public Negation(IIntegerReturningStatement _statement) { this.statement = _statement; }
public IntegerAssignment(VariableName varName, IIntegerReturningStatement value) { this.varName = varName; this.value = value; }
public PrintIntegerReturningStatement(IIntegerReturningStatement statment) { this.statment = statment; }
public Sum(IIntegerReturningStatement a, IIntegerReturningStatement b) { this.a = a; this.b = b; }
public CompareLessThan(IIntegerReturningStatement isThisOneLessThan, IIntegerReturningStatement thisOne) { this.isThisOneLessThan = isThisOneLessThan; this.thisOne = thisOne; }
public IntReturningFunction(Block statements, IIntegerReturningStatement lastStatement, List <VariableName> variableNames) { this.statements = statements; this.lastStatement = lastStatement; this.variableNames = variableNames; }