Visitor for printing AST. More...
#include <print.hpp>
Public Member Functions | |
PrintVisitor (std::ostream &os=std::cout, std::size_t step=INDENT_STEP) | |
Construct a new Print Visitor object. | |
error::Result< void > | visit_bin_op (NodePtr< BinaryOpNode > &node) override |
Visit a binary operation node. | |
error::Result< void > | visit_unary_op (NodePtr< UnaryOpNode > &node) override |
Visit a unary operation node. | |
error::Result< void > | visit_number (NodePtr< NumberNode > &node) override |
Visit a number node. | |
error::Result< void > | visit_varref (NodePtr< VarRefNode > &node) override |
Visit a variable reference node. | |
error::Result< void > | visit_varassign (NodePtr< VarAssignNode > &node) override |
Visit a variable assignment node. | |
error::Result< void > | visit_fcall (NodePtr< FcallNode > &node) override |
Visit a function call node. | |
error::Result< void > | visit_fdef (NodePtr< FdefNode > &node) override |
Visit a function definition node. | |
error::Result< void > | visit_if (NodePtr< IfNode > &node) override |
Visit an if node. | |
error::Result< void > | visit_program (NodePtr< ProgramNode > &node) override |
Visit a program node. | |
error::Result< void > | visit_import (NodePtr< ProgramImportNode > &node) override |
Visit a program import node. | |
![]() | |
virtual error::Result< void > | visit (NodePtr<> &node) |
Visit a number node. | |
Static Public Attributes | |
static constexpr std::size_t | INDENT_STEP = 2 |
Visitor for printing AST.
|
inline |
Construct a new Print Visitor object.
os | Output stream. |
step | Indent step. |
|
overridevirtual |
Visit a binary operation node.
node | Binary operation node. |
Reimplemented from tcalc::ast::BaseVisitor< void >.
|
overridevirtual |
Visit a function call node.
node | Function call node. |
Reimplemented from tcalc::ast::BaseVisitor< void >.
|
overridevirtual |
Visit a function definition node.
node | Function definition node. |
Reimplemented from tcalc::ast::BaseVisitor< void >.
|
overridevirtual |
Visit an if node.
node | If node. |
Reimplemented from tcalc::ast::BaseVisitor< void >.
|
overridevirtual |
Visit a program import node.
node | Program import node. |
Reimplemented from tcalc::ast::BaseVisitor< void >.
|
overridevirtual |
Visit a number node.
node | Number node. |
Reimplemented from tcalc::ast::BaseVisitor< void >.
|
overridevirtual |
Visit a program node.
node | Program node. |
Reimplemented from tcalc::ast::BaseVisitor< void >.
|
overridevirtual |
Visit a unary operation node.
node | Unary operation node. |
Reimplemented from tcalc::ast::BaseVisitor< void >.
|
overridevirtual |
Visit a variable assignment node.
node | Variable assignment node. |
Reimplemented from tcalc::ast::BaseVisitor< void >.
|
overridevirtual |
Visit a variable reference node.
node | Variable reference node. |
Reimplemented from tcalc::ast::BaseVisitor< void >.
|
staticconstexpr |
Default indent step.