User Guide
nmodl::ast::TableStatement Class Reference

Represents TABLE statement in NMODL. More...

Detailed Description

Represents TABLE statement in NMODL.

Definition at line 39 of file table_statement.hpp.

#include <table_statement.hpp>

Inheritance diagram for nmodl::ast::TableStatement:
nmodl::ast::Statement nmodl::ast::Node nmodl::ast::Ast

Public Member Functions

bool is_table_statement () const noexcept override
 Check if the ast node is an instance of ast::TableStatement. More...
 
TableStatementclone () const override
 Return a copy of the current node. More...
 
Ctor & dtor
 TableStatement (const NameVector &table_vars, const NameVector &depend_vars, Expression *from, Expression *to, Integer *with)
 
 TableStatement (const NameVector &table_vars, const NameVector &depend_vars, std::shared_ptr< Expression > from, std::shared_ptr< Expression > to, std::shared_ptr< Integer > with)
 
 TableStatement (const TableStatement &obj)
 copy constructor implementation More...
 
virtual ~TableStatement ()=default
 
Getters
AstNodeType get_node_type () const noexcept override
 Return type (ast::AstNodeType) of ast node. More...
 
std::string get_node_type_name () const noexcept override
 Return type (ast::AstNodeType) of ast node as std::string. More...
 
std::string get_nmodl_name () const noexcept override
 Return NMODL statement of ast node as std::string. More...
 
std::shared_ptr< Astget_shared_ptr () override
 Get std::shared_ptr from this pointer of the current ast node. More...
 
std::shared_ptr< const Astget_shared_ptr () const override
 Get std::shared_ptr from this pointer of the current ast node. More...
 
const ModTokenget_token () const noexcept override
 Return associated token for the current ast node. More...
 
const NameVectorget_table_vars () const noexcept
 Getter for member variable TableStatement::table_vars. More...
 
const NameVectorget_depend_vars () const noexcept
 Getter for member variable TableStatement::depend_vars. More...
 
std::shared_ptr< Expressionget_from () const noexcept
 Getter for member variable TableStatement::from. More...
 
std::shared_ptr< Expressionget_to () const noexcept
 Getter for member variable TableStatement::to. More...
 
std::shared_ptr< Integerget_with () const noexcept
 Getter for member variable TableStatement::with. More...
 
Setters
void set_token (const ModToken &tok)
 Set token for the current ast node. More...
 
void set_table_vars (NameVector &&table_vars)
 Setter for member variable TableStatement::table_vars (rvalue reference) More...
 
void set_table_vars (const NameVector &table_vars)
 Setter for member variable TableStatement::table_vars. More...
 
void set_depend_vars (NameVector &&depend_vars)
 Setter for member variable TableStatement::depend_vars (rvalue reference) More...
 
void set_depend_vars (const NameVector &depend_vars)
 Setter for member variable TableStatement::depend_vars. More...
 
void set_from (std::shared_ptr< Expression > &&from)
 Setter for member variable TableStatement::from (rvalue reference) More...
 
void set_from (const std::shared_ptr< Expression > &from)
 Setter for member variable TableStatement::from. More...
 
void set_to (std::shared_ptr< Expression > &&to)
 Setter for member variable TableStatement::to (rvalue reference) More...
 
void set_to (const std::shared_ptr< Expression > &to)
 Setter for member variable TableStatement::to. More...
 
void set_with (std::shared_ptr< Integer > &&with)
 Setter for member variable TableStatement::with (rvalue reference) More...
 
void set_with (const std::shared_ptr< Integer > &with)
 Setter for member variable TableStatement::with. More...
 
Visitor
void visit_children (visitor::Visitor &v) override
 visit children i.e. More...
 
void visit_children (visitor::ConstVisitor &v) const override
 visit children i.e. More...
 
void accept (visitor::Visitor &v) override
 accept (or visit) the current AST node using provided visitor More...
 
