![]() |
ArkScript
A small, lisp-inspired, functional scripting language
|
An interface to describe compiler passes. More...
#include <Pass.hpp>
Public Member Functions | |
| Pass (std::string name, unsigned debug_level) | |
| Construct a new Pass object. | |
| virtual | ~Pass ()=default |
| virtual void | process (const Node &ast)=0 |
| Start processing the given AST. | |
| virtual const Node & | ast () const noexcept=0 |
| Output of the compiler pass. | |
Protected Attributes | |
| Logger | m_logger |
| Ark::internal::Pass::Pass | ( | std::string | name, |
| unsigned | debug_level ) |
|
virtualdefault |
|
nodiscardpure virtualnoexcept |
Output of the compiler pass.
Implemented in Ark::internal::ImportSolver, Ark::internal::MacroProcessor, Ark::internal::NameResolutionPass, and Ark::internal::Optimizer.
|
pure virtual |
Start processing the given AST.
| ast |
Implemented in Ark::internal::ImportSolver, Ark::internal::MacroProcessor, Ark::internal::NameResolutionPass, and Ark::internal::Optimizer.
|
protected |
Definition at line 49 of file Pass.hpp.
Referenced by Ark::internal::ImportSolver::parseImport(), Ark::internal::ImportSolver::process(), Ark::internal::MacroProcessor::process(), Ark::internal::NameResolutionPass::process(), Ark::internal::Optimizer::process(), Ark::internal::Optimizer::pruneUnusedGlobalVariables(), and Ark::internal::NameResolutionPass::updateSymbolWithFullyQualifiedName().