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);
        }
示例#4
0
 public Negation(IIntegerReturningStatement _statement)
 {
     this.statement = _statement;
 }
示例#5
0
 public IntegerAssignment(VariableName varName, IIntegerReturningStatement value)
 {
     this.varName = varName;
     this.value   = value;
 }
示例#6
0
 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;
 }