void accept (visitor::ConstVisitor &v) const override
 accept (or visit) the current AST node using provided visitor More...
 
- Public Member Functions inherited from nmodl::ast::Statement
bool is_statement () const noexcept override
 Check if the ast node is an instance of ast::Statement. More...
 
virtual ~Statement ()=default
 
- Public Member Functions inherited from nmodl::ast::Node
bool is_node () const noexcept override
 Check if the ast node is an instance of ast::Node. More...
 
virtual ~Node ()=default
 
- Public Member Functions inherited from nmodl::ast::Ast
virtual bool is_ast () const noexcept
 Check if the ast node is an instance of ast::Ast. More...
 
virtual bool is_expression () const noexcept
 Check if the ast node is an instance of ast::Expression. More...
 
virtual bool is_block () const noexcept
 Check if the ast node is an instance of ast::Block. More...
 
virtual bool is_identifier () const noexcept
 Check if the ast node is an instance of ast::Identifier. More...
 
virtual bool is_number () const noexcept
 Check if the ast node is an instance of ast::Number. More...
 
virtual bool is_string () const noexcept
 Check if the ast node is an instance of ast::String. More...
 
virtual bool is_integer () const noexcept
 Check if the ast node is an instance of ast::Integer. More...
 
virtual bool is_float () const noexcept
 Check if the ast node is an instance of ast::Float. More...
 
virtual bool is_double () const noexcept
 Check if the ast node is an instance of ast::Double. More...
 
virtual bool is_boolean () const noexcept
 Check if the ast node is an instance of ast::Boolean. More...
 
virtual bool is_name () const noexcept
 Check if the ast node is an instance of ast::Name. More...
 
virtual bool is_prime_name () const noexcept
 Check if the ast node is an instance of ast::PrimeName. More...
 
virtual bool is_indexed_name () const noexcept
 Check if the ast node is an instance of ast::IndexedName. More...
 
virtual bool is_var_name () const noexcept
 Check if the ast node is an instance of ast::VarName. More...
 
virtual bool is_argument () const noexcept
 Check if the ast node is an instance of ast::Argument. More...
 
virtual bool is_react_var_name () const noexcept
 Check if the ast node is an instance of ast::ReactVarName. More...
 
virtual bool is_read_ion_var () const noexcept
 Check if the ast node is an instance of ast::ReadIonVar. More...
 
virtual bool is_write_ion_var () const noexcept
 Check if the ast node is an instance of ast::WriteIonVar. More...
 
virtual bool is_nonspecific_cur_var () const noexcept
 Check if the ast node is an instance of ast::NonspecificCurVar. More...
 
virtual bool is_electrode_cur_var () const noexcept
 Check if the ast node is an instance of ast::ElectrodeCurVar. More...
 
virtual bool is_range_var () const noexcept
 Check if the ast node is an instance of ast::RangeVar. More...
 
virtual bool is_global_var () const noexcept
 Check if the ast node is an instance of ast::GlobalVar. More...
 
virtual bool is_pointer_var () const noexcept
 Check if the ast node is an instance of ast::PointerVar. More...
 
virtual bool is_random_var () const noexcept
 Check if the ast node is an instance of ast::RandomVar. More...
 
virtual bool is_bbcore_pointer_var () const noexcept
 Check if the ast node is an instance of ast::BbcorePointerVar. More...
 
virtual bool is_extern_var () const noexcept
 Check if the ast node is an instance of ast::ExternVar. More...
 
virtual bool is_param_block () const noexcept
 Check if the ast node is an instance of ast::ParamBlock. More...
 
virtual bool is_independent_block () const noexcept
 Check if the ast node is an instance of ast::IndependentBlock. More...
 
virtual bool is_assigned_block () const noexcept
 Check if the ast node is an instance of ast::AssignedBlock. More...
 
virtual bool is_state_block () const noexcept
 Check if the ast node is an instance of ast::StateBlock. More...
 
virtual bool is_initial_block () const noexcept
 Check if the ast node is an instance of ast::InitialBlock. More...
 
