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. | |
Public Member Functions inherited from tcalc::ast::BaseVisitor< void > | |
| 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.