NEURON
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 
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 
1762  // check the node
1763  check_parent(node);
1764 
1765  // Set this node as parent. and go down the tree
1766  parent = &node;
1767 
1768  // visit its children
1769  node.visit_children(*this);
1770 
1771  // I am done with these children, I go up the tree. The parent of this node is the parent
1772  parent = node.get_parent();
1773 }
1774 
1776  // check the node
1777  check_parent(node);
1778 
1779  // Set this node as parent. and go down the tree
1780  parent = &node;
1781 
1782  // visit its children
1783  node.visit_children(*this);
1784 
1785  // I am done with these children, I go up the tree. The parent of this node is the parent
1786  parent = node.get_parent();
1787 }
1788 
1789 
1790 } // namespace test
1791 } // namespace visitor
1792 } // namespace nmodl
Auto generated AST classes declaration.
Visitor for checking parents of ast nodes
Represents a AFTER block in NMODL.
Definition: after_block.hpp:51
Represents an argument to functions and procedures.
Definition: argument.hpp:48
Represents a ASSIGNED block in the NMODL.
Represents a statement in ASSIGNED or STATE block.
Represents a block to be executed before or after another block.
Definition: ba_block.hpp:40
Type to represent different block types for before/after block.
Represents BBCOREPOINTER statement in NMODL.
Represent a single variable of type BBCOREPOINTER.
Represents a BEFORE block in NMODL.
Represents binary expression in the NMODL.
Operator used in ast::BinaryExpression.
Represents a multi-line comment in NMODL.
Base class for all block scoped nodes.
Definition: block.hpp:41
Represents a boolean variable.
Definition: boolean.hpp:42
Represents a BREAKPOINT block in NMODL.
Represent COMPARTMENT statement in NMODL.
Definition: compartment.hpp:39
Represents CONDUCTANCE statement in NMODL.
Represent CONSERVE statement in NMODL.
Definition: conserve.hpp:38
Represent CONSTANT block in the mod file.
Represent statement in CONSTANT block of NMODL.
Represents a variable in the ast::ConstantBlock.
Represents a CONSTRUCTOR block in the NMODL.
Represents a block used for variable timestep integration (CVODE) of DERIVATIVE blocks.
Definition: cvode_block.hpp:38
Represents a DEFINE statement in NMODL.
Definition: define.hpp:38
Represents DERIVATIVE block in the NMODL.
Represent a callback to NEURON's derivimplicit solver.
Represents a DESTRUCTOR block in the NMODL.
Represents differential equation in DERIVATIVE block.
Represents a double variable.
Definition: double.hpp:53
Represent linear solver solution block based on Eigen.
Represent newton solver solution block based on Eigen.
Represents ELECTRODE_CURRENT variables statement in NMODL.
Base class for all expressions in the NMODL.
Definition: expression.hpp:43
This construct is deprecated and no longer supported in the NMODL.
Definition: external.hpp:39
Represents a float variable.
Definition: float.hpp:44
Represents GLOBAL statement in NMODL.
Definition: global.hpp:39
Base class for all identifiers.
Definition: identifier.hpp:41
Represents an INCLUDE statement in NMODL.
Definition: include.hpp:39
Represents a INDEPENDENT block in the NMODL.
Represents specific element of an array variable.
Represents a INITIAL block in the NMODL.
Represents an integer variable.
Definition: integer.hpp:49
Represents a LAG statement in the mod file.
One equation in a system of equations tha collectively form a LINEAR block.
Represents a one line comment in NMODL.
Represents LINEAR block in the NMODL.
Represent LONGITUDINAL_DIFFUSION statement in NMODL.
Definition: lon_diffuse.hpp:39
Extracts information required for LONGITUDINAL_DIFFUSION for each KINETIC block.
Represent MUTEXLOCK statement in NMODL.
Definition: mutex_lock.hpp:38
Represent MUTEXUNLOCK statement in NMODL.
Represents a name.
Definition: name.hpp:44
Represent NEURON block in the mod file.
Base class for all AST node.
Definition: node.hpp:40
One equation in a system of equations that collectively make a NONLINEAR block.
Represents NONLINEAR block in the NMODL.
Represents NONSPECIFIC_CURRENT variables statement in NMODL.
Definition: nonspecific.hpp:39
Represents the coreneuron nrn_state callback function.
Base class for all numbers.
Definition: number.hpp:39
Represents CURIE information in NMODL.
Represents a PARAMETER block in the NMODL.
Definition: param_block.hpp:53
Represents POINTER statement in NMODL.
Definition: pointer.hpp:39
Represents a prime variable (for ODE)
Definition: prime_name.hpp:48
Represents top level AST node for whole NMODL input.
Definition: program.hpp:39
Single variable of type RANDOM.
Definition: random_var.hpp:38
Represents RANDOM statement in NMODL.
Represents RANGE variables statement in NMODL.
Definition: range.hpp:39
Represent solution of a block in the AST.
Represents a STATE block in the NMODL.
Definition: state_block.hpp:52
Represents block encapsulating list of statements.
Represents a string.
Definition: string.hpp:52
Represents SUFFIX statement in NMODL.
Definition: suffix.hpp:38
Represents TABLE statement in NMODL.
Represents THREADSAFE statement in NMODL.
Definition: thread_safe.hpp:38
Statement to indicate a change in timestep in a given block.
Definition: update_dt.hpp:38
Represents USEION statement in NMODL.
Definition: useion.hpp:40
Represents a variable.
Definition: var_name.hpp:43
Represents a C code block.
Definition: verbatim.hpp:38
Represent WATCH statement in NMODL.
Wrap any other expression type.
void visit_prime_name(const ast::PrimeName &node) override
Go through the tree while checking the parents.
void visit_write_ion_var(const ast::WriteIonVar &node) override
Go through the tree while checking the parents.
void visit_kinetic_block(const ast::KineticBlock &node) override
Go through the tree while checking the parents.
void visit_solution_expression(const ast::SolutionExpression &node) override
Go through the tree while checking the parents.
void visit_bbcore_pointer(const ast::BbcorePointer &node) override
Go through the tree while checking the parents.
void visit_local_var(const ast::LocalVar &node) override
Go through the tree while checking the parents.
void visit_conductance_hint(const ast::ConductanceHint &node) override
Go through the tree while checking the parents.
void visit_random_var(const ast::RandomVar &node) override
Go through the tree while checking the parents.
void visit_eigen_linear_solver_block(const ast::EigenLinearSolverBlock &node) override
Go through the tree while checking the parents.
void visit_for_netcon(const ast::ForNetcon &node) override
Go through the tree while checking the parents.
void visit_unit(const ast::Unit &node) override
Go through the tree while checking the parents.
void visit_factor_def(const ast::FactorDef &node) override
Go through the tree while checking the parents.
void visit_non_lin_equation(const ast::NonLinEquation &node) override
Go through the tree while checking the parents.
void visit_nonspecific(const ast::Nonspecific &node) override
Go through the tree while checking the parents.
void visit_bbcore_pointer_var(const ast::BbcorePointerVar &node) override
Go through the tree while checking the parents.
void visit_unit_def(const ast::UnitDef &node) override
Go through the tree while checking the parents.
void visit_after_block(const ast::AfterBlock &node) override
Go through the tree while checking the parents.
void visit_state_block(const ast::StateBlock &node) override
Go through the tree while checking the parents.
void visit_range(const ast::Range &node) override
Go through the tree while checking the parents.
void visit_reaction_statement(const ast::ReactionStatement &node) override
Go through the tree while checking the parents.
void visit_argument(const ast::Argument &node) override
Go through the tree while checking the parents.
void visit_binary_operator(const ast::BinaryOperator &node) override
Go through the tree while checking the parents.
void visit_unit_block(const ast::UnitBlock &node) override
Go through the tree while checking the parents.
void visit_lag_statement(const ast::LagStatement &node) override
Go through the tree while checking the parents.
void visit_suffix(const ast::Suffix &node) override
Go through the tree while checking the parents.
void visit_non_linear_block(const ast::NonLinearBlock &node) override
Go through the tree while checking the parents.
void visit_mutex_lock(const ast::MutexLock &node) override
Go through the tree while checking the parents.
void visit_define(const ast::Define &node) override
Go through the tree while checking the parents.
void visit_range_var(const ast::RangeVar &node) override
Go through the tree while checking the parents.
void visit_electrode_cur_var(const ast::ElectrodeCurVar &node) override
Go through the tree while checking the parents.
void visit_constructor_block(const ast::ConstructorBlock &node) override
Go through the tree while checking the parents.
void visit_program(const ast::Program &node) override
Go through the tree while checking the parents.
void visit_local_list_statement(const ast::LocalListStatement &node) override
Go through the tree while checking the parents.
void visit_discrete_block(const ast::DiscreteBlock &node) override
Go through the tree while checking the parents.
void visit_pointer(const ast::Pointer &node) override
Go through the tree while checking the parents.
void visit_lon_diffuse(const ast::LonDiffuse &node) override
Go through the tree while checking the parents.
void visit_ba_block(const ast::BABlock &node) override
Go through the tree while checking the parents.
void visit_global(const ast::Global &node) override
Go through the tree while checking the parents.
void visit_float(const ast::Float &node) override
Go through the tree while checking the parents.
void visit_external(const ast::External &node) override
Go through the tree while checking the parents.
void visit_wrapped_expression(const ast::WrappedExpression &node) override
Go through the tree while checking the parents.
void visit_conserve(const ast::Conserve &node) override
Go through the tree while checking the parents.
void visit_electrode_current(const ast::ElectrodeCurrent &node) override
Go through the tree while checking the parents.
void visit_watch(const ast::Watch &node) override
Go through the tree while checking the parents.
void visit_var_name(const ast::VarName &node) override
Go through the tree while checking the parents.
void visit_eigen_newton_solver_block(const ast::EigenNewtonSolverBlock &node) override
Go through the tree while checking the parents.
void visit_compartment(const ast::Compartment &node) override
Go through the tree while checking the parents.
void visit_independent_block(const ast::IndependentBlock &node) override
Go through the tree while checking the parents.
void visit_expression_statement(const ast::ExpressionStatement &node) override
Go through the tree while checking the parents.
void visit_extern_var(const ast::ExternVar &node) override
Go through the tree while checking the parents.
void visit_double_unit(const ast::DoubleUnit &node) override
Go through the tree while checking the parents.
void visit_from_statement(const ast::FromStatement &node) override
Go through the tree while checking the parents.
void visit_number(const ast::Number &node) override
Go through the tree while checking the parents.
void visit_include(const ast::Include &node) override
Go through the tree while checking the parents.
void visit_watch_statement(const ast::WatchStatement &node) override
Go through the tree while checking the parents.
void visit_constant_block(const ast::ConstantBlock &node) override
Go through the tree while checking the parents.
void visit_name(const ast::Name &node) override
Go through the tree while checking the parents.
void visit_ontology_statement(const ast::OntologyStatement &node) override
Go through the tree while checking the parents.
void visit_nrn_state_block(const ast::NrnStateBlock &node) override
Go through the tree while checking the parents.
void visit_random_var_list(const ast::RandomVarList &node) override
Go through the tree while checking the parents.
void visit_number_range(const ast::NumberRange &node) override
Go through the tree while checking the parents.
void visit_neuron_block(const ast::NeuronBlock &node) override
Go through the tree while checking the parents.
void visit_table_statement(const ast::TableStatement &node) override
Go through the tree while checking the parents.
void visit_linear_block(const ast::LinearBlock &node) override
Go through the tree while checking the parents.
void visit_unit_state(const ast::UnitState &node) override
Go through the tree while checking the parents.
void visit_block_comment(const ast::BlockComment &node) override
Go through the tree while checking the parents.
void visit_read_ion_var(const ast::ReadIonVar &node) override
Go through the tree while checking the parents.
void visit_net_receive_block(const ast::NetReceiveBlock &node) override
Go through the tree while checking the parents.
void visit_function_call(const ast::FunctionCall &node) override
Go through the tree while checking the parents.
void visit_cvode_block(const ast::CvodeBlock &node) override
Go through the tree while checking the parents.
void visit_thread_safe(const ast::ThreadSafe &node) override
Go through the tree while checking the parents.
void visit_nonspecific_cur_var(const ast::NonspecificCurVar &node) override
Go through the tree while checking the parents.
void visit_model(const ast::Model &node) override
Go through the tree while checking the parents.
void visit_unary_expression(const ast::UnaryExpression &node) override
Go through the tree while checking the parents.
void visit_assigned_block(const ast::AssignedBlock &node) override
Go through the tree while checking the parents.
void visit_param_block(const ast::ParamBlock &node) override
Go through the tree while checking the parents.
void visit_pointer_var(const ast::PointerVar &node) override
Go through the tree while checking the parents.
void visit_derivimplicit_callback(const ast::DerivimplicitCallback &node) override
Go through the tree while checking the parents.
void visit_while_statement(const ast::WhileStatement &node) override
Go through the tree while checking the parents.
void visit_mutex_unlock(const ast::MutexUnlock &node) override
Go through the tree while checking the parents.
void visit_react_var_name(const ast::ReactVarName &node) override
Go through the tree while checking the parents.
void visit_protect_statement(const ast::ProtectStatement &node) override
Go through the tree while checking the parents.
void visit_assigned_definition(const ast::AssignedDefinition &node) override
Go through the tree while checking the parents.
void visit_breakpoint_block(const ast::BreakpointBlock &node) override
Go through the tree while checking the parents.
void visit_indexed_name(const ast::IndexedName &node) override
Go through the tree while checking the parents.
void visit_verbatim(const ast::Verbatim &node) override
Go through the tree while checking the parents.
void visit_derivative_block(const ast::DerivativeBlock &node) override
Go through the tree while checking the parents.
void check_parent(const ast::Ast &node) const
Check the parent, throw an error if not.
void visit_limits(const ast::Limits &node) override
Go through the tree while checking the parents.
void visit_lin_equation(const ast::LinEquation &node) override
Go through the tree while checking the parents.
void visit_initial_block(const ast::InitialBlock &node) override
Go through the tree while checking the parents.
int check_ast(const ast::Ast &node)
A small wrapper to have a nicer call in parser.cpp.
void visit_global_var(const ast::GlobalVar &node) override
Go through the tree while checking the parents.
void visit_binary_expression(const ast::BinaryExpression &node) override
Go through the tree while checking the parents.
void visit_else_if_statement(const ast::ElseIfStatement &node) override
Go through the tree while checking the parents.
void visit_destructor_block(const ast::DestructorBlock &node) override
Go through the tree while checking the parents.
void visit_ba_block_type(const ast::BABlockType &node) override
Go through the tree while checking the parents.
void visit_param_assign(const ast::ParamAssign &node) override
Go through the tree while checking the parents.
void visit_constant_var(const ast::ConstantVar &node) override
Go through the tree while checking the parents.
void visit_before_block(const ast::BeforeBlock &node) override
Go through the tree while checking the parents.
void visit_block(const ast::Block &node) override
Go through the tree while checking the parents.
void visit_boolean(const ast::Boolean &node) override
Go through the tree while checking the parents.
void visit_string(const ast::String &node) override
Go through the tree while checking the parents.
void visit_statement(const ast::Statement &node) override
Go through the tree while checking the parents.
void visit_useion(const ast::Useion &node) override
Go through the tree while checking the parents.
void visit_constant_statement(const ast::ConstantStatement &node) override
Go through the tree while checking the parents.
void visit_if_statement(const ast::IfStatement &node) override
Go through the tree while checking the parents.
void visit_line_comment(const ast::LineComment &node) override
Go through the tree while checking the parents.
void visit_integer(const ast::Integer &node) override
Go through the tree while checking the parents.
void visit_identifier(const ast::Identifier &node) override
Go through the tree while checking the parents.
void visit_longitudinal_diffusion_block(const ast::LongitudinalDiffusionBlock &node) override
Go through the tree while checking the parents.
void visit_solve_block(const ast::SolveBlock &node) override
Go through the tree while checking the parents.
void visit_paren_expression(const ast::ParenExpression &node) override
Go through the tree while checking the parents.
void visit_double(const ast::Double &node) override
Go through the tree while checking the parents.
void visit_expression(const ast::Expression &node) override
Go through the tree while checking the parents.
void visit_update_dt(const ast::UpdateDt &node) override
Go through the tree while checking the parents.
void visit_node(const ast::Node &node) override
Go through the tree while checking the parents.
void visit_valence(const ast::Valence &node) override
Go through the tree while checking the parents.
void visit_diff_eq_expression(const ast::DiffEqExpression &node) override
Go through the tree while checking the parents.
void visit_unary_operator(const ast::UnaryOperator &node) override
Go through the tree while checking the parents.
void visit_else_statement(const ast::ElseStatement &node) override
Go through the tree while checking the parents.
void visit_statement_block(const ast::StatementBlock &node) override
Go through the tree while checking the parents.
void visit_procedure_block(const ast::ProcedureBlock &node) override
Go through the tree while checking the parents.
void visit_function_table_block(const ast::FunctionTableBlock &node) override
Go through the tree while checking the parents.
void visit_function_block(const ast::FunctionBlock &node) override
Go through the tree while checking the parents.
void visit_reaction_operator(const ast::ReactionOperator &node) override
Go through the tree while checking the parents.
encapsulates code generation backend implementations
Definition: ast_common.hpp:26
static Node * node(Object *)
Definition: netcvode.cpp:291
Base class for all Abstract Syntax Tree node types.
Definition: ast.hpp:52