Skip to content

Commit

Permalink
Deploying to gh-pages from @ d70c51b 🚀
Browse files Browse the repository at this point in the history
  • Loading branch information
1uc committed Feb 9, 2024
1 parent a9e88b4 commit 9f20564
Show file tree
Hide file tree
Showing 240 changed files with 6,663 additions and 6,319 deletions.
2 changes: 1 addition & 1 deletion html/doxygen/classnmodl_1_1_mod_token.html
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Represent token returned by scanner. </p>
<p>Every token returned by lexer is represented by <a class="el" href="classnmodl_1_1_mod_token.html" title="Represent token returned by scanner.">ModToken</a>. Some tokens are also externally defined names like <code>dt</code>, <code>t</code>. These names are defined in NEURON and hence we set external property to true. Also, location class represent the position of the token in nmodl file. By default location is initialized to <code>line,column</code> as <code>1,1</code>. Some tokens are explicitly added during compiler passes. Hence we set the position to <code>0,0</code> so that we can distinguish them from other tokens produced by lexer.</p>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000024">Todo:</a></b></dt><dd><ul>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000025">Todo:</a></b></dt><dd><ul>
<li><a class="el" href="classnmodl_1_1_mod_token.html#a5edc9d18c2001be5017e2e2afc484ae1">LocationType</a> object is copyable except if we specify the stream name. It would be good to track filename when we go for multi-channel optimization and code generation.</li>
</ul>
</dd></dl>
Expand Down
2 changes: 1 addition & 1 deletion html/doxygen/classnmodl_1_1ast_1_1_constant_statement.html
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@
<a href="classnmodl_1_1ast_1_1_constant_statement.html#details">More...</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Represent statement in CONSTANT block of NMODL. </p>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000063">Todo:</a></b></dt><dd>As <a class="el" href="classnmodl_1_1ast_1_1_constant_statement.html" title="Represent statement in CONSTANT block of NMODL.">ConstantStatement</a> wraps a single <a class="el" href="classnmodl_1_1ast_1_1_constant_var.html" title="Represents a variable in the ast::ConstantBlock.">ConstantVar</a>, this or <a class="el" href="classnmodl_1_1ast_1_1_constant_var.html" title="Represents a variable in the ast::ConstantBlock.">ast::ConstantVar</a> can be redundant in the future.</dd></dl>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000064">Todo:</a></b></dt><dd>As <a class="el" href="classnmodl_1_1ast_1_1_constant_statement.html" title="Represent statement in CONSTANT block of NMODL.">ConstantStatement</a> wraps a single <a class="el" href="classnmodl_1_1ast_1_1_constant_var.html" title="Represents a variable in the ast::ConstantBlock.">ConstantVar</a>, this or <a class="el" href="classnmodl_1_1ast_1_1_constant_var.html" title="Represents a variable in the ast::ConstantBlock.">ast::ConstantVar</a> can be redundant in the future.</dd></dl>

<p class="definition">Definition at line <a class="el" href="constant__statement_8hpp_source.html#l00040">40</a> of file <a class="el" href="constant__statement_8hpp_source.html">constant_statement.hpp</a>.</p>
</div>
Expand Down

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion html/doxygen/classnmodl_1_1parser_1_1_diffeq_driver.html
Original file line number Diff line number Diff line change
Expand Up @@ -194,7 +194,7 @@ <h2 class="memtitle"><span class="permalink"><a href="#ab89e4d42c0781358310684a3
</div><div class="memdoc">

<p>check if given equation can be solved using cnexp method </p>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000031">Todo:</a></b></dt><dd>Instead of using neuron like api, we need to refactor </dd></dl>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000032">Todo:</a></b></dt><dd>Instead of using neuron like api, we need to refactor </dd></dl>

<p class="definition">Definition at line <a class="el" href="diffeq__driver_8cpp_source.html#l00064">64</a> of file <a class="el" href="diffeq__driver_8cpp_source.html">diffeq_driver.cpp</a>.</p>

