User Guide
checkparent_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 <string>
15 
16 #include "ast/all.hpp"
17 #include "utils/logger.hpp"
18 
19 namespace nmodl {
20 namespace visitor {
21 namespace test {
22 
23 using namespace ast;
24 
26 
27  parent = nullptr;
28 
29  node.accept(*this);
30 
31  return 0;
32 }
33 
34 void CheckParentVisitor::check_parent(const ast::Ast& node) const {
35  if (!parent) {
36  if (is_root_with_null_parent && node.get_parent()) {
37  const auto& parent_type = parent->get_node_type_name();
38  throw std::runtime_error(
39  fmt::format("root->parent: {} is set when it should be nullptr", parent_type));
40  }
41  } else {
42  if (parent != node.get_parent()) {
43  const std::string parent_type = (parent == nullptr) ? "nullptr" : parent->get_node_type_name();
44  const std::string node_parent_type = (node.get_parent() == nullptr) ? "nullptr" : node.get_parent()->get_node_type_name();
45  throw std::runtime_error(fmt::format("parent: {} and child->parent: {} missmatch",
46  parent_type,
47  node_parent_type));
48  }
49  }
50 }
51 
52 
54  // check the node
55  check_parent(node);
56 
57  // Set this node as parent. and go down the tree
58  parent = &node;
59 
60  // visit its children
61  node.visit_children(*this);
62 
63  // I am done with these children, I go up the tree. The parent of this node is the parent
64  parent = node.get_parent();
65 }
66 
68  // check the node
69  check_parent(node);
70 
71  // Set this node as parent. and go down the tree
72  parent = &node;
73 
74  // visit its children
75  node.visit_children(*this);
76 
77  // I am done with these children, I go up the tree. The parent of this node is the parent
78  parent = node.get_parent();
79 }
80 
82  // check the node
83  check_parent(node);
84 
85  // Set this node as parent. and go down the tree
86  parent = &node;
87 
88  // visit its children
89  node.visit_children(*this);
90 
91  // I am done with these children, I go up the tree. The parent of this node is the parent
92  parent = node.get_parent();
93 }
94 
96  // check the node
97  check_parent(node);
98 
99  // Set this node as parent. and go down the tree
100  parent = &node;
101 
102  // visit its children
103  node.visit_children(*this);
104 
105  // I am done with these children, I go up the tree. The parent of this node is the parent
106  parent = node.get_parent();
107 }
108 
110  // check the node
111  check_parent(node);
112 
113  // Set this node as parent. and go down the tree
114  parent = &node;
115 
116  // visit its children
117  node.visit_children(*this);
118 
119  // I am done with these children, I go up the tree. The parent of this node is the parent
120  parent = node.get_parent();
121 }
122 
124  // check the node
125  check_parent(node);
126 
127  // Set this node as parent. and go down the tree
128  parent = &node;
129 
130  // visit its children
131  node.visit_children(*this);
132 
133  // I am done with these children, I go up the tree. The parent of this node is the parent
134  parent = node.get_parent();
135 }
136 
138  // check the node
139  check_parent(node);
140 
141  // Set this node as parent. and go down the tree
142  parent = &node;
143 
144  // visit its children
145  node.visit_children(*this);
146 
147  // I am done with these children, I go up the tree. The parent of this node is the parent
148  parent = node.get_parent();
149 }
150 
152  // check the node
153  check_parent(node);
154 
155  // Set this node as parent. and go down the tree
156  parent = &node;
157 
158  // visit its children
159  node.visit_children(*this);
160 
161  // I am done with these children, I go up the tree. The parent of this node is the parent
162  parent = node.get_parent();
163 }
164 
166  // check the node
167  check_parent(node);
168 
169  // Set this node as parent. and go down the tree
170  parent = &node;
171 
172  // visit its children
173  node.visit_children(*this);
174 
175  // I am done with these children, I go up the tree. The parent of this node is the parent
176  parent = node.get_parent();
177 }
178 
180  // check the node
181  check_parent(node);
182 
183  // Set this node as parent. and go down the tree
184  parent = &node;
185 
186  // visit its children
187  node.visit_children(*this);
188 
189  // I am done with these children, I go up the tree. The parent of this node is the parent
190  parent = node.get_parent();
191 }
192 
194  // check the node
195  check_parent(node);
196 
197  // Set this node as parent. and go down the tree
198  parent = &node;
199 
200  // visit its children
201  node.visit_children(*this);
202 
203  // I am done with these children, I go up the tree. The parent of this node is the parent
204  parent = node.get_parent();
205 }
206 
208  // check the node
209  check_parent(node);
210 
211  // Set this node as parent. and go down the tree
212  parent = &node;
213 
214  // visit its children
215  node.visit_children(*this);
216 
217  // I am done with these children, I go up the tree. The parent of this node is the parent
218  parent = node.get_parent();
219 }
220 
222  // check the node
223  check_parent(node);
224 
225  // Set this node as parent. and go down the tree
226  parent = &node;
227 
228  // visit its children
229  node.visit_children(*this);
230 
231  // I am done with these children, I go up the tree. The parent of this node is the parent
232  parent = node.get_parent();
233 }
234 
236  // check the node
237  check_parent(node);
238 
239  // Set this node as parent. and go down the tree
240  parent = &node;
241 
242  // visit its children
243  node.visit_children(*this);
244 
245  // I am done with these children, I go up the tree. The parent of this node is the parent
246  parent = node.get_parent();
247 }
248 
250  // check the node
251  check_parent(node);
252 
253  // Set this node as parent. and go down the tree
254  parent = &node;
255 
256  // visit its children
257  node.visit_children(*this);
258 
259  // I am done with these children, I go up the tree. The parent of this node is the parent
260  parent = node.get_parent();
261 }
262 
264  // check the node
265  check_parent(node);
266 
267  // Set this node as parent. and go down the tree
268  parent = &node;
269 
270  // visit its children
271  node.visit_children(*this);
272 
273  // I am done with these children, I go up the tree. The parent of this node is the parent
274  parent = node.get_parent();
275 }
276 
278  // check the node
279  check_parent(node);
280 
281  // Set this node as parent. and go down the tree
282  parent = &node;
283 
284  // visit its children
285  node.visit_children(*this);
286 
287  // I am done with these children, I go up the tree. The parent of this node is the parent
288  parent = node.get_parent();
289 }
290 
292  // check the node
293  check_parent(node);
294 
295  // Set this node as parent. and go down the tree
296  parent = &node;
297 
298  // visit its children
299  node.visit_children(*this);
300 
301  // I am done with these children, I go up the tree. The parent of this node is the parent
302  parent = node.get_parent();
303 }
304 
306  // check the node
307  check_parent(node);
308 
309  // Set this node as parent. and go down the tree
310  parent = &node;
311 
312  // visit its children
313  node.visit_children(*this);
314 
315  // I am done with these children, I go up the tree. The parent of this node is the parent
316  parent = node.get_parent();
317 }
318 
320  // check the node
321  check_parent(node);
322 
323  // Set this node as parent. and go down the tree
324  parent = &node;
325 
326  // visit its children
327  node.visit_children(*this);
328 
329  // I am done with these children, I go up the tree. The parent of this node is the parent
330  parent = node.get_parent();
331 }
332 
334  // check the node
335  check_parent(node);
336 
337  // Set this node as parent. and go down the tree
338  parent = &node;
339 
340  // visit its children
341  node.visit_children(*this);
342 
343  // I am done with these children, I go up the tree. The parent of this node is the parent
344  parent = node.get_parent();
345 }
346 
348  // check the node
349  check_parent(node);
350 
351  // Set this node as parent. and go down the tree
352  parent = &node;
353 
354  // visit its children
355  node.visit_children(*this);
356 
357  // I am done with these children, I go up the tree. The parent of this node is the parent
358  parent = node.get_parent();
359 }
360 
362  // check the node
363  check_parent(node);
364 
365  // Set this node as parent. and go down the tree
366  parent = &node;
367 
368  // visit its children
369  node.visit_children(*this);
370 
371  // I am done with these children, I go up the tree. The parent of this node is the parent
372  parent = node.get_parent();
373 }
374 
376  // check the node
377  check_parent(node);
378 
379  // Set this node as parent. and go down the tree
380  parent = &node;
381 
382  // visit its children
383  node.visit_children(*this);
384 
385  // I am done with these children, I go up the tree. The parent of this node is the parent
386  parent = node.get_parent();
387 }
388 
390  // check the node
391  check_parent(node);
392 
393  // Set this node as parent. and go down the tree
394  parent = &node;
395 
396  // visit its children
397  node.visit_children(*this);
398 
399  // I am done with these children, I go up the tree. The parent of this node is the parent
400  parent = node.get_parent();
401 }
402 
404  // check the node
405  check_parent(node);
406 
407  // Set this node as parent. and go down the tree
408  parent = &node;
409 
410  // visit its children
411  node.visit_children(*this);
412 
413  // I am done with these children, I go up the tree. The parent of this node is the parent
414  parent = node.get_parent();
415 }
416 
418  // check the node
419  check_parent(node);
420 
421  // Set this node as parent. and go down the tree
422  parent = &node;
423 
424  // visit its children
425  node.visit_children(*this);
426 
427  // I am done with these children, I go up the tree. The parent of this node is the parent
428  parent = node.get_parent();
429 }
430 
432  // check the node
433  check_parent(node);
434 
435  // Set this node as parent. and go down the tree
436  parent = &node;
437 
438  // visit its children
439  node.visit_children(*this);
440 
441  // I am done with these children, I go up the tree. The parent of this node is the parent
442  parent = node.get_parent();
443 }
444 
446  // check the node
447  check_parent(node);
448 
449  // Set this node as parent. and go down the tree
450  parent = &node;
451 
452  // visit its children
453  node.visit_children(*this);
454 
455  // I am done with these children, I go up the tree. The parent of this node is the parent
456  parent = node.get_parent();
457 }
458 
460  // check the node
461  check_parent(node);
462 
463  // Set this node as parent. and go down the tree
464  parent = &node;
465 
466  // visit its children
467  node.visit_children(*this);
468 
469  // I am done with these children, I go up the tree. The parent of this node is the parent
470  parent = node.get_parent();
471 }
472 
474  // check the node
475  check_parent(node);
476 
477  // Set this node as parent. and go down the tree
478  parent = &node;
479 
480  // visit its children
481  node.visit_children(*this);
482 
483  // I am done with these children, I go up the tree. The parent of this node is the parent
484  parent = node.get_parent();
485 }
486 
488  // check the node
489  check_parent(node);
490 
491  // Set this node as parent. and go down the tree
492  parent = &node;
493 
494  // visit its children
495  node.visit_children(*this);
496 
497  // I am done with these children, I go up the tree. The parent of this node is the parent
498  parent = node.get_parent();
499 }
500 
502  // check the node
503  check_parent(node);
504 
505  // Set this node as parent. and go down the tree
506  parent = &node;
507 
508  // visit its children
509  node.visit_children(*this);
510 
511  // I am done with these children, I go up the tree. The parent of this node is the parent
512  parent = node.get_parent();
513 }
514 
516  // check the node
517  check_parent(node);
518 
519  // Set this node as parent. and go down the tree
520  parent = &node;
521 
522  // visit its children
523  node.visit_children(*this);
524 
525  // I am done with these children, I go up the tree. The parent of this node is the parent
526  parent = node.get_parent();
527 }
528 
530  // check the node
531  check_parent(node);
532 
533  // Set this node as parent. and go down the tree
534  parent = &node;
535 
536  // visit its children
537  node.visit_children(*this);
538 
539  // I am done with these children, I go up the tree. The parent of this node is the parent
540  parent = node.get_parent();
541 }
542 
544  // check the node
545  check_parent(node);
546 
547  // Set this node as parent. and go down the tree
548  parent = &node;
549 
550  // visit its children
551  node.visit_children(*this);
552 
553  // I am done with these children, I go up the tree. The parent of this node is the parent
554  parent = node.get_parent();
555 }
556 
558  // check the node
559  check_parent(node);
560 
561  // Set this node as parent. and go down the tree
562  parent = &node;
563 
564  // visit its children
565  node.visit_children(*this);
566 
567  // I am done with these children, I go up the tree. The parent of this node is the parent
568  parent = node.get_parent();
569 }
570 
572  // check the node
573  check_parent(node);
574 
575  // Set this node as parent. and go down the tree
576  parent = &node;
577 
578  // visit its children
579  node.visit_children(*this);
580 
581  // I am done with these children, I go up the tree. The parent of this node is the parent
582  parent = node.get_parent();
583 }
584 
586  // check the node
587  check_parent(node);
588 
589  // Set this node as parent. and go down the tree
590  parent = &node;
591 
592  // visit its children
593  node.visit_children(*this);
594 
595  // I am done with these children, I go up the tree. The parent of this node is the parent
596  parent = node.get_parent();
597 }
598 
600  // check the node
601  check_parent(node);
602 
603  // Set this node as parent. and go down the tree
604  parent = &node;
605 
606  // visit its children
607  node.visit_children(*this);
608 
609  // I am done with these children, I go up the tree. The parent of this node is the parent
610  parent = node.get_parent();
611 }
612 
614  // check the node
615  check_parent(node);
616 
617  // Set this node as parent. and go down the tree
618  parent = &node;
619 
620  // visit its children
621  node.visit_children(*this);
622 
623  // I am done with these children, I go up the tree. The parent of this node is the parent
624  parent = node.get_parent();
625 }
626 
628  // check the node
629  check_parent(node);
630 
631  // Set this node as parent. and go down the tree
632  parent = &node;
633 
634  // visit its children
635  node.visit_children(*this);
636 
637  // I am done with these children, I go up the tree. The parent of this node is the parent
638  parent = node.get_parent();
639 }
640 
642  // check the node
643  check_parent(node);
644 
645  // Set this node as parent. and go down the tree
646  parent = &node;
647 
648  // visit its children
649  node.visit_children(*this);
650 
651  // I am done with these children, I go up the tree. The parent of this node is the parent
652  parent = node.get_parent();
653 }
654 
656  // check the node
657  check_parent(node);
658 
659  // Set this node as parent. and go down the tree
660  parent = &node;
661 
662  // visit its children
663  node.visit_children(*this);
664 
665  // I am done with these children, I go up the tree. The parent of this node is the parent
666  parent = node.get_parent();
667 }
668 
670  // check the node
671  check_parent(node);
672 
673  // Set this node as parent. and go down the tree
674  parent = &node;
675 
676  // visit its children
677  node.visit_children(*this);
678 
679  // I am done with these children, I go up the tree. The parent of this node is the parent
680  parent = node.get_parent();
681 }
682 
684  // check the node
685  check_parent(node);
686 
687  // Set this node as parent. and go down the tree
688  parent = &node;
689 
690  // visit its children
691  node.visit_children(*this);
692 
693  // I am done with these children, I go up the tree. The parent of this node is the parent
694  parent = node.get_parent();
695 }
696 
698  // check the node
699  check_parent(node);
700 
701  // Set this node as parent. and go down the tree
702  parent = &node;
703 
704  // visit its children
705  node.visit_children(*this);
706 
707  // I am done with these children, I go up the tree. The parent of this node is the parent
708  parent = node.get_parent();
709 }
710 
712  // check the node
713  check_parent(node);
714 
715  // Set this node as parent. and go down the tree
716  parent = &node;
717 
718  // visit its children
719  node.visit_children(*this);
720 
721  // I am done with these children, I go up the tree. The parent of this node is the parent
722  parent = node.get_parent();
723 }
724 
726  // check the node
727  check_parent(node);
728 
729  // Set this node as parent. and go down the tree
730  parent = &node;
731 
732  // visit its children
733  node.visit_children(*this);
734 
735  // I am done with these children, I go up the tree. The parent of this node is the parent
736  parent = node.get_parent();
737 }
738 
740  // check the node
741  check_parent(node);
742 
743  // Set this node as parent. and go down the tree
744  parent = &node;
745 
746  // visit its children
747  node.visit_children(*this);
748 
749  // I am done with these children, I go up the tree. The parent of this node is the parent
750  parent = node.get_parent();
751 }
752 
754  // check the node
755  check_parent(node);
756 
757  // Set this node as parent. and go down the tree
758  parent = &node;
759 
760  // visit its children
761  node.visit_children(*this);
762 
763  // I am done with these children, I go up the tree. The parent of this node is the parent
764  parent = node.get_parent();
765 }
766 
768  // check the node
769  check_parent(node);
770 
771  // Set this node as parent. and go down the tree
772  parent = &node;
773 
774  // visit its children
775  node.visit_children(*this);
776 
777  // I am done with these children, I go up the tree. The parent of this node is the parent
778  parent = node.get_parent();
779 }
780 
782  // check the node
783  check_parent(node);
784 
785  // Set this node as parent. and go down the tree
786  parent = &node;
787 
788  // visit its children
789  node.visit_children(*this);
790 
791  // I am done with these children, I go up the tree. The parent of this node is the parent
792  parent = node.get_parent();
793 }
794 
796  // check the node
797  check_parent(node);
798 
799  // Set this node as parent. and go down the tree
800  parent = &node;
801 
802  // visit its children
803  node.visit_children(*this);
804 
805  // I am done with these children, I go up the tree. The parent of this node is the parent
806  parent = node.get_parent();
807 }
808 
810  // check the node
811  check_parent(node);
812 
813  // Set this node as parent. and go down the tree
814  parent = &node;
815 
816  // visit its children
817  node.visit_children(*this);
818 
819  // I am done with these children, I go up the tree. The parent of this node is the parent
820  parent = node.get_parent();
821 }
822 
824  // check the node
825  check_parent(node);
826 
827  // Set this node as parent. and go down the tree
828  parent = &node;
829 
830  // visit its children
831  node.visit_children(*this);
832 
833  // I am done with these children, I go up the tree. The parent of this node is the parent
834  parent = node.get_parent();
835 }
836 
838  // check the node
839  check_parent(node);
840 
841  // Set this node as parent. and go down the tree
842  parent = &node;
843 
844  // visit its children
845  node.visit_children(*this);
846 
847  // I am done with these children, I go up the tree. The parent of this node is the parent
848  parent = node.get_parent();
849 }
850 
852  // check the node
853  check_parent(node);
854 
855  // Set this node as parent. and go down the tree
856  parent = &node;
857 
858  // visit its children
859  node.visit_children(*this);
860 
861  // I am done with these children, I go up the tree. The parent of this node is the parent
862  parent = node.get_parent();
863 }
864 
866  // check the node
867  check_parent(node);
868 
869  // Set this node as parent. and go down the tree
870  parent = &node;
871 
872  // visit its children
873  node.visit_children(*this);
874 
875  // I am done with these children, I go up the tree. The parent of this node is the parent
876  parent = node.get_parent();
877 }
878 
880  // check the node
881  check_parent(node);
882 
883  // Set this node as parent. and go down the tree
884  parent = &node;
885 
886  // visit its children
887  node.visit_children(*this);
888 
889  // I am done with these children, I go up the tree. The parent of this node is the parent
890  parent = node.get_parent();
891 }
892 
894  // check the node
895  check_parent(node);
896 
897  // Set this node as parent. and go down the tree
898  parent = &node;
899 
900  // visit its children
901  node.visit_children(*this);
902 
903  // I am done with these children, I go up the tree. The parent of this node is the parent
904  parent = node.get_parent();
905 }
906 
908  // check the node
909  check_parent(node);
910 
911  // Set this node as parent. and go down the tree
912  parent = &node;
913 
914  // visit its children
915  node.visit_children(*this);
916 
917  // I am done with these children, I go up the tree. The parent of this node is the parent
918  parent = node.get_parent();
919 }
920 
922  // check the node
923  check_parent(node);
924 
925  // Set this node as parent. and go down the tree
926  parent = &node;
927 
928  // visit its children
929  node.visit_children(*this);
930 
931  // I am done with these children, I go up the tree. The parent of this node is the parent
932  parent = node.get_parent();
933 }
934 
936  // check the node
937  check_parent(node);
938 
939  // Set this node as parent. and go down the tree
940  parent = &node;
941 
942  // visit its children
943  node.visit_children(*this);
944 
945  // I am done with these children, I go up the tree. The parent of this node is the parent
946  parent = node.get_parent();
947 }
948 
950  // check the node
951  check_parent(node);
952 
953  // Set this node as parent. and go down the tree
954  parent = &node;
955 
956  // visit its children
957  node.visit_children(*this);
958 
959  // I am done with these children, I go up the tree. The parent of this node is the parent
960  parent = node.get_parent();
961 }
962 
964  // check the node
965  check_parent(node);
966 
967  // Set this node as parent. and go down the tree
968  parent = &node;
969 
970  // visit its children
971  node.visit_children(*this);
972 
973  // I am done with these children, I go up the tree. The parent of this node is the parent
974  parent = node.get_parent();
975 }
976 
978  // check the node
979  check_parent(node);
980 
981  // Set this node as parent. and go down the tree
982  parent = &node;
983 
984  // visit its children
985  node.visit_children(*this);
986 
987  // I am done with these children, I go up the tree. The parent of this node is the parent
988  parent = node.get_parent();
989 }
990 
992  // check the node
993  check_parent(node);
994 
995  // Set this node as parent. and go down the tree
996  parent = &node;
997 
998  // visit its children
999  node.visit_children(*this);
1000 
1001  // I am done with these children, I go up the tree. The parent of this node is the parent
1002  parent = node.get_parent();
1003 }
1004 
1006  // check the node
1007  check_parent(node);
1008 
1009  // Set this node as parent. and go down the tree
1010  parent = &node;
1011 
1012  // visit its children
1013  node.visit_children(*this);
1014 
1015  // I am done with these children, I go up the tree. The parent of this node is the parent
1016  parent = node.get_parent();
1017 }
1018 
1020  // check the node
1021  check_parent(node);
1022 
1023  // Set this node as parent. and go down the tree
1024  parent = &node;
1025 
1026  // visit its children
1027  node.visit_children(*this);
1028 
1029  // I am done with these children, I go up the tree. The parent of this node is the parent
1030  parent = node.get_parent();
1031 }
1032 
1034  // check the node
1035  check_parent(node);
1036 
1037  // Set this node as parent. and go down the tree
1038  parent = &node;
1039 
1040  // visit its children
1041  node.visit_children(*this);
1042 
1043  // I am done with these children, I go up the tree. The parent of this node is the parent
1044  parent = node.get_parent();
1045 }
1046 
1048  // check the node
1049  check_parent(node);
1050 
1051  // Set this node as parent. and go down the tree
1052  parent = &node;
1053 
1054  // visit its children
1055  node.visit_children(*this);
1056 
1057  // I am done with these children, I go up the tree. The parent of this node is the parent
1058  parent = node.get_parent();
1059 }
1060 
1062  // check the node
1063  check_parent(node);
1064 
1065  // Set this node as parent. and go down the tree
1066  parent = &node;
1067 
1068  // visit its children
1069  node.visit_children(*this);
1070 
1071  // I am done with these children, I go up the tree. The parent of this node is the parent
1072  parent = node.get_parent();
1073 }
1074 
1076  // check the node
1077  check_parent(node);
1078 
1079  // Set this node as parent. and go down the tree
1080  parent = &node;
1081 
1082  // visit its children
1083  node.visit_children(*this);
1084 
1085  // I am done with these children, I go up the tree. The parent of this node is the parent
1086  parent = node.get_parent();
1087 }
1088 
1090  // check the node
1091  check_parent(node);
1092 
1093  // Set this node as parent. and go down the tree
1094  parent = &node;
1095 
1096  // visit its children
1097  node.visit_children(*this);
1098 
1099  // I am done with these children, I go up the tree. The parent of this node is the parent
1100  parent = node.get_parent();
1101 }
1102 
1104  // check the node
1105  check_parent(node);
1106 
1107  // Set this node as parent. and go down the tree
1108  parent = &node;
1109 
1110  // visit its children
1111  node.visit_children(*this);
1112 
1113  // I am done with these children, I go up the tree. The parent of this node is the parent
1114  parent = node.get_parent();
1115 }
1116 
1118  // check the node
1119  check_parent(node);
1120 
1121  // Set this node as parent. and go down the tree
1122  parent = &node;
1123 
1124  // visit its children
1125  node.visit_children(*this);
1126 
1127  // I am done with these children, I go up the tree. The parent of this node is the parent
1128  parent = node.get_parent();
1129 }
1130 
1132  // check the node
1133  check_parent(node);
1134 
1135  // Set this node as parent. and go down the tree
1136  parent = &node;
1137 
1138  // visit its children
1139  node.visit_children(*this);
1140 
1141  // I am done with these children, I go up the tree. The parent of this node is the parent
1142  parent = node.get_parent();
1143 }
1144 
1146  // check the node
1147  check_parent(node);
1148 
1149  // Set this node as parent. and go down the tree
1150  parent = &node;
1151 
1152  // visit its children
1153  node.visit_children(*this);
1154 
1155  // I am done with these children, I go up the tree. The parent of this node is the parent
1156  parent = node.get_parent();
1157 }
1158 
1160  // check the node
1161  check_parent(node);
1162 
1163  // Set this node as parent. and go down the tree
1164  parent = &node;
1165 
1166  // visit its children
1167  node.visit_children(*this);
1168 
1169  // I am done with these children, I go up the tree. The parent of this node is the parent
1170  parent = node.get_parent();
1171 }
1172 
1174  // check the node
1175  check_parent(node);
1176 
1177  // Set this node as parent. and go down the tree
1178  parent = &node;
1179 
1180  // visit its children
1181  node.visit_children(*this);
1182 
1183  // I am done with these children, I go up the tree. The parent of this node is the parent
1184  parent = node.get_parent();
1185 }
1186 
1188  // check the node
1189  check_parent(node);
1190 
1191  // Set this node as parent. and go down the tree
1192  parent = &node;
1193 
1194  // visit its children
1195  node.visit_children(*this);
1196 
1197  // I am done with these children, I go up the tree. The parent of this node is the parent
1198  parent = node.get_parent();
1199 }
1200 
1202  // check the node
1203  check_parent(node);
1204 
1205  // Set this node as parent. and go down the tree
1206  parent = &node;
1207 
1208  // visit its children
1209  node.visit_children(*this);
1210 
1211  // I am done with these children, I go up the tree. The parent of this node is the parent
1212  parent = node.get_parent();
1213 }
1214 
1216  // check the node
1217  check_parent(node);
1218 
1219  // Set this node as parent. and go down the tree
1220  parent = &node;
1221 
1222  // visit its children
1223  node.visit_children(*this);
1224 
1225  // I am done with these children, I go up the tree. The parent of this node is the parent
1226  parent = node.get_parent();
1227 }
1228 
1230  // check the node
1231  check_parent(node);
1232 
1233  // Set this node as parent. and go down the tree
1234  parent = &node;
1235 
1236  // visit its children
1237  node.visit_children(*this);
1238 
1239  // I am done with these children, I go up the tree. The parent of this node is the parent
1240  parent = node.get_parent();
1241 }
1242 
1244  // check the node
1245  check_parent(node);
1246 
1247  // Set this node as parent. and go down the tree
1248  parent = &node;
1249 
1250  // visit its children
1251  node.visit_children(*this);
1252 
1253  // I am done with these children, I go up the tree. The parent of this node is the parent
1254  parent = node.get_parent();
1255 }
1256 
1258  // check the node
1259  check_parent(node);
1260 
1261  // Set this node as parent. and go down the tree
1262  parent = &node;
1263 
1264  // visit its children
1265  node.visit_children(*this);
1266 
1267  // I am done with these children, I go up the tree. The parent of this node is the parent
1268  parent = node.get_parent();
1269 }
1270 
1272  // check the node
1273  check_parent(node);
1274 
1275  // Set this node as parent. and go down the tree
1276  parent = &node;
1277 
1278  // visit its children
1279  node.visit_children(*this);
1280 
1281  // I am done with these children, I go up the tree. The parent of this node is the parent
1282  parent = node.get_parent();
1283 }
1284 
1286  // check the node
1287  check_parent(node);
1288 
1289  // Set this node as parent. and go down the tree
1290  parent = &node;
1291 
1292  // visit its children
1293  node.visit_children(*this);
1294 
1295  // I am done with these children, I go up the tree. The parent of this node is the parent
1296  parent = node.get_parent();
1297 }
1298 
1300  // check the node
1301  check_parent(node);
1302 
1303  // Set this node as parent. and go down the tree
1304  parent = &node;
1305 
1306  // visit its children
1307  node.visit_children(*this);
1308 
1309  // I am done with these children, I go up the tree. The parent of this node is the parent
1310  parent = node.get_parent();
1311 }
1312 
1314  // check the node
1315  check_parent(node);
1316 
1317  // Set this node as parent. and go down the tree
1318  parent = &node;
1319 
1320  // visit its children
1321  node.visit_children(*this);
1322 
1323  // I am done with these children, I go up the tree. The parent of this node is the parent
1324  parent = node.get_parent();
1325 }
1326 
1328  // check the node
1329  check_parent(node);
1330 
1331  // Set this node as parent. and go down the tree
1332  parent = &node;
1333 
1334  // visit its children
1335  node.visit_children(*this);
1336 
1337  // I am done with these children, I go up the tree. The parent of this node is the parent
1338  parent = node.get_parent();
1339 }
1340 
1342  // check the node
1343  check_parent(node);
1344 
1345  // Set this node as parent. and go down the tree
1346  parent = &node;
1347 
1348  // visit its children
1349  node.visit_children(*this);
1350 
1351  // I am done with these children, I go up the tree. The parent of this node is the parent
1352  parent = node.get_parent();
1353 }
1354 
1356  // check the node
1357  check_parent(node);
1358 
1359  // Set this node as parent. and go down the tree
1360  parent = &node;
1361 
1362  // visit its children
1363  node.visit_children(*this);
1364 
1365  // I am done with these children, I go up the tree. The parent of this node is the parent
1366  parent = node.get_parent();
1367 }
1368 
1370  // check the node
1371  check_parent(node);
1372 
1373  // Set this node as parent. and go down the tree
1374  parent = &node;
1375 
1376  // visit its children
1377  node.visit_children(*this);
1378 
1379  // I am done with these children, I go up the tree. The parent of this node is the parent
1380  parent = node.get_parent();
1381 }
1382 
1384  // check the node
1385  check_parent(node);
1386 
1387  // Set this node as parent. and go down the tree
1388  parent = &node;
1389 
1390  // visit its children
1391  node.visit_children(*this);
1392 
1393  // I am done with these children, I go up the tree. The parent of this node is the parent
1394  parent = node.get_parent();
1395 }
1396 
1398  // check the node
1399  check_parent(node);
1400 
1401  // Set this node as parent. and go down the tree
1402  parent = &node;
1403 
1404  // visit its children
1405  node.visit_children(*this);
1406 
1407  // I am done with these children, I go up the tree. The parent of this node is the parent
1408  parent = node.get_parent();
1409 }
1410 
1412  // check the node
1413  check_parent(node);
1414 
1415  // Set this node as parent. and go down the tree
1416  parent = &node;
1417 
1418  // visit its children
1419  node.visit_children(*this);
1420 
1421  // I am done with these children, I go up the tree. The parent of this node is the parent
1422  parent = node.get_parent();
1423 }
1424 
1426  // check the node
1427  check_parent(node);
1428 
1429  // Set this node as parent. and go down the tree
1430  parent = &node;
1431 
1432  // visit its children
1433  node.visit_children(*this);
1434 
1435  // I am done with these children, I go up the tree. The parent of this node is the parent
1436  parent = node.get_parent();
1437 }
1438 
1440  // check the node
1441  check_parent(node);
1442 
1443  // Set this node as parent. and go down the tree
1444  parent = &node;
1445 
1446  // visit its children
1447  node.visit_children(*this);
1448 
1449  // I am done with these children, I go up the tree. The parent of this node is the parent
1450  parent = node.get_parent();
1451 }
1452 
1454  // check the node
1455  check_parent(node);
1456 
1457  // Set this node as parent. and go down the tree
1458  parent = &node;
1459 
1460  // visit its children
1461  node.visit_children(*this);
1462 
1463  // I am done with these children, I go up the tree. The parent of this node is the parent
1464  parent = node.get_parent();
1465 }
1466 
1468  // check the node
1469  check_parent(node);
1470 
1471  // Set this node as parent. and go down the tree
1472  parent = &node;
1473 
1474  // visit its children
1475  node.visit_children(*this);
1476 
1477  // I am done with these children, I go up the tree. The parent of this node is the parent
1478  parent = node.get_parent();
1479 }
1480 
1482  // check the node
1483  check_parent(node);
1484 
1485  // Set this node as parent. and go down the tree
1486  parent = &node;
1487 
1488  // visit its children
1489  node.visit_children(*this);
1490 
1491  // I am done with these children, I go up the tree. The parent of this node is the parent
1492  parent = node.get_parent();
1493 }
1494 
1496  // check the node
1497  check_parent(node);
1498 
1499  // Set this node as parent. and go down the tree
1500  parent = &node;
1501 
1502  // visit its children
1503  node.visit_children(*this);
1504 
1505  // I am done with these children, I go up the tree. The parent of this node is the parent
1506  parent = node.get_parent();
1507 }
1508 
1510  // check the node
1511  check_parent(node);
1512 
1513  // Set this node as parent. and go down the tree
1514  parent = &node;
1515 
1516  // visit its children
1517  node.visit_children(*this);
1518 
1519  // I am done with these children, I go up the tree. The parent of this node is the parent
1520  parent = node.get_parent();
1521 }
1522 
1524  // check the node
1525  check_parent(node);
1526 
1527  // Set this node as parent. and go down the tree
1528  parent = &node;
1529 
1530  // visit its children
1531  node.visit_children(*this);
1532 
1533  // I am done with these children, I go up the tree. The parent of this node is the parent
1534  parent = node.get_parent();
1535 }
1536 
1538  // check the node
1539  check_parent(node);
1540 
1541  // Set this node as parent. and go down the tree
1542  parent = &node;
1543 
1544  // visit its children
1545  node.visit_children(*this);
1546 
1547  // I am done with these children, I go up the tree. The parent of this node is the parent
1548  parent = node.get_parent();
1549 }
1550 
1552  // check the node
1553  check_parent(node);
1554 
1555  // Set this node as parent. and go down the tree
1556  parent = &node;
1557 
1558  // visit its children
1559  node.visit_children(*this);
1560 
1561  // I am done with these children, I go up the tree. The parent of this node is the parent
1562  parent = node.get_parent();
1563 }
1564 
1566  // check the node
1567  check_parent(node);
1568 
1569  // Set this node as parent. and go down the tree
1570  parent = &node;
1571 
1572  // visit its children
1573  node.visit_children(*this);
1574 
1575  // I am done with these children, I go up the tree. The parent of this node is the parent
1576  parent = node.get_parent();
1577 }
1578 
1580  // check the node
1581  check_parent(node);
1582 
1583  // Set this node as parent. and go down the tree
1584  parent = &node;
1585 
1586  // visit its children
1587  node.visit_children(*this);
1588 
1589  // I am done with these children, I go up the tree. The parent of this node is the parent
1590  parent = node.get_parent();
1591 }
1592 
1594  // check the node
1595  check_parent(node);
1596 
1597  // Set this node as parent. and go down the tree
1598  parent = &node;
1599 
1600  // visit its children
1601  node.visit_children(*this);
1602 
1603  // I am done with these children, I go up the tree. The parent of this node is the parent
1604  parent = node.get_parent();
1605 }
1606 
1608  // check the node
1609  check_parent(node);
1610 
1611  // Set this node as parent. and go down the tree
1612  parent = &node;
1613 
1614  // visit its children
1615  node.visit_children(*this);
1616 
1617  // I am done with these children, I go up the tree. The parent of this node is the parent
1618  parent = node.get_parent();
1619 }
1620 
1622  // check the node
1623  check_parent(node);
1624 
1625  // Set this node as parent. and go down the tree
1626  parent = &node;
1627 
1628  // visit its children
1629  node.visit_children(*this);
1630 
1631  // I am done with these children, I go up the tree. The parent of this node is the parent
1632  parent = node.get_parent();
1633 }
1634 
1636  // check the node
1637  check_parent(node);
1638 
1639  // Set this node as parent. and go down the tree
1640  parent = &node;
1641 
1642  // visit its children
1643  node.visit_children(*this);
1644 
1645  // I am done with these children, I go up the tree. The parent of this node is the parent
1646  parent = node.get_parent();
1647 }
1648 
1650  // check the node
1651  check_parent(node);
1652 
1653  // Set this node as parent. and go down the tree
1654  parent = &node;
1655 
1656  // visit its children
1657  node.visit_children(*this);
1658 
1659  // I am done with these children, I go up the tree. The parent of this node is the parent
1660  parent = node.get_parent();
1661 }
1662 
1664  // check the node
1665  check_parent(node);
1666 
1667  // Set this node as parent. and go down the tree
1668  parent = &node;
1669 
1670  // visit its children
1671  node.visit_children(*this);
1672 
1673  // I am done with these children, I go up the tree. The parent of this node is the parent
1674  parent = node.get_parent();
1675 }
1676 
1678  // check the node
1679  check_parent(node);
1680 
1681  // Set this node as parent. and go down the tree
1682  parent = &node;
1683 
1684  // visit its children
1685  node.visit_children(*this);
1686 
1687  // I am done with these children, I go up the tree. The parent of this node is the parent
1688  parent = node.get_parent();
1689 }
1690 
1692  // check the node
1693  check_parent(node);
1694 
1695  // Set this node as parent. and go down the tree
1696  parent = &node;
1697 
1698  // visit its children
1699  node.visit_children(*this);
1700 
1701  // I am done with these children, I go up the tree. The parent of this node is the parent
1702  parent = node.get_parent();
1703 }
1704 
1706  // check the node
1707  check_parent(node);
1708 
1709  // Set this node as parent. and go down the tree
1710  parent = &node;
1711 
1712  // visit its children
1713  node.visit_children(*this);
1714 
1715  // I am done with these children, I go up the tree. The parent of this node is the parent
1716  parent = node.get_parent();
1717 }
1718 
1720  // check the node
1721  check_parent(node);
1722 
1723  // Set this node as parent. and go down the tree
1724  parent = &node;
1725 
1726  // visit its children
1727  node.visit_children(*this);
1728 
1729  // I am done with these children, I go up the tree. The parent of this node is the parent
1730  parent = node.get_parent();
1731 }
1732 
1734  // check the node
1735  check_parent(node);
1736 
1737  // Set this node as parent. and go down the tree
1738  parent = &node;
1739 
1740  // visit its children
1741  node.visit_children(*this);
1742 
1743  // I am done with these children, I go up the tree. The parent of this node is the parent
1744  parent = node.get_parent();
1745 }
1746 
1748  // check the node
1749  check_parent(node);
1750 
1751  // Set this node as parent. and go down the tree
1752  parent = &node;
1753 
1754  // visit its children
1755  node.visit_children(*this);
1756 
1757  // I am done with these children, I go up the tree. The parent of this node is the parent
1758  parent = node.get_parent();
1759 }
1760 
1761 
1762 } // namespace test
1763 } // namespace visitor
1764 } // namespace nmodl
nmodl::visitor::test::CheckParentVisitor::visit_constructor_block
void visit_constructor_block(const ast::ConstructorBlock &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:501
nmodl::ast::LocalListStatement::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:7981
nmodl::ast::IfStatement::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:9551
nmodl::ast::NrnStateBlock::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:12988
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::FunctionTableBlock::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:3810
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::test::CheckParentVisitor::visit_node
void visit_node(const ast::Node &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:53
nmodl::ast::UnaryOperator
TODO.
Definition: unary_operator.hpp:38
nmodl::ast::ConstantBlock::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:5380
nmodl::ast::SolveBlock
TODO.
Definition: solve_block.hpp:38
nmodl::visitor::test::CheckParentVisitor::visit_before_block
void visit_before_block(const ast::BeforeBlock &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:683
nmodl::ast::Include
Represents an INCLUDE statement in NMODL.
Definition: include.hpp:39
nmodl::ast::Unit
TODO.
Definition: unit.hpp:38
nmodl::ast::Model::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:8067
nmodl::ast::Boolean::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:734
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::ast::NeuronBlock::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:5466
nmodl::visitor::test::CheckParentVisitor::visit_function_table_block
void visit_function_table_block(const ast::FunctionTableBlock &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:599
nmodl::ast::DoubleUnit::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:5639
nmodl::ast::Name::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:795
nmodl::visitor::test::CheckParentVisitor::visit_mutex_lock
void visit_mutex_lock(const ast::MutexLock &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1313
nmodl::ast::Identifier::visit_children
virtual void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:410
nmodl::ast::LinEquation::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:6948
nmodl::visitor::test::CheckParentVisitor::visit_argument
void visit_argument(const ast::Argument &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:263
nmodl::ast::Identifier
Base class for all identifiers.
Definition: identifier.hpp:41
nmodl::visitor::test::CheckParentVisitor::visit_unit_block
void visit_unit_block(const ast::UnitBlock &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:753
nmodl::visitor::test::CheckParentVisitor::visit_program
void visit_program(const ast::Program &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1649
nmodl::visitor::test::CheckParentVisitor::visit_if_statement
void visit_if_statement(const ast::IfStatement &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1257
nmodl::visitor::test::CheckParentVisitor::visit_eigen_linear_solver_block
void visit_eigen_linear_solver_block(const ast::EigenLinearSolverBlock &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1691
nmodl::ast::DiffEqExpression
Represents differential equation in DERIVATIVE block.
Definition: diff_eq_expression.hpp:38
nmodl::ast::Ast
Base class for all Abstract Syntax Tree node types.
Definition: ast.hpp:69
nmodl::ast::AssignedDefinition
Represents a statement in ASSIGNED or STATE block.
Definition: assigned_definition.hpp:38
nmodl::visitor::test::CheckParentVisitor::visit_param_assign
void visit_param_assign(const ast::ParamAssign &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1159
nmodl::ast::IndependentBlock::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:2478
nmodl::ast::FactorDef
TODO.
Definition: factor_def.hpp:38
nmodl::visitor::test::CheckParentVisitor::visit_react_var_name
void visit_react_var_name(const ast::ReactVarName &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:277
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::Range
Represents RANGE variables statement in NMODL.
Definition: range.hpp:39
nmodl::visitor::test::CheckParentVisitor::visit_electrode_current
void visit_electrode_current(const ast::ElectrodeCurrent &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1481
nmodl::visitor::test::CheckParentVisitor::visit_procedure_block
void visit_procedure_block(const ast::ProcedureBlock &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:627
nmodl::ast::PointerVar
TODO.
Definition: pointer_var.hpp:38
nmodl::visitor::test::CheckParentVisitor::visit_factor_def
void visit_factor_def(const ast::FactorDef &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1061
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::BbcorePointerVar
Represent a single variable of type BBCOREPOINTER.
Definition: bbcore_pointer_var.hpp:39
nmodl::visitor::test::CheckParentVisitor::visit_verbatim
void visit_verbatim(const ast::Verbatim &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1593
nmodl::ast::ElectrodeCurrent::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:11687
nmodl::visitor::test::CheckParentVisitor::visit_range_var
void visit_range_var(const ast::RangeVar &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:347
nmodl::visitor::test::CheckParentVisitor::visit_string
void visit_string(const ast::String &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:137
nmodl::ast::NetReceiveBlock
TODO.
Definition: net_receive_block.hpp:39
nmodl::visitor::test::CheckParentVisitor::visit_else_statement
void visit_else_statement(const ast::ElseStatement &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1285
nmodl::visitor::test::CheckParentVisitor::visit_while_statement
void visit_while_statement(const ast::WhileStatement &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1243
nmodl::ast::FunctionTableBlock
TODO.
Definition: function_table_block.hpp:39
nmodl::ast::StatementBlock::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:3158
nmodl::ast::Conserve
Represent CONSERVE statement in NMODL.
Definition: conserve.hpp:38
nmodl::ast::BbcorePointerVar::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:2222
nmodl::ast::RandomVar::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:2136
nmodl::ast::DoubleUnit
TODO.
Definition: double_unit.hpp:38
nmodl::ast::UnitBlock
TODO.
Definition: unit_block.hpp:39
nmodl::visitor::test::CheckParentVisitor::visit_extern_var
void visit_extern_var(const ast::ExternVar &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:417
nmodl::ast::BlockComment
Represents a multi-line comment in NMODL.
Definition: block_comment.hpp:38
nmodl::visitor::test::CheckParentVisitor::visit_constant_block
void visit_constant_block(const ast::ConstantBlock &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:767
nmodl::ast::ConductanceHint
Represents CONDUCTANCE statement in NMODL.
Definition: conductance_hint.hpp:46
nmodl::visitor::test::CheckParentVisitor::visit_mutex_unlock
void visit_mutex_unlock(const ast::MutexUnlock &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1327
nmodl::ast::Pointer::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:12201
nmodl::ast::FactorDef::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:7499
nmodl::visitor::test::CheckParentVisitor::visit_statement
void visit_statement(const ast::Statement &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:67
nmodl::ast::UnitDef::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:7370
nmodl::visitor::test::CheckParentVisitor::visit_function_call
void visit_function_call(const ast::FunctionCall &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1005
nmodl
encapsulates code generation backend implementations
Definition: ast_common.hpp:26
nmodl::visitor::test::CheckParentVisitor::visit_nonspecific_cur_var
void visit_nonspecific_cur_var(const ast::NonspecificCurVar &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:319
nmodl::visitor::test::CheckParentVisitor::visit_line_comment
void visit_line_comment(const ast::LineComment &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1607
nmodl::visitor::test::CheckParentVisitor::visit_kinetic_block
void visit_kinetic_block(const ast::KineticBlock &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:739
nmodl::ast::FromStatement::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:9212
nmodl::ast::Model
TODO.
Definition: model.hpp:38
nmodl::ast::ReactVarName
TODO.
Definition: react_var_name.hpp:38
nmodl::ast::Number::visit_children
virtual void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:432
nmodl::ast::Define
Represents a DEFINE statement in NMODL.
Definition: define.hpp:38
nmodl::visitor::test::CheckParentVisitor::visit_double_unit
void visit_double_unit(const ast::DoubleUnit &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:809
nmodl::visitor::test::CheckParentVisitor::visit_unit_def
void visit_unit_def(const ast::UnitDef &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1047
nmodl::visitor::test::CheckParentVisitor::visit_external
void visit_external(const ast::External &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1565
nmodl::visitor::test::CheckParentVisitor::visit_name
void visit_name(const ast::Name &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:207
nmodl::visitor::test::CheckParentVisitor::visit_for_netcon
void visit_for_netcon(const ast::ForNetcon &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:725
nmodl::ast::MutexLock
Represent MUTEXLOCK statement in NMODL.
Definition: mutex_lock.hpp:38
nmodl::visitor::test::CheckParentVisitor::visit_lin_equation
void visit_lin_equation(const ast::LinEquation &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:991
nmodl::ast::WriteIonVar
TODO.
Definition: write_ion_var.hpp:38
nmodl::ast::WhileStatement
TODO.
Definition: while_statement.hpp:38
nmodl::ast::NonspecificCurVar::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:1706
nmodl::ast::Valence
TODO.
Definition: valence.hpp:38
nmodl::visitor::test::CheckParentVisitor::visit_indexed_name
void visit_indexed_name(const ast::IndexedName &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:235
nmodl::visitor::test::CheckParentVisitor::visit_ontology_statement
void visit_ontology_statement(const ast::OntologyStatement &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1635
nmodl::ast::TableStatement
Represents TABLE statement in NMODL.
Definition: table_statement.hpp:39
nmodl::ast::BABlockType::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:7306
nmodl::ast::VarName
Represents a variable.
Definition: var_name.hpp:43
nmodl::ast::ExternVar
TODO.
Definition: extern_var.hpp:38
nmodl::ast::Integer
Represents an integer variable.
Definition: integer.hpp:49
nmodl::ast::Suffix
Represents SUFFIX statement in NMODL.
Definition: suffix.hpp:38
nmodl::ast::ElseIfStatement
TODO.
Definition: else_if_statement.hpp:38
nmodl::ast::RandomVar
Single variable of type RANDOM.
Definition: random_var.hpp:38
nmodl::ast::Statement::visit_children
virtual void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:344
nmodl::ast::RandomVarList::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:12030
nmodl::visitor::test::CheckParentVisitor::visit_random_var
void visit_random_var(const ast::RandomVar &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:389
nmodl::ast::Double::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:675
nmodl::ast::WatchStatement::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:10024
nmodl::ast::FunctionBlock::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:3976
nmodl::visitor::test::CheckParentVisitor::visit_lag_statement
void visit_lag_statement(const ast::LagStatement &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1397
nmodl::visitor::test::CheckParentVisitor::visit_assigned_definition
void visit_assigned_definition(const ast::AssignedDefinition &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1173
nmodl::visitor::test::CheckParentVisitor::visit_linear_block
void visit_linear_block(const ast::LinearBlock &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:557
nmodl::ast::ProcedureBlock::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:4173
nmodl::ast::AssignedBlock::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:2649
nmodl::ast::ElseStatement::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:9855
nmodl::ast::AfterBlock::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:4810
nmodl::ast::ParamAssign::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:8405
nmodl::ast::Suffix::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:11246
nmodl::ast::AssignedBlock
Represents a ASSIGNED block in the NMODL.
Definition: assigned_block.hpp:54
nmodl::ast::RangeVar
TODO.
Definition: range_var.hpp:38
nmodl::ast::Watch::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:7191
nmodl::ast::KineticBlock::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:5143
nmodl::visitor::test::CheckParentVisitor::visit_float
void visit_float(const ast::Float &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:165
nmodl::visitor::test::CheckParentVisitor::visit_protect_statement
void visit_protect_statement(const ast::ProtectStatement &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1215
nmodl::ast::EigenNewtonSolverBlock
Represent newton solver solution block based on Eigen.
Definition: eigen_newton_solver_block.hpp:38
nmodl::ast::LagStatement::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:10812
nmodl::visitor::test::CheckParentVisitor::visit_var_name
void visit_var_name(const ast::VarName &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:249
nmodl::ast::LinearBlock::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:3372
nmodl::visitor::test::CheckParentVisitor::check_parent
void check_parent(const ast::Ast &node) const
Check the parent, throw an error if not.
Definition: checkparent_visitor.cpp:34
nmodl::ast::Define::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:8156
nmodl::visitor::test::CheckParentVisitor::visit_identifier
void visit_identifier(const ast::Identifier &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:109
nmodl::ast::MutexLock::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:10107
nmodl::visitor::test::CheckParentVisitor::visit_binary_operator
void visit_binary_operator(const ast::BinaryOperator &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:879
nmodl::ast::AssignedDefinition::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:8614
nmodl::visitor::test::CheckParentVisitor::visit_solve_block
void visit_solve_block(const ast::SolveBlock &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:655
nmodl::ast::PrimeName::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:887
nmodl::ast::PointerVar::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:2050
nmodl::visitor::test::CheckParentVisitor::visit_suffix
void visit_suffix(const ast::Suffix &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1439
nmodl::ast::GlobalVar::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:1964
nmodl::ast::ReactionOperator
TODO.
Definition: reaction_operator.hpp:38
nmodl::ast::ExpressionStatement
TODO.
Definition: expression_statement.hpp:38
nmodl::visitor::test::CheckParentVisitor::visit_model
void visit_model(const ast::Model &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1117
nmodl::ast::Block
Base class for all block scoped nodes.
Definition: block.hpp:41
nmodl::ast::ElseIfStatement::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:9740
nmodl::ast::InitialBlock
Represents a INITIAL block in the NMODL.
Definition: initial_block.hpp:49
nmodl::ast::UnitState::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:7837
nmodl::ast::DiscreteBlock
TODO.
Definition: discrete_block.hpp:38
nmodl::ast::GlobalVar
TODO.
Definition: global_var.hpp:38
nmodl::visitor::test::CheckParentVisitor::visit_bbcore_pointer_var
void visit_bbcore_pointer_var(const ast::BbcorePointerVar &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:403
nmodl::ast::LocalListStatement
TODO.
Definition: local_list_statement.hpp:39
nmodl::ast::ParenExpression::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:6415
nmodl::ast::LocalVar::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:5760
nmodl::ast::UnitDef
TODO.
Definition: unit_def.hpp:38
nmodl::visitor::test::CheckParentVisitor::visit_breakpoint_block
void visit_breakpoint_block(const ast::BreakpointBlock &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:669
nmodl::ast::WatchStatement
Represent WATCH statement in NMODL.
Definition: watch_statement.hpp:39
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::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::DerivativeBlock::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:3249
nmodl::ast::Ast::get_node_type_name
virtual std::string get_node_type_name() const =0
Return type (ast::AstNodeType) of ast node as std::string.
nmodl::ast::UnitState
TODO.
Definition: unit_state.hpp:38
nmodl::ast::BABlock::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:4897
nmodl::ast::IndexedName
Represents specific element of an array variable.
Definition: indexed_name.hpp:48
nmodl::ast::Unit::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:5552
nmodl::ast::BeforeBlock::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:4726
nmodl::visitor::test::CheckParentVisitor::visit_bbcore_pointer
void visit_bbcore_pointer(const ast::BbcorePointer &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1551
nmodl::ast::FunctionCall
TODO.
Definition: function_call.hpp:38
nmodl::ast::DestructorBlock
Represents a DESTRUCTOR block in the NMODL.
Definition: destructor_block.hpp:53
nmodl::visitor::test::CheckParentVisitor::visit_read_ion_var
void visit_read_ion_var(const ast::ReadIonVar &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:291
nmodl::ast::DiffEqExpression::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:6638
nmodl::ast::Node::visit_children
virtual void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:322
nmodl::ast::Conserve::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:10157
nmodl::ast::UnaryExpression::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:6725
nmodl::visitor::test::CheckParentVisitor::visit_destructor_block
void visit_destructor_block(const ast::DestructorBlock &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:515
nmodl::visitor::test::CheckParentVisitor::visit_conductance_hint
void visit_conductance_hint(const ast::ConductanceHint &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1187
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::visitor::test::CheckParentVisitor::visit_valence
void visit_valence(const ast::Valence &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1075
nmodl::visitor::test::CheckParentVisitor::visit_else_if_statement
void visit_else_if_statement(const ast::ElseIfStatement &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1271
nmodl::ast::ReadIonVar::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:1534
nmodl::ast::MutexUnlock
Represent MUTEXUNLOCK statement in NMODL.
Definition: mutex_unlock.hpp:38
nmodl::visitor::test::CheckParentVisitor::visit_initial_block
void visit_initial_block(const ast::InitialBlock &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:487
nmodl::visitor::test::CheckParentVisitor::visit_derivative_block
void visit_derivative_block(const ast::DerivativeBlock &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:543
nmodl::visitor::test::CheckParentVisitor::visit_include
void visit_include(const ast::Include &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1145
nmodl::visitor::test::CheckParentVisitor::visit_electrode_cur_var
void visit_electrode_cur_var(const ast::ElectrodeCurVar &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:333
nmodl::ast::ExternVar::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:2308
nmodl::visitor::test::CheckParentVisitor::check_ast
int check_ast(const ast::Ast &node)
A small wrapper to have a nicer call in parser.cpp.
Definition: checkparent_visitor.cpp:25
nmodl::ast::MutexUnlock::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:10129
nmodl::ast::Useion
Represents USEION statement in NMODL.
Definition: useion.hpp:40
nmodl::ast::EigenLinearSolverBlock::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:13377
nmodl::ast::VarName::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:1130
nmodl::visitor::test::CheckParentVisitor::visit_paren_expression
void visit_paren_expression(const ast::ParenExpression &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:921
nmodl::ast::Program::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:12902
nmodl::ast::ThreadSafe::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:12456
nmodl::visitor::test::CheckParentVisitor::visit_write_ion_var
void visit_write_ion_var(const ast::WriteIonVar &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:305
nmodl::ast::Valence::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:7722
nmodl::visitor::test::CheckParentVisitor::visit_local_var
void visit_local_var(const ast::LocalVar &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:823
nmodl::ast::UnaryExpression
TODO.
Definition: unary_expression.hpp:39
nmodl::ast::Integer::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:519
nmodl::visitor::test::CheckParentVisitor::visit_statement_block
void visit_statement_block(const ast::StatementBlock &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:529
nmodl::ast::LineComment::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:12565
nmodl::visitor::test::CheckParentVisitor::visit_unit
void visit_unit(const ast::Unit &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:795
nmodl::visitor::test::CheckParentVisitor::visit_useion
void visit_useion(const ast::Useion &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1453
nmodl::ast::StateBlock::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:2735
nmodl::ast::UnaryOperator::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:6297
nmodl::visitor::test::CheckParentVisitor::visit_integer
void visit_integer(const ast::Integer &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:151
nmodl::ast::SolveBlock::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:4488
nmodl::visitor::test::CheckParentVisitor::visit_ba_block
void visit_ba_block(const ast::BABlock &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:711
nmodl::ast::Global
Represents GLOBAL statement in NMODL.
Definition: global.hpp:39
nmodl::visitor::test::CheckParentVisitor::visit_independent_block
void visit_independent_block(const ast::IndependentBlock &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:445
nmodl::visitor::test::CheckParentVisitor::visit_number
void visit_number(const ast::Number &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:123
nmodl::visitor::test::CheckParentVisitor::visit_global_var
void visit_global_var(const ast::GlobalVar &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:361
nmodl::ast::NonLinEquation::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:6830
nmodl::visitor::test::CheckParentVisitor::visit_neuron_block
void visit_neuron_block(const ast::NeuronBlock &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:781
nmodl::ast::Range::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:11773
nmodl::ast::Include::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:8274
nmodl::ast::NumberRange::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:5965
nmodl::ast::ConstantBlock
Represent CONSTANT block in the mod file.
Definition: constant_block.hpp:50
nmodl::visitor::test::CheckParentVisitor::visit_constant_statement
void visit_constant_statement(const ast::ConstantStatement &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1411
nmodl::visitor::test::CheckParentVisitor::visit_reaction_operator
void visit_reaction_operator(const ast::ReactionOperator &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:907
nmodl::ast::DerivimplicitCallback::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:13700
nmodl::ast::PrimeName
Represents a prime variable (for ODE)
Definition: prime_name.hpp:48
nmodl::ast::ElectrodeCurVar::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:1792
nmodl::ast::WriteIonVar::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:1620
nmodl::visitor::test::CheckParentVisitor::visit_number_range
void visit_number_range(const ast::NumberRange &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:851
nmodl::ast::DerivativeBlock
Represents DERIVATIVE block in the NMODL.
Definition: derivative_block.hpp:49
nmodl::ast::IfStatement
TODO.
Definition: if_statement.hpp:39
nmodl::ast::Boolean
Represents a boolean variable.
Definition: boolean.hpp:42
nmodl::ast::Ast::accept
virtual void accept(visitor::Visitor &v)=0
Accept (or visit) the AST node using current visitor.
nmodl::visitor::test::CheckParentVisitor::visit_diff_eq_expression
void visit_diff_eq_expression(const ast::DiffEqExpression &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:949
nmodl::visitor::test::CheckParentVisitor::visit_conserve
void visit_conserve(const ast::Conserve &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1341
nmodl::ast::IndexedName::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:1007
nmodl::ast::KineticBlock
TODO.
Definition: kinetic_block.hpp:39
nmodl::ast::ConstructorBlock::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:2905
nmodl::ast::EigenLinearSolverBlock
Represent linear solver solution block based on Eigen.
Definition: eigen_linear_solver_block.hpp:38
nmodl::visitor::test::CheckParentVisitor::visit_function_block
void visit_function_block(const ast::FunctionBlock &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:613
nmodl::ast::ReactionOperator::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:6356
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::Compartment
Represent COMPARTMENT statement in NMODL.
Definition: compartment.hpp:39
nmodl::ast::DiscreteBlock::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:3687
nmodl::ast::UpdateDt
Statement to indicate a change in timestep in a given block.
Definition: update_dt.hpp:38
nmodl::visitor::test::CheckParentVisitor::visit_solution_expression
void visit_solution_expression(const ast::SolutionExpression &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1733
nmodl::ast::UnitBlock::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:5294
nmodl::visitor::test::CheckParentVisitor::visit_after_block
void visit_after_block(const ast::AfterBlock &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:697
nmodl::visitor::test::CheckParentVisitor::visit_prime_name
void visit_prime_name(const ast::PrimeName &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:221
nmodl::ast::Statement
TODO.
Definition: statement.hpp:38
nmodl::ast::NumberRange
TODO.
Definition: number_range.hpp:38
nmodl::visitor::test::CheckParentVisitor::visit_wrapped_expression
void visit_wrapped_expression(const ast::WrappedExpression &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1705
nmodl::ast::Compartment::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:10278
nmodl::ast::StateBlock
Represents a STATE block in the NMODL.
Definition: state_block.hpp:52
nmodl::visitor::test::CheckParentVisitor::visit_random_var_list
void visit_random_var_list(const ast::RandomVarList &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1523
nmodl::visitor::test::CheckParentVisitor::visit_nonspecific
void visit_nonspecific(const ast::Nonspecific &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1467
nmodl::ast::NonLinearBlock::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:3531
nmodl::ast::ReactionStatement::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:10606
nmodl::visitor::test::CheckParentVisitor::visit_block
void visit_block(const ast::Block &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:95
nmodl::visitor::test::CheckParentVisitor::visit_binary_expression
void visit_binary_expression(const ast::BinaryExpression &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:935
nmodl::ast::BinaryExpression::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:6505
nmodl::ast::ExpressionStatement::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:9030
nmodl::ast::NrnStateBlock
Represents the coreneuron nrn_state callback function.
Definition: nrn_state_block.hpp:39
nmodl::ast::StatementBlock
Represents block encapsulating list of statements.
Definition: statement_block.hpp:53
nmodl::visitor::test::CheckParentVisitor::visit_unary_operator
void visit_unary_operator(const ast::UnaryOperator &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:893
nmodl::visitor::test::CheckParentVisitor::visit_watch_statement
void visit_watch_statement(const ast::WatchStatement &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1299
nmodl::ast::Global::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:11944
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::ast::ForNetcon
TODO.
Definition: for_netcon.hpp:39
nmodl::ast::Argument
Represents an argument to functions and procedures.
Definition: argument.hpp:48
nmodl::visitor::test::CheckParentVisitor::visit_constant_var
void visit_constant_var(const ast::ConstantVar &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:865
nmodl::visitor::test::CheckParentVisitor::visit_unit_state
void visit_unit_state(const ast::UnitState &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1089
nmodl::ast::BreakpointBlock::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:4642
nmodl::ast::ParenExpression
TODO.
Definition: paren_expression.hpp:38
nmodl::ast::LinearBlock
Represents LINEAR block in the NMODL.
Definition: linear_block.hpp:53
nmodl::ast::ConstantStatement::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:10927
nmodl::ast::DerivimplicitCallback
Represent a callback to NEURON's derivimplicit solver.
Definition: derivimplicit_callback.hpp:38
nmodl::ast::BbcorePointer::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:12287
nmodl::visitor::test::CheckParentVisitor::visit_state_block
void visit_state_block(const ast::StateBlock &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:473
nmodl::ast::ProcedureBlock
TODO.
Definition: procedure_block.hpp:39
nmodl::visitor::test::CheckParentVisitor::visit_ba_block_type
void visit_ba_block_type(const ast::BABlockType &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1033
nmodl::visitor::test::CheckParentVisitor::visit_define
void visit_define(const ast::Define &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1131
nmodl::ast::EigenNewtonSolverBlock::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:13092
nmodl::ast::ProtectStatement::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:9114
nmodl::visitor::test::CheckParentVisitor::visit_range
void visit_range(const ast::Range &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1495
nmodl::ast::ReactionStatement
TODO.
Definition: reaction_statement.hpp:39
nmodl::ast::String::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:457
nmodl::ast::ConstantStatement
Represent statement in CONSTANT block of NMODL.
Definition: constant_statement.hpp:40
nmodl::ast::BinaryOperator
Operator used in ast::BinaryExpression.
Definition: binary_operator.hpp:38
nmodl::ast::FunctionCall::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:7068
nmodl::visitor::test::CheckParentVisitor::visit_update_dt
void visit_update_dt(const ast::UpdateDt &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1747
nmodl::ast::BABlockType
Type to represent different block types for before/after block.
Definition: ba_block_type.hpp:42
nmodl::ast::NonLinearBlock
Represents NONLINEAR block in the NMODL.
Definition: non_linear_block.hpp:50
nmodl::ast::BlockComment::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:12649
logger.hpp
Implement logger based on spdlog library.
nmodl::ast::Expression::visit_children
virtual void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:366
nmodl::ast::ParamBlock::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:2392
nmodl::ast::SolutionExpression
Represent solution of a block in the AST.
Definition: solution_expression.hpp:38
nmodl::visitor::test::CheckParentVisitor::visit_expression
void visit_expression(const ast::Expression &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:81
nmodl::ast::ElectrodeCurVar
TODO.
Definition: electrode_cur_var.hpp:38
nmodl::ast::TableStatement::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:11023
nmodl::ast::SolutionExpression::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:13787
nmodl::ast::Useion::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:11375
nmodl::visitor::test::CheckParentVisitor::visit_from_statement
void visit_from_statement(const ast::FromStatement &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1229
nmodl::ast::Verbatim::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:12481
nmodl::ast::LinEquation
TODO.
Definition: lin_equation.hpp:38
nmodl::visitor::test::CheckParentVisitor::visit_pointer
void visit_pointer(const ast::Pointer &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1537
nmodl::ast::IndependentBlock
Represents a INDEPENDENT block in the NMODL.
Definition: independent_block.hpp:46
checkparent_visitor.hpp
Visitor for checking parents of ast nodes
nmodl::visitor::test::CheckParentVisitor::visit_eigen_newton_solver_block
void visit_eigen_newton_solver_block(const ast::EigenNewtonSolverBlock &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1677
nmodl::visitor::test::CheckParentVisitor::visit_compartment
void visit_compartment(const ast::Compartment &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1355
nmodl::ast::ConductanceHint::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:8911
nmodl::ast::BbcorePointer
Represents BBCOREPOINTER statement in NMODL.
Definition: bbcore_pointer.hpp:47
nmodl::ast::Nonspecific
Represents NONSPECIFIC_CURRENT variables statement in NMODL.
Definition: nonspecific.hpp:39
nmodl::visitor::test::CheckParentVisitor::visit_expression_statement
void visit_expression_statement(const ast::ExpressionStatement &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1201
nmodl::ast::External::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:12373
nmodl::visitor::test::CheckParentVisitor::visit_table_statement
void visit_table_statement(const ast::TableStatement &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1425
nmodl::ast::BinaryOperator::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:6238
nmodl::ast::Name
Represents a name.
Definition: name.hpp:44
nmodl::visitor::test::CheckParentVisitor::visit_thread_safe
void visit_thread_safe(const ast::ThreadSafe &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1579
nmodl::visitor::test::CheckParentVisitor::visit_nrn_state_block
void visit_nrn_state_block(const ast::NrnStateBlock &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1663
nmodl::visitor::test::CheckParentVisitor::visit_derivimplicit_callback
void visit_derivimplicit_callback(const ast::DerivimplicitCallback &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1719
nmodl::visitor::test::CheckParentVisitor::visit_net_receive_block
void visit_net_receive_block(const ast::NetReceiveBlock &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:641
nmodl::ast::Program
Represents top level AST node for whole NMODL input.
Definition: program.hpp:39
nmodl::visitor::test::CheckParentVisitor::visit_unary_expression
void visit_unary_expression(const ast::UnaryExpression &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:963
nmodl::ast::Block::visit_children
virtual void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:388
nmodl::visitor::test::CheckParentVisitor::visit_discrete_block
void visit_discrete_block(const ast::DiscreteBlock &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:585
nmodl::visitor::test::CheckParentVisitor::visit_global
void visit_global(const ast::Global &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1509
nmodl::visitor::test::CheckParentVisitor::visit_assigned_block
void visit_assigned_block(const ast::AssignedBlock &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:459
nmodl::ast::ConstantVar::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:6088
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::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::visitor::test::CheckParentVisitor::visit_watch
void visit_watch(const ast::Watch &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1019
nmodl::ast::Pointer
Represents POINTER statement in NMODL.
Definition: pointer.hpp:39
nmodl::ast::Float::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:616
nmodl::ast::ElseStatement
TODO.
Definition: else_statement.hpp:38
nmodl::ast::Limits::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:5847
nmodl::ast::WrappedExpression::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:13616
nmodl::ast::RangeVar::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:1878
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::visitor::test::CheckParentVisitor::visit_double
void visit_double(const ast::Double &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:179
nmodl::visitor::test::CheckParentVisitor::visit_non_lin_equation
void visit_non_lin_equation(const ast::NonLinEquation &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:977
nmodl::ast::Nonspecific::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:11601
nmodl::visitor::test::CheckParentVisitor::visit_param_block
void visit_param_block(const ast::ParamBlock &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:431
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::test::CheckParentVisitor::visit_boolean
void visit_boolean(const ast::Boolean &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:193
nmodl::ast::NonspecificCurVar
TODO.
Definition: nonspecific_cur_var.hpp:38
nmodl::visitor::test::CheckParentVisitor::visit_pointer_var
void visit_pointer_var(const ast::PointerVar &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:375
nmodl::visitor::test::CheckParentVisitor::visit_local_list_statement
void visit_local_list_statement(const ast::LocalListStatement &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1103
nmodl::visitor::test::CheckParentVisitor::visit_block_comment
void visit_block_comment(const ast::BlockComment &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1621
nmodl::ast::DestructorBlock::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:2989
nmodl::visitor::test::CheckParentVisitor::visit_reaction_statement
void visit_reaction_statement(const ast::ReactionStatement &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1383
nmodl::visitor::test::CheckParentVisitor::visit_non_linear_block
void visit_non_linear_block(const ast::NonLinearBlock &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:571
nmodl::ast::Ast::get_parent
virtual Ast * get_parent() const
Parent getter.
Definition: ast.cpp:307
nmodl::ast::ForNetcon::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:5015
nmodl::ast::String
Represents a string.
Definition: string.hpp:52
nmodl::ast::Limits
TODO.
Definition: limits.hpp:38
nmodl::ast::ReactVarName::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:1413
all.hpp
Auto generated AST classes declaration.
nmodl::ast::WrappedExpression
Wrap any other expression type.
Definition: wrapped_expression.hpp:38
nmodl::ast::Argument::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:1289
nmodl::ast::FromStatement
TODO.
Definition: from_statement.hpp:38
nmodl::visitor::test::CheckParentVisitor::visit_limits
void visit_limits(const ast::Limits &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:837
nmodl::ast::LonDifuse::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:10439
nmodl::ast::NetReceiveBlock::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:4362
nmodl::visitor::test::CheckParentVisitor::visit_lon_difuse
void visit_lon_difuse(const ast::LonDifuse &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1369
nmodl::ast::InitialBlock::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:2821
nmodl::ast::OntologyStatement::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:12733
nmodl::ast::UpdateDt::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:13902
nmodl::ast::WhileStatement::visit_children
void visit_children(visitor::Visitor &v) override
visit children i.e.
Definition: ast.cpp:9427