User Guide
nmodl_visitor.cpp
Go to the documentation of this file.
1 /*
2  * Copyright 2023 Blue Brain Project, EPFL.
3  * See the top-level LICENSE file for details.
4  *
5  * SPDX-License-Identifier: Apache-2.0
6  */
7 
8 ///
9 /// THIS FILE IS GENERATED AT BUILD TIME AND SHALL NOT BE EDITED.
10 ///
11 
13 
14 #include "ast/all.hpp"
16 
17 
18 namespace nmodl {
19 namespace visitor {
20 
21 using namespace ast;
22 
24  if (is_exclude_type(node.get_node_type())) {
25  return;
26  }
27 
28 
29 }
30 
32  if (is_exclude_type(node.get_node_type())) {
33  return;
34  }
35 
36 
37 }
38 
40  if (is_exclude_type(node.get_node_type())) {
41  return;
42  }
43 
44 
45 }
46 
48  if (is_exclude_type(node.get_node_type())) {
49  return;
50  }
51 
52 
53 }
54 
56  if (is_exclude_type(node.get_node_type())) {
57  return;
58  }
59 
60 
61 }
62 
64  if (is_exclude_type(node.get_node_type())) {
65  return;
66  }
67 
68 
69 }
70 
72  if (is_exclude_type(node.get_node_type())) {
73  return;
74  }
75 
76  std::stringstream ss;
77  ss << node.eval();
78  printer->add_element(ss.str());
79 
80 
81 
82 }
83 
85  if (is_exclude_type(node.get_node_type())) {
86  return;
87  }
88 
89  if(node.get_macro() == nullptr) {
90  printer->add_element(std::to_string(node.eval()));
91  }
92 
93 
94 
95  if(node.get_macro()) {
96  node.get_macro()->accept(*this);
97  }
98 
99 
100 }
101 
103  if (is_exclude_type(node.get_node_type())) {
104  return;
105  }
106 
107  std::stringstream ss;
108  ss << std::setprecision(16);
109  ss << node.eval();
110  printer->add_element(ss.str());
111 
112 
113 
114 }
115 
117  if (is_exclude_type(node.get_node_type())) {
118  return;
119  }
120 
121  std::stringstream ss;
122  ss << std::setprecision(16);
123  ss << node.eval();
124  printer->add_element(ss.str());
125 
126 
127 
128 }
129 
131  if (is_exclude_type(node.get_node_type())) {
132  return;
133  }
134 
135  std::stringstream ss;
136  ss << node.eval();
137  printer->add_element(ss.str());
138 
139 
140 
141 }
142 
144  if (is_exclude_type(node.get_node_type())) {
145  return;
146  }
147 
148 
149  node.get_value()->accept(*this);
150 
151 
152 }
153 
155  if (is_exclude_type(node.get_node_type())) {
156  return;
157  }
158 
159 
160  node.get_value()->accept(*this);
161 
162 
163  auto order = node.get_order()->eval();
164  const std::string symbol(order, '\'');
165  printer->add_element(symbol);
166 
167 
168 }
169 
171  if (is_exclude_type(node.get_node_type())) {
172  return;
173  }
174 
175 
176  node.get_name()->accept(*this);
177 
178 
179  printer->add_element("[");
180  node.get_length()->accept(*this);
181 printer->add_element("]");
182 
183 
184 }
185 
187  if (is_exclude_type(node.get_node_type())) {
188  return;
189  }
190 
191 
192  node.get_name()->accept(*this);
193 
194 
195  if(node.get_at()) {
196  printer->add_element("@");
197  node.get_at()->accept(*this);
198  }
199 
200 
201  if(node.get_index()) {
202  printer->add_element("[");
203  node.get_index()->accept(*this);
204 printer->add_element("]");
205  }
206 
207 
208 }
209 
211  if (is_exclude_type(node.get_node_type())) {
212  return;
213  }
214 
215 
216  node.get_name()->accept(*this);
217 
218 
219  if(node.get_unit()) {
220  node.get_unit()->accept(*this);
221  }
222 
223 
224 }
225 
227  if (is_exclude_type(node.get_node_type())) {
228  return;
229  }
230 
231 
232  if(node.get_value()) {
233  printer->add_element(" ");
234  node.get_value()->accept(*this);
235  }
236 
237 
238  node.get_name()->accept(*this);
239 
240 
241 }
242 
244  if (is_exclude_type(node.get_node_type())) {
245  return;
246  }
247 
248 
249  node.get_name()->accept(*this);
250 
251 
252 }
253 
255  if (is_exclude_type(node.get_node_type())) {
256  return;
257  }
258 
259 
260  node.get_name()->accept(*this);
261 
262 
263 }
264 
266  if (is_exclude_type(node.get_node_type())) {
267  return;
268  }
269 
270 
271  node.get_name()->accept(*this);
272 
273 
274 }
275 
277  if (is_exclude_type(node.get_node_type())) {
278  return;
279  }
280 
281 
282  node.get_name()->accept(*this);
283 
284 
285 }
286 
288  if (is_exclude_type(node.get_node_type())) {
289  return;
290  }
291 
292 
293  node.get_name()->accept(*this);
294 
295 
296 }
297 
299  if (is_exclude_type(node.get_node_type())) {
300  return;
301  }
302 
303 
304  node.get_name()->accept(*this);
305 
306 
307 }
308 
310  if (is_exclude_type(node.get_node_type())) {
311  return;
312  }
313 
314 
315  node.get_name()->accept(*this);
316 
317 
318 }
319 
321  if (is_exclude_type(node.get_node_type())) {
322  return;
323  }
324 
325 
326  node.get_name()->accept(*this);
327 
328 
329 }
330 
332  if (is_exclude_type(node.get_node_type())) {
333  return;
334  }
335 
336 
337  node.get_name()->accept(*this);
338 
339 
340 }
341 
343  if (is_exclude_type(node.get_node_type())) {
344  return;
345  }
346 
347 
348  node.get_name()->accept(*this);
349 
350 
351 }
352 
354  if (is_exclude_type(node.get_node_type())) {
355  return;
356  }
357  printer->add_element("PARAMETER ");
358 
359  printer->push_level();
360 
361  visit_element(node.get_statements(),"",false,true);
362 
363 
364 printer->pop_level();
365 }
366 
368  printer->add_element(": INDEPENDENT block is deprecated and has no effect in the NEURON model. Skipped!");
369  return; if (is_exclude_type(node.get_node_type())) {
370  return;
371  }
372  printer->add_element("INDEPENDENT ");
373 
374  printer->push_level();
375 
376  visit_element(node.get_variables()," ",false,false);
377 
378 
379 printer->pop_level();
380 }
381 
383  if (is_exclude_type(node.get_node_type())) {
384  return;
385  }
386  printer->add_element("ASSIGNED ");
387 
388  printer->push_level();
389 
390  visit_element(node.get_definitions(),"",false,true);
391 
392 
393 printer->pop_level();
394 }
395 
397  if (is_exclude_type(node.get_node_type())) {
398  return;
399  }
400  printer->add_element("STATE ");
401 
402  printer->push_level();
403 
404  visit_element(node.get_definitions(),"",false,true);
405 
406 
407 printer->pop_level();
408 }
409 
411  if (is_exclude_type(node.get_node_type())) {
412  return;
413  }
414  printer->add_element("INITIAL ");
415 
416 
417  if(node.get_statement_block()) {
418  node.get_statement_block()->accept(*this);
419  }
420 
421 
422 }
423 
425  if (is_exclude_type(node.get_node_type())) {
426  return;
427  }
428  printer->add_element("CONSTRUCTOR ");
429 
430 
431  if(node.get_statement_block()) {
432  node.get_statement_block()->accept(*this);
433  }
434 
435 
436 }
437 
439  if (is_exclude_type(node.get_node_type())) {
440  return;
441  }
442  printer->add_element("DESTRUCTOR ");
443 
444 
445  if(node.get_statement_block()) {
446  node.get_statement_block()->accept(*this);
447  }
448 
449 
450 }
451 
453  if (is_exclude_type(node.get_node_type())) {
454  return;
455  }
456 
457  printer->push_level();
458 
459  visit_element(node.get_statements(),"",false,true);
460 
461 
462 printer->pop_level();
463 }
464 
466  if (is_exclude_type(node.get_node_type())) {
467  return;
468  }
469  printer->add_element("DERIVATIVE ");
470 
471 
472  node.get_name()->accept(*this);
473 printer->add_element(" ");
474 
475 
476  if(node.get_statement_block()) {
477  node.get_statement_block()->accept(*this);
478  }
479 
480 
481 }
482 
484  if (is_exclude_type(node.get_node_type())) {
485  return;
486  }
487  printer->add_element("LINEAR ");
488 
489 
490  node.get_name()->accept(*this);
491 printer->add_element(" ");
492 
493 
494  if (!node.get_solvefor().empty()) {
495  printer->add_element(" SOLVEFOR ");
496  visit_element(node.get_solvefor(),",",false,false);
497  }
498 
499 
500  if(node.get_statement_block()) {
501  node.get_statement_block()->accept(*this);
502  }
503 
504 
505 }
506 
508  if (is_exclude_type(node.get_node_type())) {
509  return;
510  }
511  printer->add_element("NONLINEAR ");
512 
513 
514  node.get_name()->accept(*this);
515 
516 
517  if (!node.get_solvefor().empty()) {
518  printer->add_element(" SOLVEFOR ");
519  visit_element(node.get_solvefor(),",",false,false);
520  }
521 printer->add_element(" ");
522 
523  if(node.get_statement_block()) {
524  node.get_statement_block()->accept(*this);
525  }
526 
527 
528 }
529 
531  if (is_exclude_type(node.get_node_type())) {
532  return;
533  }
534  printer->add_element("DISCRETE ");
535 
536 
537  node.get_name()->accept(*this);
538 printer->add_element(" ");
539 
540 
541  if(node.get_statement_block()) {
542  node.get_statement_block()->accept(*this);
543  }
544 
545 
546 }
547 
549  if (is_exclude_type(node.get_node_type())) {
550  return;
551  }
552  printer->add_element("FUNCTION_TABLE ");
553 
554 
555  node.get_name()->accept(*this);
556 
557 printer->add_element("(");
558  visit_element(node.get_parameters(),", ",false,false);
559 printer->add_element(")");
560 
561  if(node.get_unit()) {
562  printer->add_element(" ");
563  node.get_unit()->accept(*this);
564  }
565 
566 
567 }
568 
570  if (is_exclude_type(node.get_node_type())) {
571  return;
572  }
573  printer->add_element("FUNCTION ");
574 
575 
576  node.get_name()->accept(*this);
577 
578 printer->add_element("(");
579  visit_element(node.get_parameters(),", ",false,false);
580 printer->add_element(")");
581 
582  if(node.get_unit()) {
583  printer->add_element(" ");
584  node.get_unit()->accept(*this);
585  }
586 printer->add_element(" ");
587 
588  if(node.get_statement_block()) {
589  node.get_statement_block()->accept(*this);
590  }
591 
592 
593 }
594 
596  if (is_exclude_type(node.get_node_type())) {
597  return;
598  }
599  printer->add_element("PROCEDURE ");
600 
601 
602  node.get_name()->accept(*this);
603 
604 printer->add_element("(");
605  visit_element(node.get_parameters(),", ",false,false);
606 printer->add_element(") ");
607 
608  if(node.get_unit()) {
609  node.get_unit()->accept(*this);
610  }
611 
612 
613  if(node.get_statement_block()) {
614  node.get_statement_block()->accept(*this);
615  }
616 
617 
618 }
619 
621  if (is_exclude_type(node.get_node_type())) {
622  return;
623  }
624  printer->add_element("NET_RECEIVE ");
625 
626 printer->add_element("(");
627  visit_element(node.get_parameters(),", ",false,false);
628 printer->add_element(") ");
629 
630  if(node.get_statement_block()) {
631  node.get_statement_block()->accept(*this);
632  }
633 
634 
635 }
636 
638  if (is_exclude_type(node.get_node_type())) {
639  return;
640  }
641  printer->add_element("SOLVE");
642 
643 
644  printer->add_element(" ");
645  node.get_block_name()->accept(*this);
646 
647 
648  if(node.get_method()) {
649  printer->add_element(" METHOD ");
650  node.get_method()->accept(*this);
651  }
652 
653 
654  if(node.get_steadystate()) {
655  printer->add_element(" STEADYSTATE ");
656  node.get_steadystate()->accept(*this);
657  }
658 
659 
660 }
661 
663  if (is_exclude_type(node.get_node_type())) {
664  return;
665  }
666  printer->add_element("BREAKPOINT ");
667 
668 
669  if(node.get_statement_block()) {
670  node.get_statement_block()->accept(*this);
671  }
672 
673 
674 }
675 
677  if (is_exclude_type(node.get_node_type())) {
678  return;
679  }
680  printer->add_element("BEFORE ");
681 
682 
683  node.get_bablock()->accept(*this);
684 
685 
686 }
687 
689  if (is_exclude_type(node.get_node_type())) {
690  return;
691  }
692  printer->add_element("AFTER ");
693 
694 
695  node.get_bablock()->accept(*this);
696 
697 
698 }
699 
701  if (is_exclude_type(node.get_node_type())) {
702  return;
703  }
704 
705 
706  node.get_type()->accept(*this);
707 printer->add_element(" ");
708 
709 
710  if(node.get_statement_block()) {
711  node.get_statement_block()->accept(*this);
712  }
713 
714 
715 }
716 
718  if (is_exclude_type(node.get_node_type())) {
719  return;
720  }
721  printer->add_element("FOR_NETCONS ");
722 
723 printer->add_element("(");
724  visit_element(node.get_parameters(),", ",false,false);
725 printer->add_element(") ");
726 
727  if(node.get_statement_block()) {
728  node.get_statement_block()->accept(*this);
729  }
730 
731 
732 }
733 
735  if (is_exclude_type(node.get_node_type())) {
736  return;
737  }
738  printer->add_element("KINETIC ");
739 
740 
741  node.get_name()->accept(*this);
742 printer->add_element(" ");
743 
744 
745  visit_element(node.get_solvefor(),",",false,false);
746 
747 
748  if(node.get_statement_block()) {
749  node.get_statement_block()->accept(*this);
750  }
751 
752 
753 }
754 
756  if (is_exclude_type(node.get_node_type())) {
757  return;
758  }
759  printer->add_element("UNITS ");
760 
761  printer->push_level();
762 
763  visit_element(node.get_definitions(),"",false,true);
764 
765 
766 printer->pop_level();
767 }
768 
770  if (is_exclude_type(node.get_node_type())) {
771  return;
772  }
773  printer->add_element("CONSTANT ");
774 
775  printer->push_level();
776 
777  visit_element(node.get_statements(),"",false,true);
778 
779 
780 printer->pop_level();
781 }
782 
784  if (is_exclude_type(node.get_node_type())) {
785  return;
786  }
787  printer->add_element("NEURON ");
788 
789 
790  if(node.get_statement_block()) {
791  node.get_statement_block()->accept(*this);
792  }
793 
794 
795 }
796 
798  if (is_exclude_type(node.get_node_type())) {
799  return;
800  }
801 
802 
803  printer->add_element("(");
804  node.get_name()->accept(*this);
805 printer->add_element(")");
806 
807 
808 }
809 
811  if (is_exclude_type(node.get_node_type())) {
812  return;
813  }
814 
815 
816  node.get_value()->accept(*this);
817 
818 
819  if(node.get_unit()) {
820  node.get_unit()->accept(*this);
821  }
822 
823 
824 }
825 
827  if (is_exclude_type(node.get_node_type())) {
828  return;
829  }
830 
831 
832  node.get_name()->accept(*this);
833 
834 
835 }
836 
838  if (is_exclude_type(node.get_node_type())) {
839  return;
840  }
841 
842 
843  printer->add_element("<");
844  node.get_min()->accept(*this);
845 printer->add_element(",");
846 
847 
848  node.get_max()->accept(*this);
849 printer->add_element(">");
850 
851 
852 }
853 
855  if (is_exclude_type(node.get_node_type())) {
856  return;
857  }
858 
859 
860  printer->add_element("<");
861  node.get_min()->accept(*this);
862 printer->add_element(",");
863 
864 
865  node.get_max()->accept(*this);
866 printer->add_element(">");
867 
868 
869 }
870 
872  if (is_exclude_type(node.get_node_type())) {
873  return;
874  }
875 
876 
877  node.get_name()->accept(*this);
878 
879 
880  printer->add_element(" = ");
881  node.get_value()->accept(*this);
882 
883 
884  if(node.get_unit()) {
885  printer->add_element(" ");
886  node.get_unit()->accept(*this);
887  }
888 
889 
890 }
891 
893  if (is_exclude_type(node.get_node_type())) {
894  return;
895  }
896 
897  std::stringstream ss;
898  ss << node.eval();
899  printer->add_element(ss.str());
900 
901 
902 
903 }
904 
906  if (is_exclude_type(node.get_node_type())) {
907  return;
908  }
909 
910  std::stringstream ss;
911  ss << node.eval();
912  printer->add_element(ss.str());
913 
914 
915 
916 }
917 
919  if (is_exclude_type(node.get_node_type())) {
920  return;
921  }
922 
923  std::stringstream ss;
924  ss << node.eval();
925  printer->add_element(ss.str());
926 
927 
928 
929 }
930 
932  if (is_exclude_type(node.get_node_type())) {
933  return;
934  }
935 
936 
937  printer->add_element("(");
938  node.get_expression()->accept(*this);
939 printer->add_element(")");
940 
941 
942 }
943 
945  if (is_exclude_type(node.get_node_type())) {
946  return;
947  }
948 
949 
950  node.get_lhs()->accept(*this);
951 
952 
953  std::string op = node.get_op().eval();
954  if(op == "=" || op == "&&" || op == "||" || op == "==")
955  op = " " + op + " ";
956  printer->add_element(op);
957 
958 
959  node.get_rhs()->accept(*this);
960 
961 
962 }
963 
965  if (is_exclude_type(node.get_node_type())) {
966  return;
967  }
968 
969 
970  node.get_expression()->accept(*this);
971 
972 
973 }
974 
976  if (is_exclude_type(node.get_node_type())) {
977  return;
978  }
979 
980 
981  UnaryOperator(node.get_op()).accept(*this);
982 
983 
984  node.get_expression()->accept(*this);
985 
986 
987 }
988 
990  if (is_exclude_type(node.get_node_type())) {
991  return;
992  }
993  printer->add_element("~ ");
994 
995 
996  node.get_lhs()->accept(*this);
997 printer->add_element(" = ");
998 
999 
1000  node.get_rhs()->accept(*this);
1001 
1002 
1003 }
1004 
1006  if (is_exclude_type(node.get_node_type())) {
1007  return;
1008  }
1009  printer->add_element("~ ");
1010 
1011 
1012  node.get_left_linxpression()->accept(*this);
1013 printer->add_element(" = ");
1014 
1015 
1016  node.get_linxpression()->accept(*this);
1017 
1018 
1019 }
1020 
1022  if (is_exclude_type(node.get_node_type())) {
1023  return;
1024  }
1025 
1026 
1027  node.get_name()->accept(*this);
1028 
1029 printer->add_element("(");
1030  visit_element(node.get_arguments(),", ",false,false);
1031 printer->add_element(")");
1032 
1033 }
1034 
1036  if (is_exclude_type(node.get_node_type())) {
1037  return;
1038  }
1039 
1040 
1041  printer->add_element("(");
1042  node.get_expression()->accept(*this);
1043 printer->add_element(")");
1044 
1045 
1046  printer->add_element(" ");
1047  node.get_value()->accept(*this);
1048 
1049 
1050 }
1051 
1053  if (is_exclude_type(node.get_node_type())) {
1054  return;
1055  }
1056 
1057  std::stringstream ss;
1058  ss << node.eval();
1059  printer->add_element(ss.str());
1060 
1061 
1062 
1063 }
1064 
1066  if (is_exclude_type(node.get_node_type())) {
1067  return;
1068  }
1069 
1070 
1071  node.get_unit1()->accept(*this);
1072 
1073 
1074  printer->add_element(" = ");
1075  node.get_unit2()->accept(*this);
1076 
1077 
1078 }
1079 
1081  if (is_exclude_type(node.get_node_type())) {
1082  return;
1083  }
1084 
1085 
1086  node.get_name()->accept(*this);
1087 printer->add_element(" =");
1088 
1089 
1090  if(node.get_value()) {
1091  printer->add_element(" ");
1092  node.get_value()->accept(*this);
1093  }
1094 
1095 
1096  printer->add_element(" ");
1097  node.get_unit1()->accept(*this);
1098 
1099 
1100  if(node.get_gt()) {
1101  if(node.get_gt()->eval()) {
1102  printer->add_element(" ->");
1103  }
1104  }
1105 
1106 
1107  if(node.get_unit2()) {
1108  printer->add_element(" ");
1109  node.get_unit2()->accept(*this);
1110  }
1111 
1112 
1113 }
1114 
1116  if (is_exclude_type(node.get_node_type())) {
1117  return;
1118  }
1119 
1120 
1121  printer->add_element(" ");
1122  node.get_type()->accept(*this);
1123 printer->add_element(" ");
1124 
1125 
1126  node.get_value()->accept(*this);
1127 
1128 
1129 }
1130 
1132  if (is_exclude_type(node.get_node_type())) {
1133  return;
1134  }
1135 
1136  std::stringstream ss;
1137  ss << node.eval();
1138  printer->add_element(ss.str());
1139 
1140 
1141 
1142 }
1143 
1145  if (is_exclude_type(node.get_node_type())) {
1146  return;
1147  }
1148  printer->add_element("LOCAL ");
1149 
1150 
1151  visit_element(node.get_variables(),", ",false,false);
1152 
1153 
1154 }
1155 
1157  if (is_exclude_type(node.get_node_type())) {
1158  return;
1159  }
1160  printer->add_element("TITLE");
1161 
1162 
1163  node.get_title()->accept(*this);
1164 
1165 
1166 }
1167 
1169  if (is_exclude_type(node.get_node_type())) {
1170  return;
1171  }
1172  printer->add_element("DEFINE ");
1173 
1174 
1175  node.get_name()->accept(*this);
1176 
1177 
1178  printer->add_element(" ");
1179  node.get_value()->accept(*this);
1180 
1181 
1182 }
1183 
1185  if (is_exclude_type(node.get_node_type())) {
1186  return;
1187  }
1188  printer->add_element("INCLUDE ");
1189 
1190 
1191  node.get_filename()->accept(*this);
1192 
1193 
1194 
1195 
1196 
1197 }
1198 
1200  if (is_exclude_type(node.get_node_type())) {
1201  return;
1202  }
1203 
1204 
1205  node.get_name()->accept(*this);
1206 
1207 
1208  if(node.get_value()) {
1209  printer->add_element(" = ");
1210  node.get_value()->accept(*this);
1211  }
1212 
1213 
1214  if(node.get_unit()) {
1215  printer->add_element(" ");
1216  node.get_unit()->accept(*this);
1217  }
1218 
1219 
1220  if(node.get_limit()) {
1221  printer->add_element(" ");
1222  node.get_limit()->accept(*this);
1223  }
1224 
1225 
1226 }
1227 
1229  if (is_exclude_type(node.get_node_type())) {
1230  return;
1231  }
1232 
1233 
1234  node.get_name()->accept(*this);
1235 
1236 
1237  if(node.get_length()) {
1238  printer->add_element("[");
1239  node.get_length()->accept(*this);
1240 printer->add_element("]");
1241  }
1242 
1243 
1244  if(node.get_from()) {
1245  printer->add_element(" FROM ");
1246  node.get_from()->accept(*this);
1247  }
1248 
1249 
1250  if(node.get_to()) {
1251  printer->add_element(" TO ");
1252  node.get_to()->accept(*this);
1253  }
1254 
1255 
1256  if(node.get_start()) {
1257  printer->add_element(" START ");
1258  node.get_start()->accept(*this);
1259  }
1260 
1261 
1262  if(node.get_unit()) {
1263  printer->add_element(" ");
1264  node.get_unit()->accept(*this);
1265  }
1266 
1267 
1268  if(node.get_abstol()) {
1269  printer->add_element(" <");
1270  node.get_abstol()->accept(*this);
1271 printer->add_element(">");
1272  }
1273 
1274 
1275 }
1276 
1278  if (is_exclude_type(node.get_node_type())) {
1279  return;
1280  }
1281  printer->add_element("CONDUCTANCE ");
1282 
1283 
1284  node.get_conductance()->accept(*this);
1285 
1286 
1287  if(node.get_ion()) {
1288  printer->add_element(" USEION ");
1289  node.get_ion()->accept(*this);
1290  }
1291 
1292 
1293 }
1294 
1296  if (is_exclude_type(node.get_node_type())) {
1297  return;
1298  }
1299 
1300 
1301  node.get_expression()->accept(*this);
1302 
1303 
1304 }
1305 
1307  if (is_exclude_type(node.get_node_type())) {
1308  return;
1309  }
1310  printer->add_element("PROTECT ");
1311 
1312 
1313  node.get_expression()->accept(*this);
1314 
1315 
1316 }
1317 
1319  if (is_exclude_type(node.get_node_type())) {
1320  return;
1321  }
1322  printer->add_element("FROM ");
1323 
1324 
1325  node.get_name()->accept(*this);
1326 
1327 
1328  printer->add_element(" = ");
1329  node.get_from()->accept(*this);
1330 
1331 
1332  printer->add_element(" TO ");
1333  node.get_to()->accept(*this);
1334 
1335 
1336  if(node.get_increment()) {
1337  printer->add_element(" BY ");
1338  node.get_increment()->accept(*this);
1339  }
1340 printer->add_element(" ");
1341 
1342  if(node.get_statement_block()) {
1343  node.get_statement_block()->accept(*this);
1344  }
1345 
1346 
1347 }
1348 
1350  if (is_exclude_type(node.get_node_type())) {
1351  return;
1352  }
1353  printer->add_element("WHILE ");
1354 
1355 
1356  printer->add_element("(");
1357  node.get_condition()->accept(*this);
1358 printer->add_element(") ");
1359 
1360 
1361  if(node.get_statement_block()) {
1362  node.get_statement_block()->accept(*this);
1363  }
1364 
1365 
1366 }
1367 
1369  if (is_exclude_type(node.get_node_type())) {
1370  return;
1371  }
1372  printer->add_element("IF ");
1373 
1374 
1375  printer->add_element("(");
1376  node.get_condition()->accept(*this);
1377 printer->add_element(") ");
1378 
1379 
1380  if(node.get_statement_block()) {
1381  node.get_statement_block()->accept(*this);
1382  }
1383 
1384 
1385  visit_element(node.get_elseifs(),"",false,false);
1386 
1387 
1388  if(node.get_elses()) {
1389  node.get_elses()->accept(*this);
1390  }
1391 
1392 
1393 }
1394 
1396  if (is_exclude_type(node.get_node_type())) {
1397  return;
1398  }
1399  printer->add_element(" ELSE IF ");
1400 
1401 
1402  printer->add_element("(");
1403  node.get_condition()->accept(*this);
1404 printer->add_element(") ");
1405 
1406 
1407  if(node.get_statement_block()) {
1408  node.get_statement_block()->accept(*this);
1409  }
1410 
1411 
1412 }
1413 
1415  if (is_exclude_type(node.get_node_type())) {
1416  return;
1417  }
1418  printer->add_element(" ELSE ");
1419 
1420 
1421  if(node.get_statement_block()) {
1422  node.get_statement_block()->accept(*this);
1423  }
1424 
1425 
1426 }
1427 
1429  if (is_exclude_type(node.get_node_type())) {
1430  return;
1431  }
1432  printer->add_element("WATCH ");
1433 
1434 
1435  visit_element(node.get_statements(),",",false,false);
1436 
1437 
1438 }
1439 
1441  if (is_exclude_type(node.get_node_type())) {
1442  return;
1443  }
1444  printer->add_element("MUTEXLOCK");
1445 
1446 
1447 }
1448 
1450  if (is_exclude_type(node.get_node_type())) {
1451  return;
1452  }
1453  printer->add_element("MUTEXUNLOCK");
1454 
1455 
1456 }
1457 
1459  if (is_exclude_type(node.get_node_type())) {
1460  return;
1461  }
1462  printer->add_element("CONSERVE");
1463 
1464 
1465  printer->add_element(" ");
1466  node.get_react()->accept(*this);
1467 
1468 
1469  printer->add_element(" = ");
1470  node.get_expr()->accept(*this);
1471 
1472 
1473 }
1474 
1476  if (is_exclude_type(node.get_node_type())) {
1477  return;
1478  }
1479  printer->add_element("COMPARTMENT");
1480 
1481 
1482  if(node.get_name()) {
1483  printer->add_element(" ");
1484  node.get_name()->accept(*this);
1485 printer->add_element(",");
1486  }
1487 
1488 
1489  printer->add_element(" ");
1490  node.get_expression()->accept(*this);
1491 
1492 
1493  if (!node.get_names().empty()) {
1494  printer->add_element(" {");
1495  visit_element(node.get_names()," ",false,false);
1496 printer->add_element("}");
1497  }
1498 
1499 
1500 }
1501 
1503  if (is_exclude_type(node.get_node_type())) {
1504  return;
1505  }
1506  printer->add_element("LONGITUDINAL_DIFFUSION");
1507 
1508 
1509  if(node.get_name()) {
1510  printer->add_element(" ");
1511  node.get_name()->accept(*this);
1512 printer->add_element(",");
1513  }
1514 
1515 
1516  printer->add_element(" ");
1517  node.get_expression()->accept(*this);
1518 
1519 
1520  if (!node.get_names().empty()) {
1521  printer->add_element(" {");
1522  visit_element(node.get_names()," ",false,false);
1523 printer->add_element("}");
1524  }
1525 
1526 
1527 }
1528 
1530  if (is_exclude_type(node.get_node_type())) {
1531  return;
1532  }
1533  printer->add_element("~ ");
1534 
1535 
1536  node.get_reaction1()->accept(*this);
1537 
1538 
1539  printer->add_element(" ");
1540  ReactionOperator(node.get_op()).accept(*this);
1541 
1542 
1543  if(node.get_reaction2()) {
1544  printer->add_element(" ");
1545  node.get_reaction2()->accept(*this);
1546  }
1547 
1548 
1549  printer->add_element(" (");
1550  node.get_expression1()->accept(*this);
1551 
1552 
1553  if(node.get_expression2()) {
1554  printer->add_element(", ");
1555  node.get_expression2()->accept(*this);
1556  }
1557 printer->add_element(")");
1558 
1559 }
1560 
1562  if (is_exclude_type(node.get_node_type())) {
1563  return;
1564  }
1565  printer->add_element("LAG ");
1566 
1567 
1568  node.get_name()->accept(*this);
1569 
1570 
1571  printer->add_element(" BY ");
1572  node.get_byname()->accept(*this);
1573 
1574 
1575 }
1576 
1578  if (is_exclude_type(node.get_node_type())) {
1579  return;
1580  }
1581 
1582 
1583  node.get_constant()->accept(*this);
1584 
1585 
1586 }
1587 
1589  if (is_exclude_type(node.get_node_type())) {
1590  return;
1591  }
1592  printer->add_element("TABLE ");
1593 
1594 
1595  visit_element(node.get_table_vars(),",",false,false);
1596 
1597 
1598  if (!node.get_depend_vars().empty()) {
1599  printer->add_element(" DEPEND ");
1600  visit_element(node.get_depend_vars(),",",false,false);
1601  }
1602 
1603 
1604  printer->add_element(" FROM ");
1605  node.get_from()->accept(*this);
1606 
1607 
1608  printer->add_element(" TO ");
1609  node.get_to()->accept(*this);
1610 
1611 
1612  printer->add_element(" WITH ");
1613  node.get_with()->accept(*this);
1614 
1615 
1616 }
1617 
1619  if (is_exclude_type(node.get_node_type())) {
1620  return;
1621  }
1622 
1623 
1624  node.get_type()->accept(*this);
1625 printer->add_element(" ");
1626 
1627 
1628  node.get_name()->accept(*this);
1629 
1630 
1631 }
1632 
1634  if (is_exclude_type(node.get_node_type())) {
1635  return;
1636  }
1637  printer->add_element("USEION ");
1638 
1639 
1640  node.get_name()->accept(*this);
1641 
1642 
1643  if (!node.get_readlist().empty()) {
1644  printer->add_element(" READ ");
1645  visit_element(node.get_readlist(),", ",false,false);
1646  }
1647 
1648 
1649  if (!node.get_writelist().empty()) {
1650  printer->add_element(" WRITE ");
1651  visit_element(node.get_writelist(),", ",false,false);
1652  }
1653 
1654 
1655  if(node.get_valence()) {
1656  node.get_valence()->accept(*this);
1657  }
1658 
1659 
1660  if(node.get_ontology_id()) {
1661  printer->add_element(" REPRESENTS ");
1662  node.get_ontology_id()->accept(*this);
1663  }
1664 
1665 
1666 }
1667 
1669  if (is_exclude_type(node.get_node_type())) {
1670  return;
1671  }
1672  printer->add_element("NONSPECIFIC_CURRENT ");
1673 
1674 
1675  visit_element(node.get_currents(),", ",false,false);
1676 
1677 
1678 }
1679 
1681  if (is_exclude_type(node.get_node_type())) {
1682  return;
1683  }
1684  printer->add_element("ELECTRODE_CURRENT ");
1685 
1686 
1687  visit_element(node.get_currents(),", ",false,false);
1688 
1689 
1690 }
1691 
1693  if (is_exclude_type(node.get_node_type())) {
1694  return;
1695  }
1696  printer->add_element("RANGE ");
1697 
1698 
1699  visit_element(node.get_variables(),", ",false,false);
1700 
1701 
1702 }
1703 
1705  if (is_exclude_type(node.get_node_type())) {
1706  return;
1707  }
1708  printer->add_element("GLOBAL ");
1709 
1710 
1711  visit_element(node.get_variables(),", ",false,false);
1712 
1713 
1714 }
1715 
1717  if (is_exclude_type(node.get_node_type())) {
1718  return;
1719  }
1720  printer->add_element("RANDOM ");
1721 
1722 
1723  visit_element(node.get_variables(),", ",false,false);
1724 
1725 
1726 }
1727 
1729  if (is_exclude_type(node.get_node_type())) {
1730  return;
1731  }
1732  printer->add_element("POINTER ");
1733 
1734 
1735  visit_element(node.get_variables(),", ",false,false);
1736 
1737 
1738 }
1739 
1741  if (is_exclude_type(node.get_node_type())) {
1742  return;
1743  }
1744  printer->add_element("BBCOREPOINTER ");
1745 
1746 
1747  visit_element(node.get_variables(),", ",false,false);
1748 
1749 
1750 }
1751 
1753  if (is_exclude_type(node.get_node_type())) {
1754  return;
1755  }
1756  printer->add_element("EXTERNAL ");
1757 
1758 
1759  visit_element(node.get_variables(),", ",false,false);
1760 
1761 
1762 }
1763 
1765  if (is_exclude_type(node.get_node_type())) {
1766  return;
1767  }
1768  printer->add_element("THREADSAFE");
1769 
1770 
1771 }
1772 
1774  if (is_exclude_type(node.get_node_type())) {
1775  return;
1776  }
1777  printer->add_element("VERBATIM");
1778 
1779 
1780  node.get_statement()->accept(*this);
1781 printer->add_element("ENDVERBATIM");
1782 
1783 
1784 }
1785 
1787  if (is_exclude_type(node.get_node_type())) {
1788  return;
1789  }
1790 
1791 
1792  node.get_statement()->accept(*this);
1793 
1794 
1795 }
1796 
1798  if (is_exclude_type(node.get_node_type())) {
1799  return;
1800  }
1801  printer->add_element("COMMENT");
1802 
1803 
1804  node.get_statement()->accept(*this);
1805 printer->add_element("ENDCOMMENT");
1806 
1807 
1808 }
1809 
1811  if (is_exclude_type(node.get_node_type())) {
1812  return;
1813  }
1814  printer->add_element("REPRESENTS ");
1815 
1816 
1817  node.get_ontology_id()->accept(*this);
1818 
1819 
1820 }
1821 
1823  if (is_exclude_type(node.get_node_type())) {
1824  return;
1825  }
1826 
1827 
1828  visit_element(node.get_blocks(),"",true,false);
1829 
1830 
1831 }
1832 
1834  if (is_exclude_type(node.get_node_type())) {
1835  return;
1836  }
1837  printer->add_element("NRN_STATE ");
1838 
1839 
1840  visit_element(node.get_solve_statements(),"",false,true);
1841 
1842 
1843 }
1844 
1846  if (is_exclude_type(node.get_node_type())) {
1847  return;
1848  }
1849  printer->add_element("EIGEN_NEWTON_SOLVE");
1850 
1851 
1852  printer->add_element("[");
1853  node.get_n_state_vars()->accept(*this);
1854 printer->add_element("]");
1855 
1856 
1857  if(node.get_variable_block()) {
1858  node.get_variable_block()->accept(*this);
1859  }
1860 
1861 
1862  if(node.get_initialize_block()) {
1863  node.get_initialize_block()->accept(*this);
1864  }
1865 
1866 
1867  if(node.get_setup_x_block()) {
1868  node.get_setup_x_block()->accept(*this);
1869  }
1870 
1871 
1872  if(node.get_functor_block()) {
1873  node.get_functor_block()->accept(*this);
1874  }
1875 
1876 
1877  if(node.get_update_states_block()) {
1878  node.get_update_states_block()->accept(*this);
1879  }
1880 
1881 
1882  if(node.get_finalize_block()) {
1883  node.get_finalize_block()->accept(*this);
1884  }
1885 
1886 
1887 }
1888 
1890  if (is_exclude_type(node.get_node_type())) {
1891  return;
1892  }
1893  printer->add_element("EIGEN_LINEAR_SOLVE");
1894 
1895 
1896  printer->add_element("[");
1897  node.get_n_state_vars()->accept(*this);
1898 printer->add_element("]");
1899 
1900 
1901  if(node.get_variable_block()) {
1902  node.get_variable_block()->accept(*this);
1903  }
1904 
1905 
1906  if(node.get_initialize_block()) {
1907  node.get_initialize_block()->accept(*this);
1908  }
1909 
1910 
1911  if(node.get_setup_x_block()) {
1912  node.get_setup_x_block()->accept(*this);
1913  }
1914 
1915 
1916  if(node.get_update_states_block()) {
1917  node.get_update_states_block()->accept(*this);
1918  }
1919 
1920 
1921  if(node.get_finalize_block()) {
1922  node.get_finalize_block()->accept(*this);
1923  }
1924 
1925 
1926 }
1927 
1929  if (is_exclude_type(node.get_node_type())) {
1930  return;
1931  }
1932 
1933 
1934  node.get_expression()->accept(*this);
1935 
1936 
1937 }
1938 
1940  if (is_exclude_type(node.get_node_type())) {
1941  return;
1942  }
1943 
1944 
1945  node.get_node_to_solve()->accept(*this);
1946 
1947 
1948 }
1949 
1951  if (is_exclude_type(node.get_node_type())) {
1952  return;
1953  }
1954 
1955 
1956  node.get_solve_block()->accept(*this);
1957 
1958 
1959  node.get_node_to_solve()->accept(*this);
1960 
1961 
1962 }
1963 
1965  if (is_exclude_type(node.get_node_type())) {
1966  return;
1967  }
1968  printer->add_element("dt");
1969 
1970 
1971  printer->add_element(" = ");
1972  node.get_value()->accept(*this);
1973 
1974 
1975 }
1976 
1977 
1978 } // namespace visitor
1979 } // namespace nmodl
1980 
nmodl::ast::AssignedDefinition::get_to
std::shared_ptr< Number > get_to() const noexcept
Getter for member variable AssignedDefinition::to.
Definition: assigned_definition.hpp:194
nmodl::ast::IndexedName::get_length
std::shared_ptr< Expression > get_length() const noexcept
Getter for member variable IndexedName::length.
Definition: indexed_name.hpp:176
nmodl::ast::GlobalVar::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: global_var.hpp:91
nmodl::ast::ReactionStatement::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: reaction_statement.hpp:100
nmodl::ast::ExpressionStatement::get_expression
std::shared_ptr< Expression > get_expression() const noexcept
Getter for member variable ExpressionStatement::expression.
Definition: expression_statement.hpp:143
nmodl::ast::TableStatement::get_depend_vars
const NameVector & get_depend_vars() const noexcept
Getter for member variable TableStatement::depend_vars.
Definition: table_statement.hpp:175
nmodl::ast::LonDifuse
Represent LONGITUDINAL_DIFFUSION statement in NMODL.
Definition: lon_difuse.hpp:39
nmodl::ast::ParamAssign
TODO.
Definition: param_assign.hpp:38
nmodl::ast::BeforeBlock
Represents a BEFORE block in NMODL.
Definition: before_block.hpp:38
nmodl::ast::ConstantVar
Represents a variable in the ast::ConstantBlock.
Definition: constant_var.hpp:38
nmodl::visitor::NmodlPrintVisitor::visit_wrapped_expression
virtual void visit_wrapped_expression(const ast::WrappedExpression &node) override
visit node of type ast::WrappedExpression
Definition: nmodl_visitor.cpp:1928
nmodl::ast::NetReceiveBlock::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: net_receive_block.hpp:96
nmodl::ast::UnaryOperator
TODO.
Definition: unary_operator.hpp:38
nmodl::ast::LocalListStatement::get_variables
const LocalVarVector & get_variables() const noexcept
Getter for member variable LocalListStatement::variables.
Definition: local_list_statement.hpp:205
nmodl::ast::SolveBlock
TODO.
Definition: solve_block.hpp:38
nmodl::ast::DerivimplicitCallback::get_node_to_solve
std::shared_ptr< Block > get_node_to_solve() const noexcept
Getter for member variable DerivimplicitCallback::node_to_solve.
Definition: derivimplicit_callback.hpp:143
nmodl::ast::Include
Represents an INCLUDE statement in NMODL.
Definition: include.hpp:39
nmodl::ast::Unit
TODO.
Definition: unit.hpp:38
nmodl::ast::DerivativeBlock::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: derivative_block.hpp:106
nmodl::ast::LocalVar::get_name
std::shared_ptr< Identifier > get_name() const noexcept
Getter for member variable LocalVar::name.
Definition: local_var.hpp:155
nmodl::ast::DerivimplicitCallback::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: derivimplicit_callback.hpp:91
nmodl::visitor::NmodlPrintVisitor::visit_boolean
virtual void visit_boolean(const ast::Boolean &node) override
visit node of type ast::Boolean
Definition: nmodl_visitor.cpp:130
nmodl::visitor::NmodlPrintVisitor::visit_double_unit
virtual void visit_double_unit(const ast::DoubleUnit &node) override
visit node of type ast::DoubleUnit
Definition: nmodl_visitor.cpp:810
nmodl::ast::Integer::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: integer.hpp:105
nmodl::ast::Double::eval
std::string eval() const
Return value of the ast node.
Definition: double.hpp:255
nmodl::ast::Node
Base class for all AST node.
Definition: node.hpp:40
nmodl::ast::BABlock
Represents a block to be executed before or after another block.
Definition: ba_block.hpp:40
nmodl::ast::Verbatim
Represents a C code block.
Definition: verbatim.hpp:38
nmodl::visitor::NmodlPrintVisitor::visit_random_var
virtual void visit_random_var(const ast::RandomVar &node) override
visit node of type ast::RandomVar
Definition: nmodl_visitor.cpp:320
nmodl::visitor::NmodlPrintVisitor::visit_electrode_cur_var
virtual void visit_electrode_cur_var(const ast::ElectrodeCurVar &node) override
visit node of type ast::ElectrodeCurVar
Definition: nmodl_visitor.cpp:276
nmodl::visitor::NmodlPrintVisitor::visit_after_block
virtual void visit_after_block(const ast::AfterBlock &node) override
visit node of type ast::AfterBlock
Definition: nmodl_visitor.cpp:688
nmodl::ast::ProcedureBlock::get_parameters
const ArgumentVector & get_parameters() const noexcept override
Getter for member variable ProcedureBlock::parameters.
Definition: procedure_block.hpp:201
nmodl::visitor::NmodlPrintVisitor::visit_breakpoint_block
virtual void visit_breakpoint_block(const ast::BreakpointBlock &node) override
visit node of type ast::BreakpointBlock
Definition: nmodl_visitor.cpp:662
nmodl::ast::WrappedExpression::get_expression
std::shared_ptr< Expression > get_expression() const noexcept
Getter for member variable WrappedExpression::expression.
Definition: wrapped_expression.hpp:143
nmodl::ast::ReactionStatement::get_expression1
std::shared_ptr< Expression > get_expression1() const noexcept
Getter for member variable ReactionStatement::expression1.
Definition: reaction_statement.hpp:193
nmodl::visitor::NmodlPrintVisitor::visit_reaction_statement
virtual void visit_reaction_statement(const ast::ReactionStatement &node) override
visit node of type ast::ReactionStatement
Definition: nmodl_visitor.cpp:1529
nmodl::visitor::NmodlPrintVisitor::visit_paren_expression
virtual void visit_paren_expression(const ast::ParenExpression &node) override
visit node of type ast::ParenExpression
Definition: nmodl_visitor.cpp:931
nmodl::ast::ReadIonVar::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: read_ion_var.hpp:91
nmodl::ast::FunctionBlock::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: function_block.hpp:100
nmodl::visitor::NmodlPrintVisitor::visit_unary_expression
virtual void visit_unary_expression(const ast::UnaryExpression &node) override
visit node of type ast::UnaryExpression
Definition: nmodl_visitor.cpp:975
nmodl::ast::BABlockType::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: ba_block_type.hpp:94
nmodl::visitor::NmodlPrintVisitor::visit_global
virtual void visit_global(const ast::Global &node) override
visit node of type ast::Global
Definition: nmodl_visitor.cpp:1704
nmodl::ast::Unit::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: unit.hpp:91
nmodl::ast::Identifier
Base class for all identifiers.
Definition: identifier.hpp:41
nmodl::visitor::NmodlPrintVisitor::visit_for_netcon
virtual void visit_for_netcon(const ast::ForNetcon &node) override
visit node of type ast::ForNetcon
Definition: nmodl_visitor.cpp:717
nmodl::ast::DiscreteBlock::get_name
std::shared_ptr< Name > get_name() const noexcept
Getter for member variable DiscreteBlock::name.
Definition: discrete_block.hpp:187
nmodl::ast::BABlockType::eval
std::string eval() const
Return enum value in string form.
Definition: ba_block_type.hpp:217
nmodl::ast::Conserve::get_react
std::shared_ptr< Expression > get_react() const noexcept
Getter for member variable Conserve::react.
Definition: conserve.hpp:159
nmodl::ast::AssignedDefinition::get_start
std::shared_ptr< Number > get_start() const noexcept
Getter for member variable AssignedDefinition::start.
Definition: assigned_definition.hpp:203
nmodl::ast::ElectrodeCurrent::get_currents
const ElectrodeCurVarVector & get_currents() const noexcept
Getter for member variable ElectrodeCurrent::currents.
Definition: electrode_current.hpp:157
nmodl::visitor::NmodlPrintVisitor::visit_bbcore_pointer_var
virtual void visit_bbcore_pointer_var(const ast::BbcorePointerVar &node) override
visit node of type ast::BbcorePointerVar
Definition: nmodl_visitor.cpp:331
nmodl::ast::DiffEqExpression
Represents differential equation in DERIVATIVE block.
Definition: diff_eq_expression.hpp:38
nmodl::ast::BeforeBlock::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: before_block.hpp:93
nmodl::ast::AssignedDefinition
Represents a statement in ASSIGNED or STATE block.
Definition: assigned_definition.hpp:38
nmodl::ast::ExpressionStatement::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: expression_statement.hpp:91
nmodl::ast::Nonspecific::get_currents
const NonspecificCurVarVector & get_currents() const noexcept
Getter for member variable Nonspecific::currents.
Definition: nonspecific.hpp:157
nmodl::ast::Conserve::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: conserve.hpp:93
nmodl::ast::FactorDef
TODO.
Definition: factor_def.hpp:38
nmodl::ast::ConductanceHint::get_ion
std::shared_ptr< Name > get_ion() const noexcept
Getter for member variable ConductanceHint::ion.
Definition: conductance_hint.hpp:176
nmodl::visitor::NmodlPrintVisitor::visit_else_if_statement
virtual void visit_else_if_statement(const ast::ElseIfStatement &node) override
visit node of type ast::ElseIfStatement
Definition: nmodl_visitor.cpp:1395
nmodl::ast::RandomVar::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: random_var.hpp:91
nmodl::ast::Watch
TODO.
Definition: watch.hpp:38
nmodl::ast::Double
Represents a double variable.
Definition: double.hpp:53
nmodl::ast::FunctionBlock
TODO.
Definition: function_block.hpp:39
nmodl::ast::RandomVarList::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: random_var_list.hpp:99
nmodl::visitor::NmodlPrintVisitor::visit_diff_eq_expression
virtual void visit_diff_eq_expression(const ast::DiffEqExpression &node) override
visit node of type ast::DiffEqExpression
Definition: nmodl_visitor.cpp:964
nmodl::ast::Range
Represents RANGE variables statement in NMODL.
Definition: range.hpp:39
nmodl::ast::ConstantBlock::get_statements
const ConstantStatementVector & get_statements() const noexcept
Getter for member variable ConstantBlock::statements.
Definition: constant_block.hpp:184
nmodl::ast::Name::get_value
std::shared_ptr< String > get_value() const noexcept
Getter for member variable Name::value.
Definition: name.hpp:162
nmodl::ast::PointerVar
TODO.
Definition: pointer_var.hpp:38
nmodl::visitor::NmodlPrintVisitor::visit_thread_safe
virtual void visit_thread_safe(const ast::ThreadSafe &node) override
visit node of type ast::ThreadSafe
Definition: nmodl_visitor.cpp:1764
nmodl::ast::NumberRange::get_min
std::shared_ptr< Number > get_min() const noexcept
Getter for member variable NumberRange::min.
Definition: number_range.hpp:145
nmodl::ast::StateBlock::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: state_block.hpp:106
nmodl::ast::NonLinEquation
TODO.
Definition: non_lin_equation.hpp:38
nmodl::ast::RandomVarList
Represents RANDOM statement in NMODL.
Definition: random_var_list.hpp:47
nmodl::ast::Compartment::get_expression
std::shared_ptr< Expression > get_expression() const noexcept
Getter for member variable Compartment::expression.
Definition: compartment.hpp:171
nmodl::ast::BbcorePointer::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: bbcore_pointer.hpp:99
nmodl::ast::BbcorePointerVar
Represent a single variable of type BBCOREPOINTER.
Definition: bbcore_pointer_var.hpp:39
nmodl::ast::DerivativeBlock::get_name
std::shared_ptr< Name > get_name() const noexcept
Getter for member variable DerivativeBlock::name.
Definition: derivative_block.hpp:198
nmodl::visitor::NmodlPrintVisitor::visit_from_statement
virtual void visit_from_statement(const ast::FromStatement &node) override
visit node of type ast::FromStatement
Definition: nmodl_visitor.cpp:1318
nmodl::ast::FunctionTableBlock::get_parameters
const ArgumentVector & get_parameters() const noexcept override
Getter for member variable FunctionTableBlock::parameters.
Definition: function_table_block.hpp:199
nmodl::ast::Watch::get_value
std::shared_ptr< Expression > get_value() const noexcept
Getter for member variable Watch::value.
Definition: watch.hpp:154
nmodl::visitor::NmodlPrintVisitor::visit_unit_block
virtual void visit_unit_block(const ast::UnitBlock &node) override
visit node of type ast::UnitBlock
Definition: nmodl_visitor.cpp:755
nmodl::ast::UnitBlock::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: unit_block.hpp:93
nmodl::ast::UnaryExpression::get_expression
std::shared_ptr< Expression > get_expression() const noexcept
Getter for member variable UnaryExpression::expression.
Definition: unary_expression.hpp:155
nmodl::visitor::NmodlPrintVisitor::visit_factor_def
virtual void visit_factor_def(const ast::FactorDef &node) override
visit node of type ast::FactorDef
Definition: nmodl_visitor.cpp:1080
nmodl::ast::TableStatement::get_with
std::shared_ptr< Integer > get_with() const noexcept
Getter for member variable TableStatement::with.
Definition: table_statement.hpp:202
nmodl::ast::NetReceiveBlock
TODO.
Definition: net_receive_block.hpp:39
nmodl::ast::WriteIonVar::get_name
std::shared_ptr< Name > get_name() const noexcept
Getter for member variable WriteIonVar::name.
Definition: write_ion_var.hpp:155
nmodl::ast::BeforeBlock::get_bablock
std::shared_ptr< BABlock > get_bablock() const noexcept
Getter for member variable BeforeBlock::bablock.
Definition: before_block.hpp:173
nmodl::ast::FunctionTableBlock
TODO.
Definition: function_table_block.hpp:39
nmodl::ast::ConstantStatement::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: constant_statement.hpp:93
nmodl::ast::Conserve
Represent CONSERVE statement in NMODL.
Definition: conserve.hpp:38
nmodl::visitor::NmodlPrintVisitor::visit_unit_state
virtual void visit_unit_state(const ast::UnitState &node) override
visit node of type ast::UnitState
Definition: nmodl_visitor.cpp:1131
nmodl::ast::NetReceiveBlock::get_parameters
const ArgumentVector & get_parameters() const noexcept override
Getter for member variable NetReceiveBlock::parameters.
Definition: net_receive_block.hpp:176
nmodl::ast::Conserve::get_expr
std::shared_ptr< Expression > get_expr() const noexcept
Getter for member variable Conserve::expr.
Definition: conserve.hpp:168
nmodl::visitor::NmodlPrintVisitor::visit_independent_block
virtual void visit_independent_block(const ast::IndependentBlock &node) override
visit node of type ast::IndependentBlock
Definition: nmodl_visitor.cpp:367
nmodl::ast::ReactionStatement::get_expression2
std::shared_ptr< Expression > get_expression2() const noexcept
Getter for member variable ReactionStatement::expression2.
Definition: reaction_statement.hpp:202
nmodl::ast::EigenLinearSolverBlock::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: eigen_linear_solver_block.hpp:103
nmodl::ast::DoubleUnit
TODO.
Definition: double_unit.hpp:38
nmodl::ast::LinearBlock::get_name
std::shared_ptr< Name > get_name() const noexcept
Getter for member variable LinearBlock::name.
Definition: linear_block.hpp:204
nmodl::ast::UnitBlock
TODO.
Definition: unit_block.hpp:39
nmodl::ast::NetReceiveBlock::get_statement_block
std::shared_ptr< StatementBlock > get_statement_block() const noexcept override
Getter for member variable NetReceiveBlock::statement_block.
Definition: net_receive_block.hpp:185
nmodl::ast::BlockComment
Represents a multi-line comment in NMODL.
Definition: block_comment.hpp:38
nmodl::visitor::NmodlPrintVisitor::visit_destructor_block
virtual void visit_destructor_block(const ast::DestructorBlock &node) override
visit node of type ast::DestructorBlock
Definition: nmodl_visitor.cpp:438
nmodl::visitor::NmodlPrintVisitor::visit_discrete_block
virtual void visit_discrete_block(const ast::DiscreteBlock &node) override
visit node of type ast::DiscreteBlock
Definition: nmodl_visitor.cpp:530
nmodl::ast::Useion::get_ontology_id
std::shared_ptr< String > get_ontology_id() const noexcept
Getter for member variable Useion::ontology_id.
Definition: useion.hpp:215
nmodl::ast::ConductanceHint
Represents CONDUCTANCE statement in NMODL.
Definition: conductance_hint.hpp:46
nmodl::ast::Pointer::get_variables
const PointerVarVector & get_variables() const noexcept
Getter for member variable Pointer::variables.
Definition: pointer.hpp:205
nmodl::ast::FunctionCall::get_name
std::shared_ptr< Name > get_name() const noexcept
Getter for member variable FunctionCall::name.
Definition: function_call.hpp:157
nmodl::ast::KineticBlock::get_statement_block
std::shared_ptr< StatementBlock > get_statement_block() const noexcept override
Getter for member variable KineticBlock::statement_block.
Definition: kinetic_block.hpp:208
nmodl::visitor::NmodlPrintVisitor::visit_mutex_lock
virtual void visit_mutex_lock(const ast::MutexLock &node) override
visit node of type ast::MutexLock
Definition: nmodl_visitor.cpp:1440
nmodl::ast::Limits::get_min
std::shared_ptr< Double > get_min() const noexcept
Getter for member variable Limits::min.
Definition: limits.hpp:145
nmodl::ast::EigenNewtonSolverBlock::get_initialize_block
std::shared_ptr< StatementBlock > get_initialize_block() const noexcept
Getter for member variable EigenNewtonSolverBlock::initialize_block.
Definition: eigen_newton_solver_block.hpp:203
nmodl::ast::ParamAssign::get_name
std::shared_ptr< Identifier > get_name() const noexcept
Getter for member variable ParamAssign::name.
Definition: param_assign.hpp:161
nmodl::ast::BbcorePointer::get_variables
const BbcorePointerVarVector & get_variables() const noexcept
Getter for member variable BbcorePointer::variables.
Definition: bbcore_pointer.hpp:165
nmodl::visitor::NmodlPrintVisitor::visit_model
virtual void visit_model(const ast::Model &node) override
visit node of type ast::Model
Definition: nmodl_visitor.cpp:1156
nmodl::visitor::NmodlPrintVisitor::visit_block_comment
virtual void visit_block_comment(const ast::BlockComment &node) override
visit node of type ast::BlockComment
Definition: nmodl_visitor.cpp:1797
nmodl
encapsulates code generation backend implementations
Definition: ast_common.hpp:26
nmodl::ast::InitialBlock::get_statement_block
std::shared_ptr< StatementBlock > get_statement_block() const noexcept override
Getter for member variable InitialBlock::statement_block.
Definition: initial_block.hpp:184
nmodl::ast::AssignedDefinition::get_abstol
std::shared_ptr< Double > get_abstol() const noexcept
Getter for member variable AssignedDefinition::abstol.
Definition: assigned_definition.hpp:221
nmodl::ast::PrimeName::get_value
std::shared_ptr< String > get_value() const noexcept
Getter for member variable PrimeName::value.
Definition: prime_name.hpp:168
nmodl::ast::ProtectStatement::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: protect_statement.hpp:91
nmodl::ast::SolutionExpression::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: solution_expression.hpp:93
nmodl::visitor::NmodlPrintVisitor::visit_argument
virtual void visit_argument(const ast::Argument &node) override
visit node of type ast::Argument
Definition: nmodl_visitor.cpp:210
nmodl::ast::ConstantBlock::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: constant_block.hpp:104
nmodl::ast::ConductanceHint::get_conductance
std::shared_ptr< Name > get_conductance() const noexcept
Getter for member variable ConductanceHint::conductance.
Definition: conductance_hint.hpp:167
nmodl::ast::Model
TODO.
Definition: model.hpp:38
nmodl::ast::ReactVarName
TODO.
Definition: react_var_name.hpp:38
nmodl::ast::EigenLinearSolverBlock::get_setup_x_block
std::shared_ptr< StatementBlock > get_setup_x_block() const noexcept
Getter for member variable EigenLinearSolverBlock::setup_x_block.
Definition: eigen_linear_solver_block.hpp:210
nmodl::visitor::NmodlPrintVisitor::visit_state_block
virtual void visit_state_block(const ast::StateBlock &node) override
visit node of type ast::StateBlock
Definition: nmodl_visitor.cpp:396
nmodl::ast::Define
Represents a DEFINE statement in NMODL.
Definition: define.hpp:38
nmodl::ast::Useion::get_writelist
const WriteIonVarVector & get_writelist() const noexcept
Getter for member variable Useion::writelist.
Definition: useion.hpp:197
nmodl::ast::IndexedName::get_name
std::shared_ptr< Identifier > get_name() const noexcept
Getter for member variable IndexedName::name.
Definition: indexed_name.hpp:167
nmodl::visitor::NmodlPrintVisitor::visit_verbatim
virtual void visit_verbatim(const ast::Verbatim &node) override
visit node of type ast::Verbatim
Definition: nmodl_visitor.cpp:1773
nmodl::ast::DiscreteBlock::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: discrete_block.hpp:95
nmodl::ast::LagStatement::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: lag_statement.hpp:102
nmodl::ast::Integer::get_macro
std::shared_ptr< Name > get_macro() const noexcept
Getter for member variable Integer::macro.
Definition: integer.hpp:166
nmodl::ast::EigenLinearSolverBlock::get_variable_block
std::shared_ptr< StatementBlock > get_variable_block() const noexcept
Getter for member variable EigenLinearSolverBlock::variable_block.
Definition: eigen_linear_solver_block.hpp:192
nmodl::ast::ElectrodeCurVar::get_name
std::shared_ptr< Name > get_name() const noexcept
Getter for member variable ElectrodeCurVar::name.
Definition: electrode_cur_var.hpp:155
nmodl::ast::Valence::get_value
std::shared_ptr< Double > get_value() const noexcept
Getter for member variable Valence::value.
Definition: valence.hpp:154
nmodl::ast::IndependentBlock::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: independent_block.hpp:100
nmodl::ast::MutexLock
Represent MUTEXLOCK statement in NMODL.
Definition: mutex_lock.hpp:38
nmodl::visitor::NmodlPrintVisitor::visit_function_block
virtual void visit_function_block(const ast::FunctionBlock &node) override
visit node of type ast::FunctionBlock
Definition: nmodl_visitor.cpp:569
nmodl::ast::BbcorePointerVar::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: bbcore_pointer_var.hpp:92
nmodl::ast::WriteIonVar
TODO.
Definition: write_ion_var.hpp:38
nmodl::visitor::NmodlPrintVisitor::visit_string
virtual void visit_string(const ast::String &node) override
visit node of type ast::String
Definition: nmodl_visitor.cpp:71
nmodl::ast::Node::get_node_type
virtual AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: node.hpp:85
nmodl::ast::WhileStatement
TODO.
Definition: while_statement.hpp:38
nmodl::ast::Valence
TODO.
Definition: valence.hpp:38
nmodl::ast::TableStatement
Represents TABLE statement in NMODL.
Definition: table_statement.hpp:39
nmodl::visitor::NmodlPrintVisitor::visit_reaction_operator
virtual void visit_reaction_operator(const ast::ReactionOperator &node) override
visit node of type ast::ReactionOperator
Definition: nmodl_visitor.cpp:918
nmodl::visitor::NmodlPrintVisitor::visit_identifier
virtual void visit_identifier(const ast::Identifier &node) override
visit node of type ast::Identifier
Definition: nmodl_visitor.cpp:55
nmodl::visitor::NmodlPrintVisitor::visit_random_var_list
virtual void visit_random_var_list(const ast::RandomVarList &node) override
visit node of type ast::RandomVarList
Definition: nmodl_visitor.cpp:1716
nmodl::ast::NonLinearBlock::get_solvefor
const NameVector & get_solvefor() const noexcept
Getter for member variable NonLinearBlock::solvefor.
Definition: non_linear_block.hpp:210
nmodl::ast::VarName
Represents a variable.
Definition: var_name.hpp:43
nmodl::ast::AssignedDefinition::get_length
std::shared_ptr< Integer > get_length() const noexcept
Getter for member variable AssignedDefinition::length.
Definition: assigned_definition.hpp:176
nmodl::ast::ExternVar
TODO.
Definition: extern_var.hpp:38
nmodl::visitor::NmodlPrintVisitor::visit_range_var
virtual void visit_range_var(const ast::RangeVar &node) override
visit node of type ast::RangeVar
Definition: nmodl_visitor.cpp:287
nmodl::ast::Integer
Represents an integer variable.
Definition: integer.hpp:49
nmodl::ast::ReactVarName::get_name
std::shared_ptr< VarName > get_name() const noexcept
Getter for member variable ReactVarName::name.
Definition: react_var_name.hpp:166
nmodl::ast::Suffix
Represents SUFFIX statement in NMODL.
Definition: suffix.hpp:38
nmodl::ast::ReactionOperator::eval
std::string eval() const
Return enum value in string form.
Definition: reaction_operator.hpp:214
nmodl::ast::ElseIfStatement
TODO.
Definition: else_if_statement.hpp:38
nmodl::ast::External::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: external.hpp:91
nmodl::ast::RandomVar
Single variable of type RANDOM.
Definition: random_var.hpp:38
nmodl::ast::DiscreteBlock::get_statement_block
std::shared_ptr< StatementBlock > get_statement_block() const noexcept override
Getter for member variable DiscreteBlock::statement_block.
Definition: discrete_block.hpp:196
nmodl::ast::Compartment::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: compartment.hpp:96
nmodl::ast::LagStatement::get_name
std::shared_ptr< Identifier > get_name() const noexcept
Getter for member variable LagStatement::name.
Definition: lag_statement.hpp:168
nmodl::ast::Global::get_variables
const GlobalVarVector & get_variables() const noexcept
Getter for member variable Global::variables.
Definition: global.hpp:205
nmodl::ast::BABlock::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: ba_block.hpp:97
nmodl::ast::LonDifuse::get_names
const NameVector & get_names() const noexcept
Getter for member variable LonDifuse::names.
Definition: lon_difuse.hpp:180
nmodl::ast::ProcedureBlock::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: procedure_block.hpp:100
nmodl::ast::EigenNewtonSolverBlock::get_n_state_vars
std::shared_ptr< Integer > get_n_state_vars() const noexcept
Getter for member variable EigenNewtonSolverBlock::n_state_vars.
Definition: eigen_newton_solver_block.hpp:185
nmodl::ast::ReactionStatement::get_reaction2
std::shared_ptr< Expression > get_reaction2() const noexcept
Getter for member variable ReactionStatement::reaction2.
Definition: reaction_statement.hpp:184
nmodl::ast::VarName::get_index
std::shared_ptr< Expression > get_index() const noexcept
Getter for member variable VarName::index.
Definition: var_name.hpp:182
nmodl::ast::AssignedDefinition::get_from
std::shared_ptr< Number > get_from() const noexcept
Getter for member variable AssignedDefinition::from.
Definition: assigned_definition.hpp:185
nmodl::ast::String::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: string.hpp:105
nmodl::visitor::NmodlPrintVisitor::visit_statement_block
virtual void visit_statement_block(const ast::StatementBlock &node) override
visit node of type ast::StatementBlock
Definition: nmodl_visitor.cpp:452
nmodl::visitor::NmodlPrintVisitor::visit_external
virtual void visit_external(const ast::External &node) override
visit node of type ast::External
Definition: nmodl_visitor.cpp:1752
nmodl::ast::Verbatim::get_statement
std::shared_ptr< String > get_statement() const noexcept
Getter for member variable Verbatim::statement.
Definition: verbatim.hpp:157
nmodl::ast::Float::eval
std::string eval() const
Return value of the ast node.
Definition: float.hpp:245
nmodl::ast::RandomVar::get_name
std::shared_ptr< Name > get_name() const noexcept
Getter for member variable RandomVar::name.
Definition: random_var.hpp:155
nmodl::ast::Range::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: range.hpp:91
nmodl::ast::AssignedBlock
Represents a ASSIGNED block in the NMODL.
Definition: assigned_block.hpp:54
nmodl::ast::LinearBlock::get_statement_block
std::shared_ptr< StatementBlock > get_statement_block() const noexcept override
Getter for member variable LinearBlock::statement_block.
Definition: linear_block.hpp:222
nmodl::ast::ReactVarName::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: react_var_name.hpp:93
nmodl::ast::RangeVar
TODO.
Definition: range_var.hpp:38
nmodl::ast::DestructorBlock::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: destructor_block.hpp:108
nmodl::ast::BABlock::get_statement_block
std::shared_ptr< StatementBlock > get_statement_block() const noexcept override
Getter for member variable BABlock::statement_block.
Definition: ba_block.hpp:172
nmodl::visitor::NmodlPrintVisitor::visit_line_comment
virtual void visit_line_comment(const ast::LineComment &node) override
visit node of type ast::LineComment
Definition: nmodl_visitor.cpp:1786
nmodl::ast::BreakpointBlock::get_statement_block
std::shared_ptr< StatementBlock > get_statement_block() const noexcept override
Getter for member variable BreakpointBlock::statement_block.
Definition: breakpoint_block.hpp:188
nmodl::ast::BinaryExpression::get_rhs
std::shared_ptr< Expression > get_rhs() const noexcept
Getter for member variable BinaryExpression::rhs.
Definition: binary_expression.hpp:179
nmodl::visitor::NmodlPrintVisitor::visit_local_list_statement
virtual void visit_local_list_statement(const ast::LocalListStatement &node) override
visit node of type ast::LocalListStatement
Definition: nmodl_visitor.cpp:1144
nmodl::ast::EigenNewtonSolverBlock
Represent newton solver solution block based on Eigen.
Definition: eigen_newton_solver_block.hpp:38
nmodl::visitor::NmodlPrintVisitor::visit_indexed_name
virtual void visit_indexed_name(const ast::IndexedName &node) override
visit node of type ast::IndexedName
Definition: nmodl_visitor.cpp:170
nmodl::ast::ProcedureBlock::get_statement_block
std::shared_ptr< StatementBlock > get_statement_block() const noexcept override
Getter for member variable ProcedureBlock::statement_block.
Definition: procedure_block.hpp:219
nmodl::ast::Boolean::eval
bool eval() const
Return value of the ast node.
Definition: boolean.hpp:243
nmodl::ast::Compartment::get_names
const NameVector & get_names() const noexcept
Getter for member variable Compartment::names.
Definition: compartment.hpp:180
nmodl::visitor::NmodlPrintVisitor::visit_derivative_block
virtual void visit_derivative_block(const ast::DerivativeBlock &node) override
visit node of type ast::DerivativeBlock
Definition: nmodl_visitor.cpp:465
nmodl::ast::FromStatement::get_increment
std::shared_ptr< Expression > get_increment() const noexcept
Getter for member variable FromStatement::increment.
Definition: from_statement.hpp:204
nmodl::visitor::NmodlPrintVisitor::visit_derivimplicit_callback
virtual void visit_derivimplicit_callback(const ast::DerivimplicitCallback &node) override
visit node of type ast::DerivimplicitCallback
Definition: nmodl_visitor.cpp:1939
nmodl::visitor::NmodlPrintVisitor::visit_name
virtual void visit_name(const ast::Name &node) override
visit node of type ast::Name
Definition: nmodl_visitor.cpp:143
nmodl::ast::Global::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: global.hpp:91
nmodl::ast::VarName::get_at
std::shared_ptr< Integer > get_at() const noexcept
Getter for member variable VarName::at.
Definition: var_name.hpp:173
nmodl::ast::ElseStatement::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: else_statement.hpp:91
nmodl::visitor::NmodlPrintVisitor::visit_write_ion_var
virtual void visit_write_ion_var(const ast::WriteIonVar &node) override
visit node of type ast::WriteIonVar
Definition: nmodl_visitor.cpp:254
nmodl::ast::EigenLinearSolverBlock::get_initialize_block
std::shared_ptr< StatementBlock > get_initialize_block() const noexcept
Getter for member variable EigenLinearSolverBlock::initialize_block.
Definition: eigen_linear_solver_block.hpp:201
nmodl::ast::PrimeName::get_order
std::shared_ptr< Integer > get_order() const noexcept
Getter for member variable PrimeName::order.
Definition: prime_name.hpp:177
nmodl::ast::ReactionStatement::get_reaction1
std::shared_ptr< Expression > get_reaction1() const noexcept
Getter for member variable ReactionStatement::reaction1.
Definition: reaction_statement.hpp:166
nmodl::ast::RangeVar::get_name
std::shared_ptr< Name > get_name() const noexcept
Getter for member variable RangeVar::name.
Definition: range_var.hpp:155
nmodl::ast::Define::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: define.hpp:93
nmodl::ast::ForNetcon::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: for_netcon.hpp:96
nmodl::ast::EigenLinearSolverBlock::get_update_states_block
std::shared_ptr< StatementBlock > get_update_states_block() const noexcept
Getter for member variable EigenLinearSolverBlock::update_states_block.
Definition: eigen_linear_solver_block.hpp:219
nmodl::ast::ConstantVar::get_unit
std::shared_ptr< Unit > get_unit() const noexcept
Getter for member variable ConstantVar::unit.
Definition: constant_var.hpp:177
nmodl::ast::StatementBlock::get_statements
const StatementVector & get_statements() const noexcept
Getter for member variable StatementBlock::statements.
Definition: statement_block.hpp:221
nmodl::visitor::NmodlPrintVisitor::visit_protect_statement
virtual void visit_protect_statement(const ast::ProtectStatement &node) override
visit node of type ast::ProtectStatement
Definition: nmodl_visitor.cpp:1306
nmodl::ast::ReactionOperator
TODO.
Definition: reaction_operator.hpp:38
nmodl::ast::UnaryOperator::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: unary_operator.hpp:91
nmodl::ast::NumberRange::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: number_range.hpp:93
nmodl::ast::ExpressionStatement
TODO.
Definition: expression_statement.hpp:38
nmodl::ast::ParamAssign::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: param_assign.hpp:97
nmodl::ast::Block
Base class for all block scoped nodes.
Definition: block.hpp:41
nmodl::visitor::NmodlPrintVisitor::visit_constructor_block
virtual void visit_constructor_block(const ast::ConstructorBlock &node) override
visit node of type ast::ConstructorBlock
Definition: nmodl_visitor.cpp:424
nmodl::ast::FactorDef::get_gt
std::shared_ptr< Boolean > get_gt() const noexcept
Getter for member variable FactorDef::gt.
Definition: factor_def.hpp:191
nmodl::visitor::NmodlPrintVisitor::visit_net_receive_block
virtual void visit_net_receive_block(const ast::NetReceiveBlock &node) override
visit node of type ast::NetReceiveBlock
Definition: nmodl_visitor.cpp:620
nmodl::ast::InitialBlock
Represents a INITIAL block in the NMODL.
Definition: initial_block.hpp:49
nmodl::ast::Useion::get_valence
std::shared_ptr< Valence > get_valence() const noexcept
Getter for member variable Useion::valence.
Definition: useion.hpp:206
nmodl::visitor::NmodlPrintVisitor::visit_program
virtual void visit_program(const ast::Program &node) override
visit node of type ast::Program
Definition: nmodl_visitor.cpp:1822
nmodl::ast::IfStatement::get_elseifs
const ElseIfStatementVector & get_elseifs() const noexcept
Getter for member variable IfStatement::elseifs.
Definition: if_statement.hpp:182
nmodl::visitor::NmodlPrintVisitor::visit_statement
virtual void visit_statement(const ast::Statement &node) override
visit node of type ast::Statement
Definition: nmodl_visitor.cpp:31
nmodl::ast::DiscreteBlock
TODO.
Definition: discrete_block.hpp:38
nmodl::ast::Statement::get_node_type
virtual AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: statement.hpp:83
nmodl::ast::Useion::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: useion.hpp:101
nmodl::ast::GlobalVar::get_name
std::shared_ptr< Name > get_name() const noexcept
Getter for member variable GlobalVar::name.
Definition: global_var.hpp:155
nmodl::ast::AssignedBlock::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: assigned_block.hpp:108
nmodl::ast::EigenNewtonSolverBlock::get_setup_x_block
std::shared_ptr< StatementBlock > get_setup_x_block() const noexcept
Getter for member variable EigenNewtonSolverBlock::setup_x_block.
Definition: eigen_newton_solver_block.hpp:212
nmodl::ast::GlobalVar
TODO.
Definition: global_var.hpp:38
nmodl::ast::TableStatement::get_from
std::shared_ptr< Expression > get_from() const noexcept
Getter for member variable TableStatement::from.
Definition: table_statement.hpp:184
nmodl::ast::AssignedBlock::get_definitions
const AssignedDefinitionVector & get_definitions() const noexcept
Getter for member variable AssignedBlock::definitions.
Definition: assigned_block.hpp:236
nmodl::ast::LonDifuse::get_expression
std::shared_ptr< Expression > get_expression() const noexcept
Getter for member variable LonDifuse::expression.
Definition: lon_difuse.hpp:171
nmodl::ast::Nonspecific::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: nonspecific.hpp:91
nmodl::ast::IfStatement::get_condition
std::shared_ptr< Expression > get_condition() const noexcept
Getter for member variable IfStatement::condition.
Definition: if_statement.hpp:164
nmodl::ast::BinaryExpression::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: binary_expression.hpp:109
nmodl::ast::LocalListStatement
TODO.
Definition: local_list_statement.hpp:39
nmodl::ast::TableStatement::get_to
std::shared_ptr< Expression > get_to() const noexcept
Getter for member variable TableStatement::to.
Definition: table_statement.hpp:193
nmodl::ast::UnitDef::get_unit1
std::shared_ptr< Unit > get_unit1() const noexcept
Getter for member variable UnitDef::unit1.
Definition: unit_def.hpp:157
nmodl::ast::Argument::get_name
std::shared_ptr< Identifier > get_name() const noexcept
Getter for member variable Argument::name.
Definition: argument.hpp:167
nmodl::visitor::NmodlPrintVisitor::visit_linear_block
virtual void visit_linear_block(const ast::LinearBlock &node) override
visit node of type ast::LinearBlock
Definition: nmodl_visitor.cpp:483
nmodl::ast::UnitDef
TODO.
Definition: unit_def.hpp:38
nmodl::ast::NrnStateBlock::get_solve_statements
const StatementVector & get_solve_statements() const noexcept
Getter for member variable NrnStateBlock::solve_statements.
Definition: nrn_state_block.hpp:173
nmodl::ast::AfterBlock::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: after_block.hpp:106
nmodl::ast::NonspecificCurVar::get_name
std::shared_ptr< Name > get_name() const noexcept
Getter for member variable NonspecificCurVar::name.
Definition: nonspecific_cur_var.hpp:155
nmodl::ast::ProcedureBlock::get_name
std::shared_ptr< Name > get_name() const noexcept
Getter for member variable ProcedureBlock::name.
Definition: procedure_block.hpp:192
nmodl::visitor::NmodlPrintVisitor::visit_node
virtual void visit_node(const ast::Node &node) override
visit node of type ast::Node
Definition: nmodl_visitor.cpp:23
nmodl::visitor::NmodlPrintVisitor::visit_solution_expression
virtual void visit_solution_expression(const ast::SolutionExpression &node) override
visit node of type ast::SolutionExpression
Definition: nmodl_visitor.cpp:1950
nmodl::ast::FactorDef::get_value
std::shared_ptr< Double > get_value() const noexcept
Getter for member variable FactorDef::value.
Definition: factor_def.hpp:173
nmodl::ast::NonspecificCurVar::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: nonspecific_cur_var.hpp:91
nmodl::ast::WatchStatement
Represent WATCH statement in NMODL.
Definition: watch_statement.hpp:39
nmodl::ast::UnitBlock::get_definitions
const ExpressionVector & get_definitions() const noexcept
Getter for member variable UnitBlock::definitions.
Definition: unit_block.hpp:173
nmodl::ast::EigenLinearSolverBlock::get_finalize_block
std::shared_ptr< StatementBlock > get_finalize_block() const noexcept
Getter for member variable EigenLinearSolverBlock::finalize_block.
Definition: eigen_linear_solver_block.hpp:228
nmodl::ast::Include::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: include.hpp:94
nmodl::ast::LineComment
Represents a one line comment in NMODL.
Definition: line_comment.hpp:38
nmodl::ast::ReadIonVar
TODO.
Definition: read_ion_var.hpp:38
nmodl::ast::FunctionBlock::get_parameters
const ArgumentVector & get_parameters() const noexcept override
Getter for member variable FunctionBlock::parameters.
Definition: function_block.hpp:201
nmodl::ast::Float
Represents a float variable.
Definition: float.hpp:44
nmodl::ast::BreakpointBlock
Represents a BREAKPOINT block in NMODL.
Definition: breakpoint_block.hpp:53
nmodl::ast::BlockComment::get_statement
std::shared_ptr< String > get_statement() const noexcept
Getter for member variable BlockComment::statement.
Definition: block_comment.hpp:157
nmodl::ast::UnitState
TODO.
Definition: unit_state.hpp:38
nmodl::ast::LinEquation::get_left_linxpression
std::shared_ptr< Expression > get_left_linxpression() const noexcept
Getter for member variable LinEquation::left_linxpression.
Definition: lin_equation.hpp:159
nmodl::visitor::NmodlPrintVisitor::visit_ontology_statement
virtual void visit_ontology_statement(const ast::OntologyStatement &node) override
visit node of type ast::OntologyStatement
Definition: nmodl_visitor.cpp:1810
nmodl::visitor::NmodlPrintVisitor::visit_constant_block
virtual void visit_constant_block(const ast::ConstantBlock &node) override
visit node of type ast::ConstantBlock
Definition: nmodl_visitor.cpp:769
nmodl::visitor::NmodlPrintVisitor::visit_double
virtual void visit_double(const ast::Double &node) override
visit node of type ast::Double
Definition: nmodl_visitor.cpp:116
nmodl::ast::IndexedName
Represents specific element of an array variable.
Definition: indexed_name.hpp:48
nmodl::ast::LinearBlock::get_solvefor
const NameVector & get_solvefor() const noexcept
Getter for member variable LinearBlock::solvefor.
Definition: linear_block.hpp:213
nmodl::ast::UpdateDt::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: update_dt.hpp:91
nmodl::ast::Define::get_value
std::shared_ptr< Integer > get_value() const noexcept
Getter for member variable Define::value.
Definition: define.hpp:180
nmodl::ast::BbcorePointerVar::get_name
std::shared_ptr< Name > get_name() const noexcept
Getter for member variable BbcorePointerVar::name.
Definition: bbcore_pointer_var.hpp:156
nmodl::ast::UnitDef::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: unit_def.hpp:93
nmodl::ast::UpdateDt::get_value
std::shared_ptr< Double > get_value() const noexcept
Getter for member variable UpdateDt::value.
Definition: update_dt.hpp:157
nmodl::ast::IndependentBlock::get_variables
const NameVector & get_variables() const noexcept
Getter for member variable IndependentBlock::variables.
Definition: independent_block.hpp:180
nmodl::ast::Useion::get_readlist
const ReadIonVarVector & get_readlist() const noexcept
Getter for member variable Useion::readlist.
Definition: useion.hpp:188
nmodl::ast::WhileStatement::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: while_statement.hpp:93
nmodl::ast::ParamAssign::get_unit
std::shared_ptr< Unit > get_unit() const noexcept
Getter for member variable ParamAssign::unit.
Definition: param_assign.hpp:179
nmodl::ast::String::eval
std::string eval() const
Return value of the ast node.
Definition: string.hpp:237
nmodl::visitor::NmodlPrintVisitor::visit_pointer
virtual void visit_pointer(const ast::Pointer &node) override
visit node of type ast::Pointer
Definition: nmodl_visitor.cpp:1728
nmodl::visitor::NmodlPrintVisitor::visit_unary_operator
virtual void visit_unary_operator(const ast::UnaryOperator &node) override
visit node of type ast::UnaryOperator
Definition: nmodl_visitor.cpp:905
nmodl::ast::FunctionCall
TODO.
Definition: function_call.hpp:38
nmodl::ast::StatementBlock::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: statement_block.hpp:107
nmodl::ast::FromStatement::get_from
std::shared_ptr< Expression > get_from() const noexcept
Getter for member variable FromStatement::from.
Definition: from_statement.hpp:186
nmodl::visitor::NmodlPrintVisitor::visit_float
virtual void visit_float(const ast::Float &node) override
visit node of type ast::Float
Definition: nmodl_visitor.cpp:102
nmodl::ast::DestructorBlock
Represents a DESTRUCTOR block in the NMODL.
Definition: destructor_block.hpp:53
nmodl::ast::SolveBlock::get_block_name
std::shared_ptr< Name > get_block_name() const noexcept
Getter for member variable SolveBlock::block_name.
Definition: solve_block.hpp:177
nmodl::ast::Float::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: float.hpp:96
nmodl::visitor::NmodlPrintVisitor::visit_read_ion_var
virtual void visit_read_ion_var(const ast::ReadIonVar &node) override
visit node of type ast::ReadIonVar
Definition: nmodl_visitor.cpp:243
nmodl::ast::EigenNewtonSolverBlock::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: eigen_newton_solver_block.hpp:105
nmodl::visitor::NmodlPrintVisitor::visit_update_dt
virtual void visit_update_dt(const ast::UpdateDt &node) override
visit node of type ast::UpdateDt
Definition: nmodl_visitor.cpp:1964
nmodl::ast::OntologyStatement::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: ontology_statement.hpp:91
nmodl::ast::ElseIfStatement::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: else_if_statement.hpp:93
nmodl::ast::KineticBlock::get_name
std::shared_ptr< Name > get_name() const noexcept
Getter for member variable KineticBlock::name.
Definition: kinetic_block.hpp:190
nmodl::ast::ProtectStatement
TODO.
Definition: protect_statement.hpp:38
nmodl::ast::ConstructorBlock
Represents a CONSTRUCTOR block in the NMODL.
Definition: constructor_block.hpp:51
nmodl::ast::DerivativeBlock::get_statement_block
std::shared_ptr< StatementBlock > get_statement_block() const noexcept override
Getter for member variable DerivativeBlock::statement_block.
Definition: derivative_block.hpp:207
nmodl::visitor::NmodlPrintVisitor::visit_non_lin_equation
virtual void visit_non_lin_equation(const ast::NonLinEquation &node) override
visit node of type ast::NonLinEquation
Definition: nmodl_visitor.cpp:989
nmodl_visitor_helper.ipp
nmodl::ast::ElseStatement::get_statement_block
std::shared_ptr< StatementBlock > get_statement_block() const noexcept override
Getter for member variable ElseStatement::statement_block.
Definition: else_statement.hpp:157
nmodl::visitor::NmodlPrintVisitor::visit_procedure_block
virtual void visit_procedure_block(const ast::ProcedureBlock &node) override
visit node of type ast::ProcedureBlock
Definition: nmodl_visitor.cpp:595
nmodl::ast::MutexUnlock
Represent MUTEXUNLOCK statement in NMODL.
Definition: mutex_unlock.hpp:38
nmodl::ast::MutexLock::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: mutex_lock.hpp:86
nmodl::ast::NrnStateBlock::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: nrn_state_block.hpp:93
nmodl::ast::WrappedExpression::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: wrapped_expression.hpp:91
nmodl::visitor::NmodlPrintVisitor::visit_constant_var
virtual void visit_constant_var(const ast::ConstantVar &node) override
visit node of type ast::ConstantVar
Definition: nmodl_visitor.cpp:871
nmodl::ast::ForNetcon::get_statement_block
std::shared_ptr< StatementBlock > get_statement_block() const noexcept override
Getter for member variable ForNetcon::statement_block.
Definition: for_netcon.hpp:185
nmodl::visitor::NmodlPrintVisitor::visit_watch
virtual void visit_watch(const ast::Watch &node) override
visit node of type ast::Watch
Definition: nmodl_visitor.cpp:1035
nmodl::ast::Useion
Represents USEION statement in NMODL.
Definition: useion.hpp:40
nmodl::visitor::NmodlPrintVisitor::visit_binary_operator
virtual void visit_binary_operator(const ast::BinaryOperator &node) override
visit node of type ast::BinaryOperator
Definition: nmodl_visitor.cpp:892
nmodl::ast::RangeVar::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: range_var.hpp:91
nmodl::ast::Argument::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: argument.hpp:103
nmodl::ast::ThreadSafe::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: thread_safe.hpp:86
nmodl::ast::Number::get_node_type
virtual AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: number.hpp:89
nmodl::ast::SolveBlock::get_steadystate
std::shared_ptr< Name > get_steadystate() const noexcept
Getter for member variable SolveBlock::steadystate.
Definition: solve_block.hpp:195
nmodl::visitor::NmodlPrintVisitor::visit_extern_var
virtual void visit_extern_var(const ast::ExternVar &node) override
visit node of type ast::ExternVar
Definition: nmodl_visitor.cpp:342
nmodl::visitor::NmodlPrintVisitor::visit_integer
virtual void visit_integer(const ast::Integer &node) override
visit node of type ast::Integer
Definition: nmodl_visitor.cpp:84
nmodl::symtab::syminfo::to_string
std::string to_string(const T &obj)
Definition: symbol_properties.hpp:279
nmodl::visitor::NmodlPrintVisitor::visit_neuron_block
virtual void visit_neuron_block(const ast::NeuronBlock &node) override
visit node of type ast::NeuronBlock
Definition: nmodl_visitor.cpp:783
nmodl::visitor::NmodlPrintVisitor::visit_before_block
virtual void visit_before_block(const ast::BeforeBlock &node) override
visit node of type ast::BeforeBlock
Definition: nmodl_visitor.cpp:676
nmodl::ast::DoubleUnit::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: double_unit.hpp:93
nmodl::ast::UnaryExpression
TODO.
Definition: unary_expression.hpp:39
nmodl::ast::DestructorBlock::get_statement_block
std::shared_ptr< StatementBlock > get_statement_block() const noexcept override
Getter for member variable DestructorBlock::statement_block.
Definition: destructor_block.hpp:188
nmodl::ast::BlockComment::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: block_comment.hpp:91
nmodl::ast::FunctionCall::get_arguments
const ExpressionVector & get_arguments() const noexcept
Getter for member variable FunctionCall::arguments.
Definition: function_call.hpp:166
nmodl::visitor::NmodlPrintVisitor::visit_unit
virtual void visit_unit(const ast::Unit &node) override
visit node of type ast::Unit
Definition: nmodl_visitor.cpp:797
nmodl::ast::FactorDef::get_unit2
std::shared_ptr< Unit > get_unit2() const noexcept
Getter for member variable FactorDef::unit2.
Definition: factor_def.hpp:200
nmodl::ast::StateBlock::get_definitions
const AssignedDefinitionVector & get_definitions() const noexcept
Getter for member variable StateBlock::definitions.
Definition: state_block.hpp:186
nmodl::visitor::NmodlPrintVisitor::visit_electrode_current
virtual void visit_electrode_current(const ast::ElectrodeCurrent &node) override
visit node of type ast::ElectrodeCurrent
Definition: nmodl_visitor.cpp:1680
nmodl::ast::DiffEqExpression::get_expression
std::shared_ptr< BinaryExpression > get_expression() const noexcept
Getter for member variable DiffEqExpression::expression.
Definition: diff_eq_expression.hpp:143
nmodl::ast::LineComment::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: line_comment.hpp:91
nmodl::ast::External::get_variables
const ExternVarVector & get_variables() const noexcept
Getter for member variable External::variables.
Definition: external.hpp:157
nmodl::ast::ElectrodeCurrent::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: electrode_current.hpp:91
nmodl::ast::AfterBlock::get_bablock
std::shared_ptr< BABlock > get_bablock() const noexcept
Getter for member variable AfterBlock::bablock.
Definition: after_block.hpp:186
nmodl::ast::Global
Represents GLOBAL statement in NMODL.
Definition: global.hpp:39
nmodl::ast::UnaryExpression::get_op
const UnaryOperator & get_op() const noexcept
Getter for member variable UnaryExpression::op.
Definition: unary_expression.hpp:146
nmodl::ast::ReactionStatement::get_op
const ReactionOperator & get_op() const noexcept
Getter for member variable ReactionStatement::op.
Definition: reaction_statement.hpp:175
nmodl::ast::ParenExpression::get_expression
std::shared_ptr< Expression > get_expression() const noexcept
Getter for member variable ParenExpression::expression.
Definition: paren_expression.hpp:143
nmodl::ast::FunctionCall::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: function_call.hpp:93
nmodl::ast::FunctionBlock::get_name
std::shared_ptr< Name > get_name() const noexcept
Getter for member variable FunctionBlock::name.
Definition: function_block.hpp:192
nmodl::ast::Watch::get_expression
std::shared_ptr< Expression > get_expression() const noexcept
Getter for member variable Watch::expression.
Definition: watch.hpp:145
nmodl::ast::BinaryExpression::get_op
const BinaryOperator & get_op() const noexcept
Getter for member variable BinaryExpression::op.
Definition: binary_expression.hpp:170
nmodl::ast::ConstantBlock
Represent CONSTANT block in the mod file.
Definition: constant_block.hpp:50
nmodl::ast::Boolean::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: boolean.hpp:94
nmodl::visitor::NmodlPrintVisitor::visit_global_var
virtual void visit_global_var(const ast::GlobalVar &node) override
visit node of type ast::GlobalVar
Definition: nmodl_visitor.cpp:298
nmodl::ast::PrimeName
Represents a prime variable (for ODE)
Definition: prime_name.hpp:48
nmodl::visitor::NmodlPrintVisitor::visit_nonspecific
virtual void visit_nonspecific(const ast::Nonspecific &node) override
visit node of type ast::Nonspecific
Definition: nmodl_visitor.cpp:1668
nmodl::ast::EigenLinearSolverBlock::get_n_state_vars
std::shared_ptr< Integer > get_n_state_vars() const noexcept
Getter for member variable EigenLinearSolverBlock::n_state_vars.
Definition: eigen_linear_solver_block.hpp:183
nmodl::ast::ElseIfStatement::get_statement_block
std::shared_ptr< StatementBlock > get_statement_block() const noexcept override
Getter for member variable ElseIfStatement::statement_block.
Definition: else_if_statement.hpp:168
nmodl::ast::KineticBlock::get_solvefor
const NameVector & get_solvefor() const noexcept
Getter for member variable KineticBlock::solvefor.
Definition: kinetic_block.hpp:199
nmodl::visitor::NmodlPrintVisitor::visit_param_assign
virtual void visit_param_assign(const ast::ParamAssign &node) override
visit node of type ast::ParamAssign
Definition: nmodl_visitor.cpp:1199
nmodl::ast::DerivativeBlock
Represents DERIVATIVE block in the NMODL.
Definition: derivative_block.hpp:49
nmodl::visitor::NmodlPrintVisitor::visit_unit_def
virtual void visit_unit_def(const ast::UnitDef &node) override
visit node of type ast::UnitDef
Definition: nmodl_visitor.cpp:1065
nmodl::visitor::NmodlPrintVisitor::visit_expression_statement
virtual void visit_expression_statement(const ast::ExpressionStatement &node) override
visit node of type ast::ExpressionStatement
Definition: nmodl_visitor.cpp:1295
nmodl::ast::UnaryOperator::accept
void accept(visitor::Visitor &v) override
accept (or visit) the current AST node using provided visitor
Definition: ast.cpp:6303
nmodl::ast::UnaryOperator::eval
std::string eval() const
Return enum value in string form.
Definition: unary_operator.hpp:214
nmodl::ast::MutexUnlock::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: mutex_unlock.hpp:86
nmodl::ast::SolveBlock::get_method
std::shared_ptr< Name > get_method() const noexcept
Getter for member variable SolveBlock::method.
Definition: solve_block.hpp:186
nmodl::ast::IfStatement
TODO.
Definition: if_statement.hpp:39
nmodl::ast::FunctionTableBlock::get_name
std::shared_ptr< Name > get_name() const noexcept
Getter for member variable FunctionTableBlock::name.
Definition: function_table_block.hpp:190
nmodl::ast::Boolean
Represents a boolean variable.
Definition: boolean.hpp:42
nmodl::ast::LocalListStatement::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: local_list_statement.hpp:91
nmodl::ast::FunctionTableBlock::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: function_table_block.hpp:98
nmodl::ast::SolutionExpression::get_solve_block
std::shared_ptr< SolveBlock > get_solve_block() const noexcept
Getter for member variable SolutionExpression::solve_block.
Definition: solution_expression.hpp:145
nmodl::ast::BinaryOperator::eval
std::string eval() const
Return enum value in string form.
Definition: binary_operator.hpp:214
nmodl::ast::ConstantStatement::get_constant
std::shared_ptr< ConstantVar > get_constant() const noexcept
Getter for member variable ConstantStatement::constant.
Definition: constant_statement.hpp:145
nmodl::ast::Model::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: model.hpp:91
nmodl::ast::ProcedureBlock::get_unit
std::shared_ptr< Unit > get_unit() const noexcept
Getter for member variable ProcedureBlock::unit.
Definition: procedure_block.hpp:210
nmodl::ast::KineticBlock
TODO.
Definition: kinetic_block.hpp:39
nmodl::visitor::NmodlPrintVisitor::visit_compartment
virtual void visit_compartment(const ast::Compartment &node) override
visit node of type ast::Compartment
Definition: nmodl_visitor.cpp:1475
nmodl::ast::WhileStatement::get_statement_block
std::shared_ptr< StatementBlock > get_statement_block() const noexcept override
Getter for member variable WhileStatement::statement_block.
Definition: while_statement.hpp:168
nmodl::ast::EigenLinearSolverBlock
Represent linear solver solution block based on Eigen.
Definition: eigen_linear_solver_block.hpp:38
nmodl::ast::WatchStatement::get_statements
const WatchVector & get_statements() const noexcept
Getter for member variable WatchStatement::statements.
Definition: watch_statement.hpp:205
nmodl::visitor::NmodlPrintVisitor::visit_include
virtual void visit_include(const ast::Include &node) override
visit node of type ast::Include
Definition: nmodl_visitor.cpp:1184
nmodl::ast::LocalVar
TODO.
Definition: local_var.hpp:38
nmodl::ast::LagStatement
Represents a LAG statement in the mod file.
Definition: lag_statement.hpp:47
nmodl::ast::AssignedDefinition::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: assigned_definition.hpp:103
nmodl::ast::Expression::get_node_type
virtual AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: expression.hpp:88
nmodl::ast::Compartment
Represent COMPARTMENT statement in NMODL.
Definition: compartment.hpp:39
nmodl::ast::UnaryExpression::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: unary_expression.hpp:94
nmodl::ast::UpdateDt
Statement to indicate a change in timestep in a given block.
Definition: update_dt.hpp:38
nmodl::ast::Integer::eval
int eval() const
Return value of the ast node.
Definition: integer.hpp:274
nmodl::ast::EigenNewtonSolverBlock::get_functor_block
std::shared_ptr< StatementBlock > get_functor_block() const noexcept
Getter for member variable EigenNewtonSolverBlock::functor_block.
Definition: eigen_newton_solver_block.hpp:221
nmodl::ast::Watch::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: watch.hpp:93
nmodl::ast::FactorDef::get_name
std::shared_ptr< Name > get_name() const noexcept
Getter for member variable FactorDef::name.
Definition: factor_def.hpp:164
nmodl::visitor::NmodlPrintVisitor::visit_useion
virtual void visit_useion(const ast::Useion &node) override
visit node of type ast::Useion
Definition: nmodl_visitor.cpp:1633
nmodl::ast::FromStatement::get_name
std::shared_ptr< Name > get_name() const noexcept
Getter for member variable FromStatement::name.
Definition: from_statement.hpp:177
nmodl::ast::Useion::get_name
std::shared_ptr< Name > get_name() const noexcept
Getter for member variable Useion::name.
Definition: useion.hpp:179
nmodl::visitor::NmodlPrintVisitor::visit_bbcore_pointer
virtual void visit_bbcore_pointer(const ast::BbcorePointer &node) override
visit node of type ast::BbcorePointer
Definition: nmodl_visitor.cpp:1740
nmodl::visitor::NmodlPrintVisitor::visit_prime_name
virtual void visit_prime_name(const ast::PrimeName &node) override
visit node of type ast::PrimeName
Definition: nmodl_visitor.cpp:154
nmodl::ast::Double::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: double.hpp:106
nmodl::ast::ConstructorBlock::get_statement_block
std::shared_ptr< StatementBlock > get_statement_block() const noexcept override
Getter for member variable ConstructorBlock::statement_block.
Definition: constructor_block.hpp:186
nmodl::ast::FunctionBlock::get_unit
std::shared_ptr< Unit > get_unit() const noexcept
Getter for member variable FunctionBlock::unit.
Definition: function_block.hpp:210
nmodl::visitor::NmodlPrintVisitor::visit_nrn_state_block
virtual void visit_nrn_state_block(const ast::NrnStateBlock &node) override
visit node of type ast::NrnStateBlock
Definition: nmodl_visitor.cpp:1833
nmodl::ast::Statement
TODO.
Definition: statement.hpp:38
nmodl::visitor::NmodlPrintVisitor::visit_suffix
virtual void visit_suffix(const ast::Suffix &node) override
visit node of type ast::Suffix
Definition: nmodl_visitor.cpp:1618
nmodl::ast::NumberRange
TODO.
Definition: number_range.hpp:38
nmodl::ast::Argument::get_unit
std::shared_ptr< Unit > get_unit() const noexcept
Getter for member variable Argument::unit.
Definition: argument.hpp:176
nmodl::ast::ReactionOperator::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: reaction_operator.hpp:91
nmodl::ast::ParenExpression::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: paren_expression.hpp:91
nmodl::ast::StateBlock
Represents a STATE block in the NMODL.
Definition: state_block.hpp:52
nmodl::ast::NeuronBlock::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: neuron_block.hpp:108
nmodl::ast::SolutionExpression::get_node_to_solve
std::shared_ptr< Expression > get_node_to_solve() const noexcept
Getter for member variable SolutionExpression::node_to_solve.
Definition: solution_expression.hpp:154
nmodl::ast::FactorDef::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: factor_def.hpp:100
nmodl::ast::OntologyStatement::get_ontology_id
std::shared_ptr< String > get_ontology_id() const noexcept
Getter for member variable OntologyStatement::ontology_id.
Definition: ontology_statement.hpp:157
nmodl::visitor::NmodlPrintVisitor::visit_expression
virtual void visit_expression(const ast::Expression &node) override
visit node of type ast::Expression
Definition: nmodl_visitor.cpp:39
nmodl::ast::Pointer::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: pointer.hpp:91
nmodl::ast::ExternVar::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: extern_var.hpp:91
nmodl::ast::IfStatement::get_statement_block
std::shared_ptr< StatementBlock > get_statement_block() const noexcept override
Getter for member variable IfStatement::statement_block.
Definition: if_statement.hpp:173
nmodl::ast::NumberRange::get_max
std::shared_ptr< Number > get_max() const noexcept
Getter for member variable NumberRange::max.
Definition: number_range.hpp:154
nmodl::visitor::NmodlPrintVisitor::visit_lon_difuse
virtual void visit_lon_difuse(const ast::LonDifuse &node) override
visit node of type ast::LonDifuse
Definition: nmodl_visitor.cpp:1502
nmodl::ast::WriteIonVar::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: write_ion_var.hpp:91
nmodl::ast::NonLinEquation::get_rhs
std::shared_ptr< Expression > get_rhs() const noexcept
Getter for member variable NonLinEquation::rhs.
Definition: non_lin_equation.hpp:168
nmodl::ast::NrnStateBlock
Represents the coreneuron nrn_state callback function.
Definition: nrn_state_block.hpp:39
nmodl::ast::Unit::get_name
std::shared_ptr< String > get_name() const noexcept
Getter for member variable Unit::name.
Definition: unit.hpp:155
nmodl::ast::StatementBlock
Represents block encapsulating list of statements.
Definition: statement_block.hpp:53
nmodl::ast::Range::get_variables
const RangeVarVector & get_variables() const noexcept
Getter for member variable Range::variables.
Definition: range.hpp:157
nmodl::ast::Limits::get_max
std::shared_ptr< Double > get_max() const noexcept
Getter for member variable Limits::max.
Definition: limits.hpp:154
nmodl::ast::RandomVarList::get_variables
const RandomVarVector & get_variables() const noexcept
Getter for member variable RandomVarList::variables.
Definition: random_var_list.hpp:165
nmodl::visitor::NmodlPrintVisitor::visit_number_range
virtual void visit_number_range(const ast::NumberRange &node) override
visit node of type ast::NumberRange
Definition: nmodl_visitor.cpp:854
nmodl::visitor::NmodlPrintVisitor::visit_pointer_var
virtual void visit_pointer_var(const ast::PointerVar &node) override
visit node of type ast::PointerVar
Definition: nmodl_visitor.cpp:309
nmodl::visitor::NmodlPrintVisitor::visit_assigned_definition
virtual void visit_assigned_definition(const ast::AssignedDefinition &node) override
visit node of type ast::AssignedDefinition
Definition: nmodl_visitor.cpp:1228
nmodl::ast::OntologyStatement
Represents CURIE information in NMODL.
Definition: ontology_statement.hpp:38
nmodl::ast::External
This construct is deprecated and no longer supported in the NMODL.
Definition: external.hpp:39
nmodl::visitor::NmodlPrintVisitor::visit_define
virtual void visit_define(const ast::Define &node) override
visit node of type ast::Define
Definition: nmodl_visitor.cpp:1168
nmodl::ast::ParamBlock::get_statements
const ParamAssignVector & get_statements() const noexcept
Getter for member variable ParamBlock::statements.
Definition: param_block.hpp:187
nmodl::ast::ForNetcon
TODO.
Definition: for_netcon.hpp:39
nmodl::ast::FactorDef::get_unit1
std::shared_ptr< Unit > get_unit1() const noexcept
Getter for member variable FactorDef::unit1.
Definition: factor_def.hpp:182
nmodl::ast::Argument
Represents an argument to functions and procedures.
Definition: argument.hpp:48
nmodl::ast::NonLinEquation::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: non_lin_equation.hpp:93
nmodl::visitor::NmodlPrintVisitor::visit_while_statement
virtual void visit_while_statement(const ast::WhileStatement &node) override
visit node of type ast::WhileStatement
Definition: nmodl_visitor.cpp:1349
nmodl::ast::ForNetcon::get_parameters
const ArgumentVector & get_parameters() const noexcept override
Getter for member variable ForNetcon::parameters.
Definition: for_netcon.hpp:176
nmodl::ast::TableStatement::get_table_vars
const NameVector & get_table_vars() const noexcept
Getter for member variable TableStatement::table_vars.
Definition: table_statement.hpp:166
nmodl::ast::Program::get_blocks
const NodeVector & get_blocks() const noexcept
Getter for member variable Program::blocks.
Definition: program.hpp:216
nmodl::ast::ParenExpression
TODO.
Definition: paren_expression.hpp:38
nmodl::ast::Verbatim::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: verbatim.hpp:91
nmodl::ast::Define::get_name
std::shared_ptr< Name > get_name() const noexcept
Getter for member variable Define::name.
Definition: define.hpp:171
nmodl::ast::LinearBlock
Represents LINEAR block in the NMODL.
Definition: linear_block.hpp:53
nmodl::visitor::NmodlPrintVisitor::visit_ba_block_type
virtual void visit_ba_block_type(const ast::BABlockType &node) override
visit node of type ast::BABlockType
Definition: nmodl_visitor.cpp:1052
nmodl::ast::EigenNewtonSolverBlock::get_variable_block
std::shared_ptr< StatementBlock > get_variable_block() const noexcept
Getter for member variable EigenNewtonSolverBlock::variable_block.
Definition: eigen_newton_solver_block.hpp:194
nmodl::ast::DerivimplicitCallback
Represent a callback to NEURON's derivimplicit solver.
Definition: derivimplicit_callback.hpp:38
nmodl::ast::LinEquation::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: lin_equation.hpp:93
nmodl::ast::ProcedureBlock
TODO.
Definition: procedure_block.hpp:39
nmodl::ast::ConstantVar::get_name
std::shared_ptr< Name > get_name() const noexcept
Getter for member variable ConstantVar::name.
Definition: constant_var.hpp:159
nmodl::visitor::NmodlPrintVisitor::visit_ba_block
virtual void visit_ba_block(const ast::BABlock &node) override
visit node of type ast::BABlock
Definition: nmodl_visitor.cpp:700
nmodl::visitor::NmodlPrintVisitor::visit_kinetic_block
virtual void visit_kinetic_block(const ast::KineticBlock &node) override
visit node of type ast::KineticBlock
Definition: nmodl_visitor.cpp:734
nmodl::ast::LocalVar::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: local_var.hpp:91
nmodl::ast::ReactionStatement
TODO.
Definition: reaction_statement.hpp:39
nmodl::ast::ConstantStatement
Represent statement in CONSTANT block of NMODL.
Definition: constant_statement.hpp:40
nmodl::ast::ReadIonVar::get_name
std::shared_ptr< Name > get_name() const noexcept
Getter for member variable ReadIonVar::name.
Definition: read_ion_var.hpp:155
nmodl::ast::BinaryOperator
Operator used in ast::BinaryExpression.
Definition: binary_operator.hpp:38
nmodl::ast::BABlock::get_type
std::shared_ptr< BABlockType > get_type() const noexcept
Getter for member variable BABlock::type.
Definition: ba_block.hpp:163
nmodl::ast::Valence::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: valence.hpp:93
nmodl::ast::ElseIfStatement::get_condition
std::shared_ptr< Expression > get_condition() const noexcept
Getter for member variable ElseIfStatement::condition.
Definition: else_if_statement.hpp:159
nmodl::ast::BABlockType
Type to represent different block types for before/after block.
Definition: ba_block_type.hpp:42
nmodl::ast::LinearBlock::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: linear_block.hpp:112
nmodl::ast::NonLinearBlock
Represents NONLINEAR block in the NMODL.
Definition: non_linear_block.hpp:50
nmodl::visitor::NmodlPrintVisitor::visit_conductance_hint
virtual void visit_conductance_hint(const ast::ConductanceHint &node) override
visit node of type ast::ConductanceHint
Definition: nmodl_visitor.cpp:1277
nmodl::ast::NonLinearBlock::get_name
std::shared_ptr< Name > get_name() const noexcept
Getter for member variable NonLinearBlock::name.
Definition: non_linear_block.hpp:201
nmodl::visitor::NmodlPrintVisitor::visit_local_var
virtual void visit_local_var(const ast::LocalVar &node) override
visit node of type ast::LocalVar
Definition: nmodl_visitor.cpp:826
nmodl::ast::UnitState::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: unit_state.hpp:90
nmodl::ast::NonLinearBlock::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: non_linear_block.hpp:109
nmodl::ast::ParamBlock::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: param_block.hpp:107
nmodl::ast::SolutionExpression
Represent solution of a block in the AST.
Definition: solution_expression.hpp:38
nmodl::visitor::NmodlPrintVisitor::visit_if_statement
virtual void visit_if_statement(const ast::IfStatement &node) override
visit node of type ast::IfStatement
Definition: nmodl_visitor.cpp:1368
nmodl::ast::ElectrodeCurVar
TODO.
Definition: electrode_cur_var.hpp:38
nmodl::ast::ParamAssign::get_limit
std::shared_ptr< Limits > get_limit() const noexcept
Getter for member variable ParamAssign::limit.
Definition: param_assign.hpp:188
nmodl::visitor::NmodlPrintVisitor::visit_valence
virtual void visit_valence(const ast::Valence &node) override
visit node of type ast::Valence
Definition: nmodl_visitor.cpp:1115
nmodl::ast::UnitState::eval
std::string eval() const
Return enum value in string form.
Definition: unit_state.hpp:213
nmodl::ast::FunctionBlock::get_statement_block
std::shared_ptr< StatementBlock > get_statement_block() const noexcept override
Getter for member variable FunctionBlock::statement_block.
Definition: function_block.hpp:219
nmodl::ast::ConstantVar::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: constant_var.hpp:95
nmodl::visitor::NmodlPrintVisitor::visit_var_name
virtual void visit_var_name(const ast::VarName &node) override
visit node of type ast::VarName
Definition: nmodl_visitor.cpp:186
nmodl::visitor::NmodlPrintVisitor::visit_watch_statement
virtual void visit_watch_statement(const ast::WatchStatement &node) override
visit node of type ast::WatchStatement
Definition: nmodl_visitor.cpp:1428
nmodl::ast::LinEquation
TODO.
Definition: lin_equation.hpp:38
nmodl::ast::PointerVar::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: pointer_var.hpp:91
nmodl::ast::PointerVar::get_name
std::shared_ptr< Name > get_name() const noexcept
Getter for member variable PointerVar::name.
Definition: pointer_var.hpp:155
nmodl::visitor::NmodlPrintVisitor::visit_lag_statement
virtual void visit_lag_statement(const ast::LagStatement &node) override
visit node of type ast::LagStatement
Definition: nmodl_visitor.cpp:1561
nmodl::visitor::NmodlPrintVisitor::visit_range
virtual void visit_range(const ast::Range &node) override
visit node of type ast::Range
Definition: nmodl_visitor.cpp:1692
nmodl::ast::DoubleUnit::get_value
std::shared_ptr< Double > get_value() const noexcept
Getter for member variable DoubleUnit::value.
Definition: double_unit.hpp:145
nmodl::ast::VarName::get_name
std::shared_ptr< Identifier > get_name() const noexcept
Getter for member variable VarName::name.
Definition: var_name.hpp:164
nmodl::ast::BreakpointBlock::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: breakpoint_block.hpp:108
nmodl::ast::IndependentBlock
Represents a INDEPENDENT block in the NMODL.
Definition: independent_block.hpp:46
nmodl::ast::ConstructorBlock::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: constructor_block.hpp:106
nmodl::ast::ConductanceHint::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: conductance_hint.hpp:101
nmodl::ast::ElectrodeCurVar::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: electrode_cur_var.hpp:91
nmodl::visitor::NmodlPrintVisitor::visit_eigen_linear_solver_block
virtual void visit_eigen_linear_solver_block(const ast::EigenLinearSolverBlock &node) override
visit node of type ast::EigenLinearSolverBlock
Definition: nmodl_visitor.cpp:1889
nmodl::ast::Compartment::get_name
std::shared_ptr< Name > get_name() const noexcept
Getter for member variable Compartment::name.
Definition: compartment.hpp:162
nmodl::ast::Suffix::get_name
std::shared_ptr< Name > get_name() const noexcept
Getter for member variable Suffix::name.
Definition: suffix.hpp:166
nmodl::ast::LineComment::get_statement
std::shared_ptr< String > get_statement() const noexcept
Getter for member variable LineComment::statement.
Definition: line_comment.hpp:143
nmodl::ast::SolveBlock::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: solve_block.hpp:97
nmodl::ast::IfStatement::get_elses
std::shared_ptr< ElseStatement > get_elses() const noexcept
Getter for member variable IfStatement::elses.
Definition: if_statement.hpp:191
nmodl::ast::BbcorePointer
Represents BBCOREPOINTER statement in NMODL.
Definition: bbcore_pointer.hpp:47
nmodl::ast::Name::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: name.hpp:98
nmodl::ast::Nonspecific
Represents NONSPECIFIC_CURRENT variables statement in NMODL.
Definition: nonspecific.hpp:39
nmodl::ast::IfStatement::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: if_statement.hpp:98
nmodl::ast::BinaryExpression::get_lhs
std::shared_ptr< Expression > get_lhs() const noexcept
Getter for member variable BinaryExpression::lhs.
Definition: binary_expression.hpp:161
nmodl::ast::Program::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: program.hpp:96
nmodl::ast::UnitDef::get_unit2
std::shared_ptr< Unit > get_unit2() const noexcept
Getter for member variable UnitDef::unit2.
Definition: unit_def.hpp:166
nmodl::ast::NonLinEquation::get_lhs
std::shared_ptr< Expression > get_lhs() const noexcept
Getter for member variable NonLinEquation::lhs.
Definition: non_lin_equation.hpp:159
nmodl::ast::ExternVar::get_name
std::shared_ptr< Name > get_name() const noexcept
Getter for member variable ExternVar::name.
Definition: extern_var.hpp:155
nmodl::visitor::NmodlPrintVisitor::visit_conserve
virtual void visit_conserve(const ast::Conserve &node) override
visit node of type ast::Conserve
Definition: nmodl_visitor.cpp:1458
nmodl::ast::Block::get_node_type
virtual AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: block.hpp:91
nmodl::ast::FunctionTableBlock::get_unit
std::shared_ptr< Unit > get_unit() const noexcept
Getter for member variable FunctionTableBlock::unit.
Definition: function_table_block.hpp:208
nmodl::ast::Suffix::get_type
std::shared_ptr< Name > get_type() const noexcept
Getter for member variable Suffix::type.
Definition: suffix.hpp:145
nmodl::ast::Name
Represents a name.
Definition: name.hpp:44
nmodl::visitor::NmodlPrintVisitor::visit_function_call
virtual void visit_function_call(const ast::FunctionCall &node) override
visit node of type ast::FunctionCall
Definition: nmodl_visitor.cpp:1021
nmodl::ast::LonDifuse::get_name
std::shared_ptr< Name > get_name() const noexcept
Getter for member variable LonDifuse::name.
Definition: lon_difuse.hpp:162
nmodl::visitor::NmodlPrintVisitor::visit_table_statement
virtual void visit_table_statement(const ast::TableStatement &node) override
visit node of type ast::TableStatement
Definition: nmodl_visitor.cpp:1588
nmodl::ast::FromStatement::get_statement_block
std::shared_ptr< StatementBlock > get_statement_block() const noexcept override
Getter for member variable FromStatement::statement_block.
Definition: from_statement.hpp:213
nmodl::ast::Program
Represents top level AST node for whole NMODL input.
Definition: program.hpp:39
nmodl::ast::FromStatement::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: from_statement.hpp:99
nmodl::ast::LonDifuse::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: lon_difuse.hpp:96
nmodl::ast::AfterBlock
Represents a AFTER block in NMODL.
Definition: after_block.hpp:51
nmodl::ast::Number
Base class for all numbers.
Definition: number.hpp:39
nmodl::ast::FromStatement::get_to
std::shared_ptr< Expression > get_to() const noexcept
Getter for member variable FromStatement::to.
Definition: from_statement.hpp:195
nmodl::ast::ThreadSafe
Represents THREADSAFE statement in NMODL.
Definition: thread_safe.hpp:38
nmodl::ast::Expression
Base class for all expressions in the NMODL.
Definition: expression.hpp:43
nmodl::ast::EigenNewtonSolverBlock::get_update_states_block
std::shared_ptr< StatementBlock > get_update_states_block() const noexcept
Getter for member variable EigenNewtonSolverBlock::update_states_block.
Definition: eigen_newton_solver_block.hpp:230
nmodl::ast::Pointer
Represents POINTER statement in NMODL.
Definition: pointer.hpp:39
nmodl::ast::ElseStatement
TODO.
Definition: else_statement.hpp:38
nmodl::ast::Limits::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: limits.hpp:93
nmodl::ast::ElectrodeCurrent
Represents ELECTRODE_CURRENT variables statement in NMODL.
Definition: electrode_current.hpp:39
nmodl::ast::NeuronBlock
Represent NEURON block in the mod file.
Definition: neuron_block.hpp:53
nmodl::ast::BinaryOperator::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: binary_operator.hpp:91
nmodl::visitor::NmodlPrintVisitor::visit_function_table_block
virtual void visit_function_table_block(const ast::FunctionTableBlock &node) override
visit node of type ast::FunctionTableBlock
Definition: nmodl_visitor.cpp:548
nmodl::ast::Include::get_filename
std::shared_ptr< String > get_filename() const noexcept
Getter for member variable Include::filename.
Definition: include.hpp:160
nmodl::ast::DoubleUnit::get_unit
std::shared_ptr< Unit > get_unit() const noexcept
Getter for member variable DoubleUnit::unit.
Definition: double_unit.hpp:154
nmodl::visitor::NmodlPrintVisitor::visit_non_linear_block
virtual void visit_non_linear_block(const ast::NonLinearBlock &node) override
visit node of type ast::NonLinearBlock
Definition: nmodl_visitor.cpp:507
nmodl::ast::PrimeName::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: prime_name.hpp:104
nmodl::visitor::NmodlPrintVisitor::visit_solve_block
virtual void visit_solve_block(const ast::SolveBlock &node) override
visit node of type ast::SolveBlock
Definition: nmodl_visitor.cpp:637
nmodl::ast::NeuronBlock::get_statement_block
std::shared_ptr< StatementBlock > get_statement_block() const noexcept override
Getter for member variable NeuronBlock::statement_block.
Definition: neuron_block.hpp:188
nmodl::ast::BinaryExpression
Represents binary expression in the NMODL.
Definition: binary_expression.hpp:52
nmodl::ast::ParamBlock
Represents a PARAMETER block in the NMODL.
Definition: param_block.hpp:53
nmodl::visitor::NmodlPrintVisitor::visit_mutex_unlock
virtual void visit_mutex_unlock(const ast::MutexUnlock &node) override
visit node of type ast::MutexUnlock
Definition: nmodl_visitor.cpp:1449
nmodl::visitor::NmodlPrintVisitor::visit_limits
virtual void visit_limits(const ast::Limits &node) override
visit node of type ast::Limits
Definition: nmodl_visitor.cpp:837
nmodl::ast::AssignedDefinition::get_unit
std::shared_ptr< Unit > get_unit() const noexcept
Getter for member variable AssignedDefinition::unit.
Definition: assigned_definition.hpp:212
nmodl::ast::Suffix::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: suffix.hpp:93
nmodl::ast::NonspecificCurVar
TODO.
Definition: nonspecific_cur_var.hpp:38
nmodl::ast::LagStatement::get_byname
std::shared_ptr< Name > get_byname() const noexcept
Getter for member variable LagStatement::byname.
Definition: lag_statement.hpp:177
nmodl::ast::TableStatement::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: table_statement.hpp:100
nmodl::ast::IndexedName::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: indexed_name.hpp:103
nmodl::visitor::NmodlPrintVisitor::visit_assigned_block
virtual void visit_assigned_block(const ast::AssignedBlock &node) override
visit node of type ast::AssignedBlock
Definition: nmodl_visitor.cpp:382
nmodl::ast::VarName::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: var_name.hpp:100
nmodl::visitor::NmodlPrintVisitor::visit_number
virtual void visit_number(const ast::Number &node) override
visit node of type ast::Number
Definition: nmodl_visitor.cpp:63
nmodl::ast::LinEquation::get_linxpression
std::shared_ptr< Expression > get_linxpression() const noexcept
Getter for member variable LinEquation::linxpression.
Definition: lin_equation.hpp:168
nmodl::ast::AssignedDefinition::get_name
std::shared_ptr< Identifier > get_name() const noexcept
Getter for member variable AssignedDefinition::name.
Definition: assigned_definition.hpp:167
nmodl::visitor::NmodlPrintVisitor::visit_param_block
virtual void visit_param_block(const ast::ParamBlock &node) override
visit node of type ast::ParamBlock
Definition: nmodl_visitor.cpp:353
nmodl::visitor::NmodlPrintVisitor::visit_else_statement
virtual void visit_else_statement(const ast::ElseStatement &node) override
visit node of type ast::ElseStatement
Definition: nmodl_visitor.cpp:1414
nmodl::ast::ConstantVar::get_value
std::shared_ptr< Number > get_value() const noexcept
Getter for member variable ConstantVar::value.
Definition: constant_var.hpp:168
nmodl::ast::KineticBlock::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: kinetic_block.hpp:98
nmodl::ast::ReactVarName::get_value
std::shared_ptr< Integer > get_value() const noexcept
Getter for member variable ReactVarName::value.
Definition: react_var_name.hpp:145
nmodl::ast::EigenNewtonSolverBlock::get_finalize_block
std::shared_ptr< StatementBlock > get_finalize_block() const noexcept
Getter for member variable EigenNewtonSolverBlock::finalize_block.
Definition: eigen_newton_solver_block.hpp:239
nmodl::visitor::NmodlPrintVisitor::visit_initial_block
virtual void visit_initial_block(const ast::InitialBlock &node) override
visit node of type ast::InitialBlock
Definition: nmodl_visitor.cpp:410
nmodl::visitor::NmodlPrintVisitor::visit_eigen_newton_solver_block
virtual void visit_eigen_newton_solver_block(const ast::EigenNewtonSolverBlock &node) override
visit node of type ast::EigenNewtonSolverBlock
Definition: nmodl_visitor.cpp:1845
nmodl::visitor::NmodlPrintVisitor::visit_react_var_name
virtual void visit_react_var_name(const ast::ReactVarName &node) override
visit node of type ast::ReactVarName
Definition: nmodl_visitor.cpp:226
nmodl::ast::WatchStatement::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: watch_statement.hpp:91
nmodl::visitor::NmodlPrintVisitor::visit_block
virtual void visit_block(const ast::Block &node) override
visit node of type ast::Block
Definition: nmodl_visitor.cpp:47
nmodl::visitor::NmodlPrintVisitor::visit_lin_equation
virtual void visit_lin_equation(const ast::LinEquation &node) override
visit node of type ast::LinEquation
Definition: nmodl_visitor.cpp:1005
nmodl::ast::ProtectStatement::get_expression
std::shared_ptr< Expression > get_expression() const noexcept
Getter for member variable ProtectStatement::expression.
Definition: protect_statement.hpp:157
nmodl::ast::String
Represents a string.
Definition: string.hpp:52
nmodl::ast::Limits
TODO.
Definition: limits.hpp:38
nmodl::visitor::NmodlPrintVisitor::visit_binary_expression
virtual void visit_binary_expression(const ast::BinaryExpression &node) override
visit node of type ast::BinaryExpression
Definition: nmodl_visitor.cpp:944
nmodl::visitor::NmodlPrintVisitor::visit_nonspecific_cur_var
virtual void visit_nonspecific_cur_var(const ast::NonspecificCurVar &node) override
visit node of type ast::NonspecificCurVar
Definition: nmodl_visitor.cpp:265
all.hpp
Auto generated AST classes declaration.
nmodl::ast::WrappedExpression
Wrap any other expression type.
Definition: wrapped_expression.hpp:38
nmodl::ast::DiffEqExpression::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: diff_eq_expression.hpp:91
nmodl::ast::InitialBlock::get_node_type
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: initial_block.hpp:104
nmodl::ast::Valence::get_type
std::shared_ptr< Name > get_type() const noexcept
Getter for member variable Valence::type.
Definition: valence.hpp:145
nmodl::ast::FromStatement
TODO.
Definition: from_statement.hpp:38
nmodl_visitor.hpp
THIS FILE IS GENERATED AT BUILD TIME AND SHALL NOT BE EDITED.
nmodl::ast::Model::get_title
std::shared_ptr< String > get_title() const noexcept
Getter for member variable Model::title.
Definition: model.hpp:157
nmodl::ast::NonLinearBlock::get_statement_block
std::shared_ptr< StatementBlock > get_statement_block() const noexcept override
Getter for member variable NonLinearBlock::statement_block.
Definition: non_linear_block.hpp:219
nmodl::visitor::NmodlPrintVisitor::visit_constant_statement
virtual void visit_constant_statement(const ast::ConstantStatement &node) override
visit node of type ast::ConstantStatement
Definition: nmodl_visitor.cpp:1577
nmodl::ast::ReactionOperator::accept
void accept(visitor::Visitor &v) override
accept (or visit) the current AST node using provided visitor
Definition: ast.cpp:6362
nmodl::ast::ParamAssign::get_value
std::shared_ptr< Number > get_value() const noexcept
Getter for member variable ParamAssign::value.
Definition: param_assign.hpp:170
nmodl::ast::WhileStatement::get_condition
std::shared_ptr< Expression > get_condition() const noexcept
Getter for member variable WhileStatement::condition.
Definition: while_statement.hpp:159
nmodl::ast::Identifier::get_node_type
virtual AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Definition: identifier.hpp:86