1
1
<a name =" module_symbol-tree " ></a >
2
+
2
3
## symbol-tree
3
4
** Author:** Joris van der Wel < joris@jorisvanderwel.com >
4
5
5
6
* [ symbol-tree] ( #module_symbol-tree )
6
- * [ SymbolTree] ( #exp_module_symbol-tree--SymbolTree ) ⏏
7
- * [ new SymbolTree([ description] )] ( #new_module_symbol-tree--SymbolTree_new )
8
- * [ .initialize(object)] ( #module_symbol-tree--SymbolTree+initialize ) ⇒ <code >Object</code >
9
- * [ .hasChildren(object)] ( #module_symbol-tree--SymbolTree+hasChildren ) ⇒ <code >Boolean</code >
10
- * [ .firstChild(object)] ( #module_symbol-tree--SymbolTree+firstChild ) ⇒ <code >Object</code >
11
- * [ .lastChild(object)] ( #module_symbol-tree--SymbolTree+lastChild ) ⇒ <code >Object</code >
12
- * [ .previousSibling(object)] ( #module_symbol-tree--SymbolTree+previousSibling ) ⇒ <code >Object</code >
13
- * [ .nextSibling(object)] ( #module_symbol-tree--SymbolTree+nextSibling ) ⇒ <code >Object</code >
14
- * [ .parent(object)] ( #module_symbol-tree--SymbolTree+parent ) ⇒ <code >Object</code >
15
- * [ .lastInclusiveDescendant(object)] ( #module_symbol-tree--SymbolTree+lastInclusiveDescendant ) ⇒ <code >Object</code >
16
- * [ .preceding(object, [ options] )] ( #module_symbol-tree--SymbolTree+preceding ) ⇒ <code >Object</code >
17
- * [ .following(object, [ options] )] ( #module_symbol-tree--SymbolTree+following ) ⇒ <code >Object</code >
18
- * [ .childrenToArray(parent, [ options] )] ( #module_symbol-tree--SymbolTree+childrenToArray ) ⇒ <code >Array.< ; Object> ; </code >
19
- * [ .ancestorsToArray(object, [ options] )] ( #module_symbol-tree--SymbolTree+ancestorsToArray ) ⇒ <code >Array.< ; Object> ; </code >
20
- * [ .treeToArray(root, [ options] )] ( #module_symbol-tree--SymbolTree+treeToArray ) ⇒ <code >Array.< ; Object> ; </code >
21
- * [ .childrenIterator(parent, [ options] )] ( #module_symbol-tree--SymbolTree+childrenIterator ) ⇒ <code >Object</code >
22
- * [ .previousSiblingsIterator(object)] ( #module_symbol-tree--SymbolTree+previousSiblingsIterator ) ⇒ <code >Object</code >
23
- * [ .nextSiblingsIterator(object)] ( #module_symbol-tree--SymbolTree+nextSiblingsIterator ) ⇒ <code >Object</code >
24
- * [ .ancestorsIterator(object)] ( #module_symbol-tree--SymbolTree+ancestorsIterator ) ⇒ <code >Object</code >
25
- * [ .treeIterator(root, options)] ( #module_symbol-tree--SymbolTree+treeIterator ) ⇒ <code >Object</code >
26
- * [ .index(child)] ( #module_symbol-tree--SymbolTree+index ) ⇒ <code >Number</code >
27
- * [ .childrenCount(parent)] ( #module_symbol-tree--SymbolTree+childrenCount ) ⇒ <code >Number</code >
28
- * [ .compareTreePosition(left, right)] ( #module_symbol-tree--SymbolTree+compareTreePosition ) ⇒ <code >Number</code >
29
- * [ .remove(removeObject)] ( #module_symbol-tree--SymbolTree+remove ) ⇒ <code >Object</code >
30
- * [ .insertBefore(referenceObject, newObject)] ( #module_symbol-tree--SymbolTree+insertBefore ) ⇒ <code >Object</code >
31
- * [ .insertAfter(referenceObject, newObject)] ( #module_symbol-tree--SymbolTree+insertAfter ) ⇒ <code >Object</code >
32
- * [ .prependChild(referenceObject, newObject)] ( #module_symbol-tree--SymbolTree+prependChild ) ⇒ <code >Object</code >
33
- * [ .appendChild(referenceObject, newObject)] ( #module_symbol-tree--SymbolTree+appendChild ) ⇒ <code >Object</code >
7
+ * [ SymbolTree] ( #exp_module_symbol-tree--SymbolTree ) ⏏
8
+ * [ new SymbolTree([ description] )] ( #new_module_symbol-tree--SymbolTree_new )
9
+ * [ .initialize(object)] ( #module_symbol-tree--SymbolTree+initialize ) ⇒ <code >Object</code >
10
+ * [ .hasChildren(object)] ( #module_symbol-tree--SymbolTree+hasChildren ) ⇒ <code >Boolean</code >
11
+ * [ .firstChild(object)] ( #module_symbol-tree--SymbolTree+firstChild ) ⇒ <code >Object</code >
12
+ * [ .lastChild(object)] ( #module_symbol-tree--SymbolTree+lastChild ) ⇒ <code >Object</code >
13
+ * [ .previousSibling(object)] ( #module_symbol-tree--SymbolTree+previousSibling ) ⇒ <code >Object</code >
14
+ * [ .nextSibling(object)] ( #module_symbol-tree--SymbolTree+nextSibling ) ⇒ <code >Object</code >
15
+ * [ .parent(object)] ( #module_symbol-tree--SymbolTree+parent ) ⇒ <code >Object</code >
16
+ * [ .lastInclusiveDescendant(object)] ( #module_symbol-tree--SymbolTree+lastInclusiveDescendant ) ⇒ <code >Object</code >
17
+ * [ .preceding(object, [ options] )] ( #module_symbol-tree--SymbolTree+preceding ) ⇒ <code >Object</code >
18
+ * [ .following(object, [ options] )] ( #module_symbol-tree--SymbolTree+following ) ⇒ <code >Object</code >
19
+ * [ .childrenToArray(parent, [ options] )] ( #module_symbol-tree--SymbolTree+childrenToArray ) ⇒ <code >Array.< ; Object> ; </code >
20
+ * [ .ancestorsToArray(object, [ options] )] ( #module_symbol-tree--SymbolTree+ancestorsToArray ) ⇒ <code >Array.< ; Object> ; </code >
21
+ * [ .treeToArray(root, [ options] )] ( #module_symbol-tree--SymbolTree+treeToArray ) ⇒ <code >Array.< ; Object> ; </code >
22
+ * [ .childrenIterator(parent, [ options] )] ( #module_symbol-tree--SymbolTree+childrenIterator ) ⇒ <code >Object</code >
23
+ * [ .previousSiblingsIterator(object)] ( #module_symbol-tree--SymbolTree+previousSiblingsIterator ) ⇒ <code >Object</code >
24
+ * [ .nextSiblingsIterator(object)] ( #module_symbol-tree--SymbolTree+nextSiblingsIterator ) ⇒ <code >Object</code >
25
+ * [ .ancestorsIterator(object)] ( #module_symbol-tree--SymbolTree+ancestorsIterator ) ⇒ <code >Object</code >
26
+ * [ .treeIterator(root, options)] ( #module_symbol-tree--SymbolTree+treeIterator ) ⇒ <code >Object</code >
27
+ * [ .index(child)] ( #module_symbol-tree--SymbolTree+index ) ⇒ <code >Number</code >
28
+ * [ .childrenCount(parent)] ( #module_symbol-tree--SymbolTree+childrenCount ) ⇒ <code >Number</code >
29
+ * [ .compareTreePosition(left, right)] ( #module_symbol-tree--SymbolTree+compareTreePosition ) ⇒ <code >Number</code >
30
+ * [ .remove(removeObject)] ( #module_symbol-tree--SymbolTree+remove ) ⇒ <code >Object</code >
31
+ * [ .insertBefore(referenceObject, newObject)] ( #module_symbol-tree--SymbolTree+insertBefore ) ⇒ <code >Object</code >
32
+ * [ .insertAfter(referenceObject, newObject)] ( #module_symbol-tree--SymbolTree+insertAfter ) ⇒ <code >Object</code >
33
+ * [ .prependChild(referenceObject, newObject)] ( #module_symbol-tree--SymbolTree+prependChild ) ⇒ <code >Object</code >
34
+ * [ .appendChild(referenceObject, newObject)] ( #module_symbol-tree--SymbolTree+appendChild ) ⇒ <code >Object</code >
34
35
35
36
<a name =" exp_module_symbol-tree--SymbolTree " ></a >
37
+
36
38
### SymbolTree ⏏
37
39
** Kind** : Exported class
38
40
<a name =" new_module_symbol-tree--SymbolTree_new " ></a >
41
+
39
42
#### new SymbolTree([ description] )
40
43
41
- | Param | Default | Description |
42
- | --- | --- | --- |
43
- | [ description] | <code >& #x27 ; SymbolTree data' ; </code > | Description used for the Symbol |
44
+ | Param | Type | Default | Description |
45
+ | --- | --- | --- | --- |
46
+ | [ description] | <code >string</ code > | < code > & quot ; & #x27 ; SymbolTree data' ; & quot ; </code > | Description used for the Symbol |
44
47
45
48
<a name =" module_symbol-tree--SymbolTree+initialize " ></a >
49
+
46
50
#### symbolTree.initialize(object) ⇒ <code >Object</code >
47
51
You can use this function to (optionally) initialize an object right after its creation,
48
52
to take advantage of V8's fast properties. Also useful if you would like to
@@ -58,6 +62,7 @@ freeze your object.
58
62
| object | <code >Object</code > |
59
63
60
64
<a name =" module_symbol-tree--SymbolTree+hasChildren " ></a >
65
+
61
66
#### symbolTree.hasChildren(object) ⇒ <code >Boolean</code >
62
67
Returns ` true ` if the object has any children. Otherwise it returns ` false ` .
63
68
@@ -70,6 +75,7 @@ Returns `true` if the object has any children. Otherwise it returns `false`.
70
75
| object | <code >Object</code > |
71
76
72
77
<a name =" module_symbol-tree--SymbolTree+firstChild " ></a >
78
+
73
79
#### symbolTree.firstChild(object) ⇒ <code >Object</code >
74
80
Returns the first child of the given object.
75
81
@@ -82,6 +88,7 @@ Returns the first child of the given object.
82
88
| object | <code >Object</code > |
83
89
84
90
<a name =" module_symbol-tree--SymbolTree+lastChild " ></a >
91
+
85
92
#### symbolTree.lastChild(object) ⇒ <code >Object</code >
86
93
Returns the last child of the given object.
87
94
@@ -94,6 +101,7 @@ Returns the last child of the given object.
94
101
| object | <code >Object</code > |
95
102
96
103
<a name =" module_symbol-tree--SymbolTree+previousSibling " ></a >
104
+
97
105
#### symbolTree.previousSibling(object) ⇒ <code >Object</code >
98
106
Returns the previous sibling of the given object.
99
107
@@ -106,6 +114,7 @@ Returns the previous sibling of the given object.
106
114
| object | <code >Object</code > |
107
115
108
116
<a name =" module_symbol-tree--SymbolTree+nextSibling " ></a >
117
+
109
118
#### symbolTree.nextSibling(object) ⇒ <code >Object</code >
110
119
Returns the next sibling of the given object.
111
120
@@ -118,6 +127,7 @@ Returns the next sibling of the given object.
118
127
| object | <code >Object</code > |
119
128
120
129
<a name =" module_symbol-tree--SymbolTree+parent " ></a >
130
+
121
131
#### symbolTree.parent(object) ⇒ <code >Object</code >
122
132
Return the parent of the given object.
123
133
@@ -130,6 +140,7 @@ Return the parent of the given object.
130
140
| object | <code >Object</code > |
131
141
132
142
<a name =" module_symbol-tree--SymbolTree+lastInclusiveDescendant " ></a >
143
+
133
144
#### symbolTree.lastInclusiveDescendant(object) ⇒ <code >Object</code >
134
145
Find the inclusive descendant that is last in tree order of the given object.
135
146
@@ -142,6 +153,7 @@ Find the inclusive descendant that is last in tree order of the given object.
142
153
| object | <code >Object</code > |
143
154
144
155
<a name =" module_symbol-tree--SymbolTree+preceding " ></a >
156
+
145
157
#### symbolTree.preceding(object, [ options] ) ⇒ <code >Object</code >
146
158
Find the preceding object (A) of the given object (B).
147
159
An object A is preceding an object B if A and B are in the same tree
@@ -156,9 +168,10 @@ and A comes before B in tree order.
156
168
| --- | --- | --- |
157
169
| object | <code >Object</code > | |
158
170
| [ options] | <code >Object</code > | |
159
- | [ options.root] | <code >Object</code > | If set, ` root ` must be an inclusive ancestor of the return value (or else null is returned). This check _ assumes_ that ` root ` is also an inclusive ancestor of the given ` node ` |
171
+ | [ options.root] | <code >Object</code > | If set, ` root ` must be an inclusive ancestor of the return value (or else null is returned). This check _ assumes_ that ` root ` is also an inclusive ancestor of the given ` object ` |
160
172
161
173
<a name =" module_symbol-tree--SymbolTree+following " ></a >
174
+
162
175
#### symbolTree.following(object, [ options] ) ⇒ <code >Object</code >
163
176
Find the following object (A) of the given object (B).
164
177
An object A is following an object B if A and B are in the same tree
@@ -173,10 +186,11 @@ and A comes after B in tree order.
173
186
| --- | --- | --- | --- |
174
187
| object | <code >Object</code > | | |
175
188
| [ options] | <code >Object</code > | | |
176
- | [ options.root] | <code >Object</code > | | If set, ` root ` must be an inclusive ancestor of the return value (or else null is returned). This check _ assumes_ that ` root ` is also an inclusive ancestor of the given ` node ` |
189
+ | [ options.root] | <code >Object</code > | | If set, ` root ` must be an inclusive ancestor of the return value (or else null is returned). This check _ assumes_ that ` root ` is also an inclusive ancestor of the given ` object ` |
177
190
| [ options.skipChildren] | <code >Boolean</code > | <code >false</code > | If set, ignore the children of ` object ` |
178
191
179
192
<a name =" module_symbol-tree--SymbolTree+childrenToArray " ></a >
193
+
180
194
#### symbolTree.childrenToArray(parent, [ options] ) ⇒ <code >Array.< ; Object> ; </code >
181
195
Append all children of the given object to an array.
182
196
@@ -193,6 +207,7 @@ Append all children of the given object to an array.
193
207
| [ options.thisArg] | <code >\* </code > | | Value to use as ` this ` when executing ` filter ` . |
194
208
195
209
<a name =" module_symbol-tree--SymbolTree+ancestorsToArray " ></a >
210
+
196
211
#### symbolTree.ancestorsToArray(object, [ options] ) ⇒ <code >Array.< ; Object> ; </code >
197
212
Append all inclusive ancestors of the given object to an array.
198
213
@@ -209,6 +224,7 @@ Append all inclusive ancestors of the given object to an array.
209
224
| [ options.thisArg] | <code >\* </code > | | Value to use as ` this ` when executing ` filter ` . |
210
225
211
226
<a name =" module_symbol-tree--SymbolTree+treeToArray " ></a >
227
+
212
228
#### symbolTree.treeToArray(root, [ options] ) ⇒ <code >Array.< ; Object> ; </code >
213
229
Append all descendants of the given object to an array (in tree order).
214
230
@@ -225,6 +241,7 @@ Append all descendants of the given object to an array (in tree order).
225
241
| [ options.thisArg] | <code >\* </code > | | Value to use as ` this ` when executing ` filter ` . |
226
242
227
243
<a name =" module_symbol-tree--SymbolTree+childrenIterator " ></a >
244
+
228
245
#### symbolTree.childrenIterator(parent, [ options] ) ⇒ <code >Object</code >
229
246
Iterate over all children of the given object
230
247
@@ -240,6 +257,7 @@ Iterate over all children of the given object
240
257
| [ options.reverse] | <code >Boolean</code > | <code >false</code > |
241
258
242
259
<a name =" module_symbol-tree--SymbolTree+previousSiblingsIterator " ></a >
260
+
243
261
#### symbolTree.previousSiblingsIterator(object) ⇒ <code >Object</code >
244
262
Iterate over all the previous siblings of the given object. (in reverse tree order)
245
263
@@ -253,6 +271,7 @@ Iterate over all the previous siblings of the given object. (in reverse tree ord
253
271
| object | <code >Object</code > |
254
272
255
273
<a name =" module_symbol-tree--SymbolTree+nextSiblingsIterator " ></a >
274
+
256
275
#### symbolTree.nextSiblingsIterator(object) ⇒ <code >Object</code >
257
276
Iterate over all the next siblings of the given object. (in tree order)
258
277
@@ -266,6 +285,7 @@ Iterate over all the next siblings of the given object. (in tree order)
266
285
| object | <code >Object</code > |
267
286
268
287
<a name =" module_symbol-tree--SymbolTree+ancestorsIterator " ></a >
288
+
269
289
#### symbolTree.ancestorsIterator(object) ⇒ <code >Object</code >
270
290
Iterate over all inclusive ancestors of the given object
271
291
@@ -279,6 +299,7 @@ Iterate over all inclusive ancestors of the given object
279
299
| object | <code >Object</code > |
280
300
281
301
<a name =" module_symbol-tree--SymbolTree+treeIterator " ></a >
302
+
282
303
#### symbolTree.treeIterator(root, options) ⇒ <code >Object</code >
283
304
Iterate over all descendants of the given object (in tree order).
284
305
@@ -297,6 +318,7 @@ Where `n` is the amount of objects in the sub-tree of the given `root`:
297
318
| [ options.reverse] | <code >Boolean</code > | <code >false</code > |
298
319
299
320
<a name =" module_symbol-tree--SymbolTree+index " ></a >
321
+
300
322
#### symbolTree.index(child) ⇒ <code >Number</code >
301
323
Find the index of the given object (the number of preceding siblings).
302
324
@@ -311,6 +333,7 @@ Find the index of the given object (the number of preceding siblings).
311
333
| child | <code >Object</code > |
312
334
313
335
<a name =" module_symbol-tree--SymbolTree+childrenCount " ></a >
336
+
314
337
#### symbolTree.childrenCount(parent) ⇒ <code >Number</code >
315
338
Calculate the number of children.
316
339
@@ -324,6 +347,7 @@ Calculate the number of children.
324
347
| parent | <code >Object</code > |
325
348
326
349
<a name =" module_symbol-tree--SymbolTree+compareTreePosition " ></a >
350
+
327
351
#### symbolTree.compareTreePosition(left, right) ⇒ <code >Number</code >
328
352
Compare the position of an object relative to another object. A bit set is returned:
329
353
@@ -352,6 +376,7 @@ where `o` is the amount of children of the lowest common ancestor of `left` and
352
376
| right | <code >Object</code > |
353
377
354
378
<a name =" module_symbol-tree--SymbolTree+remove " ></a >
379
+
355
380
#### symbolTree.remove(removeObject) ⇒ <code >Object</code >
356
381
Remove the object from this tree.
357
382
Has no effect if already removed.
@@ -366,6 +391,7 @@ Has no effect if already removed.
366
391
| removeObject | <code >Object</code > |
367
392
368
393
<a name =" module_symbol-tree--SymbolTree+insertBefore " ></a >
394
+
369
395
#### symbolTree.insertBefore(referenceObject, newObject) ⇒ <code >Object</code >
370
396
Insert the given object before the reference object.
371
397
` newObject ` is now the previous sibling of ` referenceObject ` .
@@ -385,6 +411,7 @@ Insert the given object before the reference object.
385
411
| newObject | <code >Object</code > |
386
412
387
413
<a name =" module_symbol-tree--SymbolTree+insertAfter " ></a >
414
+
388
415
#### symbolTree.insertAfter(referenceObject, newObject) ⇒ <code >Object</code >
389
416
Insert the given object after the reference object.
390
417
` newObject ` is now the next sibling of ` referenceObject ` .
@@ -404,6 +431,7 @@ Insert the given object after the reference object.
404
431
| newObject | <code >Object</code > |
405
432
406
433
<a name =" module_symbol-tree--SymbolTree+prependChild " ></a >
434
+
407
435
#### symbolTree.prependChild(referenceObject, newObject) ⇒ <code >Object</code >
408
436
Insert the given object as the first child of the given reference object.
409
437
` newObject ` is now the first child of ` referenceObject ` .
@@ -423,6 +451,7 @@ Insert the given object as the first child of the given reference object.
423
451
| newObject | <code >Object</code > |
424
452
425
453
<a name =" module_symbol-tree--SymbolTree+appendChild " ></a >
454
+
426
455
#### symbolTree.appendChild(referenceObject, newObject) ⇒ <code >Object</code >
427
456
Insert the given object as the last child of the given reference object.
428
457
` newObject ` is now the last child of ` referenceObject ` .
0 commit comments