Expand Down
4 changes: 2 additions & 2 deletions html/doxygen/classnmodl_1_1parser_1_1_nmodl_driver.html
Original file line number Diff line number Diff line change
Expand Up @@ -106,8 +106,8 @@
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Class that binds all pieces together for parsing nmodl file. </p>
<p>Driver class bind components required for lexing, parsing and ast generation from nmodl file. We create an instance of lexer, parser and provides different methods to parse from file, stream or string. The scanner also gets reference to driver object for two purposes : scanner store/query the macro definitions into/from driver class and erros can be propogated back to driver (not implemented yet). Parser class also gets a reference to driver class as a parameter. Parsing actions generate ast and it's pointer is stored in driver class.</p>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000033">Todo:</a></b></dt><dd>Lexer, parser and ast member variables are used inside lexer/ parser instances. The local instaces are created inside parse_stream and hence the pointers are no longer valid except ast. Need better way to handle this.</dd></dl>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000034">Todo:</a></b></dt><dd>Stream name is not used as it will need better support as location object used in scanner takes string pointer which could be invalid when we copy location object. </dd></dl>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000034">Todo:</a></b></dt><dd>Lexer, parser and ast member variables are used inside lexer/ parser instances. The local instaces are created inside parse_stream and hence the pointers are no longer valid except ast. Need better way to handle this.</dd></dl>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000035">Todo:</a></b></dt><dd>Stream name is not used as it will need better support as location object used in scanner takes string pointer which could be invalid when we copy location object. </dd></dl>

<p class="definition">Definition at line <a class="el" href="nmodl__driver_8hpp_source.html#l00063">63</a> of file <a class="el" href="nmodl__driver_8hpp_source.html">nmodl_driver.hpp</a>.</p>
</div>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -274,7 +274,7 @@ <h2 class="memtitle"><span class="permalink"><a href="#ae54e71ef0da95411bf97f69e
</tr>
</table>
</div><div class="memdoc">
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000030">Todo:</a></b></dt><dd>Methods inherited neuron implementation </dd></dl>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000031">Todo:</a></b></dt><dd>Methods inherited neuron implementation </dd></dl>

<p class="definition">Definition at line <a class="el" href="diffeq__context_8cpp_source.html#l00047">47</a> of file <a class="el" href="diffeq__context_8cpp_source.html">diffeq_context.cpp</a>.</p>

Expand Down Expand Up @@ -501,7 +501,7 @@ <h2 class="memtitle"><span class="permalink"><a href="#a8c0e2e1e95d94888911b16a9

<p>return solution of the differential equation </p>
<p>Return the solution for differential equation based on method used.</p>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000028">Todo:</a></b></dt><dd>Currently we have tested cnexp, euler and derivimplicit methods with all equations from BBP models. Need to test this against various other mod files, especially kinetic schemes, reaction-diffusion etc. </dd></dl>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000029">Todo:</a></b></dt><dd>Currently we have tested cnexp, euler and derivimplicit methods with all equations from BBP models. Need to test this against various other mod files, especially kinetic schemes, reaction-diffusion etc. </dd></dl>