virtual bool is_constructor_block () const noexcept
 Check if the ast node is an instance of ast::ConstructorBlock. More...
 
virtual bool is_destructor_block () const noexcept
 Check if the ast node is an instance of ast::DestructorBlock. More...
 
virtual bool is_statement_block () const noexcept
 Check if the ast node is an instance of ast::StatementBlock. More...
 
virtual bool is_derivative_block () const noexcept
 Check if the ast node is an instance of ast::DerivativeBlock. More...
 
virtual bool is_linear_block () const noexcept
 Check if the ast node is an instance of ast::LinearBlock. More...
 
virtual bool is_non_linear_block () const noexcept
 Check if the ast node is an instance of ast::NonLinearBlock. More...
 
virtual bool is_discrete_block () const noexcept
 Check if the ast node is an instance of ast::DiscreteBlock. More...
 
virtual bool is_function_table_block () const noexcept
 Check if the ast node is an instance of ast::FunctionTableBlock. More...
 
virtual bool is_function_block () const noexcept
 Check if the ast node is an instance of ast::FunctionBlock. More...
 
virtual bool is_procedure_block () const noexcept
 Check if the ast node is an instance of ast::ProcedureBlock. More...
 
virtual bool is_net_receive_block () const noexcept
 Check if the ast node is an instance of ast::NetReceiveBlock. More...
 
virtual bool is_solve_block () const noexcept
 Check if the ast node is an instance of ast::SolveBlock. More...
 
virtual bool is_breakpoint_block () const noexcept
 Check if the ast node is an instance of ast::BreakpointBlock. More...
 
virtual bool is_before_block () const noexcept
 Check if the ast node is an instance of ast::BeforeBlock. More...
 
virtual bool is_after_block () const noexcept
 Check if the ast node is an instance of ast::AfterBlock. More...
 
virtual bool is_ba_block () const noexcept
 Check if the ast node is an instance of ast::BABlock. More...
 
virtual bool is_for_netcon () const noexcept
 Check if the ast node is an instance of ast::ForNetcon. More...
 
virtual bool is_kinetic_block () const noexcept
 Check if the ast node is an instance of ast::KineticBlock. More...
 
virtual bool is_unit_block () const noexcept
 Check if the ast node is an instance of ast::UnitBlock. More...
 
virtual bool is_constant_block () const noexcept
 Check if the ast node is an instance of ast::ConstantBlock. More...
 
virtual bool is_neuron_block () const noexcept
 Check if the ast node is an instance of ast::NeuronBlock. More...
 
virtual bool is_unit () const noexcept
 Check if the ast node is an instance of ast::Unit. More...
 
virtual bool is_double_unit () const noexcept
 Check if the ast node is an instance of ast::DoubleUnit. More...
 
virtual bool is_local_var () const noexcept
 Check if the ast node is an instance of ast::LocalVar. More...
 
virtual bool is_limits () const noexcept
 Check if the ast node is an instance of ast::Limits. More...
 
virtual bool is_number_range () const noexcept
 Check if the ast node is an instance of ast::NumberRange. More...
 
virtual bool is_constant_var () const noexcept
 Check if the ast node is an instance of ast::ConstantVar. More...
 
virtual bool is_binary_operator () const noexcept
 Check if the ast node is an instance of ast::BinaryOperator. More...
 
virtual bool is_unary_operator () const noexcept
 Check if the ast node is an instance of ast::UnaryOperator. More...
 
virtual bool is_reaction_operator () const noexcept
 Check if the ast node is an instance of ast::ReactionOperator. More...
 
virtual bool is_paren_expression () const noexcept
 Check if the ast node is an instance of ast::ParenExpression. More...
 
virtual bool is_binary_expression () const noexcept
 Check if the ast node is an instance of ast::BinaryExpression. More...
 
virtual bool is_diff_eq_expression () const noexcept
 Check if the ast node is an instance of ast::DiffEqExpression. More...
 
