@algosail/parser 0.0.3 → 0.0.4
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/lib/word.js +93 -16
- package/package.json +1 -1
package/lib/word.js
CHANGED
|
@@ -36,9 +36,12 @@ function parseWord(node) {
|
|
|
36
36
|
|
|
37
37
|
return {
|
|
38
38
|
name,
|
|
39
|
+
sig: field(node, 'sig')?.text,
|
|
39
40
|
doc: comment(field(node, 'doc')),
|
|
40
41
|
signature,
|
|
41
42
|
body,
|
|
43
|
+
startPosition: node.startPosition,
|
|
44
|
+
endPosition: node.endPosition,
|
|
42
45
|
}
|
|
43
46
|
}
|
|
44
47
|
|
|
@@ -81,61 +84,135 @@ function step(node) {
|
|
|
81
84
|
|
|
82
85
|
function quotation(node) {
|
|
83
86
|
const body = children(node).map(step).filter(Boolean)
|
|
84
|
-
return {
|
|
87
|
+
return {
|
|
88
|
+
type: 'quotation',
|
|
89
|
+
body,
|
|
90
|
+
startPosition: node.startPosition,
|
|
91
|
+
endPosition: node.endPosition,
|
|
92
|
+
}
|
|
85
93
|
}
|
|
86
94
|
|
|
87
95
|
function builtinWord(node) {
|
|
88
|
-
return {
|
|
96
|
+
return {
|
|
97
|
+
type: 'builtin_word',
|
|
98
|
+
word: node.text,
|
|
99
|
+
startPosition: node.startPosition,
|
|
100
|
+
endPosition: node.endPosition,
|
|
101
|
+
}
|
|
89
102
|
}
|
|
90
103
|
|
|
91
104
|
function word(node) {
|
|
92
|
-
return {
|
|
105
|
+
return {
|
|
106
|
+
type: 'word',
|
|
107
|
+
word: wordRef(node),
|
|
108
|
+
startPosition: node.startPosition,
|
|
109
|
+
endPosition: node.endPosition,
|
|
110
|
+
}
|
|
93
111
|
}
|
|
94
112
|
|
|
95
113
|
function moduleWord(node) {
|
|
96
|
-
return {
|
|
114
|
+
return {
|
|
115
|
+
type: 'word',
|
|
116
|
+
...(moduleWordRef(node) || {}),
|
|
117
|
+
startPosition: node.startPosition,
|
|
118
|
+
endPosition: node.endPosition,
|
|
119
|
+
}
|
|
97
120
|
}
|
|
98
121
|
|
|
99
122
|
function tagConstructor(node) {
|
|
100
|
-
return {
|
|
123
|
+
return {
|
|
124
|
+
type: 'tag',
|
|
125
|
+
tag: tagRef(node),
|
|
126
|
+
startPosition: node.startPosition,
|
|
127
|
+
endPosition: node.endPosition,
|
|
128
|
+
}
|
|
101
129
|
}
|
|
102
130
|
|
|
103
131
|
function moduleTagConstructor(node) {
|
|
104
|
-
return {
|
|
132
|
+
return {
|
|
133
|
+
type: 'tag',
|
|
134
|
+
...(moduleTagRef(node) || {}),
|
|
135
|
+
startPosition: node.startPosition,
|
|
136
|
+
endPosition: node.endPosition,
|
|
137
|
+
}
|
|
105
138
|
}
|
|
106
139
|
|
|
107
140
|
function patternTag(node) {
|
|
108
|
-
return {
|
|
141
|
+
return {
|
|
142
|
+
type: 'pattern_tag',
|
|
143
|
+
tag: tagPattern(node),
|
|
144
|
+
startPosition: node.startPosition,
|
|
145
|
+
endPosition: node.endPosition,
|
|
146
|
+
}
|
|
109
147
|
}
|
|
110
148
|
|
|
111
149
|
function patternModuleTag(node) {
|
|
112
|
-
return {
|
|
150
|
+
return {
|
|
151
|
+
type: 'pattern_tag',
|
|
152
|
+
...(moduleTagPattern(node) || {}),
|
|
153
|
+
startPosition: node.startPosition,
|
|
154
|
+
endPosition: node.endPosition,
|
|
155
|
+
}
|
|
113
156
|
}
|
|
114
157
|
|
|
115
|
-
function patternDefault(
|
|
116
|
-
return {
|
|
158
|
+
function patternDefault(node) {
|
|
159
|
+
return {
|
|
160
|
+
type: 'pattern_default',
|
|
161
|
+
startPosition: node.startPosition,
|
|
162
|
+
endPosition: node.endPosition,
|
|
163
|
+
}
|
|
117
164
|
}
|
|
118
165
|
|
|
119
166
|
function fieldLens(node) {
|
|
120
|
-
return {
|
|
167
|
+
return {
|
|
168
|
+
type: 'field_lens',
|
|
169
|
+
field: fieldRef(node),
|
|
170
|
+
startPosition: node.startPosition,
|
|
171
|
+
endPosition: node.endPosition,
|
|
172
|
+
}
|
|
121
173
|
}
|
|
122
174
|
|
|
123
175
|
function moduleFieldLens(node) {
|
|
124
|
-
return {
|
|
176
|
+
return {
|
|
177
|
+
type: 'field_lens',
|
|
178
|
+
...(moduleFieldRef(node) || {}),
|
|
179
|
+
startPosition: node.startPosition,
|
|
180
|
+
endPosition: node.endPosition,
|
|
181
|
+
}
|
|
125
182
|
}
|
|
126
183
|
|
|
127
184
|
function writeSlot(node) {
|
|
128
|
-
return {
|
|
185
|
+
return {
|
|
186
|
+
type: 'slot_write',
|
|
187
|
+
value: slotWrite(node),
|
|
188
|
+
startPosition: node.startPosition,
|
|
189
|
+
endPosition: node.endPosition,
|
|
190
|
+
}
|
|
129
191
|
}
|
|
130
192
|
|
|
131
193
|
function readSlot(node) {
|
|
132
|
-
return {
|
|
194
|
+
return {
|
|
195
|
+
type: 'slot_read',
|
|
196
|
+
value: slotRead(node),
|
|
197
|
+
startPosition: node.startPosition,
|
|
198
|
+
endPosition: node.endPosition,
|
|
199
|
+
}
|
|
133
200
|
}
|
|
134
201
|
|
|
135
202
|
function rawFromString(node) {
|
|
136
|
-
return {
|
|
203
|
+
return {
|
|
204
|
+
type: 'raw',
|
|
205
|
+
value: rawString(node),
|
|
206
|
+
startPosition: node.startPosition,
|
|
207
|
+
endPosition: node.endPosition,
|
|
208
|
+
}
|
|
137
209
|
}
|
|
138
210
|
|
|
139
211
|
function raw(node) {
|
|
140
|
-
return {
|
|
212
|
+
return {
|
|
213
|
+
type: 'raw',
|
|
214
|
+
value: rawValue(node),
|
|
215
|
+
startPosition: node.startPosition,
|
|
216
|
+
endPosition: node.endPosition,
|
|
217
|
+
}
|
|
141
218
|
}
|