syntax_tree 5.0.0 → 5.1.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.
@@ -0,0 +1,1004 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SyntaxTree
4
+ # This module provides shortcuts for creating AST nodes.
5
+ module DSL
6
+ # Create a new BEGINBlock node.
7
+ def BEGINBlock(lbrace, statements)
8
+ BEGINBlock.new(
9
+ lbrace: lbrace,
10
+ statements: statements,
11
+ location: Location.default
12
+ )
13
+ end
14
+
15
+ # Create a new CHAR node.
16
+ def CHAR(value)
17
+ CHAR.new(value: value, location: Location.default)
18
+ end
19
+
20
+ # Create a new ENDBlock node.
21
+ def ENDBlock(lbrace, statements)
22
+ ENDBlock.new(
23
+ lbrace: lbrace,
24
+ statements: statements,
25
+ location: Location.default
26
+ )
27
+ end
28
+
29
+ # Create a new EndContent node.
30
+ def EndContent(value)
31
+ EndContent.new(value: value, location: Location.default)
32
+ end
33
+
34
+ # Create a new AliasNode node.
35
+ def AliasNode(left, right)
36
+ AliasNode.new(left: left, right: right, location: Location.default)
37
+ end
38
+
39
+ # Create a new ARef node.
40
+ def ARef(collection, index)
41
+ ARef.new(collection: collection, index: index, location: Location.default)
42
+ end
43
+
44
+ # Create a new ARefField node.
45
+ def ARefField(collection, index)
46
+ ARefField.new(
47
+ collection: collection,
48
+ index: index,
49
+ location: Location.default
50
+ )
51
+ end
52
+
53
+ # Create a new ArgParen node.
54
+ def ArgParen(arguments)
55
+ ArgParen.new(arguments: arguments, location: Location.default)
56
+ end
57
+
58
+ # Create a new Args node.
59
+ def Args(parts)
60
+ Args.new(parts: parts, location: Location.default)
61
+ end
62
+
63
+ # Create a new ArgBlock node.
64
+ def ArgBlock(value)
65
+ ArgBlock.new(value: value, location: Location.default)
66
+ end
67
+
68
+ # Create a new ArgStar node.
69
+ def ArgStar(value)
70
+ ArgStar.new(value: value, location: Location.default)
71
+ end
72
+
73
+ # Create a new ArgsForward node.
74
+ def ArgsForward
75
+ ArgsForward.new(location: Location.default)
76
+ end
77
+
78
+ # Create a new ArrayLiteral node.
79
+ def ArrayLiteral(lbracket, contents)
80
+ ArrayLiteral.new(
81
+ lbracket: lbracket,
82
+ contents: contents,
83
+ location: Location.default
84
+ )
85
+ end
86
+
87
+ # Create a new AryPtn node.
88
+ def AryPtn(constant, requireds, rest, posts)
89
+ AryPtn.new(
90
+ constant: constant,
91
+ requireds: requireds,
92
+ rest: rest,
93
+ posts: posts,
94
+ location: Location.default
95
+ )
96
+ end
97
+
98
+ # Create a new Assign node.
99
+ def Assign(target, value)
100
+ Assign.new(target: target, value: value, location: Location.default)
101
+ end
102
+
103
+ # Create a new Assoc node.
104
+ def Assoc(key, value)
105
+ Assoc.new(key: key, value: value, location: Location.default)
106
+ end
107
+
108
+ # Create a new AssocSplat node.
109
+ def AssocSplat(value)
110
+ AssocSplat.new(value: value, location: Location.default)
111
+ end
112
+
113
+ # Create a new Backref node.
114
+ def Backref(value)
115
+ Backref.new(value: value, location: Location.default)
116
+ end
117
+
118
+ # Create a new Backtick node.
119
+ def Backtick(value)
120
+ Backtick.new(value: value, location: Location.default)
121
+ end
122
+
123
+ # Create a new BareAssocHash node.
124
+ def BareAssocHash(assocs)
125
+ BareAssocHash.new(assocs: assocs, location: Location.default)
126
+ end
127
+
128
+ # Create a new Begin node.
129
+ def Begin(bodystmt)
130
+ Begin.new(bodystmt: bodystmt, location: Location.default)
131
+ end
132
+
133
+ # Create a new PinnedBegin node.
134
+ def PinnedBegin(statement)
135
+ PinnedBegin.new(statement: statement, location: Location.default)
136
+ end
137
+
138
+ # Create a new Binary node.
139
+ def Binary(left, operator, right)
140
+ Binary.new(
141
+ left: left,
142
+ operator: operator,
143
+ right: right,
144
+ location: Location.default
145
+ )
146
+ end
147
+
148
+ # Create a new BlockVar node.
149
+ def BlockVar(params, locals)
150
+ BlockVar.new(params: params, locals: locals, location: Location.default)
151
+ end
152
+
153
+ # Create a new BlockArg node.
154
+ def BlockArg(name)
155
+ BlockArg.new(name: name, location: Location.default)
156
+ end
157
+
158
+ # Create a new BodyStmt node.
159
+ def BodyStmt(
160
+ statements,
161
+ rescue_clause,
162
+ else_keyword,
163
+ else_clause,
164
+ ensure_clause
165
+ )
166
+ BodyStmt.new(
167
+ statements: statements,
168
+ rescue_clause: rescue_clause,
169
+ else_keyword: else_keyword,
170
+ else_clause: else_clause,
171
+ ensure_clause: ensure_clause,
172
+ location: Location.default
173
+ )
174
+ end
175
+
176
+ # Create a new Break node.
177
+ def Break(arguments)
178
+ Break.new(arguments: arguments, location: Location.default)
179
+ end
180
+
181
+ # Create a new CallNode node.
182
+ def CallNode(receiver, operator, message, arguments)
183
+ CallNode.new(
184
+ receiver: receiver,
185
+ operator: operator,
186
+ message: message,
187
+ arguments: arguments,
188
+ location: Location.default
189
+ )
190
+ end
191
+
192
+ # Create a new Case node.
193
+ def Case(keyword, value, consequent)
194
+ Case.new(
195
+ keyword: keyword,
196
+ value: value,
197
+ consequent: consequent,
198
+ location: Location.default
199
+ )
200
+ end
201
+
202
+ # Create a new RAssign node.
203
+ def RAssign(value, operator, pattern)
204
+ RAssign.new(
205
+ value: value,
206
+ operator: operator,
207
+ pattern: pattern,
208
+ location: Location.default
209
+ )
210
+ end
211
+
212
+ # Create a new ClassDeclaration node.
213
+ def ClassDeclaration(constant, superclass, bodystmt)
214
+ ClassDeclaration.new(
215
+ constant: constant,
216
+ superclass: superclass,
217
+ bodystmt: bodystmt,
218
+ location: Location.default
219
+ )
220
+ end
221
+
222
+ # Create a new Comma node.
223
+ def Comma(value)
224
+ Comma.new(value: value, location: Location.default)
225
+ end
226
+
227
+ # Create a new Command node.
228
+ def Command(message, arguments, block)
229
+ Command.new(
230
+ message: message,
231
+ arguments: arguments,
232
+ block: block,
233
+ location: Location.default
234
+ )
235
+ end
236
+
237
+ # Create a new CommandCall node.
238
+ def CommandCall(receiver, operator, message, arguments, block)
239
+ CommandCall.new(
240
+ receiver: receiver,
241
+ operator: operator,
242
+ message: message,
243
+ arguments: arguments,
244
+ block: block,
245
+ location: Location.default
246
+ )
247
+ end
248
+
249
+ # Create a new Comment node.
250
+ def Comment(value, inline)
251
+ Comment.new(value: value, inline: inline, location: Location.default)
252
+ end
253
+
254
+ # Create a new Const node.
255
+ def Const(value)
256
+ Const.new(value: value, location: Location.default)
257
+ end
258
+
259
+ # Create a new ConstPathField node.
260
+ def ConstPathField(parent, constant)
261
+ ConstPathField.new(
262
+ parent: parent,
263
+ constant: constant,
264
+ location: Location.default
265
+ )
266
+ end
267
+
268
+ # Create a new ConstPathRef node.
269
+ def ConstPathRef(parent, constant)
270
+ ConstPathRef.new(
271
+ parent: parent,
272
+ constant: constant,
273
+ location: Location.default
274
+ )
275
+ end
276
+
277
+ # Create a new ConstRef node.
278
+ def ConstRef(constant)
279
+ ConstRef.new(constant: constant, location: Location.default)
280
+ end
281
+
282
+ # Create a new CVar node.
283
+ def CVar(value)
284
+ CVar.new(value: value, location: Location.default)
285
+ end
286
+
287
+ # Create a new DefNode node.
288
+ def DefNode(target, operator, name, params, bodystmt)
289
+ DefNode.new(
290
+ target: target,
291
+ operator: operator,
292
+ name: name,
293
+ params: params,
294
+ bodystmt: bodystmt,
295
+ location: Location.default
296
+ )
297
+ end
298
+
299
+ # Create a new Defined node.
300
+ def Defined(value)
301
+ Defined.new(value: value, location: Location.default)
302
+ end
303
+
304
+ # Create a new BlockNode node.
305
+ def BlockNode(opening, block_var, bodystmt)
306
+ BlockNode.new(
307
+ opening: opening,
308
+ block_var: block_var,
309
+ bodystmt: bodystmt,
310
+ location: Location.default
311
+ )
312
+ end
313
+
314
+ # Create a new RangeNode node.
315
+ def RangeNode(left, operator, right)
316
+ RangeNode.new(
317
+ left: left,
318
+ operator: operator,
319
+ right: right,
320
+ location: Location.default
321
+ )
322
+ end
323
+
324
+ # Create a new DynaSymbol node.
325
+ def DynaSymbol(parts, quote)
326
+ DynaSymbol.new(parts: parts, quote: quote, location: Location.default)
327
+ end
328
+
329
+ # Create a new Else node.
330
+ def Else(keyword, statements)
331
+ Else.new(
332
+ keyword: keyword,
333
+ statements: statements,
334
+ location: Location.default
335
+ )
336
+ end
337
+
338
+ # Create a new Elsif node.
339
+ def Elsif(predicate, statements, consequent)
340
+ Elsif.new(
341
+ predicate: predicate,
342
+ statements: statements,
343
+ consequent: consequent,
344
+ location: Location.default
345
+ )
346
+ end
347
+
348
+ # Create a new EmbDoc node.
349
+ def EmbDoc(value)
350
+ EmbDoc.new(value: value, location: Location.default)
351
+ end
352
+
353
+ # Create a new EmbExprBeg node.
354
+ def EmbExprBeg(value)
355
+ EmbExprBeg.new(value: value, location: Location.default)
356
+ end
357
+
358
+ # Create a new EmbExprEnd node.
359
+ def EmbExprEnd(value)
360
+ EmbExprEnd.new(value: value, location: Location.default)
361
+ end
362
+
363
+ # Create a new EmbVar node.
364
+ def EmbVar(value)
365
+ EmbVar.new(value: value, location: Location.default)
366
+ end
367
+
368
+ # Create a new Ensure node.
369
+ def Ensure(keyword, statements)
370
+ Ensure.new(
371
+ keyword: keyword,
372
+ statements: statements,
373
+ location: Location.default
374
+ )
375
+ end
376
+
377
+ # Create a new ExcessedComma node.
378
+ def ExcessedComma(value)
379
+ ExcessedComma.new(value: value, location: Location.default)
380
+ end
381
+
382
+ # Create a new Field node.
383
+ def Field(parent, operator, name)
384
+ Field.new(
385
+ parent: parent,
386
+ operator: operator,
387
+ name: name,
388
+ location: Location.default
389
+ )
390
+ end
391
+
392
+ # Create a new FloatLiteral node.
393
+ def FloatLiteral(value)
394
+ FloatLiteral.new(value: value, location: Location.default)
395
+ end
396
+
397
+ # Create a new FndPtn node.
398
+ def FndPtn(constant, left, values, right)
399
+ FndPtn.new(
400
+ constant: constant,
401
+ left: left,
402
+ values: values,
403
+ right: right,
404
+ location: Location.default
405
+ )
406
+ end
407
+
408
+ # Create a new For node.
409
+ def For(index, collection, statements)
410
+ For.new(
411
+ index: index,
412
+ collection: collection,
413
+ statements: statements,
414
+ location: Location.default
415
+ )
416
+ end
417
+
418
+ # Create a new GVar node.
419
+ def GVar(value)
420
+ GVar.new(value: value, location: Location.default)
421
+ end
422
+
423
+ # Create a new HashLiteral node.
424
+ def HashLiteral(lbrace, assocs)
425
+ HashLiteral.new(
426
+ lbrace: lbrace,
427
+ assocs: assocs,
428
+ location: Location.default
429
+ )
430
+ end
431
+
432
+ # Create a new Heredoc node.
433
+ def Heredoc(beginning, ending, dedent, parts)
434
+ Heredoc.new(
435
+ beginning: beginning,
436
+ ending: ending,
437
+ dedent: dedent,
438
+ parts: parts,
439
+ location: Location.default
440
+ )
441
+ end
442
+
443
+ # Create a new HeredocBeg node.
444
+ def HeredocBeg(value)
445
+ HeredocBeg.new(value: value, location: Location.default)
446
+ end
447
+
448
+ # Create a new HeredocEnd node.
449
+ def HeredocEnd(value)
450
+ HeredocEnd.new(value: value, location: Location.default)
451
+ end
452
+
453
+ # Create a new HshPtn node.
454
+ def HshPtn(constant, keywords, keyword_rest)
455
+ HshPtn.new(
456
+ constant: constant,
457
+ keywords: keywords,
458
+ keyword_rest: keyword_rest,
459
+ location: Location.default
460
+ )
461
+ end
462
+
463
+ # Create a new Ident node.
464
+ def Ident(value)
465
+ Ident.new(value: value, location: Location.default)
466
+ end
467
+
468
+ # Create a new IfNode node.
469
+ def IfNode(predicate, statements, consequent)
470
+ IfNode.new(
471
+ predicate: predicate,
472
+ statements: statements,
473
+ consequent: consequent,
474
+ location: Location.default
475
+ )
476
+ end
477
+
478
+ # Create a new IfOp node.
479
+ def IfOp(predicate, truthy, falsy)
480
+ IfOp.new(
481
+ predicate: predicate,
482
+ truthy: truthy,
483
+ falsy: falsy,
484
+ location: Location.default
485
+ )
486
+ end
487
+
488
+ # Create a new Imaginary node.
489
+ def Imaginary(value)
490
+ Imaginary.new(value: value, location: Location.default)
491
+ end
492
+
493
+ # Create a new In node.
494
+ def In(pattern, statements, consequent)
495
+ In.new(
496
+ pattern: pattern,
497
+ statements: statements,
498
+ consequent: consequent,
499
+ location: Location.default
500
+ )
501
+ end
502
+
503
+ # Create a new Int node.
504
+ def Int(value)
505
+ Int.new(value: value, location: Location.default)
506
+ end
507
+
508
+ # Create a new IVar node.
509
+ def IVar(value)
510
+ IVar.new(value: value, location: Location.default)
511
+ end
512
+
513
+ # Create a new Kw node.
514
+ def Kw(value)
515
+ Kw.new(value: value, location: Location.default)
516
+ end
517
+
518
+ # Create a new KwRestParam node.
519
+ def KwRestParam(name)
520
+ KwRestParam.new(name: name, location: Location.default)
521
+ end
522
+
523
+ # Create a new Label node.
524
+ def Label(value)
525
+ Label.new(value: value, location: Location.default)
526
+ end
527
+
528
+ # Create a new LabelEnd node.
529
+ def LabelEnd(value)
530
+ LabelEnd.new(value: value, location: Location.default)
531
+ end
532
+
533
+ # Create a new Lambda node.
534
+ def Lambda(params, statements)
535
+ Lambda.new(
536
+ params: params,
537
+ statements: statements,
538
+ location: Location.default
539
+ )
540
+ end
541
+
542
+ # Create a new LambdaVar node.
543
+ def LambdaVar(params, locals)
544
+ LambdaVar.new(params: params, locals: locals, location: Location.default)
545
+ end
546
+
547
+ # Create a new LBrace node.
548
+ def LBrace(value)
549
+ LBrace.new(value: value, location: Location.default)
550
+ end
551
+
552
+ # Create a new LBracket node.
553
+ def LBracket(value)
554
+ LBracket.new(value: value, location: Location.default)
555
+ end
556
+
557
+ # Create a new LParen node.
558
+ def LParen(value)
559
+ LParen.new(value: value, location: Location.default)
560
+ end
561
+
562
+ # Create a new MAssign node.
563
+ def MAssign(target, value)
564
+ MAssign.new(target: target, value: value, location: Location.default)
565
+ end
566
+
567
+ # Create a new MethodAddBlock node.
568
+ def MethodAddBlock(call, block)
569
+ MethodAddBlock.new(call: call, block: block, location: Location.default)
570
+ end
571
+
572
+ # Create a new MLHS node.
573
+ def MLHS(parts, comma)
574
+ MLHS.new(parts: parts, comma: comma, location: Location.default)
575
+ end
576
+
577
+ # Create a new MLHSParen node.
578
+ def MLHSParen(contents, comma)
579
+ MLHSParen.new(
580
+ contents: contents,
581
+ comma: comma,
582
+ location: Location.default
583
+ )
584
+ end
585
+
586
+ # Create a new ModuleDeclaration node.
587
+ def ModuleDeclaration(constant, bodystmt)
588
+ ModuleDeclaration.new(
589
+ constant: constant,
590
+ bodystmt: bodystmt,
591
+ location: Location.default
592
+ )
593
+ end
594
+
595
+ # Create a new MRHS node.
596
+ def MRHS(parts)
597
+ MRHS.new(parts: parts, location: Location.default)
598
+ end
599
+
600
+ # Create a new Next node.
601
+ def Next(arguments)
602
+ Next.new(arguments: arguments, location: Location.default)
603
+ end
604
+
605
+ # Create a new Op node.
606
+ def Op(value)
607
+ Op.new(value: value, location: Location.default)
608
+ end
609
+
610
+ # Create a new OpAssign node.
611
+ def OpAssign(target, operator, value)
612
+ OpAssign.new(
613
+ target: target,
614
+ operator: operator,
615
+ value: value,
616
+ location: Location.default
617
+ )
618
+ end
619
+
620
+ # Create a new Params node.
621
+ def Params(requireds, optionals, rest, posts, keywords, keyword_rest, block)
622
+ Params.new(
623
+ requireds: requireds,
624
+ optionals: optionals,
625
+ rest: rest,
626
+ posts: posts,
627
+ keywords: keywords,
628
+ keyword_rest: keyword_rest,
629
+ block: block,
630
+ location: Location.default
631
+ )
632
+ end
633
+
634
+ # Create a new Paren node.
635
+ def Paren(lparen, contents)
636
+ Paren.new(lparen: lparen, contents: contents, location: Location.default)
637
+ end
638
+
639
+ # Create a new Period node.
640
+ def Period(value)
641
+ Period.new(value: value, location: Location.default)
642
+ end
643
+
644
+ # Create a new Program node.
645
+ def Program(statements)
646
+ Program.new(statements: statements, location: Location.default)
647
+ end
648
+
649
+ # Create a new QSymbols node.
650
+ def QSymbols(beginning, elements)
651
+ QSymbols.new(
652
+ beginning: beginning,
653
+ elements: elements,
654
+ location: Location.default
655
+ )
656
+ end
657
+
658
+ # Create a new QSymbolsBeg node.
659
+ def QSymbolsBeg(value)
660
+ QSymbolsBeg.new(value: value, location: Location.default)
661
+ end
662
+
663
+ # Create a new QWords node.
664
+ def QWords(beginning, elements)
665
+ QWords.new(
666
+ beginning: beginning,
667
+ elements: elements,
668
+ location: Location.default
669
+ )
670
+ end
671
+
672
+ # Create a new QWordsBeg node.
673
+ def QWordsBeg(value)
674
+ QWordsBeg.new(value: value, location: Location.default)
675
+ end
676
+
677
+ # Create a new RationalLiteral node.
678
+ def RationalLiteral(value)
679
+ RationalLiteral.new(value: value, location: Location.default)
680
+ end
681
+
682
+ # Create a new RBrace node.
683
+ def RBrace(value)
684
+ RBrace.new(value: value, location: Location.default)
685
+ end
686
+
687
+ # Create a new RBracket node.
688
+ def RBracket(value)
689
+ RBracket.new(value: value, location: Location.default)
690
+ end
691
+
692
+ # Create a new Redo node.
693
+ def Redo
694
+ Redo.new(location: Location.default)
695
+ end
696
+
697
+ # Create a new RegexpContent node.
698
+ def RegexpContent(beginning, parts)
699
+ RegexpContent.new(
700
+ beginning: beginning,
701
+ parts: parts,
702
+ location: Location.default
703
+ )
704
+ end
705
+
706
+ # Create a new RegexpBeg node.
707
+ def RegexpBeg(value)
708
+ RegexpBeg.new(value: value, location: Location.default)
709
+ end
710
+
711
+ # Create a new RegexpEnd node.
712
+ def RegexpEnd(value)
713
+ RegexpEnd.new(value: value, location: Location.default)
714
+ end
715
+
716
+ # Create a new RegexpLiteral node.
717
+ def RegexpLiteral(beginning, ending, parts)
718
+ RegexpLiteral.new(
719
+ beginning: beginning,
720
+ ending: ending,
721
+ parts: parts,
722
+ location: Location.default
723
+ )
724
+ end
725
+
726
+ # Create a new RescueEx node.
727
+ def RescueEx(exceptions, variable)
728
+ RescueEx.new(
729
+ exceptions: exceptions,
730
+ variable: variable,
731
+ location: Location.default
732
+ )
733
+ end
734
+
735
+ # Create a new Rescue node.
736
+ def Rescue(keyword, exception, statements, consequent)
737
+ Rescue.new(
738
+ keyword: keyword,
739
+ exception: exception,
740
+ statements: statements,
741
+ consequent: consequent,
742
+ location: Location.default
743
+ )
744
+ end
745
+
746
+ # Create a new RescueMod node.
747
+ def RescueMod(statement, value)
748
+ RescueMod.new(
749
+ statement: statement,
750
+ value: value,
751
+ location: Location.default
752
+ )
753
+ end
754
+
755
+ # Create a new RestParam node.
756
+ def RestParam(name)
757
+ RestParam.new(name: name, location: Location.default)
758
+ end
759
+
760
+ # Create a new Retry node.
761
+ def Retry
762
+ Retry.new(location: Location.default)
763
+ end
764
+
765
+ # Create a new ReturnNode node.
766
+ def ReturnNode(arguments)
767
+ ReturnNode.new(arguments: arguments, location: Location.default)
768
+ end
769
+
770
+ # Create a new RParen node.
771
+ def RParen(value)
772
+ RParen.new(value: value, location: Location.default)
773
+ end
774
+
775
+ # Create a new SClass node.
776
+ def SClass(target, bodystmt)
777
+ SClass.new(target: target, bodystmt: bodystmt, location: Location.default)
778
+ end
779
+
780
+ # Create a new Statements node.
781
+ def Statements(body)
782
+ Statements.new(nil, body: body, location: Location.default)
783
+ end
784
+
785
+ # Create a new StringContent node.
786
+ def StringContent(parts)
787
+ StringContent.new(parts: parts, location: Location.default)
788
+ end
789
+
790
+ # Create a new StringConcat node.
791
+ def StringConcat(left, right)
792
+ StringConcat.new(left: left, right: right, location: Location.default)
793
+ end
794
+
795
+ # Create a new StringDVar node.
796
+ def StringDVar(variable)
797
+ StringDVar.new(variable: variable, location: Location.default)
798
+ end
799
+
800
+ # Create a new StringEmbExpr node.
801
+ def StringEmbExpr(statements)
802
+ StringEmbExpr.new(statements: statements, location: Location.default)
803
+ end
804
+
805
+ # Create a new StringLiteral node.
806
+ def StringLiteral(parts, quote)
807
+ StringLiteral.new(parts: parts, quote: quote, location: Location.default)
808
+ end
809
+
810
+ # Create a new Super node.
811
+ def Super(arguments)
812
+ Super.new(arguments: arguments, location: Location.default)
813
+ end
814
+
815
+ # Create a new SymBeg node.
816
+ def SymBeg(value)
817
+ SymBeg.new(value: value, location: Location.default)
818
+ end
819
+
820
+ # Create a new SymbolContent node.
821
+ def SymbolContent(value)
822
+ SymbolContent.new(value: value, location: Location.default)
823
+ end
824
+
825
+ # Create a new SymbolLiteral node.
826
+ def SymbolLiteral(value)
827
+ SymbolLiteral.new(value: value, location: Location.default)
828
+ end
829
+
830
+ # Create a new Symbols node.
831
+ def Symbols(beginning, elements)
832
+ Symbols.new(
833
+ beginning: beginning,
834
+ elements: elements,
835
+ location: Location.default
836
+ )
837
+ end
838
+
839
+ # Create a new SymbolsBeg node.
840
+ def SymbolsBeg(value)
841
+ SymbolsBeg.new(value: value, location: Location.default)
842
+ end
843
+
844
+ # Create a new TLambda node.
845
+ def TLambda(value)
846
+ TLambda.new(value: value, location: Location.default)
847
+ end
848
+
849
+ # Create a new TLamBeg node.
850
+ def TLamBeg(value)
851
+ TLamBeg.new(value: value, location: Location.default)
852
+ end
853
+
854
+ # Create a new TopConstField node.
855
+ def TopConstField(constant)
856
+ TopConstField.new(constant: constant, location: Location.default)
857
+ end
858
+
859
+ # Create a new TopConstRef node.
860
+ def TopConstRef(constant)
861
+ TopConstRef.new(constant: constant, location: Location.default)
862
+ end
863
+
864
+ # Create a new TStringBeg node.
865
+ def TStringBeg(value)
866
+ TStringBeg.new(value: value, location: Location.default)
867
+ end
868
+
869
+ # Create a new TStringContent node.
870
+ def TStringContent(value)
871
+ TStringContent.new(value: value, location: Location.default)
872
+ end
873
+
874
+ # Create a new TStringEnd node.
875
+ def TStringEnd(value)
876
+ TStringEnd.new(value: value, location: Location.default)
877
+ end
878
+
879
+ # Create a new Not node.
880
+ def Not(statement, parentheses)
881
+ Not.new(
882
+ statement: statement,
883
+ parentheses: parentheses,
884
+ location: Location.default
885
+ )
886
+ end
887
+
888
+ # Create a new Unary node.
889
+ def Unary(operator, statement)
890
+ Unary.new(
891
+ operator: operator,
892
+ statement: statement,
893
+ location: Location.default
894
+ )
895
+ end
896
+
897
+ # Create a new Undef node.
898
+ def Undef(symbols)
899
+ Undef.new(symbols: symbols, location: Location.default)
900
+ end
901
+
902
+ # Create a new UnlessNode node.
903
+ def UnlessNode(predicate, statements, consequent)
904
+ UnlessNode.new(
905
+ predicate: predicate,
906
+ statements: statements,
907
+ consequent: consequent,
908
+ location: Location.default
909
+ )
910
+ end
911
+
912
+ # Create a new UntilNode node.
913
+ def UntilNode(predicate, statements)
914
+ UntilNode.new(
915
+ predicate: predicate,
916
+ statements: statements,
917
+ location: Location.default
918
+ )
919
+ end
920
+
921
+ # Create a new VarField node.
922
+ def VarField(value)
923
+ VarField.new(value: value, location: Location.default)
924
+ end
925
+
926
+ # Create a new VarRef node.
927
+ def VarRef(value)
928
+ VarRef.new(value: value, location: Location.default)
929
+ end
930
+
931
+ # Create a new PinnedVarRef node.
932
+ def PinnedVarRef(value)
933
+ PinnedVarRef.new(value: value, location: Location.default)
934
+ end
935
+
936
+ # Create a new VCall node.
937
+ def VCall(value)
938
+ VCall.new(value: value, location: Location.default)
939
+ end
940
+
941
+ # Create a new VoidStmt node.
942
+ def VoidStmt
943
+ VoidStmt.new(location: Location.default)
944
+ end
945
+
946
+ # Create a new When node.
947
+ def When(arguments, statements, consequent)
948
+ When.new(
949
+ arguments: arguments,
950
+ statements: statements,
951
+ consequent: consequent,
952
+ location: Location.default
953
+ )
954
+ end
955
+
956
+ # Create a new WhileNode node.
957
+ def WhileNode(predicate, statements)
958
+ WhileNode.new(
959
+ predicate: predicate,
960
+ statements: statements,
961
+ location: Location.default
962
+ )
963
+ end
964
+
965
+ # Create a new Word node.
966
+ def Word(parts)
967
+ Word.new(parts: parts, location: Location.default)
968
+ end
969
+
970
+ # Create a new Words node.
971
+ def Words(beginning, elements)
972
+ Words.new(
973
+ beginning: beginning,
974
+ elements: elements,
975
+ location: Location.default
976
+ )
977
+ end
978
+
979
+ # Create a new WordsBeg node.
980
+ def WordsBeg(value)
981
+ WordsBeg.new(value: value, location: Location.default)
982
+ end
983
+
984
+ # Create a new XString node.
985
+ def XString(parts)
986
+ XString.new(parts: parts, location: Location.default)
987
+ end
988
+
989
+ # Create a new XStringLiteral node.
990
+ def XStringLiteral(parts)
991
+ XStringLiteral.new(parts: parts, location: Location.default)
992
+ end
993
+
994
+ # Create a new YieldNode node.
995
+ def YieldNode(arguments)
996
+ YieldNode.new(arguments: arguments, location: Location.default)
997
+ end
998
+
999
+ # Create a new ZSuper node.
1000
+ def ZSuper
1001
+ ZSuper.new(location: Location.default)
1002
+ end
1003
+ end
1004
+ end