tcalc 0.2.0
 
Loading...
Searching...
No Matches
tcalc::ast::BaseVisitor< RT > Class Template Reference

Base visitor class with default return type. More...

#include <base.hpp>

Public Member Functions

virtual error::Result< RT > visit (NodePtr<> &node)
 Visit a number node.
 
virtual error::Result< RT > visit_bin_op (NodePtr< BinaryOpNode > &node) VISIT_DEFAULT(node)
 Visit a binary operation node.
 
virtual error::Result< RT > visit_unary_op (NodePtr< UnaryOpNode > &node) VISIT_DEFAULT(node)
 Visit a unary operation node.
 
virtual error::Result< RT > visit_number (NodePtr< NumberNode > &node) VISIT_DEFAULT(node)
 Visit a number node.
 
virtual error::Result< RT > visit_varref (NodePtr< VarRefNode > &node) VISIT_DEFAULT(node)
 Visit a variable reference node.
 
virtual error::Result< RT > visit_varassign (NodePtr< VarAssignNode > &node) VISIT_DEFAULT(node)
 Visit a variable assignment node.
 
virtual error::Result< RT > visit_fcall (NodePtr< FcallNode > &node) VISIT_DEFAULT(node)
 Visit a function call node.
 
virtual error::Result< RT > visit_fdef (NodePtr< FdefNode > &node) VISIT_DEFAULT(node)
 Visit a function definition node.
 
virtual error::Result< RT > visit_if (NodePtr< IfNode > &node) VISIT_DEFAULT(node)
 Visit an if node.
 
virtual error::Result< RT > visit_program (NodePtr< ProgramNode > &node) VISIT_DEFAULT(node)
 Visit a program node.
 
virtual error::Result< RT > visit_import (NodePtr< ProgramImportNode > &node) VISIT_DEFAULT(node)
 Visit a program import node.
 

Detailed Description

template<typename RT>
class tcalc::ast::BaseVisitor< RT >

Base visitor class with default return type.

Template Parameters
RTReturn type of the visitor.

Member Function Documentation

◆ visit()

template<typename RT >
virtual error::Result< RT > tcalc::ast::BaseVisitor< RT >::visit ( NodePtr<> &  node)
inlinevirtual

Visit a number node.

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

◆ visit_bin_op()

template<typename RT >
virtual error::Result< RT > tcalc::ast::BaseVisitor< RT >::visit_bin_op ( NodePtr< BinaryOpNode > &  node)
virtual

Visit a binary operation node.

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

Reimplemented in tcalc::ast::EvalVisitor, and tcalc::ast::PrintVisitor.

◆ visit_fcall()

template<typename RT >
virtual error::Result< RT > tcalc::ast::BaseVisitor< RT >::visit_fcall ( NodePtr< FcallNode > &  node)
virtual

Visit a function call node.

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

Reimplemented in tcalc::ast::EvalVisitor, and tcalc::ast::PrintVisitor.

◆ visit_fdef()

template<typename RT >
virtual error::Result< RT > tcalc::ast::BaseVisitor< RT >::visit_fdef ( NodePtr< FdefNode > &  node)
virtual

Visit a function definition node.

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

Reimplemented in tcalc::ast::EvalVisitor, and tcalc::ast::PrintVisitor.

◆ visit_if()

template<typename RT >
virtual error::Result< RT > tcalc::ast::BaseVisitor< RT >::visit_if ( NodePtr< IfNode > &  node)
virtual

Visit an if node.

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

Reimplemented in tcalc::ast::EvalVisitor, and tcalc::ast::PrintVisitor.

◆ visit_import()

template<typename RT >
virtual error::Result< RT > tcalc::ast::BaseVisitor< RT >::visit_import ( NodePtr< ProgramImportNode > &  node)
virtual

Visit a program import node.

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

Reimplemented in tcalc::ast::EvalVisitor, and tcalc::ast::PrintVisitor.

◆ visit_number()

template<typename RT >
virtual error::Result< RT > tcalc::ast::BaseVisitor< RT >::visit_number ( NodePtr< NumberNode > &  node)
virtual

Visit a number node.

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

Reimplemented in tcalc::ast::EvalVisitor, and tcalc::ast::PrintVisitor.

◆ visit_program()

template<typename RT >
virtual error::Result< RT > tcalc::ast::BaseVisitor< RT >::visit_program ( NodePtr< ProgramNode > &  node)
virtual

Visit a program node.

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

Reimplemented in tcalc::ast::EvalVisitor, tcalc::ast::ProgramEvalVisitor, and tcalc::ast::PrintVisitor.

◆ visit_unary_op()

template<typename RT >
virtual error::Result< RT > tcalc::ast::BaseVisitor< RT >::visit_unary_op ( NodePtr< UnaryOpNode > &  node)
virtual

Visit a unary operation node.

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

Reimplemented in tcalc::ast::EvalVisitor, and tcalc::ast::PrintVisitor.

◆ visit_varassign()

template<typename RT >
virtual error::Result< RT > tcalc::ast::BaseVisitor< RT >::visit_varassign ( NodePtr< VarAssignNode > &  node)
virtual

Visit a variable assignment node.

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

Reimplemented in tcalc::ast::EvalVisitor, and tcalc::ast::PrintVisitor.

◆ visit_varref()

template<typename RT >
virtual error::Result< RT > tcalc::ast::BaseVisitor< RT >::visit_varref ( NodePtr< VarRefNode > &  node)
virtual

Visit a variable reference node.

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

Reimplemented in tcalc::ast::EvalVisitor, and tcalc::ast::PrintVisitor.


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