Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(211)

Side by Side Diff: runtime/vm/kernel.cc

Issue 2411823003: VM support for running Kernel binaries. (Closed)
Patch Set: Address comments Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « runtime/vm/kernel.h ('k') | runtime/vm/kernel_binary.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file.
4
5 #include "vm/kernel.h"
6
7 namespace dart {
8
9 namespace kernel {
10
11
12 template <typename T>
13 void VisitList(List<T>* list, Visitor* visitor) {
14 for (int i = 0; i < list->length(); ++i) {
15 (*list)[i]->AcceptVisitor(visitor);
16 }
17 }
18
19
20 Node::~Node() {}
21
22
23 TreeNode::~TreeNode() {}
24
25
26 void TreeNode::AcceptVisitor(Visitor* visitor) { AcceptTreeVisitor(visitor); }
27
28
29 Library::~Library() {}
30
31
32 void Library::AcceptTreeVisitor(TreeVisitor* visitor) {
33 visitor->VisitLibrary(this);
34 }
35
36
37 void Library::VisitChildren(Visitor* visitor) {
38 VisitList(&classes(), visitor);
39 VisitList(&procedures(), visitor);
40 VisitList(&fields(), visitor);
41 }
42
43
44 Class::~Class() {}
45
46
47 void Class::AcceptTreeVisitor(TreeVisitor* visitor) {
48 AcceptClassVisitor(visitor);
49 }
50
51
52 NormalClass::~NormalClass() {}
53
54
55 void NormalClass::AcceptClassVisitor(ClassVisitor* visitor) {
56 visitor->VisitNormalClass(this);
57 }
58
59
60 void NormalClass::AcceptReferenceVisitor(ClassReferenceVisitor* visitor) {
61 visitor->VisitNormalClassReference(this);
62 }
63
64
65 void NormalClass::VisitChildren(Visitor* visitor) {
66 VisitList(&type_parameters(), visitor);
67 if (super_class() != NULL) visitor->VisitInterfaceType(super_class());
68 VisitList(&implemented_classes(), visitor);
69 VisitList(&constructors(), visitor);
70 VisitList(&procedures(), visitor);
71 VisitList(&fields(), visitor);
72 }
73
74
75 MixinClass::~MixinClass() {}
76
77
78 void MixinClass::AcceptClassVisitor(ClassVisitor* visitor) {
79 visitor->VisitMixinClass(this);
80 }
81
82
83 void MixinClass::AcceptReferenceVisitor(ClassReferenceVisitor* visitor) {
84 visitor->VisitMixinClassReference(this);
85 }
86
87
88 void MixinClass::VisitChildren(Visitor* visitor) {
89 VisitList(&type_parameters(), visitor);
90 visitor->VisitInterfaceType(first());
91 visitor->VisitInterfaceType(second());
92 VisitList(&implemented_classes(), visitor);
93 VisitList(&constructors(), visitor);
94 }
95
96
97 Member::~Member() {}
98
99
100 void Member::AcceptTreeVisitor(TreeVisitor* visitor) {
101 AcceptMemberVisitor(visitor);
102 }
103
104
105 Field::~Field() {}
106
107
108 void Field::AcceptMemberVisitor(MemberVisitor* visitor) {
109 visitor->VisitField(this);
110 }
111
112
113 void Field::AcceptReferenceVisitor(MemberReferenceVisitor* visitor) {
114 visitor->VisitFieldReference(this);
115 }
116
117
118 void Field::VisitChildren(Visitor* visitor) {
119 type()->AcceptDartTypeVisitor(visitor);
120 visitor->VisitName(name());
121 if (initializer() != NULL) initializer()->AcceptExpressionVisitor(visitor);
122 }
123
124
125 Constructor::~Constructor() {}
126
127
128 void Constructor::AcceptMemberVisitor(MemberVisitor* visitor) {
129 visitor->VisitConstructor(this);
130 }
131
132
133 void Constructor::AcceptReferenceVisitor(MemberReferenceVisitor* visitor) {
134 visitor->VisitConstructorReference(this);
135 }
136
137
138 void Constructor::VisitChildren(Visitor* visitor) {
139 visitor->VisitName(name());
140 visitor->VisitFunctionNode(function());
141 VisitList(&initializers(), visitor);
142 }
143
144
145 Procedure::~Procedure() {}
146
147
148 void Procedure::AcceptMemberVisitor(MemberVisitor* visitor) {
149 visitor->VisitProcedure(this);
150 }
151
152
153 void Procedure::AcceptReferenceVisitor(MemberReferenceVisitor* visitor) {
154 visitor->VisitProcedureReference(this);
155 }
156
157
158 void Procedure::VisitChildren(Visitor* visitor) {
159 visitor->VisitName(name());
160 if (function() != NULL) visitor->VisitFunctionNode(function());
161 }
162
163
164 Initializer::~Initializer() {}
165
166
167 void Initializer::AcceptTreeVisitor(TreeVisitor* visitor) {
168 AcceptInitializerVisitor(visitor);
169 }
170
171
172 InvalidInitializer::~InvalidInitializer() {}
173
174
175 void InvalidInitializer::AcceptInitializerVisitor(InitializerVisitor* visitor) {
176 visitor->VisitInvalidInitializer(this);
177 }
178
179
180 void InvalidInitializer::VisitChildren(Visitor* visitor) {}
181
182
183 FieldInitializer::~FieldInitializer() {}
184
185
186 void FieldInitializer::AcceptInitializerVisitor(InitializerVisitor* visitor) {
187 visitor->VisitFieldInitializer(this);
188 }
189
190
191 void FieldInitializer::VisitChildren(Visitor* visitor) {
192 visitor->VisitFieldReference(field());
193 value()->AcceptExpressionVisitor(visitor);
194 }
195
196
197 SuperInitializer::~SuperInitializer() {}
198
199
200 void SuperInitializer::AcceptInitializerVisitor(InitializerVisitor* visitor) {
201 visitor->VisitSuperInitializer(this);
202 }
203
204
205 void SuperInitializer::VisitChildren(Visitor* visitor) {
206 visitor->VisitConstructorReference(target());
207 visitor->VisitArguments(arguments());
208 }
209
210
211 RedirectingInitializer::~RedirectingInitializer() {}
212
213
214 void RedirectingInitializer::AcceptInitializerVisitor(
215 InitializerVisitor* visitor) {
216 visitor->VisitRedirectingInitializer(this);
217 }
218
219
220 void RedirectingInitializer::VisitChildren(Visitor* visitor) {
221 visitor->VisitConstructorReference(target());
222 visitor->VisitArguments(arguments());
223 }
224
225
226 LocalInitializer::~LocalInitializer() {}
227
228
229 void LocalInitializer::AcceptInitializerVisitor(InitializerVisitor* visitor) {
230 visitor->VisitLocalInitializer(this);
231 }
232
233
234 void LocalInitializer::VisitChildren(Visitor* visitor) {
235 visitor->VisitVariableDeclaration(variable());
236 }
237
238
239 FunctionNode::~FunctionNode() {}
240
241
242 void FunctionNode::AcceptTreeVisitor(TreeVisitor* visitor) {
243 visitor->VisitFunctionNode(this);
244 }
245
246
247 void FunctionNode::VisitChildren(Visitor* visitor) {
248 VisitList(&type_parameters(), visitor);
249 VisitList(&positional_parameters(), visitor);
250 VisitList(&named_parameters(), visitor);
251 if (return_type() != NULL) return_type()->AcceptDartTypeVisitor(visitor);
252 if (body() != NULL) body()->AcceptStatementVisitor(visitor);
253 }
254
255
256 Expression::~Expression() {}
257
258
259 void Expression::AcceptTreeVisitor(TreeVisitor* visitor) {
260 AcceptExpressionVisitor(visitor);
261 }
262
263
264 InvalidExpression::~InvalidExpression() {}
265
266
267 void InvalidExpression::AcceptExpressionVisitor(ExpressionVisitor* visitor) {
268 visitor->VisitInvalidExpression(this);
269 }
270
271
272 void InvalidExpression::VisitChildren(Visitor* visitor) {}
273
274
275 VariableGet::~VariableGet() {}
276
277
278 void VariableGet::AcceptExpressionVisitor(ExpressionVisitor* visitor) {
279 visitor->VisitVariableGet(this);
280 }
281
282
283 void VariableGet::VisitChildren(Visitor* visitor) {}
284
285
286 VariableSet::~VariableSet() {}
287
288
289 void VariableSet::AcceptExpressionVisitor(ExpressionVisitor* visitor) {
290 visitor->VisitVariableSet(this);
291 }
292
293
294 void VariableSet::VisitChildren(Visitor* visitor) {
295 expression()->AcceptExpressionVisitor(visitor);
296 }
297
298
299 PropertyGet::~PropertyGet() {}
300
301
302 void PropertyGet::AcceptExpressionVisitor(ExpressionVisitor* visitor) {
303 visitor->VisitPropertyGet(this);
304 }
305
306
307 void PropertyGet::VisitChildren(Visitor* visitor) {
308 receiver()->AcceptExpressionVisitor(visitor);
309 visitor->VisitName(name());
310 }
311
312
313 PropertySet::~PropertySet() {}
314
315
316 void PropertySet::AcceptExpressionVisitor(ExpressionVisitor* visitor) {
317 visitor->VisitPropertySet(this);
318 }
319
320
321 void PropertySet::VisitChildren(Visitor* visitor) {
322 receiver()->AcceptExpressionVisitor(visitor);
323 visitor->VisitName(name());
324 value()->AcceptExpressionVisitor(visitor);
325 }
326
327
328 DirectPropertyGet::~DirectPropertyGet() {}
329
330
331 void DirectPropertyGet::AcceptExpressionVisitor(ExpressionVisitor* visitor) {
332 visitor->VisitDirectPropertyGet(this);
333 }
334
335
336 void DirectPropertyGet::VisitChildren(Visitor* visitor) {
337 receiver()->AcceptExpressionVisitor(visitor);
338 target()->AcceptReferenceVisitor(visitor);
339 }
340
341
342 DirectPropertySet::~DirectPropertySet() {}
343
344
345 void DirectPropertySet::AcceptExpressionVisitor(ExpressionVisitor* visitor) {
346 visitor->VisitDirectPropertySet(this);
347 }
348
349
350 void DirectPropertySet::VisitChildren(Visitor* visitor) {
351 receiver()->AcceptExpressionVisitor(visitor);
352 target()->AcceptReferenceVisitor(visitor);
353 value()->AcceptExpressionVisitor(visitor);
354 }
355
356
357 StaticGet::~StaticGet() {}
358
359
360 void StaticGet::AcceptExpressionVisitor(ExpressionVisitor* visitor) {
361 visitor->VisitStaticGet(this);
362 }
363
364
365 void StaticGet::VisitChildren(Visitor* visitor) {
366 target()->AcceptReferenceVisitor(visitor);
367 }
368
369
370 StaticSet::~StaticSet() {}
371
372
373 void StaticSet::AcceptExpressionVisitor(ExpressionVisitor* visitor) {
374 visitor->VisitStaticSet(this);
375 }
376
377
378 void StaticSet::VisitChildren(Visitor* visitor) {
379 target()->AcceptReferenceVisitor(visitor);
380 expression()->AcceptExpressionVisitor(visitor);
381 }
382
383
384 Arguments::~Arguments() {}
385
386
387 void Arguments::AcceptTreeVisitor(TreeVisitor* visitor) {
388 visitor->VisitArguments(this);
389 }
390
391
392 void Arguments::VisitChildren(Visitor* visitor) {
393 VisitList(&types(), visitor);
394 VisitList(&positional(), visitor);
395 VisitList(&named(), visitor);
396 }
397
398
399 NamedExpression::~NamedExpression() {}
400
401
402 void NamedExpression::AcceptTreeVisitor(TreeVisitor* visitor) {
403 visitor->VisitNamedExpression(this);
404 }
405
406
407 void NamedExpression::VisitChildren(Visitor* visitor) {
408 expression()->AcceptExpressionVisitor(visitor);
409 }
410
411
412 MethodInvocation::~MethodInvocation() {}
413
414
415 void MethodInvocation::AcceptExpressionVisitor(ExpressionVisitor* visitor) {
416 visitor->VisitMethodInvocation(this);
417 }
418
419
420 void MethodInvocation::VisitChildren(Visitor* visitor) {
421 receiver()->AcceptExpressionVisitor(visitor);
422 visitor->VisitName(name());
423 visitor->VisitArguments(arguments());
424 }
425
426
427 DirectMethodInvocation::~DirectMethodInvocation() {}
428
429
430 void DirectMethodInvocation::AcceptExpressionVisitor(
431 ExpressionVisitor* visitor) {
432 visitor->VisitDirectMethodInvocation(this);
433 }
434
435
436 void DirectMethodInvocation::VisitChildren(Visitor* visitor) {
437 receiver()->AcceptExpressionVisitor(visitor);
438 visitor->VisitProcedureReference(target());
439 visitor->VisitArguments(arguments());
440 }
441
442
443 StaticInvocation::~StaticInvocation() {}
444
445
446 void StaticInvocation::AcceptExpressionVisitor(ExpressionVisitor* visitor) {
447 visitor->VisitStaticInvocation(this);
448 }
449
450
451 void StaticInvocation::VisitChildren(Visitor* visitor) {
452 visitor->VisitProcedureReference(procedure());
453 visitor->VisitArguments(arguments());
454 }
455
456
457 ConstructorInvocation::~ConstructorInvocation() {}
458
459
460 void ConstructorInvocation::AcceptExpressionVisitor(
461 ExpressionVisitor* visitor) {
462 visitor->VisitConstructorInvocation(this);
463 }
464
465
466 void ConstructorInvocation::VisitChildren(Visitor* visitor) {
467 visitor->VisitConstructorReference(target());
468 visitor->VisitArguments(arguments());
469 }
470
471
472 Not::~Not() {}
473
474
475 void Not::AcceptExpressionVisitor(ExpressionVisitor* visitor) {
476 visitor->VisitNot(this);
477 }
478
479
480 void Not::VisitChildren(Visitor* visitor) {
481 expression()->AcceptExpressionVisitor(visitor);
482 }
483
484
485 LogicalExpression::~LogicalExpression() {}
486
487
488 void LogicalExpression::AcceptExpressionVisitor(ExpressionVisitor* visitor) {
489 visitor->VisitLogicalExpression(this);
490 }
491
492
493 void LogicalExpression::VisitChildren(Visitor* visitor) {
494 left()->AcceptExpressionVisitor(visitor);
495 right()->AcceptExpressionVisitor(visitor);
496 }
497
498
499 ConditionalExpression::~ConditionalExpression() {}
500
501
502 void ConditionalExpression::AcceptExpressionVisitor(
503 ExpressionVisitor* visitor) {
504 visitor->VisitConditionalExpression(this);
505 }
506
507
508 void ConditionalExpression::VisitChildren(Visitor* visitor) {
509 condition()->AcceptExpressionVisitor(visitor);
510 then()->AcceptExpressionVisitor(visitor);
511 otherwise()->AcceptExpressionVisitor(visitor);
512 }
513
514
515 StringConcatenation::~StringConcatenation() {}
516
517
518 void StringConcatenation::AcceptExpressionVisitor(ExpressionVisitor* visitor) {
519 visitor->VisitStringConcatenation(this);
520 }
521
522
523 void StringConcatenation::VisitChildren(Visitor* visitor) {
524 VisitList(&expressions(), visitor);
525 }
526
527
528 IsExpression::~IsExpression() {}
529
530
531 void IsExpression::AcceptExpressionVisitor(ExpressionVisitor* visitor) {
532 visitor->VisitIsExpression(this);
533 }
534
535
536 void IsExpression::VisitChildren(Visitor* visitor) {
537 operand()->AcceptExpressionVisitor(visitor);
538 type()->AcceptDartTypeVisitor(visitor);
539 }
540
541
542 AsExpression::~AsExpression() {}
543
544
545 void AsExpression::AcceptExpressionVisitor(ExpressionVisitor* visitor) {
546 visitor->VisitAsExpression(this);
547 }
548
549
550 void AsExpression::VisitChildren(Visitor* visitor) {
551 operand()->AcceptExpressionVisitor(visitor);
552 type()->AcceptDartTypeVisitor(visitor);
553 }
554
555
556 BasicLiteral::~BasicLiteral() {}
557
558
559 void BasicLiteral::VisitChildren(Visitor* visitor) {}
560
561
562 StringLiteral::~StringLiteral() {}
563
564
565 void StringLiteral::AcceptExpressionVisitor(ExpressionVisitor* visitor) {
566 visitor->VisitStringLiteral(this);
567 }
568
569
570 BigintLiteral::~BigintLiteral() {}
571
572
573 void BigintLiteral::AcceptExpressionVisitor(ExpressionVisitor* visitor) {
574 visitor->VisitBigintLiteral(this);
575 }
576
577
578 IntLiteral::~IntLiteral() {}
579
580
581 void IntLiteral::AcceptExpressionVisitor(ExpressionVisitor* visitor) {
582 visitor->VisitIntLiteral(this);
583 }
584
585
586 DoubleLiteral::~DoubleLiteral() {}
587
588
589 void DoubleLiteral::AcceptExpressionVisitor(ExpressionVisitor* visitor) {
590 visitor->VisitDoubleLiteral(this);
591 }
592
593
594 BoolLiteral::~BoolLiteral() {}
595
596
597 void BoolLiteral::AcceptExpressionVisitor(ExpressionVisitor* visitor) {
598 visitor->VisitBoolLiteral(this);
599 }
600
601
602 NullLiteral::~NullLiteral() {}
603
604
605 void NullLiteral::AcceptExpressionVisitor(ExpressionVisitor* visitor) {
606 visitor->VisitNullLiteral(this);
607 }
608
609
610 SymbolLiteral::~SymbolLiteral() {}
611
612
613 void SymbolLiteral::AcceptExpressionVisitor(ExpressionVisitor* visitor) {
614 visitor->VisitSymbolLiteral(this);
615 }
616
617
618 void SymbolLiteral::VisitChildren(Visitor* visitor) {}
619
620
621 TypeLiteral::~TypeLiteral() {}
622
623
624 void TypeLiteral::AcceptExpressionVisitor(ExpressionVisitor* visitor) {
625 visitor->VisitTypeLiteral(this);
626 }
627
628
629 void TypeLiteral::VisitChildren(Visitor* visitor) {
630 type()->AcceptDartTypeVisitor(visitor);
631 }
632
633
634 ThisExpression::~ThisExpression() {}
635
636
637 void ThisExpression::AcceptExpressionVisitor(ExpressionVisitor* visitor) {
638 visitor->VisitThisExpression(this);
639 }
640
641
642 void ThisExpression::VisitChildren(Visitor* visitor) {}
643
644
645 Rethrow::~Rethrow() {}
646
647
648 void Rethrow::AcceptExpressionVisitor(ExpressionVisitor* visitor) {
649 visitor->VisitRethrow(this);
650 }
651
652
653 void Rethrow::VisitChildren(Visitor* visitor) {}
654
655
656 Throw::~Throw() {}
657
658
659 void Throw::AcceptExpressionVisitor(ExpressionVisitor* visitor) {
660 visitor->VisitThrow(this);
661 }
662
663
664 void Throw::VisitChildren(Visitor* visitor) {
665 expression()->AcceptExpressionVisitor(visitor);
666 }
667
668
669 ListLiteral::~ListLiteral() {}
670
671
672 void ListLiteral::AcceptExpressionVisitor(ExpressionVisitor* visitor) {
673 visitor->VisitListLiteral(this);
674 }
675
676
677 void ListLiteral::VisitChildren(Visitor* visitor) {
678 type()->AcceptDartTypeVisitor(visitor);
679 VisitList(&expressions(), visitor);
680 }
681
682
683 MapLiteral::~MapLiteral() {}
684
685
686 void MapLiteral::AcceptExpressionVisitor(ExpressionVisitor* visitor) {
687 visitor->VisitMapLiteral(this);
688 }
689
690
691 void MapLiteral::VisitChildren(Visitor* visitor) {
692 key_type()->AcceptDartTypeVisitor(visitor);
693 value_type()->AcceptDartTypeVisitor(visitor);
694 VisitList(&entries(), visitor);
695 }
696
697
698 MapEntry::~MapEntry() {}
699
700
701 void MapEntry::AcceptTreeVisitor(TreeVisitor* visitor) {
702 visitor->VisitMapEntry(this);
703 }
704
705
706 void MapEntry::VisitChildren(Visitor* visitor) {
707 key()->AcceptExpressionVisitor(visitor);
708 value()->AcceptExpressionVisitor(visitor);
709 }
710
711
712 AwaitExpression::~AwaitExpression() {}
713
714
715 void AwaitExpression::AcceptExpressionVisitor(ExpressionVisitor* visitor) {
716 visitor->VisitAwaitExpression(this);
717 }
718
719
720 void AwaitExpression::VisitChildren(Visitor* visitor) {
721 operand()->AcceptExpressionVisitor(visitor);
722 }
723
724
725 FunctionExpression::~FunctionExpression() {}
726
727
728 void FunctionExpression::AcceptExpressionVisitor(ExpressionVisitor* visitor) {
729 visitor->VisitFunctionExpression(this);
730 }
731
732
733 void FunctionExpression::VisitChildren(Visitor* visitor) {
734 visitor->VisitFunctionNode(function());
735 }
736
737
738 Let::~Let() {}
739
740
741 void Let::AcceptExpressionVisitor(ExpressionVisitor* visitor) {
742 visitor->VisitLet(this);
743 }
744
745
746 void Let::VisitChildren(Visitor* visitor) {
747 visitor->VisitVariableDeclaration(variable());
748 body()->AcceptExpressionVisitor(visitor);
749 }
750
751
752 BlockExpression::~BlockExpression() {}
753
754
755 void BlockExpression::AcceptExpressionVisitor(ExpressionVisitor* visitor) {
756 visitor->VisitBlockExpression(this);
757 }
758
759
760 void BlockExpression::VisitChildren(Visitor* visitor) {
761 visitor->VisitBlock(body());
762 value()->AcceptExpressionVisitor(visitor);
763 }
764
765
766 Statement::~Statement() {}
767
768
769 void Statement::AcceptTreeVisitor(TreeVisitor* visitor) {
770 AcceptStatementVisitor(visitor);
771 }
772
773
774 InvalidStatement::~InvalidStatement() {}
775
776
777 void InvalidStatement::AcceptStatementVisitor(StatementVisitor* visitor) {
778 visitor->VisitInvalidStatement(this);
779 }
780
781
782 void InvalidStatement::VisitChildren(Visitor* visitor) {}
783
784
785 ExpressionStatement::~ExpressionStatement() {}
786
787
788 void ExpressionStatement::AcceptStatementVisitor(StatementVisitor* visitor) {
789 visitor->VisitExpressionStatement(this);
790 }
791
792
793 void ExpressionStatement::VisitChildren(Visitor* visitor) {
794 expression()->AcceptExpressionVisitor(visitor);
795 }
796
797
798 Block::~Block() {}
799
800
801 void Block::AcceptStatementVisitor(StatementVisitor* visitor) {
802 visitor->VisitBlock(this);
803 }
804
805
806 void Block::VisitChildren(Visitor* visitor) {
807 VisitList(&statements(), visitor);
808 }
809
810
811 EmptyStatement::~EmptyStatement() {}
812
813
814 void EmptyStatement::AcceptStatementVisitor(StatementVisitor* visitor) {
815 visitor->VisitEmptyStatement(this);
816 }
817
818
819 void EmptyStatement::VisitChildren(Visitor* visitor) {}
820
821
822 AssertStatement::~AssertStatement() {}
823
824
825 void AssertStatement::AcceptStatementVisitor(StatementVisitor* visitor) {
826 visitor->VisitAssertStatement(this);
827 }
828
829
830 void AssertStatement::VisitChildren(Visitor* visitor) {
831 condition()->AcceptExpressionVisitor(visitor);
832 if (message() != NULL) message()->AcceptExpressionVisitor(visitor);
833 }
834
835
836 LabeledStatement::~LabeledStatement() {}
837
838
839 void LabeledStatement::AcceptStatementVisitor(StatementVisitor* visitor) {
840 visitor->VisitLabeledStatement(this);
841 }
842
843
844 void LabeledStatement::VisitChildren(Visitor* visitor) {
845 body()->AcceptStatementVisitor(visitor);
846 }
847
848
849 BreakStatement::~BreakStatement() {}
850
851
852 void BreakStatement::AcceptStatementVisitor(StatementVisitor* visitor) {
853 visitor->VisitBreakStatement(this);
854 }
855
856
857 void BreakStatement::VisitChildren(Visitor* visitor) {}
858
859
860 WhileStatement::~WhileStatement() {}
861
862
863 void WhileStatement::AcceptStatementVisitor(StatementVisitor* visitor) {
864 visitor->VisitWhileStatement(this);
865 }
866
867
868 void WhileStatement::VisitChildren(Visitor* visitor) {
869 condition()->AcceptExpressionVisitor(visitor);
870 body()->AcceptStatementVisitor(visitor);
871 }
872
873
874 DoStatement::~DoStatement() {}
875
876
877 void DoStatement::AcceptStatementVisitor(StatementVisitor* visitor) {
878 visitor->VisitDoStatement(this);
879 }
880
881
882 void DoStatement::VisitChildren(Visitor* visitor) {
883 body()->AcceptStatementVisitor(visitor);
884 condition()->AcceptExpressionVisitor(visitor);
885 }
886
887
888 ForStatement::~ForStatement() {}
889
890
891 void ForStatement::AcceptStatementVisitor(StatementVisitor* visitor) {
892 visitor->VisitForStatement(this);
893 }
894
895
896 void ForStatement::VisitChildren(Visitor* visitor) {
897 VisitList(&variables(), visitor);
898 if (condition() != NULL) condition()->AcceptExpressionVisitor(visitor);
899 VisitList(&updates(), visitor);
900 body()->AcceptStatementVisitor(visitor);
901 }
902
903
904 ForInStatement::~ForInStatement() {}
905
906
907 void ForInStatement::AcceptStatementVisitor(StatementVisitor* visitor) {
908 visitor->VisitForInStatement(this);
909 }
910
911
912 void ForInStatement::VisitChildren(Visitor* visitor) {
913 visitor->VisitVariableDeclaration(variable());
914 iterable()->AcceptExpressionVisitor(visitor);
915 body()->AcceptStatementVisitor(visitor);
916 }
917
918
919 SwitchStatement::~SwitchStatement() {}
920
921
922 void SwitchStatement::AcceptStatementVisitor(StatementVisitor* visitor) {
923 visitor->VisitSwitchStatement(this);
924 }
925
926
927 void SwitchStatement::VisitChildren(Visitor* visitor) {
928 condition()->AcceptExpressionVisitor(visitor);
929 VisitList(&cases(), visitor);
930 }
931
932
933 SwitchCase::~SwitchCase() {}
934
935
936 void SwitchCase::AcceptTreeVisitor(TreeVisitor* visitor) {
937 visitor->VisitSwitchCase(this);
938 }
939
940
941 void SwitchCase::VisitChildren(Visitor* visitor) {
942 VisitList(&expressions(), visitor);
943 body()->AcceptStatementVisitor(visitor);
944 }
945
946
947 ContinueSwitchStatement::~ContinueSwitchStatement() {}
948
949
950 void ContinueSwitchStatement::AcceptStatementVisitor(
951 StatementVisitor* visitor) {
952 visitor->VisitContinueSwitchStatement(this);
953 }
954
955
956 void ContinueSwitchStatement::VisitChildren(Visitor* visitor) {}
957
958
959 IfStatement::~IfStatement() {}
960
961
962 void IfStatement::AcceptStatementVisitor(StatementVisitor* visitor) {
963 visitor->VisitIfStatement(this);
964 }
965
966
967 void IfStatement::VisitChildren(Visitor* visitor) {
968 condition()->AcceptExpressionVisitor(visitor);
969 then()->AcceptStatementVisitor(visitor);
970 otherwise()->AcceptStatementVisitor(visitor);
971 }
972
973
974 ReturnStatement::~ReturnStatement() {}
975
976
977 void ReturnStatement::AcceptStatementVisitor(StatementVisitor* visitor) {
978 visitor->VisitReturnStatement(this);
979 }
980
981
982 void ReturnStatement::VisitChildren(Visitor* visitor) {
983 if (expression() != NULL) expression()->AcceptExpressionVisitor(visitor);
984 }
985
986
987 TryCatch::~TryCatch() {}
988
989
990 void TryCatch::AcceptStatementVisitor(StatementVisitor* visitor) {
991 visitor->VisitTryCatch(this);
992 }
993
994
995 void TryCatch::VisitChildren(Visitor* visitor) {
996 body()->AcceptStatementVisitor(visitor);
997 VisitList(&catches(), visitor);
998 }
999
1000
1001 Catch::~Catch() {}
1002
1003
1004 void Catch::AcceptTreeVisitor(TreeVisitor* visitor) {
1005 visitor->VisitCatch(this);
1006 }
1007
1008
1009 void Catch::VisitChildren(Visitor* visitor) {
1010 if (guard() != NULL) guard()->AcceptDartTypeVisitor(visitor);
1011 if (exception() != NULL) visitor->VisitVariableDeclaration(exception());
1012 if (stack_trace() != NULL) visitor->VisitVariableDeclaration(stack_trace());
1013 body()->AcceptStatementVisitor(visitor);
1014 }
1015
1016
1017 TryFinally::~TryFinally() {}
1018
1019
1020 void TryFinally::AcceptStatementVisitor(StatementVisitor* visitor) {
1021 visitor->VisitTryFinally(this);
1022 }
1023
1024
1025 void TryFinally::VisitChildren(Visitor* visitor) {
1026 body()->AcceptStatementVisitor(visitor);
1027 finalizer()->AcceptStatementVisitor(visitor);
1028 }
1029
1030
1031 YieldStatement::~YieldStatement() {}
1032
1033
1034 void YieldStatement::AcceptStatementVisitor(StatementVisitor* visitor) {
1035 visitor->VisitYieldStatement(this);
1036 }
1037
1038
1039 void YieldStatement::VisitChildren(Visitor* visitor) {
1040 expression()->AcceptExpressionVisitor(visitor);
1041 }
1042
1043
1044 VariableDeclaration::~VariableDeclaration() {}
1045
1046
1047 void VariableDeclaration::AcceptStatementVisitor(StatementVisitor* visitor) {
1048 visitor->VisitVariableDeclaration(this);
1049 }
1050
1051
1052 void VariableDeclaration::VisitChildren(Visitor* visitor) {
1053 if (type() != NULL) type()->AcceptDartTypeVisitor(visitor);
1054 if (initializer() != NULL) initializer()->AcceptExpressionVisitor(visitor);
1055 }
1056
1057
1058 FunctionDeclaration::~FunctionDeclaration() {}
1059
1060
1061 void FunctionDeclaration::AcceptStatementVisitor(StatementVisitor* visitor) {
1062 visitor->VisitFunctionDeclaration(this);
1063 }
1064
1065
1066 void FunctionDeclaration::VisitChildren(Visitor* visitor) {
1067 visitor->VisitVariableDeclaration(variable());
1068 visitor->VisitFunctionNode(function());
1069 }
1070
1071
1072 Name::~Name() {}
1073
1074
1075 void Name::AcceptVisitor(Visitor* visitor) { visitor->VisitName(this); }
1076
1077
1078 void Name::VisitChildren(Visitor* visitor) {}
1079
1080
1081 InferredValue::~InferredValue() {}
1082
1083
1084 void InferredValue::AcceptVisitor(Visitor* visitor) {
1085 visitor->VisitInferredValue(this);
1086 }
1087
1088
1089 void InferredValue::VisitChildren(Visitor* visitor) {}
1090
1091
1092 DartType::~DartType() {}
1093
1094
1095 void DartType::AcceptVisitor(Visitor* visitor) {
1096 AcceptDartTypeVisitor(visitor);
1097 }
1098
1099
1100 InvalidType::~InvalidType() {}
1101
1102
1103 void InvalidType::AcceptDartTypeVisitor(DartTypeVisitor* visitor) {
1104 visitor->VisitInvalidType(this);
1105 }
1106
1107
1108 void InvalidType::VisitChildren(Visitor* visitor) {}
1109
1110
1111 DynamicType::~DynamicType() {}
1112
1113
1114 void DynamicType::AcceptDartTypeVisitor(DartTypeVisitor* visitor) {
1115 visitor->VisitDynamicType(this);
1116 }
1117
1118
1119 void DynamicType::VisitChildren(Visitor* visitor) {}
1120
1121
1122 VoidType::~VoidType() {}
1123
1124
1125 void VoidType::AcceptDartTypeVisitor(DartTypeVisitor* visitor) {
1126 visitor->VisitVoidType(this);
1127 }
1128
1129
1130 void VoidType::VisitChildren(Visitor* visitor) {}
1131
1132
1133 InterfaceType::~InterfaceType() {}
1134
1135
1136 void InterfaceType::AcceptDartTypeVisitor(DartTypeVisitor* visitor) {
1137 visitor->VisitInterfaceType(this);
1138 }
1139
1140
1141 void InterfaceType::VisitChildren(Visitor* visitor) {
1142 klass()->AcceptReferenceVisitor(visitor);
1143 VisitList(&type_arguments(), visitor);
1144 }
1145
1146
1147 FunctionType::~FunctionType() {}
1148
1149
1150 void FunctionType::AcceptDartTypeVisitor(DartTypeVisitor* visitor) {
1151 visitor->VisitFunctionType(this);
1152 }
1153
1154
1155 void FunctionType::VisitChildren(Visitor* visitor) {
1156 VisitList(&type_parameters(), visitor);
1157 VisitList(&positional_parameters(), visitor);
1158 for (int i = 0; i < named_parameters().length(); ++i) {
1159 named_parameters()[i]->second()->AcceptDartTypeVisitor(visitor);
1160 }
1161 return_type()->AcceptDartTypeVisitor(visitor);
1162 }
1163
1164
1165 TypeParameterType::~TypeParameterType() {}
1166
1167
1168 void TypeParameterType::AcceptDartTypeVisitor(DartTypeVisitor* visitor) {
1169 visitor->VisitTypeParameterType(this);
1170 }
1171
1172
1173 void TypeParameterType::VisitChildren(Visitor* visitor) {}
1174
1175
1176 TypeParameter::~TypeParameter() {}
1177
1178
1179 void TypeParameter::AcceptTreeVisitor(TreeVisitor* visitor) {
1180 visitor->VisitTypeParameter(this);
1181 }
1182
1183
1184 void TypeParameter::VisitChildren(Visitor* visitor) {
1185 bound()->AcceptDartTypeVisitor(visitor);
1186 }
1187
1188
1189 Program::~Program() {}
1190
1191
1192 void Program::AcceptTreeVisitor(TreeVisitor* visitor) {
1193 visitor->VisitProgram(this);
1194 }
1195
1196
1197 void Program::VisitChildren(Visitor* visitor) {
1198 VisitList(&libraries(), visitor);
1199 visitor->VisitProcedureReference(main_method());
1200 }
1201
1202
1203 } // namespace kernel
1204
1205 } // namespace dart
OLDNEW
« no previous file with comments | « runtime/vm/kernel.h ('k') | runtime/vm/kernel_binary.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698