virtual bool is_unary_expression () const noexcept
 Check if the ast node is an instance of ast::UnaryExpression. More...
 
virtual bool is_non_lin_equation () const noexcept
 Check if the ast node is an instance of ast::NonLinEquation. More...
 
virtual bool is_lin_equation () const noexcept
 Check if the ast node is an instance of ast::LinEquation. More...
 
virtual bool is_function_call () const noexcept
 Check if the ast node is an instance of ast::FunctionCall. More...
 
virtual bool is_watch () const noexcept
 Check if the ast node is an instance of ast::Watch. More...
 
virtual bool is_ba_block_type () const noexcept
 Check if the ast node is an instance of ast::BABlockType. More...
 
virtual bool is_unit_def () const noexcept
 Check if the ast node is an instance of ast::UnitDef. More...
 
virtual bool is_factor_def () const noexcept
 Check if the ast node is an instance of ast::FactorDef. More...
 
virtual bool is_valence () const noexcept
 Check if the ast node is an instance of ast::Valence. More...
 
virtual bool is_unit_state () const noexcept
 Check if the ast node is an instance of ast::UnitState. More...
 
virtual bool is_local_list_statement () const noexcept
 Check if the ast node is an instance of ast::LocalListStatement. More...
 
virtual bool is_model () const noexcept
 Check if the ast node is an instance of ast::Model. More...
 
virtual bool is_define () const noexcept
 Check if the ast node is an instance of ast::Define. More...
 
virtual bool is_include () const noexcept
 Check if the ast node is an instance of ast::Include. More...
 
virtual bool is_param_assign () const noexcept
 Check if the ast node is an instance of ast::ParamAssign. More...
 
virtual bool is_assigned_definition () const noexcept
 Check if the ast node is an instance of ast::AssignedDefinition. More...
 
virtual bool is_conductance_hint () const noexcept
 Check if the ast node is an instance of ast::ConductanceHint. More...
 
virtual bool is_expression_statement () const noexcept
 Check if the ast node is an instance of ast::ExpressionStatement. More...
 
virtual bool is_protect_statement () const noexcept
 Check if the ast node is an instance of ast::ProtectStatement. More...
 
virtual bool is_from_statement () const noexcept
 Check if the ast node is an instance of ast::FromStatement. More...
 
virtual bool is_while_statement () const noexcept
 Check if the ast node is an instance of ast::WhileStatement. More...
 
virtual bool is_if_statement () const noexcept
 Check if the ast node is an instance of ast::IfStatement. More...
 
virtual bool is_else_if_statement () const noexcept
 Check if the ast node is an instance of ast::ElseIfStatement. More...
 
virtual bool is_else_statement () const noexcept
 Check if the ast node is an instance of ast::ElseStatement. More...
 
virtual bool is_watch_statement () const noexcept
 Check if the ast node is an instance of ast::WatchStatement. More...
 
virtual bool is_mutex_lock () const noexcept
 Check if the ast node is an instance of ast::MutexLock. More...
 
virtual bool is_mutex_unlock () const noexcept
 Check if the ast node is an instance of ast::MutexUnlock. More...
 
virtual bool is_conserve () const noexcept
 Check if the ast node is an instance of ast::Conserve. More...
 
virtual bool is_compartment () const noexcept
 Check if the ast node is an instance of ast::Compartment. More...
 
virtual bool is_lon_difuse () const noexcept
 Check if the ast node is an instance of ast::LonDifuse. More...
 
virtual bool is_reaction_statement () const noexcept
 Check if the ast node is an instance of ast::ReactionStatement. More...
 
virtual bool is_lag_statement () const noexcept
 Check if the ast node is an instance of ast::LagStatement. More...
 
virtual bool is_constant_statement () const noexcept
 Check if the ast node is an instance of ast::ConstantStatement. More...
 
virtual bool is_suffix () const noexcept
 Check if the ast node is an instance of ast::Suffix. More...
 