<p class="definition">Definition at line <a class="el" href="diffeq__context_8cpp_source.html#l00170">170</a> of file <a class="el" href="diffeq__context_8cpp_source.html">diffeq_context.cpp</a>.</p>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Helper class for printing AST in JSON form. </p>
<p>We need to print AST in human readable format for debugging or visualization of in memory structure. This printer class provides simple interface to construct JSON object from AST like data structures. We use nlohmann's json library which considerably simplify implementation.</p>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000035">Todo:</a></b></dt><dd>We need to explicitly call <code><a class="el" href="classnmodl_1_1printer_1_1_j_s_o_n_printer.html#a0fafa2042d3c4868e7571614702b9d00" title="Dump json object to stream (typically at the end) nspaces is number of spaces used for indentation.">flush()</a></code> in order to get write/return results. We simply can't dump block in <code>popBlock()</code> because block itself will be part of other parent elements. Also we are writing results to file, <code>stringstream</code> and <code>cout</code>. And hence we can't simply reset/clear previously written text. </dd></dl>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000036">Todo:</a></b></dt><dd>We need to explicitly call <code><a class="el" href="classnmodl_1_1printer_1_1_j_s_o_n_printer.html#a0fafa2042d3c4868e7571614702b9d00" title="Dump json object to stream (typically at the end) nspaces is number of spaces used for indentation.">flush()</a></code> in order to get write/return results. We simply can't dump block in <code>popBlock()</code> because block itself will be part of other parent elements. Also we are writing results to file, <code>stringstream</code> and <code>cout</code>. And hence we can't simply reset/clear previously written text. </dd></dl>

<p class="definition">Definition at line <a class="el" href="json__printer_8hpp_source.html#l00046">46</a> of file <a class="el" href="json__printer_8hpp_source.html">json_printer.hpp</a>.</p>
</div>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Helper class for printing AST back to NMDOL test. </p>
<p>NmodlPrintVisitor transforms AST back to NMODL. This class provided common functionality required by visitor to print nmodl ascii file.</p>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000036">Todo:</a></b></dt><dd>Implement Printer as base class to avoid duplication code between <a class="el" href="classnmodl_1_1printer_1_1_j_s_o_n_printer.html" title="Helper class for printing AST in JSON form.">JSONPrinter</a> and <a class="el" href="classnmodl_1_1printer_1_1_n_m_o_d_l_printer.html" title="Helper class for printing AST back to NMDOL test.">NMODLPrinter</a>. </dd></dl>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000037">Todo:</a></b></dt><dd>Implement Printer as base class to avoid duplication code between <a class="el" href="classnmodl_1_1printer_1_1_j_s_o_n_printer.html" title="Helper class for printing AST in JSON form.">JSONPrinter</a> and <a class="el" href="classnmodl_1_1printer_1_1_n_m_o_d_l_printer.html" title="Helper class for printing AST back to NMDOL test.">NMODLPrinter</a>. </dd></dl>

<p class="definition">Definition at line <a class="el" href="nmodl__printer_8hpp_source.html#l00038">38</a> of file <a class="el" href="nmodl__printer_8hpp_source.html">nmodl_printer.hpp</a>.</p>
</div>
Expand Down
4 changes: 2 additions & 2 deletions html/doxygen/classnmodl_1_1symtab_1_1_model_symbol_table.html
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@
<li>See command project in compiler teaching course for details</li>
</ul>
</dd></dl>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000043">Todo:</a></b></dt><dd>Unique name should be based on location. Use <a class="el" href="classnmodl_1_1_mod_token.html" title="Represent token returned by scanner.">ModToken</a> to get position. </dd></dl>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000044">Todo:</a></b></dt><dd>Unique name should be based on location. Use <a class="el" href="classnmodl_1_1_mod_token.html" title="Represent token returned by scanner.">ModToken</a> to get position. </dd></dl>

<p class="definition">Definition at line <a class="el" href="symbol__table_8hpp_source.html#l00239">239</a> of file <a class="el" href="symbol__table_8hpp_source.html">symbol_table.hpp</a>.</p>
</div>
Expand Down Expand Up @@ -307,7 +307,7 @@ <h2 class="memtitle"><span class="permalink"><a href="#a830dc2c0db6cba986b58d977

<p>return unique name by appending some counter value </p>
<p>Some blocks can appear multiple times in the nmodl file.</p>
<p>In order to distinguish them we simply append counter. </p><dl class="todo"><dt><b><a class="el" href="todo.html#_todo000041">Todo:</a></b></dt><dd>We should add position information to make name unique </dd></dl>
<p>In order to distinguish them we simply append counter. </p><dl class="todo"><dt><b><a class="el" href="todo.html#_todo000042">Todo:</a></b></dt><dd>We should add position information to make name unique </dd></dl>

