  | 
  
    User Guide
    
   | 
 
 
 
 
Go to the documentation of this file.
   16 #include <catch2/catch_test_macros.hpp> 
   17 #include <catch2/matchers/catch_matchers_string.hpp> 
   19 using namespace nmodl;
 
   22 using Catch::Matchers::ContainsSubstring;  
 
   36 SCENARIO(
"Check insertion of implicit arguments", 
"[codegen][implicit_arguments]") {
 
   37     GIVEN(
"A mod file that calls functions that may need implicit arguments") {
 
   38         auto const nmodl_text = R
"( 
   46                 nrn_ghk(-50(mV), .001(mM), 10(mM), 2) 
   47                 nrn_ghk(-50(mV), .001(mM), 10(mM), 2, -273.15) 
   51         THEN(
"at_time should have nt as its first argument") {
 
   52             REQUIRE_THAT(modified_nmodl, ContainsSubstring(
"at_time(nt, foo)"));
 
   53             REQUIRE_THAT(modified_nmodl, ContainsSubstring(
"at_time(nt, a+b)"));
 
   54             REQUIRE_THAT(modified_nmodl, ContainsSubstring(
"at_time(nt, flop)"));
 
   56         THEN(
"nrn_ghk should have a temperature as its last argument") {
 
   57             REQUIRE_THAT(modified_nmodl,
 
   58                          ContainsSubstring(
"nrn_ghk(-50(mV), .001(mM), 10(mM), 2, celsius)"));
 
   59             REQUIRE_THAT(modified_nmodl,
 
   60                          ContainsSubstring(
"nrn_ghk(-50(mV), .001(mM), 10(mM), 2, -273.15)"));
 
  
 
Class that binds all pieces together for parsing nmodl file.
 
std::string to_nmodl(const ast::Ast &node, const std::set< ast::AstNodeType > &exclude_types)
Given AST node, return the NMODL string representation.
 
std::string generate_mod_after_implicit_argument_visitor(std::string const &text)
 
Visitor for adding implicit arguments to [Core]NEURON functions.
 
std::string reindent_text(const std::string &text, int indent_level)
Reindent nmodl text for text-to-text comparison.
 
encapsulates code generation backend implementations
 
void visit_program(ast::Program &node) override
visit node of type ast::Program
 
Concrete visitor for constructing symbol table from AST.
 
void visit_program(ast::Program &node) override
visit node of type ast::Program
 
Utility functions for visitors implementation.
 
Auto generated AST classes declaration.
 
nmodl::parser::UnitDriver driver
 
SCENARIO("Check insertion of implicit arguments", "[codegen][implicit_arguments]")
 
bool parse_string(const std::string &input)
parser Units provided as string (used for testing)
 
THIS FILE IS GENERATED AT BUILD TIME AND SHALL NOT BE EDITED.
 
Visitor for adding implicit arguments to [Core]NEURON functions.
 
THIS FILE IS GENERATED AT BUILD TIME AND SHALL NOT BE EDITED.