virtual bool is_useion () const noexcept
 Check if the ast node is an instance of ast::Useion. More...
 
virtual bool is_nonspecific () const noexcept
 Check if the ast node is an instance of ast::Nonspecific. More...
 
virtual bool is_electrode_current () const noexcept
 Check if the ast node is an instance of ast::ElectrodeCurrent. More...
 
virtual bool is_range () const noexcept
 Check if the ast node is an instance of ast::Range. More...
 
virtual bool is_global () const noexcept
 Check if the ast node is an instance of ast::Global. More...
 
virtual bool is_random_var_list () const noexcept
 Check if the ast node is an instance of ast::RandomVarList. More...
 
virtual bool is_pointer () const noexcept
 Check if the ast node is an instance of ast::Pointer. More...
 
virtual bool is_bbcore_pointer () const noexcept
 Check if the ast node is an instance of ast::BbcorePointer. More...
 
virtual bool is_external () const noexcept
 Check if the ast node is an instance of ast::External. More...
 
virtual bool is_thread_safe () const noexcept
 Check if the ast node is an instance of ast::ThreadSafe. More...
 
virtual bool is_verbatim () const noexcept
 Check if the ast node is an instance of ast::Verbatim. More...
 
virtual bool is_line_comment () const noexcept
 Check if the ast node is an instance of ast::LineComment. More...
 
virtual bool is_block_comment () const noexcept
 Check if the ast node is an instance of ast::BlockComment. More...
 
virtual bool is_ontology_statement () const noexcept
 Check if the ast node is an instance of ast::OntologyStatement. More...
 
virtual bool is_program () const noexcept
 Check if the ast node is an instance of ast::Program. More...
 
virtual bool is_nrn_state_block () const noexcept
 Check if the ast node is an instance of ast::NrnStateBlock. More...
 
virtual bool is_eigen_newton_solver_block () const noexcept
 Check if the ast node is an instance of ast::EigenNewtonSolverBlock. More...
 
virtual bool is_eigen_linear_solver_block () const noexcept
 Check if the ast node is an instance of ast::EigenLinearSolverBlock. More...
 
virtual bool is_wrapped_expression () const noexcept
 Check if the ast node is an instance of ast::WrappedExpression. More...
 
virtual bool is_derivimplicit_callback () const noexcept
 Check if the ast node is an instance of ast::DerivimplicitCallback. More...
 
virtual bool is_solution_expression () const noexcept
 Check if the ast node is an instance of ast::SolutionExpression. More...
 
virtual bool is_update_dt () const noexcept
 Check if the ast node is an instance of ast::UpdateDt. More...
 
virtual Astget_parent () const
 Parent getter. More...
 
virtual void set_parent (Ast *p)
 Parent setter. More...
 
 Ast ()=default
 
virtual ~Ast ()=default
 
virtual std::string get_node_name () const
 Return name of of the node. More...
 
virtual symtab::SymbolTableget_symbol_table () const
 Return associated symbol table for the AST node. More...
 
virtual std::shared_ptr< StatementBlockget_statement_block () const
 Return associated statement block for the AST node. More...
 
virtual void set_symbol_table (symtab::SymbolTable *symtab)
 Set symbol table for the AST node. More...
 
virtual void set_name (const std::string &name)
 Set name for the AST node. More...
 
virtual void negate ()
 Negate the value of AST node. More...
 

Private Member Functions

void set_parent_in_children ()
 Set this object as parent for all the children. More...
 

Private Attributes

NameVector table_vars
 Variables in the table. More...
 
NameVector depend_vars
 dependent variables More...
 
std::shared_ptr< Expressionfrom
 from value More...
 
std::shared_ptr< Expressionto
 to values More...
 
std::shared_ptr< Integerwith
 an increment factor More...
 
std::shared_ptr< ModTokentoken
 token with location information More...
 

Constructor & Destructor Documentation

◆ TableStatement() [1/3]

