public void InterpreterTest() { // GIVEN var source = @" var person: any = 0; person.name = 'John Doe'; person.age = 24; writeline(person.name); function max(a: number, b: number) : number do writeline('call function max'); if (a > b) result = a; else result = b; end; end; function min(a: number, b: number) : number do writeline('call function min'); if (a < b) result = a; else result = b; end; end; var j : number = 0; foreach (var i : number in [1,2,3,4,5,6]) do j = max(3 * i, min(4 * i, 5 * i)); writeline(j + '. Hello World!'); end; "; var compilerService = new CompilerService(); var analyzer = new CodeInterpreter(compilerService); // WHEN var node = ParseWithAbstractTreeVisitor(Compiler, source); analyzer.VisitChild(node as CompilationUnit); // THEN }