public void Visit(WhileLoop ast)
 {
     Exec(ast);
 }
        public void Visit(WhileLoop ast)
        {
            ast.Predicate.Visit(this);

            ast.Body.Visit(this);

            SetScope(ast);
        }
        private void WhileDo(WhileLoop whileLoop)
        {
            MemorySpaces.CreateScope();

            while (GetValue(Exec(whileLoop.Predicate)))
            {
                whileLoop.Body.ScopedStatements.ForEach(statement => Exec(statement));
            }

            MemorySpaces.PopScope();
        }
        public void Visit(WhileLoop ast)
        {
            Console.Write(ast.Token);

            PrintWrap("Predicate", () => ast.Predicate.Visit(this));

            ast.Body.Visit(this);
        }