| OLD | NEW |
| 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, 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 // This code was auto-generated, is not intended to be edited, and is subject to | 5 // This code was auto-generated, is not intended to be edited, and is subject to |
| 6 // significant change. Please see the README file for more information. | 6 // significant change. Please see the README file for more information. |
| 7 | 7 |
| 8 library engine.html; | 8 library engine.html; |
| 9 | 9 |
| 10 import 'dart:collection'; | 10 import 'dart:collection'; |
| (...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 137 | 137 |
| 138 @override | 138 @override |
| 139 String toString() => lexeme; | 139 String toString() => lexeme; |
| 140 } | 140 } |
| 141 | 141 |
| 142 /** | 142 /** |
| 143 * Implementation of [XmlExpression] for an [Expression] embedded without any wr
apping | 143 * Implementation of [XmlExpression] for an [Expression] embedded without any wr
apping |
| 144 * characters. | 144 * characters. |
| 145 */ | 145 */ |
| 146 class RawXmlExpression extends XmlExpression { | 146 class RawXmlExpression extends XmlExpression { |
| 147 final Expression expression; | 147 Expression expression; |
| 148 | 148 |
| 149 RawXmlExpression(this.expression); | 149 RawXmlExpression(Expression expression) { |
| 150 this.expression = expression; |
| 151 } |
| 150 | 152 |
| 151 @override | 153 @override |
| 152 int get end => expression.end; | 154 int get end => expression.end; |
| 153 | 155 |
| 154 @override | 156 @override |
| 155 int get length => expression.length; | 157 int get length => expression.length; |
| 156 | 158 |
| 157 @override | 159 @override |
| 158 int get offset => expression.offset; | 160 int get offset => expression.offset; |
| 159 | 161 |
| (...skipping 515 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 675 /** | 677 /** |
| 676 * The abstract class `AbstractScanner` implements a scanner for HTML code. Subc
lasses are | 678 * The abstract class `AbstractScanner` implements a scanner for HTML code. Subc
lasses are |
| 677 * required to implement the interface used to access the characters being scann
ed. | 679 * required to implement the interface used to access the characters being scann
ed. |
| 678 */ | 680 */ |
| 679 abstract class AbstractScanner { | 681 abstract class AbstractScanner { |
| 680 static List<String> _NO_PASS_THROUGH_ELEMENTS = <String> []; | 682 static List<String> _NO_PASS_THROUGH_ELEMENTS = <String> []; |
| 681 | 683 |
| 682 /** | 684 /** |
| 683 * The source being scanned. | 685 * The source being scanned. |
| 684 */ | 686 */ |
| 685 final Source source; | 687 Source source; |
| 686 | 688 |
| 687 /** | 689 /** |
| 688 * The token pointing to the head of the linked list of tokens. | 690 * The token pointing to the head of the linked list of tokens. |
| 689 */ | 691 */ |
| 690 Token _tokens; | 692 Token _tokens; |
| 691 | 693 |
| 692 /** | 694 /** |
| 693 * The last token that was scanned. | 695 * The last token that was scanned. |
| 694 */ | 696 */ |
| 695 Token _tail; | 697 Token _tail; |
| 696 | 698 |
| 697 /** | 699 /** |
| 698 * A list containing the offsets of the first character of each line in the so
urce code. | 700 * A list containing the offsets of the first character of each line in the so
urce code. |
| 699 */ | 701 */ |
| 700 List<int> _lineStarts = new List<int>(); | 702 List<int> _lineStarts = new List<int>(); |
| 701 | 703 |
| 702 /** | 704 /** |
| 703 * An array of element tags for which the content between tags should be consi
der a single token. | 705 * An array of element tags for which the content between tags should be consi
der a single token. |
| 704 */ | 706 */ |
| 705 List<String> _passThroughElements = _NO_PASS_THROUGH_ELEMENTS; | 707 List<String> _passThroughElements = _NO_PASS_THROUGH_ELEMENTS; |
| 706 | 708 |
| 707 /** | 709 /** |
| 708 * Initialize a newly created scanner. | 710 * Initialize a newly created scanner. |
| 709 * | 711 * |
| 710 * @param source the source being scanned | 712 * @param source the source being scanned |
| 711 */ | 713 */ |
| 712 AbstractScanner(this.source) { | 714 AbstractScanner(Source source) { |
| 715 this.source = source; |
| 713 _tokens = new Token.con1(TokenType.EOF, -1); | 716 _tokens = new Token.con1(TokenType.EOF, -1); |
| 714 _tokens.setNext(_tokens); | 717 _tokens.setNext(_tokens); |
| 715 _tail = _tokens; | 718 _tail = _tokens; |
| 716 recordStartOfLine(); | 719 recordStartOfLine(); |
| 717 } | 720 } |
| 718 | 721 |
| 719 /** | 722 /** |
| 720 * Return an array containing the offsets of the first character of each line
in the source code. | 723 * Return an array containing the offsets of the first character of each line
in the source code. |
| 721 * | 724 * |
| 722 * @return an array containing the offsets of the first character of each line
in the source code | 725 * @return an array containing the offsets of the first character of each line
in the source code |
| (...skipping 453 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1176 DECLARATION, | 1179 DECLARATION, |
| 1177 DIRECTIVE, | 1180 DIRECTIVE, |
| 1178 STRING, | 1181 STRING, |
| 1179 TAG, | 1182 TAG, |
| 1180 TEXT]; | 1183 TEXT]; |
| 1181 | 1184 |
| 1182 /** | 1185 /** |
| 1183 * The lexeme that defines this type of token, or `null` if there is more than
one possible | 1186 * The lexeme that defines this type of token, or `null` if there is more than
one possible |
| 1184 * lexeme for this type of token. | 1187 * lexeme for this type of token. |
| 1185 */ | 1188 */ |
| 1186 final String lexeme; | 1189 String lexeme; |
| 1187 | 1190 |
| 1188 TokenType(String name, int ordinal, this.lexeme) : super(name, ordinal); | 1191 TokenType(String name, int ordinal, String lexeme) : super(name, ordinal) { |
| 1192 this.lexeme = lexeme; |
| 1193 } |
| 1189 } | 1194 } |
| 1190 | 1195 |
| 1191 class TokenType_EOF extends TokenType { | 1196 class TokenType_EOF extends TokenType { |
| 1192 TokenType_EOF(String name, int ordinal, String arg0) : super(name, ordinal, ar
g0); | 1197 TokenType_EOF(String name, int ordinal, String arg0) : super(name, ordinal, ar
g0); |
| 1193 | 1198 |
| 1194 @override | 1199 @override |
| 1195 String toString() => "-eof-"; | 1200 String toString() => "-eof-"; |
| 1196 } | 1201 } |
| 1197 | 1202 |
| 1198 /** | 1203 /** |
| 1199 * Instances of `XmlAttributeNode` represent name/value pairs owned by an [XmlTa
gNode]. | 1204 * Instances of `XmlAttributeNode` represent name/value pairs owned by an [XmlTa
gNode]. |
| 1200 */ | 1205 */ |
| 1201 class XmlAttributeNode extends XmlNode { | 1206 class XmlAttributeNode extends XmlNode { |
| 1202 Token _name; | 1207 Token _name; |
| 1203 | 1208 |
| 1204 final Token equals; | 1209 Token equals; |
| 1205 | 1210 |
| 1206 Token _value; | 1211 Token _value; |
| 1207 | 1212 |
| 1208 List<XmlExpression> expressions = XmlExpression.EMPTY_ARRAY; | 1213 List<XmlExpression> expressions = XmlExpression.EMPTY_ARRAY; |
| 1209 | 1214 |
| 1210 /** | 1215 /** |
| 1211 * Construct a new instance representing an XML attribute. | 1216 * Construct a new instance representing an XML attribute. |
| 1212 * | 1217 * |
| 1213 * @param name the name token (not `null`). This may be a zero length token if
the attribute | 1218 * @param name the name token (not `null`). This may be a zero length token if
the attribute |
| 1214 * is badly formed. | 1219 * is badly formed. |
| 1215 * @param equals the equals sign or `null` if none | 1220 * @param equals the equals sign or `null` if none |
| 1216 * @param value the value token (not `null`) | 1221 * @param value the value token (not `null`) |
| 1217 */ | 1222 */ |
| 1218 XmlAttributeNode(Token name, this.equals, Token value) { | 1223 XmlAttributeNode(Token name, Token equals, Token value) { |
| 1219 this._name = name; | 1224 this._name = name; |
| 1225 this.equals = equals; |
| 1220 this._value = value; | 1226 this._value = value; |
| 1221 } | 1227 } |
| 1222 | 1228 |
| 1223 @override | 1229 @override |
| 1224 accept(XmlVisitor visitor) => visitor.visitXmlAttributeNode(this); | 1230 accept(XmlVisitor visitor) => visitor.visitXmlAttributeNode(this); |
| 1225 | 1231 |
| 1226 @override | 1232 @override |
| 1227 Token get beginToken => _name; | 1233 Token get beginToken => _name; |
| 1228 | 1234 |
| 1229 @override | 1235 @override |
| (...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1361 } | 1367 } |
| 1362 | 1368 |
| 1363 /** | 1369 /** |
| 1364 * Instances of the class `XmlParser` are used to parse tokens into a AST struct
ure comprised | 1370 * Instances of the class `XmlParser` are used to parse tokens into a AST struct
ure comprised |
| 1365 * of [XmlNode]s. | 1371 * of [XmlNode]s. |
| 1366 */ | 1372 */ |
| 1367 class XmlParser { | 1373 class XmlParser { |
| 1368 /** | 1374 /** |
| 1369 * The source being parsed. | 1375 * The source being parsed. |
| 1370 */ | 1376 */ |
| 1371 final Source source; | 1377 Source source; |
| 1372 | 1378 |
| 1373 /** | 1379 /** |
| 1374 * The next token to be parsed. | 1380 * The next token to be parsed. |
| 1375 */ | 1381 */ |
| 1376 Token _currentToken; | 1382 Token _currentToken; |
| 1377 | 1383 |
| 1378 /** | 1384 /** |
| 1379 * Construct a parser for the specified source. | 1385 * Construct a parser for the specified source. |
| 1380 * | 1386 * |
| 1381 * @param source the source being parsed | 1387 * @param source the source being parsed |
| 1382 */ | 1388 */ |
| 1383 XmlParser(this.source); | 1389 XmlParser(Source source) { |
| 1390 this.source = source; |
| 1391 } |
| 1384 | 1392 |
| 1385 /** | 1393 /** |
| 1386 * Create a node representing an attribute. | 1394 * Create a node representing an attribute. |
| 1387 * | 1395 * |
| 1388 * @param name the name of the attribute | 1396 * @param name the name of the attribute |
| 1389 * @param equals the equals sign, or `null` if there is no value | 1397 * @param equals the equals sign, or `null` if there is no value |
| 1390 * @param value the value of the attribute | 1398 * @param value the value of the attribute |
| 1391 * @return the node that was created | 1399 * @return the node that was created |
| 1392 */ | 1400 */ |
| 1393 XmlAttributeNode createAttributeNode(Token name, Token equals, Token value) =>
new XmlAttributeNode(name, equals, value); | 1401 XmlAttributeNode createAttributeNode(Token name, Token equals, Token value) =>
new XmlAttributeNode(name, equals, value); |
| (...skipping 235 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1629 static List<XmlAttributeNode> NO_ATTRIBUTES = new UnmodifiableListView(new Lis
t<XmlAttributeNode>()); | 1637 static List<XmlAttributeNode> NO_ATTRIBUTES = new UnmodifiableListView(new Lis
t<XmlAttributeNode>()); |
| 1630 | 1638 |
| 1631 /** | 1639 /** |
| 1632 * Constant representing empty list of tag nodes. | 1640 * Constant representing empty list of tag nodes. |
| 1633 */ | 1641 */ |
| 1634 static List<XmlTagNode> NO_TAG_NODES = new UnmodifiableListView(new List<XmlTa
gNode>()); | 1642 static List<XmlTagNode> NO_TAG_NODES = new UnmodifiableListView(new List<XmlTa
gNode>()); |
| 1635 | 1643 |
| 1636 /** | 1644 /** |
| 1637 * The starting [TokenType#LT] token (not `null`). | 1645 * The starting [TokenType#LT] token (not `null`). |
| 1638 */ | 1646 */ |
| 1639 final Token nodeStart; | 1647 Token nodeStart; |
| 1640 | 1648 |
| 1641 /** | 1649 /** |
| 1642 * The [TokenType#TAG] token after the starting '<' (not `null`). | 1650 * The [TokenType#TAG] token after the starting '<' (not `null`). |
| 1643 */ | 1651 */ |
| 1644 Token _tag; | 1652 Token _tag; |
| 1645 | 1653 |
| 1646 /** | 1654 /** |
| 1647 * The attributes contained by the receiver (not `null`, contains no `null`s). | 1655 * The attributes contained by the receiver (not `null`, contains no `null`s). |
| 1648 */ | 1656 */ |
| 1649 List<XmlAttributeNode> _attributes; | 1657 List<XmlAttributeNode> _attributes; |
| 1650 | 1658 |
| 1651 /** | 1659 /** |
| 1652 * The [TokenType#GT] or [TokenType#SLASH_GT] token after the attributes (not | 1660 * The [TokenType#GT] or [TokenType#SLASH_GT] token after the attributes (not |
| 1653 * `null`). The token may be the same token as [nodeEnd] if there are no child | 1661 * `null`). The token may be the same token as [nodeEnd] if there are no child |
| 1654 * [tagNodes]. | 1662 * [tagNodes]. |
| 1655 */ | 1663 */ |
| 1656 final Token attributeEnd; | 1664 Token attributeEnd; |
| 1657 | 1665 |
| 1658 /** | 1666 /** |
| 1659 * The tag nodes contained in the receiver (not `null`, contains no `null`s). | 1667 * The tag nodes contained in the receiver (not `null`, contains no `null`s). |
| 1660 */ | 1668 */ |
| 1661 List<XmlTagNode> _tagNodes; | 1669 List<XmlTagNode> _tagNodes; |
| 1662 | 1670 |
| 1663 /** | 1671 /** |
| 1664 * The token (not `null`) after the content, which may be | 1672 * The token (not `null`) after the content, which may be |
| 1665 * * (1) [TokenType#LT_SLASH] for nodes with open and close tags, or | 1673 * * (1) [TokenType#LT_SLASH] for nodes with open and close tags, or |
| 1666 * * (2) the [TokenType#LT] nodeStart of the next sibling node if this node is
self | 1674 * * (2) the [TokenType#LT] nodeStart of the next sibling node if this node is
self |
| 1667 * closing or the attributeEnd is [TokenType#SLASH_GT], or | 1675 * closing or the attributeEnd is [TokenType#SLASH_GT], or |
| 1668 * * (3) [TokenType#EOF] if the node does not have a closing tag and is the la
st node in | 1676 * * (3) [TokenType#EOF] if the node does not have a closing tag and is the la
st node in |
| 1669 * the stream [TokenType#LT_SLASH] token after the content, or `null` if there
is no | 1677 * the stream [TokenType#LT_SLASH] token after the content, or `null` if there
is no |
| 1670 * content and the attributes ended with [TokenType#SLASH_GT]. | 1678 * content and the attributes ended with [TokenType#SLASH_GT]. |
| 1671 */ | 1679 */ |
| 1672 final Token contentEnd; | 1680 Token contentEnd; |
| 1673 | 1681 |
| 1674 /** | 1682 /** |
| 1675 * The closing [TokenType#TAG] after the child elements or `null` if there is
no | 1683 * The closing [TokenType#TAG] after the child elements or `null` if there is
no |
| 1676 * content and the attributes ended with [TokenType#SLASH_GT] | 1684 * content and the attributes ended with [TokenType#SLASH_GT] |
| 1677 */ | 1685 */ |
| 1678 final Token closingTag; | 1686 Token closingTag; |
| 1679 | 1687 |
| 1680 /** | 1688 /** |
| 1681 * The ending [TokenType#GT] or [TokenType#SLASH_GT] token (not `null`). | 1689 * The ending [TokenType#GT] or [TokenType#SLASH_GT] token (not `null`). |
| 1682 */ | 1690 */ |
| 1683 final Token nodeEnd; | 1691 Token nodeEnd; |
| 1684 | 1692 |
| 1685 /** | 1693 /** |
| 1686 * The expressions that are embedded in the tag's content. | 1694 * The expressions that are embedded in the tag's content. |
| 1687 */ | 1695 */ |
| 1688 List<XmlExpression> expressions = XmlExpression.EMPTY_ARRAY; | 1696 List<XmlExpression> expressions = XmlExpression.EMPTY_ARRAY; |
| 1689 | 1697 |
| 1690 /** | 1698 /** |
| 1691 * Construct a new instance representing an XML or HTML element | 1699 * Construct a new instance representing an XML or HTML element |
| 1692 * | 1700 * |
| 1693 * @param nodeStart the starting [TokenType#LT] token (not `null`) | 1701 * @param nodeStart the starting [TokenType#LT] token (not `null`) |
| (...skipping 10 matching lines...) Expand all Loading... |
| 1704 * * (2) the [TokenType#LT] nodeStart of the next sibling node if thi
s node is | 1712 * * (2) the [TokenType#LT] nodeStart of the next sibling node if thi
s node is |
| 1705 * self closing or the attributeEnd is [TokenType#SLASH_GT], or | 1713 * self closing or the attributeEnd is [TokenType#SLASH_GT], or |
| 1706 * * (3) [TokenType#EOF] if the node does not have a closing tag and
is the last | 1714 * * (3) [TokenType#EOF] if the node does not have a closing tag and
is the last |
| 1707 * node in the stream [TokenType#LT_SLASH] token after the content, o
r `null` | 1715 * node in the stream [TokenType#LT_SLASH] token after the content, o
r `null` |
| 1708 * if there is no content and the attributes ended with [TokenType#SL
ASH_GT]. | 1716 * if there is no content and the attributes ended with [TokenType#SL
ASH_GT]. |
| 1709 * @param closingTag the closing [TokenType#TAG] after the child elements or `
null` if | 1717 * @param closingTag the closing [TokenType#TAG] after the child elements or `
null` if |
| 1710 * there is no content and the attributes ended with [TokenType#SLASH
_GT] | 1718 * there is no content and the attributes ended with [TokenType#SLASH
_GT] |
| 1711 * @param nodeEnd the ending [TokenType#GT] or [TokenType#SLASH_GT] token (not | 1719 * @param nodeEnd the ending [TokenType#GT] or [TokenType#SLASH_GT] token (not |
| 1712 * `null`) | 1720 * `null`) |
| 1713 */ | 1721 */ |
| 1714 XmlTagNode(this.nodeStart, Token tag, List<XmlAttributeNode> attributes, this.
attributeEnd, List<XmlTagNode> tagNodes, this.contentEnd, this.closingTag, this.
nodeEnd) { | 1722 XmlTagNode(Token nodeStart, Token tag, List<XmlAttributeNode> attributes, Toke
n attributeEnd, List<XmlTagNode> tagNodes, Token contentEnd, Token closingTag, T
oken nodeEnd) { |
| 1723 this.nodeStart = nodeStart; |
| 1715 this._tag = tag; | 1724 this._tag = tag; |
| 1716 this._attributes = becomeParentOfAll(attributes, ifEmpty: NO_ATTRIBUTES); | 1725 this._attributes = becomeParentOfAll(attributes, ifEmpty: NO_ATTRIBUTES); |
| 1726 this.attributeEnd = attributeEnd; |
| 1717 this._tagNodes = becomeParentOfAll(tagNodes, ifEmpty: NO_TAG_NODES); | 1727 this._tagNodes = becomeParentOfAll(tagNodes, ifEmpty: NO_TAG_NODES); |
| 1728 this.contentEnd = contentEnd; |
| 1729 this.closingTag = closingTag; |
| 1730 this.nodeEnd = nodeEnd; |
| 1718 } | 1731 } |
| 1719 | 1732 |
| 1720 @override | 1733 @override |
| 1721 accept(XmlVisitor visitor) => visitor.visitXmlTagNode(this); | 1734 accept(XmlVisitor visitor) => visitor.visitXmlTagNode(this); |
| 1722 | 1735 |
| 1723 /** | 1736 /** |
| 1724 * Answer the attribute with the specified name. | 1737 * Answer the attribute with the specified name. |
| 1725 * | 1738 * |
| 1726 * @param name the attribute name | 1739 * @param name the attribute name |
| 1727 * @return the attribute or `null` if no matching attribute is found | 1740 * @return the attribute or `null` if no matching attribute is found |
| (...skipping 243 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1971 } | 1984 } |
| 1972 } | 1985 } |
| 1973 | 1986 |
| 1974 /** | 1987 /** |
| 1975 * Instances of the class `HtmlUnit` represent the contents of an HTML file. | 1988 * Instances of the class `HtmlUnit` represent the contents of an HTML file. |
| 1976 */ | 1989 */ |
| 1977 class HtmlUnit extends XmlNode { | 1990 class HtmlUnit extends XmlNode { |
| 1978 /** | 1991 /** |
| 1979 * The first token in the token stream that was parsed to form this HTML unit. | 1992 * The first token in the token stream that was parsed to form this HTML unit. |
| 1980 */ | 1993 */ |
| 1981 final Token beginToken; | 1994 Token beginToken; |
| 1982 | 1995 |
| 1983 /** | 1996 /** |
| 1984 * The last token in the token stream that was parsed to form this compilation
unit. This token | 1997 * The last token in the token stream that was parsed to form this compilation
unit. This token |
| 1985 * should always have a type of [TokenType.EOF]. | 1998 * should always have a type of [TokenType.EOF]. |
| 1986 */ | 1999 */ |
| 1987 final Token endToken; | 2000 Token endToken; |
| 1988 | 2001 |
| 1989 /** | 2002 /** |
| 1990 * The tag nodes contained in the receiver (not `null`, contains no `null`s). | 2003 * The tag nodes contained in the receiver (not `null`, contains no `null`s). |
| 1991 */ | 2004 */ |
| 1992 List<XmlTagNode> _tagNodes; | 2005 List<XmlTagNode> _tagNodes; |
| 1993 | 2006 |
| 1994 /** | 2007 /** |
| 1995 * Construct a new instance representing the content of an HTML file. | 2008 * Construct a new instance representing the content of an HTML file. |
| 1996 * | 2009 * |
| 1997 * @param beginToken the first token in the file (not `null`) | 2010 * @param beginToken the first token in the file (not `null`) |
| 1998 * @param tagNodes child tag nodes of the receiver (not `null`, contains no `n
ull`s) | 2011 * @param tagNodes child tag nodes of the receiver (not `null`, contains no `n
ull`s) |
| 1999 * @param endToken the last token in the token stream which should be of type | 2012 * @param endToken the last token in the token stream which should be of type |
| 2000 * [TokenType.EOF] | 2013 * [TokenType.EOF] |
| 2001 */ | 2014 */ |
| 2002 HtmlUnit(this.beginToken, List<XmlTagNode> tagNodes, this.endToken) { | 2015 HtmlUnit(Token beginToken, List<XmlTagNode> tagNodes, Token endToken) { |
| 2016 this.beginToken = beginToken; |
| 2003 this._tagNodes = becomeParentOfAll(tagNodes); | 2017 this._tagNodes = becomeParentOfAll(tagNodes); |
| 2018 this.endToken = endToken; |
| 2004 } | 2019 } |
| 2005 | 2020 |
| 2006 @override | 2021 @override |
| 2007 accept(XmlVisitor visitor) => visitor.visitHtmlUnit(this); | 2022 accept(XmlVisitor visitor) => visitor.visitHtmlUnit(this); |
| 2008 | 2023 |
| 2009 /** | 2024 /** |
| 2010 * Return the element associated with this HTML unit. | 2025 * Return the element associated with this HTML unit. |
| 2011 * | 2026 * |
| 2012 * @return the element or `null` if the receiver is not resolved | 2027 * @return the element or `null` if the receiver is not resolved |
| 2013 */ | 2028 */ |
| (...skipping 16 matching lines...) Expand all Loading... |
| 2030 super.element = element; | 2045 super.element = element; |
| 2031 } | 2046 } |
| 2032 | 2047 |
| 2033 @override | 2048 @override |
| 2034 void visitChildren(XmlVisitor visitor) { | 2049 void visitChildren(XmlVisitor visitor) { |
| 2035 for (XmlTagNode node in _tagNodes) { | 2050 for (XmlTagNode node in _tagNodes) { |
| 2036 node.accept(visitor); | 2051 node.accept(visitor); |
| 2037 } | 2052 } |
| 2038 } | 2053 } |
| 2039 } | 2054 } |
| OLD | NEW |