@herb-tools/core 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/src/visitor.ts CHANGED
@@ -1,14 +1,174 @@
1
- import { Node } from "./node.js"
1
+ // NOTE: This file is generated by the templates/template.rb script and should not
2
+ // be modified manually. See /Users/marcoroth/Development/herb-release/templates/javascript/packages/core/src/visitor.ts.erb
3
+
4
+ import { Node } from "./node"
5
+
6
+ import {
7
+ DocumentNode,
8
+ LiteralNode,
9
+ HTMLOpenTagNode,
10
+ HTMLCloseTagNode,
11
+ HTMLSelfCloseTagNode,
12
+ HTMLElementNode,
13
+ HTMLAttributeValueNode,
14
+ HTMLAttributeNameNode,
15
+ HTMLAttributeNode,
16
+ HTMLTextNode,
17
+ HTMLCommentNode,
18
+ HTMLDoctypeNode,
19
+ WhitespaceNode,
20
+ ERBContentNode,
21
+ ERBEndNode,
22
+ ERBElseNode,
23
+ ERBIfNode,
24
+ ERBBlockNode,
25
+ ERBWhenNode,
26
+ ERBCaseNode,
27
+ ERBCaseMatchNode,
28
+ ERBWhileNode,
29
+ ERBUntilNode,
30
+ ERBForNode,
31
+ ERBRescueNode,
32
+ ERBEnsureNode,
33
+ ERBBeginNode,
34
+ ERBUnlessNode,
35
+ ERBYieldNode,
36
+ ERBInNode,
37
+ } from "./nodes.js"
2
38
 
3
- /**
4
- * Represents a visitor that can traverse nodes.
5
- */
6
39
  export class Visitor {
7
- /**
8
- * Visits a node and performs an action.
9
- * @param node - The node to visit.
10
- */
11
- visit(node: Node) {
12
- console.log("Node", node) // TODO: implement
40
+ visit(node: Node | null | undefined): void {
41
+ if (!node) return
42
+
43
+ node.accept(this)
44
+ }
45
+
46
+ visitAll(nodes: (Node | null | undefined)[]): void {
47
+ nodes.forEach(node => node?.accept(this))
48
+ }
49
+
50
+ visitChildNodes(node: Node): void {
51
+ node.compactChildNodes().forEach(node => node.accept(this))
52
+ }
53
+
54
+ visitDocumentNode(node: DocumentNode): void {
55
+ this.visitChildNodes(node)
56
+ }
57
+
58
+ visitLiteralNode(node: LiteralNode): void {
59
+ this.visitChildNodes(node)
60
+ }
61
+
62
+ visitHTMLOpenTagNode(node: HTMLOpenTagNode): void {
63
+ this.visitChildNodes(node)
64
+ }
65
+
66
+ visitHTMLCloseTagNode(node: HTMLCloseTagNode): void {
67
+ this.visitChildNodes(node)
68
+ }
69
+
70
+ visitHTMLSelfCloseTagNode(node: HTMLSelfCloseTagNode): void {
71
+ this.visitChildNodes(node)
72
+ }
73
+
74
+ visitHTMLElementNode(node: HTMLElementNode): void {
75
+ this.visitChildNodes(node)
76
+ }
77
+
78
+ visitHTMLAttributeValueNode(node: HTMLAttributeValueNode): void {
79
+ this.visitChildNodes(node)
80
+ }
81
+
82
+ visitHTMLAttributeNameNode(node: HTMLAttributeNameNode): void {
83
+ this.visitChildNodes(node)
84
+ }
85
+
86
+ visitHTMLAttributeNode(node: HTMLAttributeNode): void {
87
+ this.visitChildNodes(node)
88
+ }
89
+
90
+ visitHTMLTextNode(node: HTMLTextNode): void {
91
+ this.visitChildNodes(node)
92
+ }
93
+
94
+ visitHTMLCommentNode(node: HTMLCommentNode): void {
95
+ this.visitChildNodes(node)
96
+ }
97
+
98
+ visitHTMLDoctypeNode(node: HTMLDoctypeNode): void {
99
+ this.visitChildNodes(node)
100
+ }
101
+
102
+ visitWhitespaceNode(node: WhitespaceNode): void {
103
+ this.visitChildNodes(node)
104
+ }
105
+
106
+ visitERBContentNode(node: ERBContentNode): void {
107
+ this.visitChildNodes(node)
108
+ }
109
+
110
+ visitERBEndNode(node: ERBEndNode): void {
111
+ this.visitChildNodes(node)
112
+ }
113
+
114
+ visitERBElseNode(node: ERBElseNode): void {
115
+ this.visitChildNodes(node)
116
+ }
117
+
118
+ visitERBIfNode(node: ERBIfNode): void {
119
+ this.visitChildNodes(node)
120
+ }
121
+
122
+ visitERBBlockNode(node: ERBBlockNode): void {
123
+ this.visitChildNodes(node)
124
+ }
125
+
126
+ visitERBWhenNode(node: ERBWhenNode): void {
127
+ this.visitChildNodes(node)
128
+ }
129
+
130
+ visitERBCaseNode(node: ERBCaseNode): void {
131
+ this.visitChildNodes(node)
132
+ }
133
+
134
+ visitERBCaseMatchNode(node: ERBCaseMatchNode): void {
135
+ this.visitChildNodes(node)
136
+ }
137
+
138
+ visitERBWhileNode(node: ERBWhileNode): void {
139
+ this.visitChildNodes(node)
13
140
  }
141
+
142
+ visitERBUntilNode(node: ERBUntilNode): void {
143
+ this.visitChildNodes(node)
144
+ }
145
+
146
+ visitERBForNode(node: ERBForNode): void {
147
+ this.visitChildNodes(node)
148
+ }
149
+
150
+ visitERBRescueNode(node: ERBRescueNode): void {
151
+ this.visitChildNodes(node)
152
+ }
153
+
154
+ visitERBEnsureNode(node: ERBEnsureNode): void {
155
+ this.visitChildNodes(node)
156
+ }
157
+
158
+ visitERBBeginNode(node: ERBBeginNode): void {
159
+ this.visitChildNodes(node)
160
+ }
161
+
162
+ visitERBUnlessNode(node: ERBUnlessNode): void {
163
+ this.visitChildNodes(node)
164
+ }
165
+
166
+ visitERBYieldNode(node: ERBYieldNode): void {
167
+ this.visitChildNodes(node)
168
+ }
169
+
170
+ visitERBInNode(node: ERBInNode): void {
171
+ this.visitChildNodes(node)
172
+ }
173
+
14
174
  }
@@ -1,4 +0,0 @@
1
- export declare class ASTNode {
2
- readonly errors: any[];
3
- constructor();
4
- }
package/src/ast.ts DELETED
@@ -1,7 +0,0 @@
1
- export class ASTNode {
2
- readonly errors: any[]
3
-
4
- constructor() {
5
- this.errors = []
6
- }
7
- }