NodeVisitor.h 2.4 KB

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