nmodl::ast::TableStatement::TableStatement ( const NameVector table_vars,
const NameVector depend_vars,
Expression from,
Expression to,
Integer with 
)
explicit

Definition at line 11076 of file ast.cpp.

◆ TableStatement() [2/3]

nmodl::ast::TableStatement::TableStatement ( const NameVector table_vars,
const NameVector depend_vars,
std::shared_ptr< Expression from,
std::shared_ptr< Expression to,
std::shared_ptr< Integer with 
)
explicit

Definition at line 11080 of file ast.cpp.

◆ TableStatement() [3/3]

nmodl::ast::TableStatement::TableStatement ( const TableStatement obj)

copy constructor implementation

copy each element of vector

copy each element of vector

pointer member must be reseted with the new copy

pointer member must be reseted with the new copy

pointer member must be reseted with the new copy

if there is a token, make copy

set parents

Definition at line 11085 of file ast.cpp.

◆ ~TableStatement()

virtual nmodl::ast::TableStatement::~TableStatement ( )
virtualdefault

Member Function Documentation

◆ accept() [1/2]

void nmodl::ast::TableStatement::accept ( visitor::ConstVisitor v) const
overridevirtual

accept (or visit) the current AST node using provided visitor

Instead of visiting children of AST node, like Ast::visit_children, accept allows to visit the current node itself using provided concrete visitor.

Parameters
vConcrete visitor that will be used to recursively visit node
See also
Ast::accept for example.

Reimplemented from nmodl::ast::Statement.

Definition at line 11071 of file ast.cpp.

◆ accept() [2/2]

void nmodl::ast::TableStatement::accept ( visitor::Visitor v)
overridevirtual

accept (or visit) the current AST node using provided visitor

Instead of visiting children of AST node, like Ast::visit_children, accept allows to visit the current node itself using provided concrete visitor.

Parameters
vConcrete visitor that will be used to recursively visit node
See also
Ast::accept for example.

Reimplemented from nmodl::ast::Statement.

Definition at line 11067 of file ast.cpp.

◆ clone()

TableStatement* nmodl::ast::TableStatement::clone ( ) const
inlineoverridevirtual

Return a copy of the current node.

Recursively make a new copy/clone of the current node including all members and return a pointer to the node. This is used for passes like nmodl::visitor::InlineVisitor where nodes are cloned in the ast.

Returns
pointer to the clone/copy of the current node

Reimplemented from nmodl::ast::Statement.

Definition at line 82 of file table_statement.hpp.

◆ get_depend_vars()

const NameVector& nmodl::ast::TableStatement::get_depend_vars ( ) const
inlinenoexcept

Getter for member variable TableStatement::depend_vars.

Definition at line 175 of file table_statement.hpp.

◆ get_from()

std::shared_ptr<Expression> nmodl::ast::TableStatement::get_from ( ) const
inlinenoexcept

Getter for member variable TableStatement::from.

Definition at line 184 of file table_statement.hpp.

◆ get_nmodl_name()

std::string nmodl::ast::TableStatement::get_nmodl_name ( ) const
inlineoverridevirtualnoexcept

Return NMODL statement of ast node as std::string.

Every node is related to a special statement in the NMODL. This statement can be returned as a std::string for printing to text/json form.

Returns
name of the statement as a string i.e. "TABLE "
See also
Ast::get_nmodl_name

Reimplemented from nmodl::ast::Ast.

Definition at line 130 of file table_statement.hpp.

◆ get_node_type()

AstNodeType nmodl::ast::TableStatement::get_node_type ( ) const
inlineoverridevirtualnoexcept

Return type (ast::AstNodeType) of ast node.

Every node in the ast has a type defined in ast::AstNodeType and this function is used to retrieve the same.

Returns
ast node type i.e. ast::AstNodeType::TABLE_STATEMENT
See also
Ast::get_node_type_name

Reimplemented from nmodl::ast::Statement.

Definition at line 100 of file table_statement.hpp.

