Ejemplo n.º 1
0
 public ForStatement(
     StatementListItem init,
     Expression test,
     Expression update,
     Statement body)
     : base(Nodes.ForStatement)
 {
     Init   = init;
     Test   = test;
     Update = update;
     Body   = body;
 }
        private Ust VisitStatementListItem(StatementListItem listItem)
        {
            if (listItem is Statement statement)
            {
                return(VisitStatement(statement));
            }
            else if (listItem is Declaration declaration)
            {
                return(VisitDeclaration(declaration));
            }

            Logger.LogDebug($"Unknown {nameof(StatementListItem)} type {listItem?.GetType().Name}"); // TODO
            return(null);
        }
Ejemplo n.º 3
0
        public virtual void  Visit(StatementListItem statement, TContext context)
        {
            if (statement is Esprima.Ast.BlockStatement)
            {
                Visit((BlockStatement)statement, context);
            }
            else if (statement is Esprima.Ast.BreakStatement)
            {
                Visit((BreakStatement)statement, context);
            }
            else if (statement is Esprima.Ast.ContinueStatement)
            {
                Visit((ContinueStatement)statement, context);
            }
            else if (statement is Esprima.Ast.DebuggerStatement)
            {
                Visit((DebuggerStatement)statement, context);
            }
            else if (statement is Esprima.Ast.DoWhileStatement)
            {
                Visit((DoWhileStatement)statement, context);
            }
            else if (statement is Esprima.Ast.EmptyStatement)
            {
                Visit((EmptyStatement)statement, context);
            }
            else if (statement is Esprima.Ast.ExportStatement)
            {
                Visit((ExportStatement)statement, context);
            }
            else if (statement is Esprima.Ast.ExpressionStatement)
            {
                Visit((ExpressionStatement)statement, context);
            }
            else if (statement is Esprima.Ast.ForInStatement)
            {
                Visit((ForInStatement)statement, context);
            }
            else if (statement is Esprima.Ast.ForOfStatement)
            {
                Visit((ForOfStatement)statement, context);
            }

            else if (statement is ForStatement)
            {
                Visit((ForStatement)statement, context);
            }
            else if (statement is ForOfStatement)
            {
                Visit((ForOfStatement)statement, context);
            }
            else if (statement is IfStatement)
            {
                Visit((IfStatement)statement, context);
            }
            else if (statement is Esprima.Ast.LabeledStatement)
            {
                Visit((LabeledStatement)statement, context);
            }
            else if (statement is Esprima.Ast.ReturnStatement)
            {
                Visit((ReturnStatement)statement, context);
            }
            else if (statement is Esprima.Ast.SwitchStatement)
            {
                Visit((SwitchStatement)statement, context);
            }
            else if (statement is Esprima.Ast.ThrowStatement)
            {
                Visit((ThrowStatement)statement, context);
            }
            else if (statement is Esprima.Ast.TryStatement)
            {
                Visit((TryStatement)statement, context);
            }
            else if (statement is Esprima.Ast.WhileStatement)
            {
                Visit((WhileStatement)statement, context);
            }
            else if (statement is Esprima.Ast.WithStatement)
            {
                Visit((WithStatement)statement, context);
            }
            else if (statement is Esprima.Ast.FunctionDeclaration)
            {
                Visit((FunctionDeclaration)statement, context);
            }
            else if (statement is Esprima.Ast.VariableDeclaration)
            {
                Visit((VariableDeclaration)statement, context);
            }
            else if (statement is Esprima.Ast.CatchClause)
            {
                Visit((CatchClause)statement, context);
            }

            else
            {
                throw new NotImplementedException();
            }
        }
Ejemplo n.º 4
0
 public ExportNamedDeclaration(
     StatementListItem declaration,
     in NodeList <ExportSpecifier> specifiers,
        public readonly StatementListItem Declaration; //: BindingIdentifier | BindingPattern | ClassDeclaration | Expression | FunctionDeclaration;

        public ExportDefaultDeclaration(StatementListItem declaration) : base(Nodes.ExportDefaultDeclaration)
        {
            Declaration = declaration;
        }