OLD | NEW |
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, 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 | 4 |
5 /// Base class for any AST item. Roughly corresponds to Node in the DOM. Will | 5 /// Base class for any AST item. Roughly corresponds to Node in the DOM. Will |
6 /// be either an Element or Text. | 6 /// be either an Element or Text. |
7 interface Node { | 7 interface Node { |
8 void accept(NodeVisitor visitor); | 8 void accept(NodeVisitor visitor); |
9 } | 9 } |
10 | 10 |
(...skipping 11 matching lines...) Expand all Loading... |
22 attributes = <String, String>{}; | 22 attributes = <String, String>{}; |
23 | 23 |
24 Element.withTag(this.tag) | 24 Element.withTag(this.tag) |
25 : children = [], | 25 : children = [], |
26 attributes = <String, String>{}; | 26 attributes = <String, String>{}; |
27 | 27 |
28 Element.text(this.tag, String text) | 28 Element.text(this.tag, String text) |
29 : children = [new Text(text)], | 29 : children = [new Text(text)], |
30 attributes = <String, String>{}; | 30 attributes = <String, String>{}; |
31 | 31 |
32 bool get isEmpty() => children == null; | 32 bool get isEmpty => children == null; |
33 | 33 |
34 void accept(NodeVisitor visitor) { | 34 void accept(NodeVisitor visitor) { |
35 if (visitor.visitElementBefore(this)) { | 35 if (visitor.visitElementBefore(this)) { |
36 for (final child in children) child.accept(visitor); | 36 for (final child in children) child.accept(visitor); |
37 visitor.visitElementAfter(this); | 37 visitor.visitElementAfter(this); |
38 } | 38 } |
39 } | 39 } |
40 } | 40 } |
41 | 41 |
42 /// A plain text element. | 42 /// A plain text element. |
(...skipping 11 matching lines...) Expand all Loading... |
54 void visitText(Text text); | 54 void visitText(Text text); |
55 | 55 |
56 /// Called when an Element has been reached, before its children have been | 56 /// Called when an Element has been reached, before its children have been |
57 /// visited. Return `false` to skip its children. | 57 /// visited. Return `false` to skip its children. |
58 bool visitElementBefore(Element element); | 58 bool visitElementBefore(Element element); |
59 | 59 |
60 /// Called when an Element has been reached, after its children have been | 60 /// Called when an Element has been reached, after its children have been |
61 /// visited. Will not be called if [visitElementBefore] returns `false`. | 61 /// visited. Will not be called if [visitElementBefore] returns `false`. |
62 void visitElementAfter(Element element); | 62 void visitElementAfter(Element element); |
63 } | 63 } |
OLD | NEW |