◆ get_node_type_name()

std::string nmodl::ast::TableStatement::get_node_type_name ( ) const
inlineoverridevirtualnoexcept

Return type (ast::AstNodeType) of ast node as std::string.

Every node in the ast has a type defined in ast::AstNodeType. This type name can be returned as a std::string for printing node to text/json form.

Returns
name of the node type as a string i.e. "TableStatement"
See also
Ast::get_node_name

Reimplemented from nmodl::ast::Statement.

Definition at line 115 of file table_statement.hpp.

◆ get_shared_ptr() [1/2]

std::shared_ptr<const Ast> nmodl::ast::TableStatement::get_shared_ptr ( ) const
inlineoverridevirtual

Get std::shared_ptr from this pointer of the current ast node.

Reimplemented from nmodl::ast::Statement.

Definition at line 144 of file table_statement.hpp.

◆ get_shared_ptr() [2/2]

std::shared_ptr<Ast> nmodl::ast::TableStatement::get_shared_ptr ( )
inlineoverridevirtual

Get std::shared_ptr from this pointer of the current ast node.

Reimplemented from nmodl::ast::Statement.

Definition at line 137 of file table_statement.hpp.

◆ get_table_vars()

const NameVector& nmodl::ast::TableStatement::get_table_vars ( ) const
inlinenoexcept

Getter for member variable TableStatement::table_vars.

Definition at line 166 of file table_statement.hpp.

◆ get_to()

std::shared_ptr<Expression> nmodl::ast::TableStatement::get_to ( ) const
inlinenoexcept

Getter for member variable TableStatement::to.

Definition at line 193 of file table_statement.hpp.

◆ get_token()

const ModToken* nmodl::ast::TableStatement::get_token ( ) const
inlineoverridevirtualnoexcept

Return associated token for the current ast node.

Not all ast nodes have token information. For example, nmodl::visitor::NeuronSolveVisitor can insert new nodes in the ast as a solution of ODEs. In this case, we return nullptr to store in the nmodl::symtab::SymbolTable.

Returns
pointer to token if exist otherwise nullptr

Reimplemented from nmodl::ast::Ast.

Definition at line 157 of file table_statement.hpp.

◆ get_with()

std::shared_ptr<Integer> nmodl::ast::TableStatement::get_with ( ) const
inlinenoexcept

Getter for member variable TableStatement::with.

Definition at line 202 of file table_statement.hpp.

◆ is_table_statement()

bool nmodl::ast::TableStatement::is_table_statement ( ) const
inlineoverridevirtualnoexcept

Check if the ast node is an instance of ast::TableStatement.

Returns
true as object is of type ast::TableStatement

Reimplemented from nmodl::ast::Ast.

Definition at line 67 of file table_statement.hpp.

◆ set_depend_vars() [1/2]

void nmodl::ast::TableStatement::set_depend_vars ( const NameVector depend_vars)

Setter for member variable TableStatement::depend_vars.

Definition at line 11172 of file ast.cpp.

◆ set_depend_vars() [2/2]

void nmodl::ast::TableStatement::set_depend_vars ( NameVector &&  depend_vars)

Setter for member variable TableStatement::depend_vars (rvalue reference)

Definition at line 11164 of file ast.cpp.

◆ set_from() [1/2]

void nmodl::ast::TableStatement::set_from ( const std::shared_ptr< Expression > &  from)

Setter for member variable TableStatement::from.

Definition at line 11189 of file ast.cpp.

◆ set_from() [2/2]

void nmodl::ast::TableStatement::set_from ( std::shared_ptr< Expression > &&  from)

Setter for member variable TableStatement::from (rvalue reference)

Definition at line 11181 of file ast.cpp.

◆ set_parent_in_children()

void nmodl::ast::TableStatement::set_parent_in_children ( )
private

Set this object as parent for all the children.

set this parent in the children

