Serenity Operating System
at master 64 lines 2.4 kB view raw
1/* 2 * Copyright (c) 2020, the SerenityOS developers. 3 * 4 * SPDX-License-Identifier: BSD-2-Clause 5 */ 6 7#pragma once 8 9#include "Forward.h" 10 11namespace Shell::AST { 12 13class NodeVisitor { 14public: 15 virtual void visit(const AST::PathRedirectionNode*); 16 virtual void visit(const AST::And*); 17 virtual void visit(const AST::ListConcatenate*); 18 virtual void visit(const AST::Background*); 19 virtual void visit(const AST::BarewordLiteral*); 20 virtual void visit(const AST::BraceExpansion*); 21 virtual void visit(const AST::CastToCommand*); 22 virtual void visit(const AST::CastToList*); 23 virtual void visit(const AST::CloseFdRedirection*); 24 virtual void visit(const AST::CommandLiteral*); 25 virtual void visit(const AST::Comment*); 26 virtual void visit(const AST::ContinuationControl*); 27 virtual void visit(const AST::DynamicEvaluate*); 28 virtual void visit(const AST::DoubleQuotedString*); 29 virtual void visit(const AST::Fd2FdRedirection*); 30 virtual void visit(const AST::FunctionDeclaration*); 31 virtual void visit(const AST::ForLoop*); 32 virtual void visit(const AST::Glob*); 33 virtual void visit(const AST::Heredoc*); 34 virtual void visit(const AST::HistoryEvent*); 35 virtual void visit(const AST::Execute*); 36 virtual void visit(const AST::IfCond*); 37 virtual void visit(const AST::ImmediateExpression*); 38 virtual void visit(const AST::Join*); 39 virtual void visit(const AST::MatchExpr*); 40 virtual void visit(const AST::Or*); 41 virtual void visit(const AST::Pipe*); 42 virtual void visit(const AST::Range*); 43 virtual void visit(const AST::ReadRedirection*); 44 virtual void visit(const AST::ReadWriteRedirection*); 45 virtual void visit(const AST::Sequence*); 46 virtual void visit(const AST::Subshell*); 47 virtual void visit(const AST::Slice*); 48 virtual void visit(const AST::SimpleVariable*); 49 virtual void visit(const AST::SpecialVariable*); 50 virtual void visit(const AST::Juxtaposition*); 51 virtual void visit(const AST::StringLiteral*); 52 virtual void visit(const AST::StringPartCompose*); 53 virtual void visit(const AST::SyntaxError*); 54 virtual void visit(const AST::SyntheticNode*); 55 virtual void visit(const AST::Tilde*); 56 virtual void visit(const AST::VariableDeclarations*); 57 virtual void visit(const AST::WriteAppendRedirection*); 58 virtual void visit(const AST::WriteRedirection*); 59 60protected: 61 virtual ~NodeVisitor() = default; 62}; 63 64}