-
Notifications
You must be signed in to change notification settings - Fork 72
/
Copy pathlexer.js.html
603 lines (538 loc) · 63 KB
/
lexer.js.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>
lexer.js - Documentation
</title>
<link href="https://www.braintreepayments.com/images/favicon-ccda0b14.png" rel="icon" type="image/png">
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.7.0/highlight.min.js"></script>
<script>hljs.initHighlightingOnLoad();</script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
<link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
<link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.css" />
<script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script>
<!-- start Mixpanel -->
<script type="text/javascript">(function(e,a){if(!a.__SV){var b=window;try{var c,l,i,j=b.location,g=j.hash;c=function(a,b){return(l=a.match(RegExp(b+"=([^&]*)")))?l[1]:null};g&&c(g,"state")&&(i=JSON.parse(decodeURIComponent(c(g,"state"))),"mpeditor"===i.action&&(b.sessionStorage.setItem("_mpcehash",g),history.replaceState(i.desiredHash||"",e.title,j.pathname+j.search)))}catch(m){}var k,h;window.mixpanel=a;a._i=[];a.init=function(b,c,f){function e(b,a){var c=a.split(".");2==c.length&&(b=b[c[0]],a=c[1]);b[a]=function(){b.push([a].concat(Array.prototype.slice.call(arguments,
0)))}}var d=a;"undefined"!==typeof f?d=a[f]=[]:f="mixpanel";d.people=d.people||[];d.toString=function(b){var a="mixpanel";"mixpanel"!==f&&(a+="."+f);b||(a+=" (stub)");return a};d.people.toString=function(){return d.toString(1)+".people (stub)"};k="disable time_event track track_pageview track_links track_forms register register_once alias unregister identify name_tag set_config reset people.set people.set_once people.increment people.append people.union people.track_charge people.clear_charges people.delete_user".split(" ");
for(h=0;h<k.length;h++)e(d,k[h]);a._i.push([b,c,f])};a.__SV=1.2;b=e.createElement("script");b.type="text/javascript";b.async=!0;b.src="undefined"!==typeof MIXPANEL_CUSTOM_LIB_URL?MIXPANEL_CUSTOM_LIB_URL:"file:"===e.location.protocol&&"//cdn.mxpnl.com/libs/mixpanel-2-latest.min.js".match(/^\/\//)?"https://cdn.mxpnl.com/libs/mixpanel-2-latest.min.js":"//cdn.mxpnl.com/libs/mixpanel-2-latest.min.js";c=e.getElementsByTagName("script")[0];c.parentNode.insertBefore(b,c)}})(document,window.mixpanel||[]);
mixpanel.init("1919205b2da72e4da3b9b6639b444d59");</script>
<!-- end Mixpanel -->
</head>
<body>
<svg style="display: none;">
<defs>
<symbol id="linkIcon" fill="#706d77" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg">
<path d="M0 0h24v24H0z" fill="none"/>
<path d="M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z"/>
</symbol>
</defs>
</svg>
<input type="checkbox" id="nav-trigger" class="nav-trigger" />
<label for="nav-trigger" class="navicon-button x">
<div class="navicon"></div>
</label>
<label for="nav-trigger" class="overlay"></label>
<div class="top-nav-wrapper">
<ul>
<li >
<a href="index.html">
<svg fill="#6D6D6D" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg">
<path d="M10 20v-6h4v6h5v-8h3L12 3 2 12h3v8z"/>
<path d="M0 0h24v24H0z" fill="none"/>
</svg>
</a>
</li>
<li>
<div class="search-wrapper">
<svg fill="#6D6D6D" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg">
<path d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"/>
<path d="M0 0h24v24H0z" fill="none"/>
</svg>
<input type="text" placeholder="Search" class="search-input">
</div>
</li>
</ul>
</div>
<nav>
<h3 class="reference-title">
php-parser
</h3>
<h3>Classes</h3><ul><li id="Array-nav"><a href="Array.html">Array</a><ul class='methods'><li data-type="method" id="Array-destroy-nav"><a href="Array.html#destroy">destroy</a></li><li data-type="method" id="Array-includeToken-nav"><a href="Array.html#includeToken">includeToken</a></li><li data-type="method" id="Array-setTrailingComments-nav"><a href="Array.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="Assign-nav"><a href="Assign.html">Assign</a><ul class='methods'><li data-type="method" id="Assign-destroy-nav"><a href="Assign.html#destroy">destroy</a></li><li data-type="method" id="Assign-includeToken-nav"><a href="Assign.html#includeToken">includeToken</a></li><li data-type="method" id="Assign-setTrailingComments-nav"><a href="Assign.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="AST-nav"><a href="AST.html">AST</a><ul class='methods'><li data-type="method" id="AST-prepare-nav"><a href="AST.html#prepare">prepare</a></li><li data-type="method" id="AST-resolveLocations-nav"><a href="AST.html#resolveLocations">resolveLocations</a></li><li data-type="method" id="AST-resolvePrecedence-nav"><a href="AST.html#resolvePrecedence">resolvePrecedence</a></li><li data-type="method" id="AST-swapLocations-nav"><a href="AST.html#swapLocations">swapLocations</a></li></ul></li><li id="Bin-nav"><a href="Bin.html">Bin</a><ul class='methods'><li data-type="method" id="Bin-destroy-nav"><a href="Bin.html#destroy">destroy</a></li><li data-type="method" id="Bin-includeToken-nav"><a href="Bin.html#includeToken">includeToken</a></li><li data-type="method" id="Bin-setTrailingComments-nav"><a href="Bin.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="Block-nav"><a href="Block.html">Block</a><ul class='methods'><li data-type="method" id="Block-destroy-nav"><a href="Block.html#destroy">destroy</a></li><li data-type="method" id="Block-includeToken-nav"><a href="Block.html#includeToken">includeToken</a></li><li data-type="method" id="Block-setTrailingComments-nav"><a href="Block.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="Boolean-nav"><a href="Boolean.html">Boolean</a><ul class='methods'><li data-type="method" id="Boolean-destroy-nav"><a href="Boolean.html#destroy">destroy</a></li><li data-type="method" id="Boolean-includeToken-nav"><a href="Boolean.html#includeToken">includeToken</a></li><li data-type="method" id="Boolean-setTrailingComments-nav"><a href="Boolean.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="Break-nav"><a href="Break.html">Break</a><ul class='methods'><li data-type="method" id="Break-destroy-nav"><a href="Break.html#destroy">destroy</a></li><li data-type="method" id="Break-includeToken-nav"><a href="Break.html#includeToken">includeToken</a></li><li data-type="method" id="Break-setTrailingComments-nav"><a href="Break.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="Call-nav"><a href="Call.html">Call</a><ul class='methods'><li data-type="method" id="Call-destroy-nav"><a href="Call.html#destroy">destroy</a></li><li data-type="method" id="Call-includeToken-nav"><a href="Call.html#includeToken">includeToken</a></li><li data-type="method" id="Call-setTrailingComments-nav"><a href="Call.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="Case-nav"><a href="Case.html">Case</a><ul class='methods'><li data-type="method" id="Case-destroy-nav"><a href="Case.html#destroy">destroy</a></li><li data-type="method" id="Case-includeToken-nav"><a href="Case.html#includeToken">includeToken</a></li><li data-type="method" id="Case-setTrailingComments-nav"><a href="Case.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="Cast-nav"><a href="Cast.html">Cast</a><ul class='methods'><li data-type="method" id="Cast-destroy-nav"><a href="Cast.html#destroy">destroy</a></li><li data-type="method" id="Cast-includeToken-nav"><a href="Cast.html#includeToken">includeToken</a></li><li data-type="method" id="Cast-setTrailingComments-nav"><a href="Cast.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="Catch-nav"><a href="Catch.html">Catch</a><ul class='methods'><li data-type="method" id="Catch-destroy-nav"><a href="Catch.html#destroy">destroy</a></li><li data-type="method" id="Catch-includeToken-nav"><a href="Catch.html#includeToken">includeToken</a></li><li data-type="method" id="Catch-setTrailingComments-nav"><a href="Catch.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="Class-nav"><a href="Class.html">Class</a><ul class='methods'><li data-type="method" id="Class-destroy-nav"><a href="Class.html#destroy">destroy</a></li><li data-type="method" id="Class-includeToken-nav"><a href="Class.html#includeToken">includeToken</a></li><li data-type="method" id="Class-parseFlags-nav"><a href="Class.html#parseFlags">parseFlags</a></li><li data-type="method" id="Class-setTrailingComments-nav"><a href="Class.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="ClassConstant-nav"><a href="ClassConstant.html">ClassConstant</a><ul class='methods'><li data-type="method" id="ClassConstant-destroy-nav"><a href="ClassConstant.html#destroy">destroy</a></li><li data-type="method" id="ClassConstant-includeToken-nav"><a href="ClassConstant.html#includeToken">includeToken</a></li><li data-type="method" id="ClassConstant-parseFlags-nav"><a href="ClassConstant.html#parseFlags">parseFlags</a></li><li data-type="method" id="ClassConstant-setTrailingComments-nav"><a href="ClassConstant.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="ClassReference-nav"><a href="ClassReference.html">ClassReference</a><ul class='methods'><li data-type="method" id="ClassReference-destroy-nav"><a href="ClassReference.html#destroy">destroy</a></li><li data-type="method" id="ClassReference-includeToken-nav"><a href="ClassReference.html#includeToken">includeToken</a></li><li data-type="method" id="ClassReference-setTrailingComments-nav"><a href="ClassReference.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="Clone-nav"><a href="Clone.html">Clone</a><ul class='methods'><li data-type="method" id="Clone-destroy-nav"><a href="Clone.html#destroy">destroy</a></li><li data-type="method" id="Clone-includeToken-nav"><a href="Clone.html#includeToken">includeToken</a></li><li data-type="method" id="Clone-setTrailingComments-nav"><a href="Clone.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="Closure-nav"><a href="Closure.html">Closure</a><ul class='methods'><li data-type="method" id="Closure-destroy-nav"><a href="Closure.html#destroy">destroy</a></li><li data-type="method" id="Closure-includeToken-nav"><a href="Closure.html#includeToken">includeToken</a></li><li data-type="method" id="Closure-setTrailingComments-nav"><a href="Closure.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="Comment-nav"><a href="Comment.html">Comment</a><ul class='methods'><li data-type="method" id="Comment-destroy-nav"><a href="Comment.html#destroy">destroy</a></li><li data-type="method" id="Comment-includeToken-nav"><a href="Comment.html#includeToken">includeToken</a></li><li data-type="method" id="Comment-setTrailingComments-nav"><a href="Comment.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="CommentBlock-nav"><a href="CommentBlock.html">CommentBlock</a><ul class='methods'><li data-type="method" id="CommentBlock-destroy-nav"><a href="CommentBlock.html#destroy">destroy</a></li><li data-type="method" id="CommentBlock-includeToken-nav"><a href="CommentBlock.html#includeToken">includeToken</a></li><li data-type="method" id="CommentBlock-setTrailingComments-nav"><a href="CommentBlock.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="CommentLine-nav"><a href="CommentLine.html">CommentLine</a><ul class='methods'><li data-type="method" id="CommentLine-destroy-nav"><a href="CommentLine.html#destroy">destroy</a></li><li data-type="method" id="CommentLine-includeToken-nav"><a href="CommentLine.html#includeToken">includeToken</a></li><li data-type="method" id="CommentLine-setTrailingComments-nav"><a href="CommentLine.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="Constant-nav"><a href="Constant.html">Constant</a><ul class='methods'><li data-type="method" id="Constant-destroy-nav"><a href="Constant.html#destroy">destroy</a></li><li data-type="method" id="Constant-includeToken-nav"><a href="Constant.html#includeToken">includeToken</a></li><li data-type="method" id="Constant-setTrailingComments-nav"><a href="Constant.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="ConstantStatement-nav"><a href="ConstantStatement.html">ConstantStatement</a><ul class='methods'><li data-type="method" id="ConstantStatement-destroy-nav"><a href="ConstantStatement.html#destroy">destroy</a></li><li data-type="method" id="ConstantStatement-includeToken-nav"><a href="ConstantStatement.html#includeToken">includeToken</a></li><li data-type="method" id="ConstantStatement-setTrailingComments-nav"><a href="ConstantStatement.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="Continue-nav"><a href="Continue.html">Continue</a><ul class='methods'><li data-type="method" id="Continue-destroy-nav"><a href="Continue.html#destroy">destroy</a></li><li data-type="method" id="Continue-includeToken-nav"><a href="Continue.html#includeToken">includeToken</a></li><li data-type="method" id="Continue-setTrailingComments-nav"><a href="Continue.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="Declaration-nav"><a href="Declaration.html">Declaration</a><ul class='methods'><li data-type="method" id="Declaration-destroy-nav"><a href="Declaration.html#destroy">destroy</a></li><li data-type="method" id="Declaration-includeToken-nav"><a href="Declaration.html#includeToken">includeToken</a></li><li data-type="method" id="Declaration-parseFlags-nav"><a href="Declaration.html#parseFlags">parseFlags</a></li><li data-type="method" id="Declaration-setTrailingComments-nav"><a href="Declaration.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="Declare-nav"><a href="Declare.html">Declare</a><ul class='methods'><li data-type="method" id="Declare-destroy-nav"><a href="Declare.html#destroy">destroy</a></li><li data-type="method" id="Declare-includeToken-nav"><a href="Declare.html#includeToken">includeToken</a></li><li data-type="method" id="Declare-setTrailingComments-nav"><a href="Declare.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="DeclareDirective-nav"><a href="DeclareDirective.html">DeclareDirective</a><ul class='methods'><li data-type="method" id="DeclareDirective-destroy-nav"><a href="DeclareDirective.html#destroy">destroy</a></li><li data-type="method" id="DeclareDirective-includeToken-nav"><a href="DeclareDirective.html#includeToken">includeToken</a></li><li data-type="method" id="DeclareDirective-setTrailingComments-nav"><a href="DeclareDirective.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="Do-nav"><a href="Do.html">Do</a><ul class='methods'><li data-type="method" id="Do-destroy-nav"><a href="Do.html#destroy">destroy</a></li><li data-type="method" id="Do-includeToken-nav"><a href="Do.html#includeToken">includeToken</a></li><li data-type="method" id="Do-setTrailingComments-nav"><a href="Do.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="Echo-nav"><a href="Echo.html">Echo</a><ul class='methods'><li data-type="method" id="Echo-destroy-nav"><a href="Echo.html#destroy">destroy</a></li><li data-type="method" id="Echo-includeToken-nav"><a href="Echo.html#includeToken">includeToken</a></li><li data-type="method" id="Echo-setTrailingComments-nav"><a href="Echo.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="Empty-nav"><a href="Empty.html">Empty</a><ul class='methods'><li data-type="method" id="Empty-destroy-nav"><a href="Empty.html#destroy">destroy</a></li><li data-type="method" id="Empty-includeToken-nav"><a href="Empty.html#includeToken">includeToken</a></li><li data-type="method" id="Empty-setTrailingComments-nav"><a href="Empty.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="Encapsed-nav"><a href="Encapsed.html">Encapsed</a><ul class='methods'><li data-type="method" id="Encapsed-destroy-nav"><a href="Encapsed.html#destroy">destroy</a></li><li data-type="method" id="Encapsed-includeToken-nav"><a href="Encapsed.html#includeToken">includeToken</a></li><li data-type="method" id="Encapsed-setTrailingComments-nav"><a href="Encapsed.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="EncapsedPart-nav"><a href="EncapsedPart.html">EncapsedPart</a><ul class='methods'><li data-type="method" id="EncapsedPart-destroy-nav"><a href="EncapsedPart.html#destroy">destroy</a></li><li data-type="method" id="EncapsedPart-includeToken-nav"><a href="EncapsedPart.html#includeToken">includeToken</a></li><li data-type="method" id="EncapsedPart-setTrailingComments-nav"><a href="EncapsedPart.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="engine-nav"><a href="engine.html">engine</a><ul class='methods'><li data-type="method" id="engine-parseCode-nav"><a href="engine.html#parseCode">parseCode</a></li><li data-type="method" id="engine-parseEval-nav"><a href="engine.html#parseEval">parseEval</a></li><li data-type="method" id="engine-tokenGetAll-nav"><a href="engine.html#tokenGetAll">tokenGetAll</a></li></ul></li><li id="Entry-nav"><a href="Entry.html">Entry</a><ul class='methods'><li data-type="method" id="Entry-destroy-nav"><a href="Entry.html#destroy">destroy</a></li><li data-type="method" id="Entry-includeToken-nav"><a href="Entry.html#includeToken">includeToken</a></li><li data-type="method" id="Entry-setTrailingComments-nav"><a href="Entry.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="Error-nav"><a href="Error.html">Error</a><ul class='methods'><li data-type="method" id="Error-destroy-nav"><a href="Error.html#destroy">destroy</a></li><li data-type="method" id="Error-includeToken-nav"><a href="Error.html#includeToken">includeToken</a></li><li data-type="method" id="Error-setTrailingComments-nav"><a href="Error.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="Eval-nav"><a href="Eval.html">Eval</a><ul class='methods'><li data-type="method" id="Eval-destroy-nav"><a href="Eval.html#destroy">destroy</a></li><li data-type="method" id="Eval-includeToken-nav"><a href="Eval.html#includeToken">includeToken</a></li><li data-type="method" id="Eval-setTrailingComments-nav"><a href="Eval.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="Exit-nav"><a href="Exit.html">Exit</a><ul class='methods'><li data-type="method" id="Exit-destroy-nav"><a href="Exit.html#destroy">destroy</a></li><li data-type="method" id="Exit-includeToken-nav"><a href="Exit.html#includeToken">includeToken</a></li><li data-type="method" id="Exit-setTrailingComments-nav"><a href="Exit.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="Expression-nav"><a href="Expression.html">Expression</a><ul class='methods'><li data-type="method" id="Expression-destroy-nav"><a href="Expression.html#destroy">destroy</a></li><li data-type="method" id="Expression-includeToken-nav"><a href="Expression.html#includeToken">includeToken</a></li><li data-type="method" id="Expression-setTrailingComments-nav"><a href="Expression.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="ExpressionStatement-nav"><a href="ExpressionStatement.html">ExpressionStatement</a><ul class='methods'><li data-type="method" id="ExpressionStatement-destroy-nav"><a href="ExpressionStatement.html#destroy">destroy</a></li><li data-type="method" id="ExpressionStatement-includeToken-nav"><a href="ExpressionStatement.html#includeToken">includeToken</a></li><li data-type="method" id="ExpressionStatement-setTrailingComments-nav"><a href="ExpressionStatement.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="For-nav"><a href="For.html">For</a><ul class='methods'><li data-type="method" id="For-destroy-nav"><a href="For.html#destroy">destroy</a></li><li data-type="method" id="For-includeToken-nav"><a href="For.html#includeToken">includeToken</a></li><li data-type="method" id="For-setTrailingComments-nav"><a href="For.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="Foreach-nav"><a href="Foreach.html">Foreach</a><ul class='methods'><li data-type="method" id="Foreach-destroy-nav"><a href="Foreach.html#destroy">destroy</a></li><li data-type="method" id="Foreach-includeToken-nav"><a href="Foreach.html#includeToken">includeToken</a></li><li data-type="method" id="Foreach-setTrailingComments-nav"><a href="Foreach.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="Function-nav"><a href="Function.html">Function</a><ul class='methods'><li data-type="method" id="Function-destroy-nav"><a href="Function.html#destroy">destroy</a></li><li data-type="method" id="Function-includeToken-nav"><a href="Function.html#includeToken">includeToken</a></li><li data-type="method" id="Function-parseFlags-nav"><a href="Function.html#parseFlags">parseFlags</a></li><li data-type="method" id="Function-setTrailingComments-nav"><a href="Function.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="Global-nav"><a href="Global_.html">Global</a><ul class='methods'><li data-type="method" id="Global-destroy-nav"><a href="Global_.html#destroy">destroy</a></li><li data-type="method" id="Global-includeToken-nav"><a href="Global_.html#includeToken">includeToken</a></li><li data-type="method" id="Global-setTrailingComments-nav"><a href="Global_.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="Goto-nav"><a href="Goto.html">Goto</a><ul class='methods'><li data-type="method" id="Goto-destroy-nav"><a href="Goto.html#destroy">destroy</a></li><li data-type="method" id="Goto-includeToken-nav"><a href="Goto.html#includeToken">includeToken</a></li><li data-type="method" id="Goto-setTrailingComments-nav"><a href="Goto.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="Halt-nav"><a href="Halt.html">Halt</a><ul class='methods'><li data-type="method" id="Halt-destroy-nav"><a href="Halt.html#destroy">destroy</a></li><li data-type="method" id="Halt-includeToken-nav"><a href="Halt.html#includeToken">includeToken</a></li><li data-type="method" id="Halt-setTrailingComments-nav"><a href="Halt.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="Identifier-nav"><a href="Identifier.html">Identifier</a><ul class='methods'><li data-type="method" id="Identifier-destroy-nav"><a href="Identifier.html#destroy">destroy</a></li><li data-type="method" id="Identifier-includeToken-nav"><a href="Identifier.html#includeToken">includeToken</a></li><li data-type="method" id="Identifier-setTrailingComments-nav"><a href="Identifier.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="If-nav"><a href="If.html">If</a><ul class='methods'><li data-type="method" id="If-destroy-nav"><a href="If.html#destroy">destroy</a></li><li data-type="method" id="If-includeToken-nav"><a href="If.html#includeToken">includeToken</a></li><li data-type="method" id="If-setTrailingComments-nav"><a href="If.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="Include-nav"><a href="Include.html">Include</a><ul class='methods'><li data-type="method" id="Include-destroy-nav"><a href="Include.html#destroy">destroy</a></li><li data-type="method" id="Include-includeToken-nav"><a href="Include.html#includeToken">includeToken</a></li><li data-type="method" id="Include-setTrailingComments-nav"><a href="Include.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="Inline-nav"><a href="Inline.html">Inline</a><ul class='methods'><li data-type="method" id="Inline-destroy-nav"><a href="Inline.html#destroy">destroy</a></li><li data-type="method" id="Inline-includeToken-nav"><a href="Inline.html#includeToken">includeToken</a></li><li data-type="method" id="Inline-setTrailingComments-nav"><a href="Inline.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="Interface-nav"><a href="Interface.html">Interface</a><ul class='methods'><li data-type="method" id="Interface-destroy-nav"><a href="Interface.html#destroy">destroy</a></li><li data-type="method" id="Interface-includeToken-nav"><a href="Interface.html#includeToken">includeToken</a></li><li data-type="method" id="Interface-parseFlags-nav"><a href="Interface.html#parseFlags">parseFlags</a></li><li data-type="method" id="Interface-setTrailingComments-nav"><a href="Interface.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="Isset-nav"><a href="Isset.html">Isset</a><ul class='methods'><li data-type="method" id="Isset-destroy-nav"><a href="Isset.html#destroy">destroy</a></li><li data-type="method" id="Isset-includeToken-nav"><a href="Isset.html#includeToken">includeToken</a></li><li data-type="method" id="Isset-setTrailingComments-nav"><a href="Isset.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="Label-nav"><a href="Label.html">Label</a><ul class='methods'><li data-type="method" id="Label-destroy-nav"><a href="Label.html#destroy">destroy</a></li><li data-type="method" id="Label-includeToken-nav"><a href="Label.html#includeToken">includeToken</a></li><li data-type="method" id="Label-setTrailingComments-nav"><a href="Label.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="lexer-nav"><a href="lexer.html">lexer</a><ul class='methods'><li data-type="method" id="lexer-getState-nav"><a href="lexer.html#getState">getState</a></li><li data-type="method" id="lexer-input-nav"><a href="lexer.html#input">input</a></li><li data-type="method" id="lexer-setInput-nav"><a href="lexer.html#setInput">setInput</a></li><li data-type="method" id="lexer-setState-nav"><a href="lexer.html#setState">setState</a></li><li data-type="method" id="lexer-unput-nav"><a href="lexer.html#unput">unput</a></li></ul></li><li id="List-nav"><a href="List.html">List</a><ul class='methods'><li data-type="method" id="List-destroy-nav"><a href="List.html#destroy">destroy</a></li><li data-type="method" id="List-includeToken-nav"><a href="List.html#includeToken">includeToken</a></li><li data-type="method" id="List-setTrailingComments-nav"><a href="List.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="Literal-nav"><a href="Literal.html">Literal</a><ul class='methods'><li data-type="method" id="Literal-destroy-nav"><a href="Literal.html#destroy">destroy</a></li><li data-type="method" id="Literal-includeToken-nav"><a href="Literal.html#includeToken">includeToken</a></li><li data-type="method" id="Literal-setTrailingComments-nav"><a href="Literal.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="Location-nav"><a href="Location.html">Location</a></li><li id="Lookup-nav"><a href="Lookup.html">Lookup</a><ul class='methods'><li data-type="method" id="Lookup-destroy-nav"><a href="Lookup.html#destroy">destroy</a></li><li data-type="method" id="Lookup-includeToken-nav"><a href="Lookup.html#includeToken">includeToken</a></li><li data-type="method" id="Lookup-setTrailingComments-nav"><a href="Lookup.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="Magic-nav"><a href="Magic.html">Magic</a><ul class='methods'><li data-type="method" id="Magic-destroy-nav"><a href="Magic.html#destroy">destroy</a></li><li data-type="method" id="Magic-includeToken-nav"><a href="Magic.html#includeToken">includeToken</a></li><li data-type="method" id="Magic-setTrailingComments-nav"><a href="Magic.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="Method-nav"><a href="Method.html">Method</a></li><li id="Namespace-nav"><a href="Namespace.html">Namespace</a><ul class='methods'><li data-type="method" id="Namespace-destroy-nav"><a href="Namespace.html#destroy">destroy</a></li><li data-type="method" id="Namespace-includeToken-nav"><a href="Namespace.html#includeToken">includeToken</a></li><li data-type="method" id="Namespace-setTrailingComments-nav"><a href="Namespace.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="New-nav"><a href="New.html">New</a><ul class='methods'><li data-type="method" id="New-destroy-nav"><a href="New.html#destroy">destroy</a></li><li data-type="method" id="New-includeToken-nav"><a href="New.html#includeToken">includeToken</a></li><li data-type="method" id="New-setTrailingComments-nav"><a href="New.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="Node-nav"><a href="Node.html">Node</a><ul class='methods'><li data-type="method" id="Node-extends-nav"><a href="Node.html#.extends">extends</a></li><li data-type="method" id="Node-destroy-nav"><a href="Node.html#destroy">destroy</a></li><li data-type="method" id="Node-includeToken-nav"><a href="Node.html#includeToken">includeToken</a></li><li data-type="method" id="Node-setTrailingComments-nav"><a href="Node.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="Noop-nav"><a href="Noop.html">Noop</a><ul class='methods'><li data-type="method" id="Noop-destroy-nav"><a href="Noop.html#destroy">destroy</a></li><li data-type="method" id="Noop-includeToken-nav"><a href="Noop.html#includeToken">includeToken</a></li><li data-type="method" id="Noop-setTrailingComments-nav"><a href="Noop.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="NowDoc-nav"><a href="NowDoc.html">NowDoc</a><ul class='methods'><li data-type="method" id="NowDoc-destroy-nav"><a href="NowDoc.html#destroy">destroy</a></li><li data-type="method" id="NowDoc-includeToken-nav"><a href="NowDoc.html#includeToken">includeToken</a></li><li data-type="method" id="NowDoc-setTrailingComments-nav"><a href="NowDoc.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="Number-nav"><a href="Number.html">Number</a><ul class='methods'><li data-type="method" id="Number-destroy-nav"><a href="Number.html#destroy">destroy</a></li><li data-type="method" id="Number-includeToken-nav"><a href="Number.html#includeToken">includeToken</a></li><li data-type="method" id="Number-setTrailingComments-nav"><a href="Number.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="OffsetLookup-nav"><a href="OffsetLookup.html">OffsetLookup</a><ul class='methods'><li data-type="method" id="OffsetLookup-destroy-nav"><a href="OffsetLookup.html#destroy">destroy</a></li><li data-type="method" id="OffsetLookup-includeToken-nav"><a href="OffsetLookup.html#includeToken">includeToken</a></li><li data-type="method" id="OffsetLookup-setTrailingComments-nav"><a href="OffsetLookup.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="Operation-nav"><a href="Operation.html">Operation</a><ul class='methods'><li data-type="method" id="Operation-destroy-nav"><a href="Operation.html#destroy">destroy</a></li><li data-type="method" id="Operation-includeToken-nav"><a href="Operation.html#includeToken">includeToken</a></li><li data-type="method" id="Operation-setTrailingComments-nav"><a href="Operation.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="Parameter-nav"><a href="Parameter.html">Parameter</a><ul class='methods'><li data-type="method" id="Parameter-destroy-nav"><a href="Parameter.html#destroy">destroy</a></li><li data-type="method" id="Parameter-includeToken-nav"><a href="Parameter.html#includeToken">includeToken</a></li><li data-type="method" id="Parameter-parseFlags-nav"><a href="Parameter.html#parseFlags">parseFlags</a></li><li data-type="method" id="Parameter-setTrailingComments-nav"><a href="Parameter.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="ParentReference-nav"><a href="ParentReference.html">ParentReference</a><ul class='methods'><li data-type="method" id="ParentReference-destroy-nav"><a href="ParentReference.html#destroy">destroy</a></li><li data-type="method" id="ParentReference-includeToken-nav"><a href="ParentReference.html#includeToken">includeToken</a></li><li data-type="method" id="ParentReference-setTrailingComments-nav"><a href="ParentReference.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="parser-nav"><a href="parser.html">parser</a><ul class='methods'><li data-type="method" id="parser-error-nav"><a href="parser.html#error">error</a></li><li data-type="method" id="parser-expect-nav"><a href="parser.html#expect">expect</a></li><li data-type="method" id="parser-expectEndOfStatement-nav"><a href="parser.html#expectEndOfStatement">expectEndOfStatement</a></li><li data-type="method" id="parser-getTokenName-nav"><a href="parser.html#getTokenName">getTokenName</a></li><li data-type="method" id="parser-is-nav"><a href="parser.html#is">is</a></li><li data-type="method" id="parser-lex-nav"><a href="parser.html#lex">lex</a></li><li data-type="method" id="parser-next-nav"><a href="parser.html#next">next</a></li><li data-type="method" id="parser-node-nav"><a href="parser.html#node">node</a></li><li data-type="method" id="parser-parse-nav"><a href="parser.html#parse">parse</a></li><li data-type="method" id="parser-raiseError-nav"><a href="parser.html#raiseError">raiseError</a></li><li data-type="method" id="parser-text-nav"><a href="parser.html#text">text</a></li></ul></li><li id="Position-nav"><a href="Position.html">Position</a></li><li id="Post-nav"><a href="Post.html">Post</a><ul class='methods'><li data-type="method" id="Post-destroy-nav"><a href="Post.html#destroy">destroy</a></li><li data-type="method" id="Post-includeToken-nav"><a href="Post.html#includeToken">includeToken</a></li><li data-type="method" id="Post-setTrailingComments-nav"><a href="Post.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="Pre-nav"><a href="Pre.html">Pre</a><ul class='methods'><li data-type="method" id="Pre-destroy-nav"><a href="Pre.html#destroy">destroy</a></li><li data-type="method" id="Pre-includeToken-nav"><a href="Pre.html#includeToken">includeToken</a></li><li data-type="method" id="Pre-setTrailingComments-nav"><a href="Pre.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="Print-nav"><a href="Print.html">Print</a><ul class='methods'><li data-type="method" id="Print-destroy-nav"><a href="Print.html#destroy">destroy</a></li><li data-type="method" id="Print-includeToken-nav"><a href="Print.html#includeToken">includeToken</a></li><li data-type="method" id="Print-setTrailingComments-nav"><a href="Print.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="Program-nav"><a href="Program.html">Program</a><ul class='methods'><li data-type="method" id="Program-destroy-nav"><a href="Program.html#destroy">destroy</a></li><li data-type="method" id="Program-includeToken-nav"><a href="Program.html#includeToken">includeToken</a></li><li data-type="method" id="Program-setTrailingComments-nav"><a href="Program.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="Property-nav"><a href="Property.html">Property</a><ul class='methods'><li data-type="method" id="Property-destroy-nav"><a href="Property.html#destroy">destroy</a></li><li data-type="method" id="Property-includeToken-nav"><a href="Property.html#includeToken">includeToken</a></li><li data-type="method" id="Property-setTrailingComments-nav"><a href="Property.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="PropertyLookup-nav"><a href="PropertyLookup.html">PropertyLookup</a><ul class='methods'><li data-type="method" id="PropertyLookup-destroy-nav"><a href="PropertyLookup.html#destroy">destroy</a></li><li data-type="method" id="PropertyLookup-includeToken-nav"><a href="PropertyLookup.html#includeToken">includeToken</a></li><li data-type="method" id="PropertyLookup-setTrailingComments-nav"><a href="PropertyLookup.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="PropertyStatement-nav"><a href="PropertyStatement.html">PropertyStatement</a><ul class='methods'><li data-type="method" id="PropertyStatement-destroy-nav"><a href="PropertyStatement.html#destroy">destroy</a></li><li data-type="method" id="PropertyStatement-includeToken-nav"><a href="PropertyStatement.html#includeToken">includeToken</a></li><li data-type="method" id="PropertyStatement-parseFlags-nav"><a href="PropertyStatement.html#parseFlags">parseFlags</a></li><li data-type="method" id="PropertyStatement-setTrailingComments-nav"><a href="PropertyStatement.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="Reference-nav"><a href="Reference.html">Reference</a><ul class='methods'><li data-type="method" id="Reference-destroy-nav"><a href="Reference.html#destroy">destroy</a></li><li data-type="method" id="Reference-includeToken-nav"><a href="Reference.html#includeToken">includeToken</a></li><li data-type="method" id="Reference-setTrailingComments-nav"><a href="Reference.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="RetIf-nav"><a href="RetIf.html">RetIf</a><ul class='methods'><li data-type="method" id="RetIf-destroy-nav"><a href="RetIf.html#destroy">destroy</a></li><li data-type="method" id="RetIf-includeToken-nav"><a href="RetIf.html#includeToken">includeToken</a></li><li data-type="method" id="RetIf-setTrailingComments-nav"><a href="RetIf.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="Return-nav"><a href="Return.html">Return</a><ul class='methods'><li data-type="method" id="Return-destroy-nav"><a href="Return.html#destroy">destroy</a></li><li data-type="method" id="Return-includeToken-nav"><a href="Return.html#includeToken">includeToken</a></li><li data-type="method" id="Return-setTrailingComments-nav"><a href="Return.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="SelfReference-nav"><a href="SelfReference.html">SelfReference</a><ul class='methods'><li data-type="method" id="SelfReference-destroy-nav"><a href="SelfReference.html#destroy">destroy</a></li><li data-type="method" id="SelfReference-includeToken-nav"><a href="SelfReference.html#includeToken">includeToken</a></li><li data-type="method" id="SelfReference-setTrailingComments-nav"><a href="SelfReference.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="Silent-nav"><a href="Silent.html">Silent</a><ul class='methods'><li data-type="method" id="Silent-destroy-nav"><a href="Silent.html#destroy">destroy</a></li><li data-type="method" id="Silent-includeToken-nav"><a href="Silent.html#includeToken">includeToken</a></li><li data-type="method" id="Silent-setTrailingComments-nav"><a href="Silent.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="Statement-nav"><a href="Statement.html">Statement</a><ul class='methods'><li data-type="method" id="Statement-destroy-nav"><a href="Statement.html#destroy">destroy</a></li><li data-type="method" id="Statement-includeToken-nav"><a href="Statement.html#includeToken">includeToken</a></li><li data-type="method" id="Statement-setTrailingComments-nav"><a href="Statement.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="Static-nav"><a href="Static.html">Static</a><ul class='methods'><li data-type="method" id="Static-destroy-nav"><a href="Static.html#destroy">destroy</a></li><li data-type="method" id="Static-includeToken-nav"><a href="Static.html#includeToken">includeToken</a></li><li data-type="method" id="Static-setTrailingComments-nav"><a href="Static.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="StaticLookup-nav"><a href="StaticLookup.html">StaticLookup</a><ul class='methods'><li data-type="method" id="StaticLookup-destroy-nav"><a href="StaticLookup.html#destroy">destroy</a></li><li data-type="method" id="StaticLookup-includeToken-nav"><a href="StaticLookup.html#includeToken">includeToken</a></li><li data-type="method" id="StaticLookup-setTrailingComments-nav"><a href="StaticLookup.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="StaticReference-nav"><a href="StaticReference.html">StaticReference</a><ul class='methods'><li data-type="method" id="StaticReference-destroy-nav"><a href="StaticReference.html#destroy">destroy</a></li><li data-type="method" id="StaticReference-includeToken-nav"><a href="StaticReference.html#includeToken">includeToken</a></li><li data-type="method" id="StaticReference-setTrailingComments-nav"><a href="StaticReference.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="StaticVariable-nav"><a href="StaticVariable.html">StaticVariable</a><ul class='methods'><li data-type="method" id="StaticVariable-destroy-nav"><a href="StaticVariable.html#destroy">destroy</a></li><li data-type="method" id="StaticVariable-includeToken-nav"><a href="StaticVariable.html#includeToken">includeToken</a></li><li data-type="method" id="StaticVariable-setTrailingComments-nav"><a href="StaticVariable.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="String-nav"><a href="String.html">String</a><ul class='methods'><li data-type="method" id="String-destroy-nav"><a href="String.html#destroy">destroy</a></li><li data-type="method" id="String-includeToken-nav"><a href="String.html#includeToken">includeToken</a></li><li data-type="method" id="String-setTrailingComments-nav"><a href="String.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="Switch-nav"><a href="Switch.html">Switch</a><ul class='methods'><li data-type="method" id="Switch-destroy-nav"><a href="Switch.html#destroy">destroy</a></li><li data-type="method" id="Switch-includeToken-nav"><a href="Switch.html#includeToken">includeToken</a></li><li data-type="method" id="Switch-setTrailingComments-nav"><a href="Switch.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="Throw-nav"><a href="Throw.html">Throw</a><ul class='methods'><li data-type="method" id="Throw-destroy-nav"><a href="Throw.html#destroy">destroy</a></li><li data-type="method" id="Throw-includeToken-nav"><a href="Throw.html#includeToken">includeToken</a></li><li data-type="method" id="Throw-setTrailingComments-nav"><a href="Throw.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="Trait-nav"><a href="Trait.html">Trait</a><ul class='methods'><li data-type="method" id="Trait-destroy-nav"><a href="Trait.html#destroy">destroy</a></li><li data-type="method" id="Trait-includeToken-nav"><a href="Trait.html#includeToken">includeToken</a></li><li data-type="method" id="Trait-parseFlags-nav"><a href="Trait.html#parseFlags">parseFlags</a></li><li data-type="method" id="Trait-setTrailingComments-nav"><a href="Trait.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="TraitAlias-nav"><a href="TraitAlias.html">TraitAlias</a><ul class='methods'><li data-type="method" id="TraitAlias-destroy-nav"><a href="TraitAlias.html#destroy">destroy</a></li><li data-type="method" id="TraitAlias-includeToken-nav"><a href="TraitAlias.html#includeToken">includeToken</a></li><li data-type="method" id="TraitAlias-setTrailingComments-nav"><a href="TraitAlias.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="TraitPrecedence-nav"><a href="TraitPrecedence.html">TraitPrecedence</a><ul class='methods'><li data-type="method" id="TraitPrecedence-destroy-nav"><a href="TraitPrecedence.html#destroy">destroy</a></li><li data-type="method" id="TraitPrecedence-includeToken-nav"><a href="TraitPrecedence.html#includeToken">includeToken</a></li><li data-type="method" id="TraitPrecedence-setTrailingComments-nav"><a href="TraitPrecedence.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="TraitUse-nav"><a href="TraitUse.html">TraitUse</a><ul class='methods'><li data-type="method" id="TraitUse-destroy-nav"><a href="TraitUse.html#destroy">destroy</a></li><li data-type="method" id="TraitUse-includeToken-nav"><a href="TraitUse.html#includeToken">includeToken</a></li><li data-type="method" id="TraitUse-setTrailingComments-nav"><a href="TraitUse.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="Try-nav"><a href="Try.html">Try</a><ul class='methods'><li data-type="method" id="Try-destroy-nav"><a href="Try.html#destroy">destroy</a></li><li data-type="method" id="Try-includeToken-nav"><a href="Try.html#includeToken">includeToken</a></li><li data-type="method" id="Try-setTrailingComments-nav"><a href="Try.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="TypeReference-nav"><a href="TypeReference.html">TypeReference</a><ul class='methods'><li data-type="method" id="TypeReference-destroy-nav"><a href="TypeReference.html#destroy">destroy</a></li><li data-type="method" id="TypeReference-includeToken-nav"><a href="TypeReference.html#includeToken">includeToken</a></li><li data-type="method" id="TypeReference-setTrailingComments-nav"><a href="TypeReference.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="Unary-nav"><a href="Unary.html">Unary</a><ul class='methods'><li data-type="method" id="Unary-destroy-nav"><a href="Unary.html#destroy">destroy</a></li><li data-type="method" id="Unary-includeToken-nav"><a href="Unary.html#includeToken">includeToken</a></li><li data-type="method" id="Unary-setTrailingComments-nav"><a href="Unary.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="Unset-nav"><a href="Unset.html">Unset</a><ul class='methods'><li data-type="method" id="Unset-destroy-nav"><a href="Unset.html#destroy">destroy</a></li><li data-type="method" id="Unset-includeToken-nav"><a href="Unset.html#includeToken">includeToken</a></li><li data-type="method" id="Unset-setTrailingComments-nav"><a href="Unset.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="UseGroup-nav"><a href="UseGroup.html">UseGroup</a><ul class='methods'><li data-type="method" id="UseGroup-destroy-nav"><a href="UseGroup.html#destroy">destroy</a></li><li data-type="method" id="UseGroup-includeToken-nav"><a href="UseGroup.html#includeToken">includeToken</a></li><li data-type="method" id="UseGroup-setTrailingComments-nav"><a href="UseGroup.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="UseItem-nav"><a href="UseItem.html">UseItem</a><ul class='methods'><li data-type="method" id="UseItem-destroy-nav"><a href="UseItem.html#destroy">destroy</a></li><li data-type="method" id="UseItem-includeToken-nav"><a href="UseItem.html#includeToken">includeToken</a></li><li data-type="method" id="UseItem-setTrailingComments-nav"><a href="UseItem.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="Variable-nav"><a href="Variable.html">Variable</a><ul class='methods'><li data-type="method" id="Variable-destroy-nav"><a href="Variable.html#destroy">destroy</a></li><li data-type="method" id="Variable-includeToken-nav"><a href="Variable.html#includeToken">includeToken</a></li><li data-type="method" id="Variable-setTrailingComments-nav"><a href="Variable.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="variadic-nav"><a href="variadic.html">variadic</a><ul class='methods'><li data-type="method" id="variadic-destroy-nav"><a href="variadic.html#destroy">destroy</a></li><li data-type="method" id="variadic-includeToken-nav"><a href="variadic.html#includeToken">includeToken</a></li><li data-type="method" id="variadic-setTrailingComments-nav"><a href="variadic.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="While-nav"><a href="While.html">While</a><ul class='methods'><li data-type="method" id="While-destroy-nav"><a href="While.html#destroy">destroy</a></li><li data-type="method" id="While-includeToken-nav"><a href="While.html#includeToken">includeToken</a></li><li data-type="method" id="While-setTrailingComments-nav"><a href="While.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="Yield-nav"><a href="Yield.html">Yield</a><ul class='methods'><li data-type="method" id="Yield-destroy-nav"><a href="Yield.html#destroy">destroy</a></li><li data-type="method" id="Yield-includeToken-nav"><a href="Yield.html#includeToken">includeToken</a></li><li data-type="method" id="Yield-setTrailingComments-nav"><a href="Yield.html#setTrailingComments">setTrailingComments</a></li></ul></li><li id="YieldFrom-nav"><a href="YieldFrom.html">YieldFrom</a><ul class='methods'><li data-type="method" id="YieldFrom-destroy-nav"><a href="YieldFrom.html#destroy">destroy</a></li><li data-type="method" id="YieldFrom-includeToken-nav"><a href="YieldFrom.html#includeToken">includeToken</a></li><li data-type="method" id="YieldFrom-setTrailingComments-nav"><a href="YieldFrom.html#setTrailingComments">setTrailingComments</a></li></ul></li></ul><h3 id="global-nav">Global</h3><ul><li><a href="global.html#FULL_QUALIFIED_NAME">FULL_QUALIFIED_NAME</a></li><li><a href="global.html#getStringBuffer">getStringBuffer</a></li><li><a href="global.html#ignoreStack">ignoreStack</a></li><li><a href="global.html#MODE_BLOCK">MODE_BLOCK</a></li><li><a href="global.html#MODE_NONE">MODE_NONE</a></li><li><a href="global.html#MODE_SHORT">MODE_SHORT</a></li><li><a href="global.html#QUALIFIED_NAME">QUALIFIED_NAME</a></li><li><a href="global.html#RELATIVE_NAME">RELATIVE_NAME</a></li><li><a href="global.html#TYPE_CONST">TYPE_CONST</a></li><li><a href="global.html#TYPE_FUNC">TYPE_FUNC</a></li><li><a href="global.html#TYPE_HEREDOC">TYPE_HEREDOC</a></li><li><a href="global.html#TYPE_OFFSET">TYPE_OFFSET</a></li><li><a href="global.html#TYPE_SHELL">TYPE_SHELL</a></li><li><a href="global.html#TYPE_STRING">TYPE_STRING</a></li><li><a href="global.html#UNQUALIFIED_NAME">UNQUALIFIED_NAME</a></li></ul>
</nav>
<div id="main">
<h1 class="page-title">
lexer.js
</h1>
<section>
<article>
<pre class="prettyprint source linenums"><code>/**
* Copyright (C) 2018 Glayzzle (BSD3 License)
* @authors https://github.com/glayzzle/php-parser/graphs/contributors
* @url http://glayzzle.com
*/
"use strict";
/**
* This is the php lexer. It will tokenize the string for helping the
* parser to build the AST from its grammar.
*
* @class
* @property {Integer} EOF
* @property {Boolean} all_tokens defines if all tokens must be retrieved (used by token_get_all only)
* @property {Boolean} comment_tokens extracts comments tokens
* @property {Boolean} mode_eval enables the evald mode (ignore opening tags)
* @property {Boolean} asp_tags disables by default asp tags mode
* @property {Boolean} short_tags enables by default short tags mode
* @property {Object} keywords List of php keyword
* @property {Object} castKeywords List of php keywords for type casting
*/
const lexer = function(engine) {
this.engine = engine;
this.tok = this.engine.tokens.names;
this.EOF = 1;
this.debug = false;
this.all_tokens = true;
this.comment_tokens = false;
this.mode_eval = false;
this.asp_tags = false;
this.short_tags = true;
this.php7 = true;
this.yyprevcol = 0;
this.keywords = {
__class__: this.tok.T_CLASS_C,
__trait__: this.tok.T_TRAIT_C,
__function__: this.tok.T_FUNC_C,
__method__: this.tok.T_METHOD_C,
__line__: this.tok.T_LINE,
__file__: this.tok.T_FILE,
__dir__: this.tok.T_DIR,
__namespace__: this.tok.T_NS_C,
exit: this.tok.T_EXIT,
die: this.tok.T_EXIT,
function: this.tok.T_FUNCTION,
const: this.tok.T_CONST,
return: this.tok.T_RETURN,
try: this.tok.T_TRY,
catch: this.tok.T_CATCH,
finally: this.tok.T_FINALLY,
throw: this.tok.T_THROW,
if: this.tok.T_IF,
elseif: this.tok.T_ELSEIF,
endif: this.tok.T_ENDIF,
else: this.tok.T_ELSE,
while: this.tok.T_WHILE,
endwhile: this.tok.T_ENDWHILE,
do: this.tok.T_DO,
for: this.tok.T_FOR,
endfor: this.tok.T_ENDFOR,
foreach: this.tok.T_FOREACH,
endforeach: this.tok.T_ENDFOREACH,
declare: this.tok.T_DECLARE,
enddeclare: this.tok.T_ENDDECLARE,
instanceof: this.tok.T_INSTANCEOF,
as: this.tok.T_AS,
switch: this.tok.T_SWITCH,
endswitch: this.tok.T_ENDSWITCH,
case: this.tok.T_CASE,
default: this.tok.T_DEFAULT,
break: this.tok.T_BREAK,
continue: this.tok.T_CONTINUE,
goto: this.tok.T_GOTO,
echo: this.tok.T_ECHO,
print: this.tok.T_PRINT,
class: this.tok.T_CLASS,
interface: this.tok.T_INTERFACE,
trait: this.tok.T_TRAIT,
extends: this.tok.T_EXTENDS,
implements: this.tok.T_IMPLEMENTS,
new: this.tok.T_NEW,
clone: this.tok.T_CLONE,
var: this.tok.T_VAR,
eval: this.tok.T_EVAL,
include: this.tok.T_INCLUDE,
include_once: this.tok.T_INCLUDE_ONCE,
require: this.tok.T_REQUIRE,
require_once: this.tok.T_REQUIRE_ONCE,
namespace: this.tok.T_NAMESPACE,
use: this.tok.T_USE,
insteadof: this.tok.T_INSTEADOF,
global: this.tok.T_GLOBAL,
isset: this.tok.T_ISSET,
empty: this.tok.T_EMPTY,
__halt_compiler: this.tok.T_HALT_COMPILER,
static: this.tok.T_STATIC,
abstract: this.tok.T_ABSTRACT,
final: this.tok.T_FINAL,
private: this.tok.T_PRIVATE,
protected: this.tok.T_PROTECTED,
public: this.tok.T_PUBLIC,
unset: this.tok.T_UNSET,
list: this.tok.T_LIST,
array: this.tok.T_ARRAY,
callable: this.tok.T_CALLABLE,
or: this.tok.T_LOGICAL_OR,
and: this.tok.T_LOGICAL_AND,
xor: this.tok.T_LOGICAL_XOR
};
this.castKeywords = {
int: this.tok.T_INT_CAST,
integer: this.tok.T_INT_CAST,
real: this.tok.T_DOUBLE_CAST,
double: this.tok.T_DOUBLE_CAST,
float: this.tok.T_DOUBLE_CAST,
string: this.tok.T_STRING_CAST,
binary: this.tok.T_STRING_CAST,
array: this.tok.T_ARRAY_CAST,
object: this.tok.T_OBJECT_CAST,
bool: this.tok.T_BOOL_CAST,
boolean: this.tok.T_BOOL_CAST,
unset: this.tok.T_UNSET_CAST
};
};
/**
* Initialize the lexer with the specified input
*/
lexer.prototype.setInput = function(input) {
this._input = input;
this.size = input.length;
this.yylineno = 1;
this.offset = 0;
this.yyprevcol = 0;
this.yytext = "";
this.yylloc = {
first_offset: 0,
first_line: 1,
first_column: 0,
prev_offset: 0,
prev_line: 1,
prev_column: 0,
last_line: 1,
last_column: 0
};
this.tokens = [];
this.done = this.offset >= this.size;
if (!this.all_tokens && this.mode_eval) {
this.conditionStack = ["INITIAL"];
this.begin("ST_IN_SCRIPTING");
} else {
this.conditionStack = [];
this.begin("INITIAL");
}
return this;
};
/**
* consumes and returns one char from the input
*/
lexer.prototype.input = function() {
const ch = this._input[this.offset];
if (!ch) return "";
this.yytext += ch;
this.offset++;
if (ch === "\r" && this._input[this.offset] === "\n") {
this.yytext += "\n";
this.offset++;
}
if (ch === "\n" || ch === "\r") {
this.yylloc.last_line = ++this.yylineno;
this.yyprevcol = this.yylloc.last_column;
this.yylloc.last_column = 0;
} else {
this.yylloc.last_column++;
}
return ch;
};
/**
* revert eating specified size
*/
lexer.prototype.unput = function(size) {
if (size === 1) {
// 1 char unput (most cases)
this.offset--;
if (
this._input[this.offset] === "\n" &&
this._input[this.offset - 1] === "\r"
) {
this.offset--;
size++;
}
if (
this._input[this.offset] === "\r" ||
this._input[this.offset] === "\n"
) {
this.yylloc.last_line--;
this.yylineno--;
this.yylloc.last_column = this.yyprevcol;
} else {
this.yylloc.last_column--;
}
this.yytext = this.yytext.substring(0, this.yytext.length - size);
} else if (size > 0) {
this.offset -= size;
if (size < this.yytext.length) {
this.yytext = this.yytext.substring(0, this.yytext.length - size);
// re-calculate position
this.yylloc.last_line = this.yylloc.first_line;
this.yylloc.last_column = this.yyprevcol = this.yylloc.first_column;
for (let i = 0; i < this.yytext.length; i++) {
let c = this.yytext[i];
if (c === "\r") {
c = this.yytext[++i];
this.yyprevcol = this.yylloc.last_column;
this.yylloc.last_line++;
this.yylloc.last_column = 0;
if (c !== "\n") {
if (c === "\r") {
this.yylloc.last_line++;
} else {
this.yylloc.last_column++;
}
}
} else if (c === "\n") {
this.yyprevcol = this.yylloc.last_column;
this.yylloc.last_line++;
this.yylloc.last_column = 0;
} else {
this.yylloc.last_column++;
}
}
this.yylineno = this.yylloc.last_line;
} else {
// reset full text
this.yytext = "";
this.yylloc.last_line = this.yylineno = this.yylloc.first_line;
this.yylloc.last_column = this.yylloc.first_column;
}
}
return this;
};
// check if the text matches
lexer.prototype.tryMatch = function(text) {
return text === this.ahead(text.length);
};
// check if the text matches
lexer.prototype.tryMatchCaseless = function(text) {
return text === this.ahead(text.length).toLowerCase();
};
// look ahead
lexer.prototype.ahead = function(size) {
let text = this._input.substring(this.offset, this.offset + size);
if (
text[text.length - 1] === "\r" &&
this._input[this.offset + size + 1] === "\n"
) {
text += "\n";
}
return text;
};
// consume the specified size
lexer.prototype.consume = function(size) {
for (let i = 0; i < size; i++) {
const ch = this._input[this.offset];
if (!ch) break;
this.yytext += ch;
this.offset++;
if (ch === "\r" && this._input[this.offset] === "\n") {
this.yytext += "\n";
this.offset++;
i++;
}
if (ch === "\n" || ch === "\r") {
this.yylloc.last_line = ++this.yylineno;
this.yyprevcol = this.yylloc.last_column;
this.yylloc.last_column = 0;
} else {
this.yylloc.last_column++;
}
}
return this;
};
/**
* Gets the current state
*/
lexer.prototype.getState = function() {
return {
yytext: this.yytext,
offset: this.offset,
yylineno: this.yylineno,
yyprevcol: this.yyprevcol,
yylloc: {
first_offset: this.yylloc.first_offset,
first_line: this.yylloc.first_line,
first_column: this.yylloc.first_column,
last_line: this.yylloc.last_line,
last_column: this.yylloc.last_column
}
};
};
/**
* Sets the current lexer state
*/
lexer.prototype.setState = function(state) {
this.yytext = state.yytext;
this.offset = state.offset;
this.yylineno = state.yylineno;
this.yyprevcol = state.yyprevcol;
this.yylloc = state.yylloc;
return this;
};
// prepend next token
lexer.prototype.appendToken = function(value, ahead) {
this.tokens.push([value, ahead]);
return this;
};
// return next match that has a token
lexer.prototype.lex = function() {
this.yylloc.prev_offset = this.offset;
this.yylloc.prev_line = this.yylloc.last_line;
this.yylloc.prev_column = this.yylloc.last_column;
let token = this.next() || this.lex();
if (!this.all_tokens) {
while (
token === this.tok.T_WHITESPACE || // ignore white space
(!this.comment_tokens &&
(token === this.tok.T_COMMENT || // ignore single lines comments
token === this.tok.T_DOC_COMMENT)) || // ignore doc comments
// ignore open tags
token === this.tok.T_OPEN_TAG
) {
token = this.next() || this.lex();
}
if (token == this.tok.T_OPEN_TAG_WITH_ECHO) {
// https://github.com/php/php-src/blob/7ff186434e82ee7be7c59d0db9a976641cf7b09c/Zend/zend_compile.c#L1683
// open tag with echo statement
return this.tok.T_ECHO;
} else if (token === this.tok.T_CLOSE_TAG) {
// https://github.com/php/php-src/blob/7ff186434e82ee7be7c59d0db9a976641cf7b09c/Zend/zend_compile.c#L1680
return ";"; /* implicit ; */
}
}
if (!this.yylloc.prev_offset) {
this.yylloc.prev_offset = this.yylloc.first_offset;
this.yylloc.prev_line = this.yylloc.first_line;
this.yylloc.prev_column = this.yylloc.first_column;
}
/*else if (this.yylloc.prev_offset === this.offset && this.offset !== this.size) {
throw new Error('Infinite loop @ ' + this.offset + ' / ' + this.size);
}*/
return token;
};
// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
lexer.prototype.begin = function(condition) {
this.conditionStack.push(condition);
this.curCondition = condition;
this.stateCb = this["match" + condition];
if (typeof this.stateCb !== "function") {
throw new Error('Undefined condition state "' + condition + '"');
}
return this;
};
// pop the previously active lexer condition state off the condition stack
lexer.prototype.popState = function() {
const n = this.conditionStack.length - 1;
const condition = n > 0 ? this.conditionStack.pop() : this.conditionStack[0];
this.curCondition = this.conditionStack[this.conditionStack.length - 1];
this.stateCb = this["match" + this.curCondition];
if (typeof this.stateCb !== "function") {
throw new Error('Undefined condition state "' + this.curCondition + '"');
}
return condition;
};
// return next match in input
lexer.prototype.next = function() {
let token;
if (!this._input) {
this.done = true;
}
this.yylloc.first_offset = this.offset;
this.yylloc.first_line = this.yylloc.last_line;
this.yylloc.first_column = this.yylloc.last_column;
this.yytext = "";
if (this.done) {
this.yylloc.prev_offset = this.yylloc.first_offset;
this.yylloc.prev_line = this.yylloc.first_line;
this.yylloc.prev_column = this.yylloc.first_column;
return this.EOF;
}
if (this.tokens.length > 0) {
token = this.tokens.shift();
if (typeof token[1] === "object") {
this.setState(token[1]);
} else {
this.consume(token[1]);
}
token = token[0];
} else {
token = this.stateCb.apply(this, []);
}
if (this.offset >= this.size && this.tokens.length === 0) {
this.done = true;
}
if (this.debug) {
let tName = token;
if (typeof tName === "number") {
tName = this.engine.tokens.values[tName];
} else {
tName = '"' + tName + '"';
}
const e = new Error(
tName +
"\tfrom " +
this.yylloc.first_line +
"," +
this.yylloc.first_column +
"\t - to " +
this.yylloc.last_line +
"," +
this.yylloc.last_column +
'\t"' +
this.yytext +
'"'
);
// eslint-disable-next-line no-console
console.error(e.stack);
}
return token;
};
// extends the lexer with states
[
require("./lexer/comments.js"),
require("./lexer/initial.js"),
require("./lexer/numbers.js"),
require("./lexer/property.js"),
require("./lexer/scripting.js"),
require("./lexer/strings.js"),
require("./lexer/tokens.js"),
require("./lexer/utils.js")
].forEach(function(ext) {
for (const k in ext) {
lexer.prototype[k] = ext[k];
}
});
module.exports = lexer;
</code></pre>
</article>
</section>
</div>
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.3</a>
</footer>
<script src="scripts/linenumber.js"></script>
<script src="scripts/pagelocation.js"></script>
<script>
$(function () {
window.docsearch({
apiKey: 'd7422763b31425c3da8b220f22ff04d2',
indexName: 'glayzzle',
inputSelector: '.search-input',
debug: false, // Set debug to true if you want to inspect the dropdown
algoliaOptions: {
hitsPerPage: 7
}
});
});
</script>
</body>
</html>