This should be called in every object (with children) constructor to set parents. Since it is called only in the constructors it should not be virtual to avoid ambiguities (issue #295).

set parent for each element of the vector

set parent for each element of the vector

optional member could be nullptr

optional member could be nullptr

optional member could be nullptr

Definition at line 11118 of file ast.cpp.

◆ set_table_vars() [1/2]

void nmodl::ast::TableStatement::set_table_vars ( const NameVector table_vars)

Setter for member variable TableStatement::table_vars.

Definition at line 11155 of file ast.cpp.

◆ set_table_vars() [2/2]

void nmodl::ast::TableStatement::set_table_vars ( NameVector &&  table_vars)

Setter for member variable TableStatement::table_vars (rvalue reference)

Definition at line 11147 of file ast.cpp.

◆ set_to() [1/2]

void nmodl::ast::TableStatement::set_to ( const std::shared_ptr< Expression > &  to)

Setter for member variable TableStatement::to.

Definition at line 11206 of file ast.cpp.

◆ set_to() [2/2]

void nmodl::ast::TableStatement::set_to ( std::shared_ptr< Expression > &&  to)

Setter for member variable TableStatement::to (rvalue reference)

Definition at line 11198 of file ast.cpp.

◆ set_token()

void nmodl::ast::TableStatement::set_token ( const ModToken tok)
inline

Set token for the current ast node.

Definition at line 212 of file table_statement.hpp.

◆ set_with() [1/2]

void nmodl::ast::TableStatement::set_with ( const std::shared_ptr< Integer > &  with)

Setter for member variable TableStatement::with.

Definition at line 11223 of file ast.cpp.

◆ set_with() [2/2]

void nmodl::ast::TableStatement::set_with ( std::shared_ptr< Integer > &&  with)

Setter for member variable TableStatement::with (rvalue reference)

Definition at line 11215 of file ast.cpp.

◆ visit_children() [1/2]

void nmodl::ast::TableStatement::visit_children ( visitor::ConstVisitor v) const
overridevirtual

visit children i.e.

member variables of current node using provided visitor

Different nodes in the AST have different members (i.e. children). This method recursively visits children using provided visitor.

Parameters
vConcrete constant visitor that will be used to recursively visit children
See also
Ast::visit_children for example.

visit each element of vector

visit each element of vector

use -> for pointer member

use -> for pointer member

use -> for pointer member

Reimplemented from nmodl::ast::Statement.

Definition at line 11045 of file ast.cpp.

◆ visit_children() [2/2]

void nmodl::ast::TableStatement::visit_children ( visitor::Visitor v)
overridevirtual

visit children i.e.

TableStatement member functions definition.

member variables of current node using provided visitor

Different nodes in the AST have different members (i.e. children). This method recursively visits children using provided visitor.

Parameters
vConcrete visitor that will be used to recursively visit children
See also
Ast::visit_children for example.

visit each element of vector

visit each element of vector

use -> for pointer member

use -> for pointer member

use -> for pointer member

Reimplemented from nmodl::ast::Statement.

Definition at line 11023 of file ast.cpp.

Member Data Documentation

◆ depend_vars

NameVector nmodl::ast::TableStatement::depend_vars
private

dependent variables

Definition at line 44 of file table_statement.hpp.

◆ from

std::shared_ptr<Expression> nmodl::ast::TableStatement::from
private

from value

Definition at line 46 of file table_statement.hpp.

◆ table_vars

NameVector nmodl::ast::TableStatement::table_vars
private

Variables in the table.

Definition at line 42 of file table_statement.hpp.

◆ to

std::shared_ptr<Expression> nmodl::ast::TableStatement::to
private

to values

Definition at line 48 of file table_statement.hpp.

◆ token

std::shared_ptr<ModToken> nmodl::ast::TableStatement::token
private

token with location information

Definition at line 52 of file table_statement.hpp.

◆ with

std::shared_ptr<Integer> nmodl::ast::TableStatement::with
private

an increment factor

Definition at line 50 of file table_statement.hpp.


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