<p class="definition">Definition at line <a class="el" href="src_2symtab_2symbol__table_8cpp_source.html#l00358">358</a> of file <a class="el" href="src_2symtab_2symbol__table_8cpp_source.html">symbol_table.cpp</a>.</p>

Expand Down
4 changes: 2 additions & 2 deletions html/doxygen/classnmodl_1_1symtab_1_1_symbol.html
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Represent symbol in symbol table. </p>
<p><a class="el" href="classnmodl_1_1symtab_1_1_symbol.html" title="Represent symbol in symbol table.">Symbol</a> table generator pass visit the AST and insert symbol for each node into <a class="el" href="classnmodl_1_1symtab_1_1_symbol_table.html" title="Represent symbol table for a NMODL block.">symtab::SymbolTable</a>. <a class="el" href="classnmodl_1_1symtab_1_1_symbol.html" title="Represent symbol in symbol table.">Symbol</a> could appear multiple times in a block or different global blocks. NmodlType object has all nmodl properties information.</p>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000037">Todo:</a></b></dt><dd><ul>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000038">Todo:</a></b></dt><dd><ul>
<li>Multiple tokens (i.e. location information) for symbol should be tracked</li>
<li>Scope information should be more than just string</li>
<li>Perf block should track information about all usage of the symbol (would be helpful for perf modeling)</li>
Expand Down Expand Up @@ -1160,7 +1160,7 @@ <h2 class="memtitle"><span class="permalink"><a href="#aea4355d4eb499282cfcad1b2

<p>Check if symbol represent an external variable. </p>
<p>External variables are the variables that are defined in NEURON and available in mod file.</p>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000038">Todo:</a></b></dt><dd>Need to check if we should check two properties using has_any_property instead of exact comparison</dd></dl>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000039">Todo:</a></b></dt><dd>Need to check if we should check two properties using has_any_property instead of exact comparison</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="namespacenmodl_1_1details.html#aca8ea385dc064f4648544878cd05da9a" title="Variables from NEURON that are directly used in NMODL.">nmodl::details::NEURON_VARIABLES</a> </dd></dl>

<p class="definition">Definition at line <a class="el" href="symbol_8hpp_source.html#l00283">283</a> of file <a class="el" href="symbol_8hpp_source.html">symbol.hpp</a>.</p>
Expand Down
4 changes: 2 additions & 2 deletions html/doxygen/classnmodl_1_1symtab_1_1_symbol_table.html
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@
<div class="textblock"><p>Represent symbol table for a NMODL block. </p>
<p><a class="el" href="classnmodl_1_1symtab_1_1_symbol.html" title="Represent symbol in symbol table.">Symbol</a> <a class="el" href="classnmodl_1_1symtab_1_1_symbol_table_1_1_table.html" title="Helper class for implementing symbol table.">Table</a> is used to track information about every block construct encountered in the nmodl. In NMODL, block constructs are NEURON, PARAMETER NET_RECEIVE etc. Each block is considered a new scope.</p>
<p>NMODL supports nested block definitions (i.e. nested blocks). One specific example of this is INITIAL block in NET_RECEIVE block. In this case we need multiple scopes for single top level block of NMODL. In the future if we enable block level scopes, we will need symbol tables per block. Hence we are implementing BlockSymbolTable which stores all symbol table information for specific NMODL block. Note that each BlockSymbolTable implementation is recursive because while symbol lookup we have to search first into local/current block. If lookup is unsuccessful then we have to traverse parent blocks until the end.</p>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000042">Todo:</a></b></dt><dd><ul>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000043">Todo:</a></b></dt><dd><ul>
<li>Revisit when clone method is used and implementation of copy constructor</li>
<li>Name may not require as we have added AST node </li>
</ul>
Expand Down Expand Up @@ -292,7 +292,7 @@ <h2 class="memtitle"><span class="permalink"><a href="#ae1ec2b128700c6eb7321f5a1
</div><div class="memdoc">

