OLD | NEW |
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 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. | 3 // BSD-style license that can be found in the LICENSE file. |
4 // Generated by scripts/tree_gen.py. | 4 // Generated by scripts/tree_gen.py. |
5 | 5 |
6 ///////////////////////////////////////////////////////////////////////// | 6 ///////////////////////////////////////////////////////////////////////// |
7 // CSS specific types: | 7 // CSS specific types: |
8 ///////////////////////////////////////////////////////////////////////// | 8 ///////////////////////////////////////////////////////////////////////// |
9 | 9 |
10 | 10 |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
44 visit(TreeVisitor visitor) => visitor.visitCommentDefinition(this); | 44 visit(TreeVisitor visitor) => visitor.visitCommentDefinition(this); |
45 | 45 |
46 String toString() => '<!-- ${comment} -->'; | 46 String toString() => '<!-- ${comment} -->'; |
47 } | 47 } |
48 | 48 |
49 class SelectorGroup extends ASTNode { | 49 class SelectorGroup extends ASTNode { |
50 List<Selector> _selectors; | 50 List<Selector> _selectors; |
51 | 51 |
52 SelectorGroup(this._selectors, SourceSpan span): super(span); | 52 SelectorGroup(this._selectors, SourceSpan span): super(span); |
53 | 53 |
54 List<Selector> get selectors() => _selectors; | 54 List<Selector> get selectors => _selectors; |
55 | 55 |
56 visit(TreeVisitor visitor) => visitor.visitSelectorGroup(this); | 56 visit(TreeVisitor visitor) => visitor.visitSelectorGroup(this); |
57 | 57 |
58 String toString() { | 58 String toString() { |
59 StringBuffer buff = new StringBuffer(); | 59 StringBuffer buff = new StringBuffer(); |
60 int idx = 0; | 60 int idx = 0; |
61 for (final selector in _selectors) { | 61 for (final selector in _selectors) { |
62 if (idx++ > 0) { | 62 if (idx++ > 0) { |
63 buff.add(', '); | 63 buff.add(', '); |
64 } | 64 } |
65 buff.add(selector.toString()); | 65 buff.add(selector.toString()); |
66 } | 66 } |
67 return buff.toString(); | 67 return buff.toString(); |
68 } | 68 } |
69 | 69 |
70 /** A multiline string showing the node and its children. */ | 70 /** A multiline string showing the node and its children. */ |
71 String toDebugString() { | 71 String toDebugString() { |
72 var to = new TreeOutput(); | 72 var to = new TreeOutput(); |
73 var tp = new TreePrinter(to); | 73 var tp = new TreePrinter(to); |
74 this.visit(tp); | 74 this.visit(tp); |
75 return to.buf.toString(); | 75 return to.buf.toString(); |
76 } | 76 } |
77 } | 77 } |
78 | 78 |
79 class Selector extends ASTNode { | 79 class Selector extends ASTNode { |
80 List<SimpleSelectorSequence> _simpleSelectorSequences; | 80 List<SimpleSelectorSequence> _simpleSelectorSequences; |
81 | 81 |
82 Selector(this._simpleSelectorSequences, SourceSpan span) : super(span); | 82 Selector(this._simpleSelectorSequences, SourceSpan span) : super(span); |
83 | 83 |
84 List<SimpleSelectorSequence> get simpleSelectorSequences() => | 84 List<SimpleSelectorSequence> get simpleSelectorSequences => |
85 _simpleSelectorSequences; | 85 _simpleSelectorSequences; |
86 | 86 |
87 add(SimpleSelectorSequence seq) => _simpleSelectorSequences.add(seq); | 87 add(SimpleSelectorSequence seq) => _simpleSelectorSequences.add(seq); |
88 | 88 |
89 List<SimpleSelectorSequence> get simpleSelectorSquences() => | 89 List<SimpleSelectorSequence> get simpleSelectorSquences => |
90 _simpleSelectorSequences; | 90 _simpleSelectorSequences; |
91 | 91 |
92 int get length() => _simpleSelectorSequences.length; | 92 int get length => _simpleSelectorSequences.length; |
93 | 93 |
94 String toString() { | 94 String toString() { |
95 StringBuffer buff = new StringBuffer(); | 95 StringBuffer buff = new StringBuffer(); |
96 for (final simpleSelectorSequence in _simpleSelectorSequences) { | 96 for (final simpleSelectorSequence in _simpleSelectorSequences) { |
97 buff.add(simpleSelectorSequence.toString()); | 97 buff.add(simpleSelectorSequence.toString()); |
98 } | 98 } |
99 return buff.toString(); | 99 return buff.toString(); |
100 } | 100 } |
101 | 101 |
102 visit(TreeVisitor visitor) => visitor.visitSelector(this); | 102 visit(TreeVisitor visitor) => visitor.visitSelector(this); |
103 } | 103 } |
104 | 104 |
105 class SimpleSelectorSequence extends ASTNode { | 105 class SimpleSelectorSequence extends ASTNode { |
106 int _combinator; // +, >, ~, NONE | 106 int _combinator; // +, >, ~, NONE |
107 SimpleSelector _selector; | 107 SimpleSelector _selector; |
108 | 108 |
109 SimpleSelectorSequence(this._selector, SourceSpan span, | 109 SimpleSelectorSequence(this._selector, SourceSpan span, |
110 [this._combinator = TokenKind.COMBINATOR_NONE]) : super(span); | 110 [this._combinator = TokenKind.COMBINATOR_NONE]) : super(span); |
111 | 111 |
112 get simpleSelector() => _selector; | 112 get simpleSelector => _selector; |
113 | 113 |
114 bool isCombinatorNone() => _combinator == TokenKind.COMBINATOR_NONE; | 114 bool isCombinatorNone() => _combinator == TokenKind.COMBINATOR_NONE; |
115 bool isCombinatorPlus() => _combinator == TokenKind.COMBINATOR_PLUS; | 115 bool isCombinatorPlus() => _combinator == TokenKind.COMBINATOR_PLUS; |
116 bool isCombinatorGreater() => _combinator == TokenKind.COMBINATOR_GREATER; | 116 bool isCombinatorGreater() => _combinator == TokenKind.COMBINATOR_GREATER; |
117 bool isCombinatorTilde() => _combinator == TokenKind.COMBINATOR_TILDE; | 117 bool isCombinatorTilde() => _combinator == TokenKind.COMBINATOR_TILDE; |
118 bool isCombinatorDescendant() => | 118 bool isCombinatorDescendant() => |
119 _combinator == TokenKind.COMBINATOR_DESCENDANT; | 119 _combinator == TokenKind.COMBINATOR_DESCENDANT; |
120 | 120 |
121 String _combinatorToString() => | 121 String _combinatorToString() => |
122 isCombinatorDescendant() ? ' ' : | 122 isCombinatorDescendant() ? ' ' : |
123 isCombinatorPlus() ? '+' : | 123 isCombinatorPlus() ? '+' : |
124 isCombinatorGreater() ? '>' : | 124 isCombinatorGreater() ? '>' : |
125 isCombinatorTilde() ? '~' : ''; | 125 isCombinatorTilde() ? '~' : ''; |
126 | 126 |
127 visit(TreeVisitor visitor) => visitor.visitSimpleSelectorSequence(this); | 127 visit(TreeVisitor visitor) => visitor.visitSimpleSelectorSequence(this); |
128 | 128 |
129 String toString() => _combinatorToString() + _selector.toString(); | 129 String toString() => _combinatorToString() + _selector.toString(); |
130 } | 130 } |
131 | 131 |
132 /* All other selectors (element, #id, .class, attribute, pseudo, negation, | 132 /* All other selectors (element, #id, .class, attribute, pseudo, negation, |
133 * namespace, *) are derived from this selector. | 133 * namespace, *) are derived from this selector. |
134 */ | 134 */ |
135 class SimpleSelector extends ASTNode { | 135 class SimpleSelector extends ASTNode { |
136 var _name; | 136 var _name; |
137 | 137 |
138 SimpleSelector(this._name, SourceSpan span) : super(span); | 138 SimpleSelector(this._name, SourceSpan span) : super(span); |
139 | 139 |
140 // Name can be an Identifier or WildCard we'll return either the name or '*'. | 140 // Name can be an Identifier or WildCard we'll return either the name or '*'. |
141 String get name() => isWildcard() ? '*' : _name.name; | 141 String get name => isWildcard() ? '*' : _name.name; |
142 | 142 |
143 bool isWildcard() => _name is Wildcard; | 143 bool isWildcard() => _name is Wildcard; |
144 | 144 |
145 visit(TreeVisitor visitor) => visitor.visitSimpleSelector(this); | 145 visit(TreeVisitor visitor) => visitor.visitSimpleSelector(this); |
146 | 146 |
147 String toString() => name; | 147 String toString() => name; |
148 } | 148 } |
149 | 149 |
150 // element name | 150 // element name |
151 class ElementSelector extends SimpleSelector { | 151 class ElementSelector extends SimpleSelector { |
(...skipping 12 matching lines...) Expand all Loading... |
164 } | 164 } |
165 } | 165 } |
166 | 166 |
167 // namespace|element | 167 // namespace|element |
168 class NamespaceSelector extends SimpleSelector { | 168 class NamespaceSelector extends SimpleSelector { |
169 var _namespace; // null, Wildcard or Identifier | 169 var _namespace; // null, Wildcard or Identifier |
170 | 170 |
171 NamespaceSelector(this._namespace, var name, SourceSpan span) : | 171 NamespaceSelector(this._namespace, var name, SourceSpan span) : |
172 super(name, span); | 172 super(name, span); |
173 | 173 |
174 String get namespace() => _namespace is Wildcard ? '*' : _namespace.name; | 174 String get namespace => _namespace is Wildcard ? '*' : _namespace.name; |
175 | 175 |
176 bool isNamespaceWildcard() => _namespace is Wildcard; | 176 bool isNamespaceWildcard() => _namespace is Wildcard; |
177 | 177 |
178 SimpleSelector get nameAsSimpleSelector() => _name; | 178 SimpleSelector get nameAsSimpleSelector => _name; |
179 | 179 |
180 visit(TreeVisitor visitor) => visitor.visitNamespaceSelector(this); | 180 visit(TreeVisitor visitor) => visitor.visitNamespaceSelector(this); |
181 | 181 |
182 String toString() => "$namespace|${nameAsSimpleSelector.name}"; | 182 String toString() => "$namespace|${nameAsSimpleSelector.name}"; |
183 } | 183 } |
184 | 184 |
185 // [attr op value] | 185 // [attr op value] |
186 class AttributeSelector extends SimpleSelector { | 186 class AttributeSelector extends SimpleSelector { |
187 int _op; | 187 int _op; |
188 var _value; | 188 var _value; |
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
289 List<ASTNode> _topLevels; | 289 List<ASTNode> _topLevels; |
290 | 290 |
291 Stylesheet(this._topLevels, SourceSpan span) : super(span) { | 291 Stylesheet(this._topLevels, SourceSpan span) : super(span) { |
292 for (final node in _topLevels) { | 292 for (final node in _topLevels) { |
293 assert(node is TopLevelProduction || node is Directive); | 293 assert(node is TopLevelProduction || node is Directive); |
294 } | 294 } |
295 } | 295 } |
296 | 296 |
297 visit(TreeVisitor visitor) => visitor.visitStylesheet(this); | 297 visit(TreeVisitor visitor) => visitor.visitStylesheet(this); |
298 | 298 |
299 List<ASTNode> get topLevels() => _topLevels; | 299 List<ASTNode> get topLevels => _topLevels; |
300 | 300 |
301 String toString() { | 301 String toString() { |
302 StringBuffer buff = new StringBuffer(); | 302 StringBuffer buff = new StringBuffer(); |
303 for (final topLevel in _topLevels) { | 303 for (final topLevel in _topLevels) { |
304 buff.add(topLevel.toString()); | 304 buff.add(topLevel.toString()); |
305 } | 305 } |
306 return buff.toString(); | 306 return buff.toString(); |
307 } | 307 } |
308 | 308 |
309 /** A multiline string showing the node and its children. */ | 309 /** A multiline string showing the node and its children. */ |
(...skipping 13 matching lines...) Expand all Loading... |
323 String toString() => "TopLevelProduction"; | 323 String toString() => "TopLevelProduction"; |
324 } | 324 } |
325 | 325 |
326 class RuleSet extends TopLevelProduction { | 326 class RuleSet extends TopLevelProduction { |
327 SelectorGroup _selectorGroup; | 327 SelectorGroup _selectorGroup; |
328 DeclarationGroup _declarationGroup; | 328 DeclarationGroup _declarationGroup; |
329 | 329 |
330 RuleSet(this._selectorGroup, this._declarationGroup, SourceSpan span) : | 330 RuleSet(this._selectorGroup, this._declarationGroup, SourceSpan span) : |
331 super(span); | 331 super(span); |
332 | 332 |
333 SelectorGroup get selectorGroup() => _selectorGroup; | 333 SelectorGroup get selectorGroup => _selectorGroup; |
334 DeclarationGroup get declarationGroup() => _declarationGroup; | 334 DeclarationGroup get declarationGroup => _declarationGroup; |
335 | 335 |
336 visit(TreeVisitor visitor) => visitor.visitRuleSet(this); | 336 visit(TreeVisitor visitor) => visitor.visitRuleSet(this); |
337 | 337 |
338 String toString() => | 338 String toString() => |
339 "\n${_selectorGroup.toString()} {\n" + | 339 "\n${_selectorGroup.toString()} {\n" + |
340 "${_declarationGroup.toString()}}\n"; | 340 "${_declarationGroup.toString()}}\n"; |
341 } | 341 } |
342 | 342 |
343 class Directive extends ASTNode { | 343 class Directive extends ASTNode { |
344 Directive(SourceSpan span) : super(span); | 344 Directive(SourceSpan span) : super(span); |
345 | 345 |
346 String toString() => "Directive"; | 346 String toString() => "Directive"; |
347 | 347 |
348 bool get isBuiltIn() => true; // Known CSS directive? | 348 bool get isBuiltIn => true; // Known CSS directive? |
349 bool get isExtension() => false; // SCSS extension? | 349 bool get isExtension => false; // SCSS extension? |
350 | 350 |
351 visit(TreeVisitor visitor) => visitor.visitDirective(this); | 351 visit(TreeVisitor visitor) => visitor.visitDirective(this); |
352 } | 352 } |
353 | 353 |
354 class ImportDirective extends Directive { | 354 class ImportDirective extends Directive { |
355 String _import; | 355 String _import; |
356 List<String> _media; | 356 List<String> _media; |
357 | 357 |
358 ImportDirective(this._import, this._media, SourceSpan span) : | 358 ImportDirective(this._import, this._media, SourceSpan span) : |
359 super(span); | 359 super(span); |
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
429 var _name; | 429 var _name; |
430 List<KeyFrameBlock> _blocks; | 430 List<KeyFrameBlock> _blocks; |
431 | 431 |
432 KeyFrameDirective(this._name, SourceSpan span) : | 432 KeyFrameDirective(this._name, SourceSpan span) : |
433 _blocks = [], super(span); | 433 _blocks = [], super(span); |
434 | 434 |
435 add(KeyFrameBlock block) { | 435 add(KeyFrameBlock block) { |
436 _blocks.add(block); | 436 _blocks.add(block); |
437 } | 437 } |
438 | 438 |
439 String get name() => _name; | 439 String get name => _name; |
440 | 440 |
441 visit(TreeVisitor visitor) => visitor.visitKeyFrameDirective(this); | 441 visit(TreeVisitor visitor) => visitor.visitKeyFrameDirective(this); |
442 | 442 |
443 String toString() { | 443 String toString() { |
444 StringBuffer buff = new StringBuffer(); | 444 StringBuffer buff = new StringBuffer(); |
445 buff.add('@-webkit-keyframes ${_name} {\n'); | 445 buff.add('@-webkit-keyframes ${_name} {\n'); |
446 for (final block in _blocks) { | 446 for (final block in _blocks) { |
447 buff.add(block.toString()); | 447 buff.add(block.toString()); |
448 } | 448 } |
449 buff.add('}\n'); | 449 buff.add('}\n'); |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
484 | 484 |
485 class IncludeDirective extends Directive { | 485 class IncludeDirective extends Directive { |
486 String _include; | 486 String _include; |
487 Stylesheet _stylesheet; | 487 Stylesheet _stylesheet; |
488 | 488 |
489 IncludeDirective(this._include, this._stylesheet, SourceSpan span) : | 489 IncludeDirective(this._include, this._stylesheet, SourceSpan span) : |
490 super(span); | 490 super(span); |
491 | 491 |
492 visit(TreeVisitor visitor) => visitor.visitIncludeDirective(this); | 492 visit(TreeVisitor visitor) => visitor.visitIncludeDirective(this); |
493 | 493 |
494 bool get isBuiltIn() => false; | 494 bool get isBuiltIn => false; |
495 bool get isExtension() => true; | 495 bool get isExtension => true; |
496 | 496 |
497 Stylesheet get styleSheet() => _stylesheet; | 497 Stylesheet get styleSheet => _stylesheet; |
498 | 498 |
499 String toString() { | 499 String toString() { |
500 StringBuffer buff = new StringBuffer(); | 500 StringBuffer buff = new StringBuffer(); |
501 buff.add('/****** @include ${_include} ******/\n'); | 501 buff.add('/****** @include ${_include} ******/\n'); |
502 buff.add(_stylesheet != null ? _stylesheet.toString() : '// <EMPTY>'); | 502 buff.add(_stylesheet != null ? _stylesheet.toString() : '// <EMPTY>'); |
503 buff.add('/****** End of ${_include} ******/\n\n'); | 503 buff.add('/****** End of ${_include} ******/\n\n'); |
504 return buff.toString(); | 504 return buff.toString(); |
505 } | 505 } |
506 } | 506 } |
507 | 507 |
508 class StyletDirective extends Directive { | 508 class StyletDirective extends Directive { |
509 String _dartClassName; | 509 String _dartClassName; |
510 List<RuleSet> _rulesets; | 510 List<RuleSet> _rulesets; |
511 | 511 |
512 StyletDirective(this._dartClassName, this._rulesets, SourceSpan span) : | 512 StyletDirective(this._dartClassName, this._rulesets, SourceSpan span) : |
513 super(span); | 513 super(span); |
514 | 514 |
515 bool get isBuiltIn() => false; | 515 bool get isBuiltIn => false; |
516 bool get isExtension() => true; | 516 bool get isExtension => true; |
517 | 517 |
518 String get dartClassName() => _dartClassName; | 518 String get dartClassName => _dartClassName; |
519 List<RuleSet> get rulesets() => _rulesets; | 519 List<RuleSet> get rulesets => _rulesets; |
520 | 520 |
521 visit(TreeVisitor visitor) => visitor.visitStyletDirective(this); | 521 visit(TreeVisitor visitor) => visitor.visitStyletDirective(this); |
522 | 522 |
523 // TODO(terry): Output Dart class | 523 // TODO(terry): Output Dart class |
524 String toString() => '/* @stylet export as ${_dartClassName} */\n'; | 524 String toString() => '/* @stylet export as ${_dartClassName} */\n'; |
525 } | 525 } |
526 | 526 |
527 class Declaration extends ASTNode { | 527 class Declaration extends ASTNode { |
528 Identifier _property; | 528 Identifier _property; |
529 Expression _expression; | 529 Expression _expression; |
530 bool _important; | 530 bool _important; |
531 | 531 |
532 Declaration(this._property, this._expression, SourceSpan span) : | 532 Declaration(this._property, this._expression, SourceSpan span) : |
533 _important = false, super(span); | 533 _important = false, super(span); |
534 | 534 |
535 String get property() => _property.name; | 535 String get property => _property.name; |
536 Expression get expression() => _expression; | 536 Expression get expression => _expression; |
537 | 537 |
538 bool get important() => _important; | 538 bool get important => _important; |
539 set important(bool value) => _important = value; | 539 set important(bool value) => _important = value; |
540 String importantAsString() => _important ? ' !important' : ''; | 540 String importantAsString() => _important ? ' !important' : ''; |
541 | 541 |
542 visit(TreeVisitor visitor) => visitor.visitDeclaration(this); | 542 visit(TreeVisitor visitor) => visitor.visitDeclaration(this); |
543 | 543 |
544 String toString() => | 544 String toString() => |
545 "${_property.name}: ${_expression.toString()}${importantAsString()}"; | 545 "${_property.name}: ${_expression.toString()}${importantAsString()}"; |
546 } | 546 } |
547 | 547 |
548 class DeclarationGroup extends ASTNode { | 548 class DeclarationGroup extends ASTNode { |
549 List<Declaration> _declarations; | 549 List<Declaration> _declarations; |
550 | 550 |
551 DeclarationGroup(this._declarations, SourceSpan span) : super(span); | 551 DeclarationGroup(this._declarations, SourceSpan span) : super(span); |
552 | 552 |
553 List<Declaration> get declarations() => _declarations; | 553 List<Declaration> get declarations => _declarations; |
554 | 554 |
555 visit(TreeVisitor visitor) => visitor.visitDeclarationGroup(this); | 555 visit(TreeVisitor visitor) => visitor.visitDeclarationGroup(this); |
556 | 556 |
557 String toString() { | 557 String toString() { |
558 StringBuffer buff = new StringBuffer(); | 558 StringBuffer buff = new StringBuffer(); |
559 int idx = 0; | 559 int idx = 0; |
560 for (final declaration in _declarations) { | 560 for (final declaration in _declarations) { |
561 buff.add(" ${declaration.toString()};\n"); | 561 buff.add(" ${declaration.toString()};\n"); |
562 } | 562 } |
563 return buff.toString(); | 563 return buff.toString(); |
(...skipping 15 matching lines...) Expand all Loading... |
579 | 579 |
580 String toString() => ','; | 580 String toString() => ','; |
581 } | 581 } |
582 | 582 |
583 class LiteralTerm extends Expression { | 583 class LiteralTerm extends Expression { |
584 var _value; | 584 var _value; |
585 String _text; | 585 String _text; |
586 | 586 |
587 LiteralTerm(this._value, this._text, SourceSpan span) : super(span); | 587 LiteralTerm(this._value, this._text, SourceSpan span) : super(span); |
588 | 588 |
589 get value() => _value; | 589 get value => _value; |
590 String get text() => _text; | 590 String get text => _text; |
591 | 591 |
592 visit(TreeVisitor visitor) => visitor.visitLiteralTerm(this); | 592 visit(TreeVisitor visitor) => visitor.visitLiteralTerm(this); |
593 | 593 |
594 String toString() => _text; | 594 String toString() => _text; |
595 } | 595 } |
596 | 596 |
597 class NumberTerm extends LiteralTerm { | 597 class NumberTerm extends LiteralTerm { |
598 NumberTerm(var value, String t, SourceSpan span) : super(value, t, span); | 598 NumberTerm(var value, String t, SourceSpan span) : super(value, t, span); |
599 | 599 |
600 visit(TreeVisitor visitor) => visitor.visitNumberTerm(this); | 600 visit(TreeVisitor visitor) => visitor.visitNumberTerm(this); |
601 } | 601 } |
602 | 602 |
603 class UnitTerm extends LiteralTerm { | 603 class UnitTerm extends LiteralTerm { |
604 int _unit; | 604 int _unit; |
605 | 605 |
606 UnitTerm(var value, String t, SourceSpan span, this._unit) : | 606 UnitTerm(var value, String t, SourceSpan span, this._unit) : |
607 super(value, t, span); | 607 super(value, t, span); |
608 | 608 |
609 int get unit() => _unit; | 609 int get unit => _unit; |
610 | 610 |
611 visit(TreeVisitor visitor) => visitor.visitUnitTerm(this); | 611 visit(TreeVisitor visitor) => visitor.visitUnitTerm(this); |
612 | 612 |
613 String toString() => '${text}${unitToString()}'; | 613 String toString() => '${text}${unitToString()}'; |
614 String unitToString() => TokenKind.unitToString(_unit); | 614 String unitToString() => TokenKind.unitToString(_unit); |
615 } | 615 } |
616 | 616 |
617 class LengthTerm extends UnitTerm { | 617 class LengthTerm extends UnitTerm { |
618 LengthTerm(var value, String t, SourceSpan span, | 618 LengthTerm(var value, String t, SourceSpan span, |
619 [int unit = TokenKind.UNIT_LENGTH_PX]) : super(value, t, span, unit) { | 619 [int unit = TokenKind.UNIT_LENGTH_PX]) : super(value, t, span, unit) { |
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
769 | 769 |
770 class Expressions extends Expression { | 770 class Expressions extends Expression { |
771 List<Expression> _expressions; | 771 List<Expression> _expressions; |
772 | 772 |
773 Expressions(SourceSpan span): super(span), _expressions = []; | 773 Expressions(SourceSpan span): super(span), _expressions = []; |
774 | 774 |
775 add(Expression expression) { | 775 add(Expression expression) { |
776 _expressions.add(expression); | 776 _expressions.add(expression); |
777 } | 777 } |
778 | 778 |
779 List<Expression> get expressions() => _expressions; | 779 List<Expression> get expressions => _expressions; |
780 | 780 |
781 visit(TreeVisitor visitor) => visitor.visitExpressions(this); | 781 visit(TreeVisitor visitor) => visitor.visitExpressions(this); |
782 | 782 |
783 String toString() { | 783 String toString() { |
784 StringBuffer buff = new StringBuffer(); | 784 StringBuffer buff = new StringBuffer(); |
785 int idx = 0; | 785 int idx = 0; |
786 for (final expression in _expressions) { | 786 for (final expression in _expressions) { |
787 // Add space seperator between terms without an operator. | 787 // Add space seperator between terms without an operator. |
788 // TODO(terry): Should have a BinaryExpression to solve this problem. | 788 // TODO(terry): Should have a BinaryExpression to solve this problem. |
789 if (idx > 0 && | 789 if (idx > 0 && |
(...skipping 480 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1270 | 1270 |
1271 void visitWildcard(Wildcard node) { | 1271 void visitWildcard(Wildcard node) { |
1272 output.heading('Wildcard(*)', node.span); | 1272 output.heading('Wildcard(*)', node.span); |
1273 } | 1273 } |
1274 | 1274 |
1275 // TODO(terry): Defined for frog/tree.dart. | 1275 // TODO(terry): Defined for frog/tree.dart. |
1276 void visitTypeReference(TypeReference node) { | 1276 void visitTypeReference(TypeReference node) { |
1277 output.heading('Unimplemented'); | 1277 output.heading('Unimplemented'); |
1278 } | 1278 } |
1279 } | 1279 } |
OLD | NEW |