GCC Code Coverage Report


src/
Coverage:
low: ≥ 0%
medium: ≥ 75.0%
high: ≥ 90.0%
Lines:
98 / 98
100.0%
Branches:
226 / 312, 312 excl
72.4%
Functions:
158 / 158
100.0%

visualizer/ast-visualizer.spice
Line Branch Exec Source
1 // Copyright (c) 2021-2026 ChilliBits. All rights reserved.
2
3 // Std imports
4 import "std/type/any";
5 import "std/text/stringstream";
6
7 // Own imports
8 import "@/ast/abstract-ast-visitor-intf";
9 import "@/ast/ast-nodes";
10 import "@/util/save-and-restore";
11
12 // Generic type defs
13 type T dyn;
14
15 /**
16 * Visitor for debug purposes (is only executed in the compiler debug mode and when explicitly enabling it via cli flag)
17 *
18 * Jobs:
19 * - Visualize AST
20 */
21 7864 public type ASTVisualizer struct : IAbstractAstVisitor {
22 String parentNodeId
23 }
24
25 // ─── private helpers ──────────────────────────────────────────────────────────
26
27 2219346 f<Any> ASTVisualizer.buildNode<T>(const T* node) {
28 2219346 StringStream output;
29
30 // Prepare strings
31 2219346 const dyn typeName = String(typename<T>());
32 2219346 String codeLocStr = node.codeLoc.toString();
33 2219346 const String nodeName = typeName.getSubstring(typeName.find("AST") + 3l);
34 2219346 const String nodeId = codeLocStr + "_" + nodeName;
35
36 // Build result
37 2219346 output << nodeId << " [color=\"lightgreen\",label=\"" << nodeName << "\"];\n";
38
39 // Link parent node with the current one
40
78/156
✓ Branch 0 taken 3932 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1024 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 27984 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 17563 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 45547 times.
✗ Branch 10 not taken.
✓ Branch 11 taken 3214 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 323 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 24 times.
✗ Branch 16 not taken.
✓ Branch 17 taken 465 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 3055 times.
✗ Branch 20 not taken.
✓ Branch 21 taken 159 times.
✗ Branch 22 not taken.
✓ Branch 23 taken 4263 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 5206 times.
✗ Branch 26 not taken.
✓ Branch 27 taken 2502 times.
✗ Branch 28 not taken.
✓ Branch 29 taken 12690 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 4385 times.
✗ Branch 32 not taken.
✓ Branch 33 taken 434 times.
✗ Branch 34 not taken.
✓ Branch 35 taken 1852 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 50 times.
✗ Branch 38 not taken.
✓ Branch 39 taken 24991 times.
✗ Branch 40 not taken.
✓ Branch 41 taken 1376 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 38 times.
✗ Branch 44 not taken.
✓ Branch 45 taken 195 times.
✗ Branch 46 not taken.
✓ Branch 47 taken 20 times.
✗ Branch 48 not taken.
✓ Branch 49 taken 4077 times.
✗ Branch 50 not taken.
✓ Branch 51 taken 126 times.
✗ Branch 52 not taken.
✓ Branch 53 taken 92282 times.
✗ Branch 54 not taken.
✓ Branch 55 taken 30422 times.
✗ Branch 56 not taken.
✓ Branch 57 taken 5134 times.
✗ Branch 58 not taken.
✓ Branch 59 taken 3055 times.
✗ Branch 60 not taken.
✓ Branch 61 taken 33023 times.
✗ Branch 62 not taken.
✓ Branch 63 taken 61338 times.
✗ Branch 64 not taken.
✓ Branch 65 taken 465 times.
✗ Branch 66 not taken.
✓ Branch 67 taken 1747 times.
✗ Branch 68 not taken.
✓ Branch 69 taken 7808 times.
✗ Branch 70 not taken.
✓ Branch 71 taken 742 times.
✗ Branch 72 not taken.
✓ Branch 73 taken 83401 times.
✗ Branch 74 not taken.
✓ Branch 75 taken 63761 times.
✗ Branch 76 not taken.
✓ Branch 77 taken 124973 times.
✗ Branch 78 not taken.
✓ Branch 79 taken 149861 times.
✗ Branch 80 not taken.
✓ Branch 81 taken 1531 times.
✗ Branch 82 not taken.
✓ Branch 83 taken 1567 times.
✗ Branch 84 not taken.
✓ Branch 85 taken 21 times.
✗ Branch 86 not taken.
✓ Branch 87 taken 3119 times.
✗ Branch 88 not taken.
✓ Branch 89 taken 3585 times.
✗ Branch 90 not taken.
✓ Branch 91 taken 200 times.
✗ Branch 92 not taken.
✓ Branch 93 taken 40013 times.
✗ Branch 94 not taken.
✓ Branch 95 taken 737 times.
✗ Branch 96 not taken.
✓ Branch 97 taken 757 times.
✗ Branch 98 not taken.
✓ Branch 99 taken 16 times.
✗ Branch 100 not taken.
✓ Branch 101 taken 30115 times.
✗ Branch 102 not taken.
✓ Branch 103 taken 2586 times.
✗ Branch 104 not taken.
✓ Branch 105 taken 4029 times.
✗ Branch 106 not taken.
✓ Branch 107 taken 2112 times.
✗ Branch 108 not taken.
✓ Branch 109 taken 428 times.
✗ Branch 110 not taken.
✓ Branch 111 taken 77 times.
✗ Branch 112 not taken.
✓ Branch 113 taken 260 times.
✗ Branch 114 not taken.
✓ Branch 115 taken 26959 times.
✗ Branch 116 not taken.
✓ Branch 117 taken 16330 times.
✗ Branch 118 not taken.
✓ Branch 119 taken 607 times.
✗ Branch 120 not taken.
✓ Branch 121 taken 14912 times.
✗ Branch 122 not taken.
✓ Branch 123 taken 3321 times.
✗ Branch 124 not taken.
✓ Branch 125 taken 12381 times.
✗ Branch 126 not taken.
✓ Branch 127 taken 6979 times.
✗ Branch 128 not taken.
✓ Branch 129 taken 105077 times.
✗ Branch 130 not taken.
✓ Branch 131 taken 396433 times.
✗ Branch 132 not taken.
✓ Branch 133 taken 90647 times.
✗ Branch 134 not taken.
✓ Branch 135 taken 80488 times.
✗ Branch 136 not taken.
✓ Branch 137 taken 80547 times.
✗ Branch 138 not taken.
✓ Branch 139 taken 180 times.
✗ Branch 140 not taken.
✓ Branch 141 taken 1535 times.
✗ Branch 142 not taken.
✓ Branch 143 taken 67 times.
✗ Branch 144 not taken.
✓ Branch 145 taken 73 times.
✗ Branch 146 not taken.
✓ Branch 147 taken 4 times.
✗ Branch 148 not taken.
✓ Branch 149 taken 197452 times.
✗ Branch 150 not taken.
✓ Branch 151 taken 197452 times.
✗ Branch 152 not taken.
✓ Branch 153 taken 72537 times.
✗ Branch 154 not taken.
✓ Branch 155 taken 705 times.
2219346 if !this.parentNodeId.isEmpty() {
41 2215414 output << " " << this.parentNodeId << " -> " << nodeId << ";\n";
42 2215414 }
43
44 // Set parentNodeId for children
45 2219346 SaveAndRestore<String>(this.parentNodeId, nodeId);
46
47 // Visit all the children. A plain ASTNode* cannot be dispatched on, so this goes through its IVisitable pointer
48
148/156
✓ Branch 0 taken 3932 times.
✓ Branch 1 taken 67313 times.
✓ Branch 2 taken 1024 times.
✓ Branch 3 taken 1032 times.
✓ Branch 4 taken 27984 times.
✓ Branch 5 taken 135290 times.
✓ Branch 6 taken 17563 times.
✓ Branch 7 taken 65604 times.
✓ Branch 8 taken 45547 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 3214 times.
✓ Branch 11 taken 11207 times.
✓ Branch 12 taken 323 times.
✓ Branch 13 taken 1534 times.
✓ Branch 14 taken 24 times.
✓ Branch 15 taken 58 times.
✓ Branch 16 taken 465 times.
✓ Branch 17 taken 890 times.
✓ Branch 18 taken 3055 times.
✓ Branch 19 taken 3055 times.
✓ Branch 20 taken 159 times.
✓ Branch 21 taken 219 times.
✓ Branch 22 taken 4263 times.
✓ Branch 23 taken 8517 times.
✓ Branch 24 taken 5206 times.
✓ Branch 25 taken 9665 times.
✓ Branch 26 taken 2502 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 12690 times.
✓ Branch 29 taken 12690 times.
✓ Branch 30 taken 4385 times.
✓ Branch 31 taken 17540 times.
✓ Branch 32 taken 434 times.
✓ Branch 33 taken 1324 times.
✓ Branch 34 taken 1852 times.
✓ Branch 35 taken 3704 times.
✓ Branch 36 taken 50 times.
✓ Branch 37 taken 100 times.
✓ Branch 38 taken 24991 times.
✓ Branch 39 taken 51358 times.
✓ Branch 40 taken 1376 times.
✓ Branch 41 taken 1376 times.
✓ Branch 42 taken 38 times.
✓ Branch 43 taken 253 times.
✓ Branch 44 taken 195 times.
✓ Branch 45 taken 395 times.
✓ Branch 46 taken 20 times.
✓ Branch 47 taken 20 times.
✓ Branch 48 taken 4077 times.
✓ Branch 49 taken 4077 times.
✓ Branch 50 taken 126 times.
✓ Branch 51 taken 126 times.
✓ Branch 52 taken 92282 times.
✓ Branch 53 taken 178071 times.
✓ Branch 54 taken 30422 times.
✓ Branch 55 taken 42142 times.
✓ Branch 56 taken 5134 times.
✓ Branch 57 taken 5134 times.
✓ Branch 58 taken 3055 times.
✓ Branch 59 taken 5486 times.
✓ Branch 60 taken 33023 times.
✓ Branch 61 taken 53868 times.
✓ Branch 62 taken 61338 times.
✓ Branch 63 taken 101863 times.
✓ Branch 64 taken 465 times.
✓ Branch 65 taken 1747 times.
✓ Branch 66 taken 1747 times.
✗ Branch 67 not taken.
✓ Branch 68 taken 7808 times.
✓ Branch 69 taken 9704 times.
✓ Branch 70 taken 742 times.
✓ Branch 71 taken 1679 times.
✓ Branch 72 taken 83401 times.
✓ Branch 73 taken 113791 times.
✓ Branch 74 taken 63761 times.
✓ Branch 75 taken 63761 times.
✓ Branch 76 taken 124973 times.
✓ Branch 77 taken 149861 times.
✓ Branch 78 taken 149861 times.
✗ Branch 79 not taken.
✓ Branch 80 taken 1531 times.
✓ Branch 81 taken 1531 times.
✓ Branch 82 taken 1567 times.
✓ Branch 83 taken 1567 times.
✓ Branch 84 taken 21 times.
✓ Branch 85 taken 21 times.
✓ Branch 86 taken 3119 times.
✓ Branch 87 taken 3585 times.
✓ Branch 88 taken 3585 times.
✓ Branch 89 taken 2452 times.
✓ Branch 90 taken 200 times.
✓ Branch 91 taken 102 times.
✓ Branch 92 taken 40013 times.
✓ Branch 93 taken 35634 times.
✓ Branch 94 taken 737 times.
✗ Branch 95 not taken.
✓ Branch 96 taken 757 times.
✗ Branch 97 not taken.
✓ Branch 98 taken 16 times.
✗ Branch 99 not taken.
✓ Branch 100 taken 30115 times.
✓ Branch 101 taken 60230 times.
✓ Branch 102 taken 2586 times.
✓ Branch 103 taken 7756 times.
✓ Branch 104 taken 4029 times.
✓ Branch 105 taken 9055 times.
✓ Branch 106 taken 2112 times.
✓ Branch 107 taken 4464 times.
✓ Branch 108 taken 428 times.
✓ Branch 109 taken 860 times.
✓ Branch 110 taken 77 times.
✓ Branch 111 taken 156 times.
✓ Branch 112 taken 260 times.
✓ Branch 113 taken 522 times.
✓ Branch 114 taken 26959 times.
✓ Branch 115 taken 53918 times.
✓ Branch 116 taken 16330 times.
✓ Branch 117 taken 32660 times.
✓ Branch 118 taken 607 times.
✓ Branch 119 taken 1337 times.
✓ Branch 120 taken 14912 times.
✓ Branch 121 taken 31322 times.
✓ Branch 122 taken 3321 times.
✓ Branch 123 taken 6696 times.
✓ Branch 124 taken 12381 times.
✓ Branch 125 taken 24762 times.
✓ Branch 126 taken 6979 times.
✓ Branch 127 taken 6979 times.
✓ Branch 128 taken 105077 times.
✓ Branch 129 taken 118147 times.
✓ Branch 130 taken 396433 times.
✓ Branch 131 taken 166690 times.
✓ Branch 132 taken 90647 times.
✓ Branch 133 taken 90647 times.
✓ Branch 134 taken 80488 times.
✗ Branch 135 not taken.
✓ Branch 136 taken 80547 times.
✓ Branch 137 taken 64645 times.
✓ Branch 138 taken 180 times.
✓ Branch 139 taken 179 times.
✓ Branch 140 taken 1535 times.
✓ Branch 141 taken 1512 times.
✓ Branch 142 taken 67 times.
✓ Branch 143 taken 194 times.
✓ Branch 144 taken 73 times.
✓ Branch 145 taken 128 times.
✓ Branch 146 taken 4 times.
✓ Branch 147 taken 8 times.
✓ Branch 148 taken 197452 times.
✓ Branch 149 taken 278130 times.
✓ Branch 150 taken 197452 times.
✓ Branch 151 taken 73242 times.
✓ Branch 152 taken 72537 times.
✓ Branch 153 taken 10881 times.
✓ Branch 154 taken 705 times.
✓ Branch 155 taken 948 times.
4434760 foreach ASTNode* child : node.children {
49 2215414 assert child != nil<ASTNode*>;
50 2215414 assert child.visitable != nil<IVisitable*>;
51 2215414 Any childDotCode = child.visitable.accept(cast<IAbstractAstVisitor*>(this));
52 2215414 output << " " << childDotCode.get<String>();
53 2215414 }
54
55 4438692 return Any(output.str());
56 2219346 }
57
58 // ─── visitor methods ──────────────────────────────────────────────────────────
59
60 3932 public f<Any> ASTVisualizer.visitEntry(ASTEntryNode* node) { return this.buildNode(node); }
61 1024 public f<Any> ASTVisualizer.visitMainFctDef(ASTMainFctDefNode* node) { return this.buildNode(node); }
62 27984 public f<Any> ASTVisualizer.visitFctDef(ASTFctDefNode* node) { return this.buildNode(node); }
63 17563 public f<Any> ASTVisualizer.visitProcDef(ASTProcDefNode* node) { return this.buildNode(node); }
64 45547 public f<Any> ASTVisualizer.visitFctName(ASTFctNameNode* node) { return this.buildNode(node); }
65 3214 public f<Any> ASTVisualizer.visitStructDef(ASTStructDefNode* node) { return this.buildNode(node); }
66 323 public f<Any> ASTVisualizer.visitInterfaceDef(ASTInterfaceDefNode* node) { return this.buildNode(node); }
67 24 public f<Any> ASTVisualizer.visitUnionDef(ASTUnionDefNode* node) { return this.buildNode(node); }
68 465 public f<Any> ASTVisualizer.visitEnumDef(ASTEnumDefNode* node) { return this.buildNode(node); }
69 3055 public f<Any> ASTVisualizer.visitGenericTypeDef(ASTGenericTypeDefNode* node) { return this.buildNode(node); }
70 159 public f<Any> ASTVisualizer.visitAliasDef(ASTAliasDefNode* node) { return this.buildNode(node); }
71 4263 public f<Any> ASTVisualizer.visitGlobalVarDef(ASTGlobalVarDefNode* node) { return this.buildNode(node); }
72 5206 public f<Any> ASTVisualizer.visitExtDecl(ASTExtDeclNode* node) { return this.buildNode(node); }
73 2502 public f<Any> ASTVisualizer.visitImportDef(ASTImportDefNode* node) { return this.buildNode(node); }
74 12690 public f<Any> ASTVisualizer.visitUnsafeBlock(ASTUnsafeBlockNode* node) { return this.buildNode(node); }
75 4385 public f<Any> ASTVisualizer.visitForLoop(ASTForLoopNode* node) { return this.buildNode(node); }
76 434 public f<Any> ASTVisualizer.visitForeachLoop(ASTForeachLoopNode* node) { return this.buildNode(node); }
77 1852 public f<Any> ASTVisualizer.visitWhileLoop(ASTWhileLoopNode* node) { return this.buildNode(node); }
78 50 public f<Any> ASTVisualizer.visitDoWhileLoop(ASTDoWhileLoopNode* node) { return this.buildNode(node); }
79 24991 public f<Any> ASTVisualizer.visitIfStmt(ASTIfStmtNode* node) { return this.buildNode(node); }
80 1376 public f<Any> ASTVisualizer.visitElseStmt(ASTElseStmtNode* node) { return this.buildNode(node); }
81 38 public f<Any> ASTVisualizer.visitSwitchStmt(ASTSwitchStmtNode* node) { return this.buildNode(node); }
82 195 public f<Any> ASTVisualizer.visitCaseBranch(ASTCaseBranchNode* node) { return this.buildNode(node); }
83 20 public f<Any> ASTVisualizer.visitDefaultBranch(ASTDefaultBranchNode* node) { return this.buildNode(node); }
84 4077 public f<Any> ASTVisualizer.visitAssertStmt(ASTAssertStmtNode* node) { return this.buildNode(node); }
85 126 public f<Any> ASTVisualizer.visitAnonymousBlockStmt(ASTAnonymousBlockStmtNode* node) { return this.buildNode(node); }
86 92282 public f<Any> ASTVisualizer.visitStmtLst(ASTStmtLstNode* node) { return this.buildNode(node); }
87 30422 public f<Any> ASTVisualizer.visitTypeLst(ASTTypeLstNode* node) { return this.buildNode(node); }
88 5134 public f<Any> ASTVisualizer.visitTypeLstWithEllipsis(ASTTypeLstWithEllipsisNode* node) { return this.buildNode(node); }
89 3055 public f<Any> ASTVisualizer.visitTypeAltsLst(ASTTypeAltsLstNode* node) { return this.buildNode(node); }
90 33023 public f<Any> ASTVisualizer.visitParamLst(ASTParamLstNode* node) { return this.buildNode(node); }
91 61338 public f<Any> ASTVisualizer.visitArgLst(ASTArgLstNode* node) { return this.buildNode(node); }
92 465 public f<Any> ASTVisualizer.visitEnumItemLst(ASTEnumItemLstNode* node) { return this.buildNode(node); }
93 1747 public f<Any> ASTVisualizer.visitEnumItem(ASTEnumItemNode* node) { return this.buildNode(node); }
94 7808 public f<Any> ASTVisualizer.visitField(ASTFieldNode* node) { return this.buildNode(node); }
95 742 public f<Any> ASTVisualizer.visitSignature(ASTSignatureNode* node) { return this.buildNode(node); }
96 83401 public f<Any> ASTVisualizer.visitDeclStmt(ASTDeclStmtNode* node) { return this.buildNode(node); }
97 63761 public f<Any> ASTVisualizer.visitExprStmt(ASTExprStmtNode* node) { return this.buildNode(node); }
98 124973 public f<Any> ASTVisualizer.visitQualifierLst(ASTQualifierLstNode* node) { return this.buildNode(node); }
99 149861 public f<Any> ASTVisualizer.visitQualifier(ASTQualifierNode* node) { return this.buildNode(node); }
100 1531 public f<Any> ASTVisualizer.visitModAttr(ASTModAttrNode* node) { return this.buildNode(node); }
101 1567 public f<Any> ASTVisualizer.visitTopLevelDefinitionAttr(ASTTopLevelDefAttrNode* node) { return this.buildNode(node); }
102 21 public f<Any> ASTVisualizer.visitLambdaAttr(ASTLambdaAttrNode* node) { return this.buildNode(node); }
103 3119 public f<Any> ASTVisualizer.visitAttrLst(ASTAttrLstNode* node) { return this.buildNode(node); }
104 3585 public f<Any> ASTVisualizer.visitAttr(ASTAttrNode* node) { return this.buildNode(node); }
105 200 public f<Any> ASTVisualizer.visitCaseConstant(ASTCaseConstantNode* node) { return this.buildNode(node); }
106 40013 public f<Any> ASTVisualizer.visitReturnStmt(ASTReturnStmtNode* node) { return this.buildNode(node); }
107 737 public f<Any> ASTVisualizer.visitBreakStmt(ASTBreakStmtNode* node) { return this.buildNode(node); }
108 757 public f<Any> ASTVisualizer.visitContinueStmt(ASTContinueStmtNode* node) { return this.buildNode(node); }
109 16 public f<Any> ASTVisualizer.visitFallthroughStmt(ASTFallthroughStmtNode* node) { return this.buildNode(node); }
110 30115 public f<Any> ASTVisualizer.visitAssignExpr(ASTAssignExprNode* node) { return this.buildNode(node); }
111 2586 public f<Any> ASTVisualizer.visitTernaryExpr(ASTTernaryExprNode* node) { return this.buildNode(node); }
112 4029 public f<Any> ASTVisualizer.visitLogicalOrExpr(ASTLogicalOrExprNode* node) { return this.buildNode(node); }
113 2112 public f<Any> ASTVisualizer.visitLogicalAndExpr(ASTLogicalAndExprNode* node) { return this.buildNode(node); }
114 428 public f<Any> ASTVisualizer.visitBitwiseOrExpr(ASTBitwiseOrExprNode* node) { return this.buildNode(node); }
115 77 public f<Any> ASTVisualizer.visitBitwiseXorExpr(ASTBitwiseXorExprNode* node) { return this.buildNode(node); }
116 260 public f<Any> ASTVisualizer.visitBitwiseAndExpr(ASTBitwiseAndExprNode* node) { return this.buildNode(node); }
117 26959 public f<Any> ASTVisualizer.visitEqualityExpr(ASTEqualityExprNode* node) { return this.buildNode(node); }
118 16330 public f<Any> ASTVisualizer.visitRelationalExpr(ASTRelationalExprNode* node) { return this.buildNode(node); }
119 607 public f<Any> ASTVisualizer.visitShiftExpr(ASTShiftExprNode* node) { return this.buildNode(node); }
120 14912 public f<Any> ASTVisualizer.visitAdditiveExpr(ASTAdditiveExprNode* node) { return this.buildNode(node); }
121 3321 public f<Any> ASTVisualizer.visitMultiplicativeExpr(ASTMultiplicativeExprNode* node) { return this.buildNode(node); }
122 12381 public f<Any> ASTVisualizer.visitCastExpr(ASTCastExprNode* node) { return this.buildNode(node); }
123 6979 public f<Any> ASTVisualizer.visitPrefixUnaryExpr(ASTPrefixUnaryExprNode* node) { return this.buildNode(node); }
124 105077 public f<Any> ASTVisualizer.visitPostfixUnaryExpr(ASTPostfixUnaryExprNode* node) { return this.buildNode(node); }
125 396433 public f<Any> ASTVisualizer.visitAtomicExpr(ASTAtomicExprNode* node) { return this.buildNode(node); }
126 90647 public f<Any> ASTVisualizer.visitValue(ASTValueNode* node) { return this.buildNode(node); }
127 80488 public f<Any> ASTVisualizer.visitConstant(ASTConstantNode* node) { return this.buildNode(node); }
128 80547 public f<Any> ASTVisualizer.visitFctCall(ASTFctCallNode* node) { return this.buildNode(node); }
129 180 public f<Any> ASTVisualizer.visitArrayInitialization(ASTArrayInitializationNode* node) { return this.buildNode(node); }
130 1535 public f<Any> ASTVisualizer.visitStructInstantiation(ASTStructInstantiationNode* node) { return this.buildNode(node); }
131 67 public f<Any> ASTVisualizer.visitLambdaFunc(ASTLambdaFuncNode* node) { return this.buildNode(node); }
132 73 public f<Any> ASTVisualizer.visitLambdaProc(ASTLambdaProcNode* node) { return this.buildNode(node); }
133 4 public f<Any> ASTVisualizer.visitLambdaExpr(ASTLambdaExprNode* node) { return this.buildNode(node); }
134 197452 public f<Any> ASTVisualizer.visitDataType(ASTDataTypeNode* node) { return this.buildNode(node); }
135 197452 public f<Any> ASTVisualizer.visitBaseDataType(ASTBaseDataTypeNode* node) { return this.buildNode(node); }
136 72537 public f<Any> ASTVisualizer.visitCustomDataType(ASTCustomDataTypeNode* node) { return this.buildNode(node); }
137 705 public f<Any> ASTVisualizer.visitFunctionDataType(ASTFunctionDataTypeNode* node) { return this.buildNode(node); }
138