<p>Create a copy of symbol table. </p>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000045">Todo:</a></b></dt><dd>Revisit the usage as tokens will be pointing to old nodes </dd></dl>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000046">Todo:</a></b></dt><dd>Revisit the usage as tokens will be pointing to old nodes </dd></dl>

<p class="definition">Definition at line <a class="el" href="symbol__table_8hpp_source.html#l00194">194</a> of file <a class="el" href="symbol__table_8hpp_source.html">symbol_table.hpp</a>.</p>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Helper class for implementing symbol table. </p>
<p><a class="el" href="classnmodl_1_1symtab_1_1_symbol_table_1_1_table.html" title="Helper class for implementing symbol table.">Table</a> is used to store information about every block construct encountered in the nmodl file. Each symbol has name but for fast lookup, we create map with the associated name.</p>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000044">Todo:</a></b></dt><dd>Re-implement pretty printing </dd></dl>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000045">Todo:</a></b></dt><dd>Re-implement pretty printing </dd></dl>

<p class="definition">Definition at line <a class="el" href="symbol__table_8hpp_source.html#l00068">68</a> of file <a class="el" href="symbol__table_8hpp_source.html">symbol_table.hpp</a>.</p>
</div><table class="memberdecls">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1439,7 +1439,7 @@ <h2 class="memtitle"><span class="permalink"><a href="#a9c55e7d17ed48d0d64b8acb1
</div><div class="memdoc">

<p>We are not analyzing verbatim blocks yet and hence if there is a verbatim block we assume there is variable usage. </p>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000046">Todo:</a></b></dt><dd>One simple way would be to look for p_name in the string of verbatim block to find the variable usage. </dd></dl>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000047">Todo:</a></b></dt><dd>One simple way would be to look for p_name in the string of verbatim block to find the variable usage. </dd></dl>

<p>Implements <a class="el" href="classnmodl_1_1visitor_1_1_const_visitor.html#a096625c78ed685a7ee6233a13b1793a3">nmodl::visitor::ConstVisitor</a>.</p>

Expand Down
4 changes: 2 additions & 2 deletions html/doxygen/classnmodl_1_1visitor_1_1_inline_visitor.html
Original file line number Diff line number Diff line change
Expand Up @@ -162,7 +162,7 @@
<li>Local statement gets added to callee block (if doesn't exist)</li>
<li>Procedure body gets appended with extra assignment statement with variable used for returning value.</li>
</ul>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000048">Todo:</a></b></dt><dd><ul>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000049">Todo:</a></b></dt><dd><ul>
<li>Recursive function calls are not supported and need to add checks to avoid stack explosion</li>
<li>Currently we rename variables more than necessary, this could be improved [low priority]</li>
<li>Function calls as part of an argument of function call itself are not completely inlined [low priority]</li>
Expand Down Expand Up @@ -752,7 +752,7 @@ <h2 class="memtitle"><span class="permalink"><a href="#aec884c3dd17991a7fb6a4ae7
<li>if expression is wrapped expression</li>
<li>if wrapped expression is a function call</li>
</ul>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000047">Todo:</a></b></dt><dd>Add method to ast itself to simplify this implementation </dd></dl>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000048">Todo:</a></b></dt><dd>Add method to ast itself to simplify this implementation </dd></dl>

<p class="definition">Definition at line <a class="el" href="inline__visitor_8cpp_source.html#l00066">66</a> of file <a class="el" href="inline__visitor_8cpp_source.html">inline_visitor.cpp</a>.</p>

Expand Down
Loading

0 comments on commit 9f20564

Please sign in to comment.