private void ScopeDelcaration(ScopeDeclr ast)
        {
            MemorySpaces.CreateScope();

            ast.ScopedStatements.ForEach(statement => statement.Visit(this));

            MemorySpaces.PopScope();
        }
        public void Visit(ScopeDeclr ast)
        {
            ScopeTree.CreateScope();

            ast.ScopedStatements.ForEach(statement => statement.Visit(this));

            SetScope(ast);

            ScopeTree.PopScope();
        }
Beispiel #3
0
        private Ast TryCatch()
        {
            if (TokenStream.Current.TokenType == TokenType.Try)
            {
                TokenStream.Take(TokenType.Try);

                var tryBody = GetStatementsInScope(TokenType.LBracket, TokenType.RBracket);

                ScopeDeclr catchBody = null;
                if (TokenStream.Current.TokenType == TokenType.Catch)
                {
                    TokenStream.Take(TokenType.Catch);

                    catchBody = GetStatementsInScope(TokenType.LBracket, TokenType.RBracket);
                }

                return(new TryCatchAst(tryBody, catchBody));
            }

            return(null);
        }
 public void Visit(ScopeDeclr ast)
 {
     Exec(ast);
 }
Beispiel #5
0
 public void Visit(ScopeDeclr test)
 {
     Console.WriteLine("Useless!");
 }
 public void Visit(ScopeDeclr ast)
 {
     PrintWrap("Scope", () => ast.ScopedStatements.ForEach(statement => statement.Visit(this)), true);
 }