tcalc 0.2.0
 
Loading...
Searching...
No Matches
tcalc::ast::PrintVisitor Class Reference

Visitor for printing AST. More...

#include <print.hpp>

Inheritance diagram for tcalc::ast::PrintVisitor:
tcalc::ast::BaseVisitor< void >

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
 

Detailed Description

Visitor for printing AST.

Constructor & Destructor Documentation

◆ PrintVisitor()

tcalc::ast::PrintVisitor::PrintVisitor ( std::ostream &  os = std::cout,
std::size_t  step = INDENT_STEP 
)
inline

Construct a new Print Visitor object.

Parameters
osOutput stream.
stepIndent step.

Member Function Documentation

◆ visit_bin_op()

error::Result< void > tcalc::ast::PrintVisitor::visit_bin_op ( NodePtr< BinaryOpNode > &  node)
overridevirtual

Visit a binary operation node.

Parameters
nodeBinary operation node.
Returns
error::Result<RT> Result of the visit.

Reimplemented from tcalc::ast::BaseVisitor< void >.

◆ visit_fcall()

error::Result< void > tcalc::ast::PrintVisitor::visit_fcall ( NodePtr< FcallNode > &  node)
overridevirtual

Visit a function call node.

Parameters
nodeFunction call node.
Returns
error::Result<RT> Result of the visit.

Reimplemented from tcalc::ast::BaseVisitor< void >.

◆ visit_fdef()

error::Result< void > tcalc::ast::PrintVisitor::visit_fdef ( NodePtr< FdefNode > &  node)
overridevirtual

Visit a function definition node.

Parameters
nodeFunction definition node.
Returns
error::Result<RT> Result of the visit.

Reimplemented from tcalc::ast::BaseVisitor< void >.

◆ visit_if()

error::Result< void > tcalc::ast::PrintVisitor::visit_if ( NodePtr< IfNode > &  node)
overridevirtual

Visit an if node.

Parameters
nodeIf node.
Returns
error::Result<RT> Result of the visit.

Reimplemented from tcalc::ast::BaseVisitor< void >.

◆ visit_import()

error::Result< void > tcalc::ast::PrintVisitor::visit_import ( NodePtr< ProgramImportNode > &  node)
overridevirtual

Visit a program import node.

Parameters
nodeProgram import node.
Returns
error::Result<RT> Result of the visit.

Reimplemented from tcalc::ast::BaseVisitor< void >.

◆ visit_number()

error::Result< void > tcalc::ast::PrintVisitor::visit_number ( NodePtr< NumberNode > &  node)
overridevirtual

Visit a number node.

Parameters
nodeNumber node.
Returns
error::Result<RT> Result of the visit.

Reimplemented from tcalc::ast::BaseVisitor< void >.

◆ visit_program()

error::Result< void > tcalc::ast::PrintVisitor::visit_program ( NodePtr< ProgramNode > &  node)
overridevirtual

Visit a program node.

Parameters
nodeProgram node.
Returns
error::Result<RT> Result of the visit.

Reimplemented from tcalc::ast::BaseVisitor< void >.

◆ visit_unary_op()

error::Result< void > tcalc::ast::PrintVisitor::visit_unary_op ( NodePtr< UnaryOpNode > &  node)
overridevirtual

Visit a unary operation node.

Parameters
nodeUnary operation node.
Returns
error::Result<RT> Result of the visit.

Reimplemented from tcalc::ast::BaseVisitor< void >.

◆ visit_varassign()

error::Result< void > tcalc::ast::PrintVisitor::visit_varassign ( NodePtr< VarAssignNode > &  node)
overridevirtual

Visit a variable assignment node.

Parameters
nodeVariable assignment node.
Returns
error::Result<RT> Result of the visit.

Reimplemented from tcalc::ast::BaseVisitor< void >.

◆ visit_varref()

error::Result< void > tcalc::ast::PrintVisitor::visit_varref ( NodePtr< VarRefNode > &  node)
overridevirtual

Visit a variable reference node.

Parameters
nodeVariable reference node.
Returns
error::Result<RT> Result of the visit.

Reimplemented from tcalc::ast::BaseVisitor< void >.

Member Data Documentation

◆ INDENT_STEP

constexpr std::size_t tcalc::ast::PrintVisitor::INDENT_STEP = 2
staticconstexpr

Default indent step.


The documentation for this class was generated from the following files: