Concrete visitor for all AST classes.
Represents block encapsulating list of statements.
Represents a C code block.
Represent symbol table for a NMODL block.
Concrete visitor for all AST classes.
Rename variable in verbatim block.
const std::string RANGE_PREFIX
prefix used for range variables
std::stack< symtab::SymbolTable * > symtab_stack
symbol tables in nested blocks
symtab::SymbolTable * symtab
non-null symbol table in the scope hierarchy
void visit_statement_block(ast::StatementBlock &node) override
visit node of type ast::StatementBlock
const std::string LOCAL_PREFIX
prefix used for local variable
VerbatimVarRenameVisitor()=default
const std::string ION_PREFIX
prefix used for range variables
std::string rename_variable(const std::string &name)
Rename variable used in verbatim block if defined in NMODL scope.
void visit_verbatim(ast::Verbatim &node) override
Parse verbatim blocks and rename variables used.
encapsulates code generation backend implementations
static Node * node(Object *)
Implement classes for representing symbol table at block and file scope.