| Index: editor/tools/plugins/com.google.dart.engine/src/com/google/dart/engine/html/parser/XmlParser.java
|
| diff --git a/editor/tools/plugins/com.google.dart.engine/src/com/google/dart/engine/html/parser/XmlParser.java b/editor/tools/plugins/com.google.dart.engine/src/com/google/dart/engine/html/parser/XmlParser.java
|
| index fe69ecca38c746dd66030ac797f1c2f1462c4eed..a23040df41d556b438f990acdb51b9ceab30ecce 100644
|
| --- a/editor/tools/plugins/com.google.dart.engine/src/com/google/dart/engine/html/parser/XmlParser.java
|
| +++ b/editor/tools/plugins/com.google.dart.engine/src/com/google/dart/engine/html/parser/XmlParser.java
|
| @@ -68,6 +68,45 @@ public class XmlParser {
|
| }
|
|
|
| /**
|
| + * Create a node representing an attribute.
|
| + *
|
| + * @param name the name of the attribute
|
| + * @param equals the equals sign, or {@code null} if there is no value
|
| + * @param value the value of the attribute
|
| + * @return the node that was created
|
| + */
|
| + protected XmlAttributeNode createAttributeNode(Token name, Token equals, Token value) {
|
| + return new XmlAttributeNode(name, equals, value);
|
| + }
|
| +
|
| + /**
|
| + * Create a node representing a tag.
|
| + *
|
| + * @param nodeStart the token marking the beginning of the tag
|
| + * @param tag the name of the tag
|
| + * @param attributes the attributes in the tag
|
| + * @param attributeEnd the token terminating the region where attributes can be
|
| + * @param tagNodes the children of the tag
|
| + * @param contentEnd the token that starts the closing tag
|
| + * @param closingTag the name of the tag that occurs in the closing tag
|
| + * @param nodeEnd the last token in the tag
|
| + * @return the node that was created
|
| + */
|
| + protected XmlTagNode createTagNode(Token nodeStart, Token tag, List<XmlAttributeNode> attributes,
|
| + Token attributeEnd, List<XmlTagNode> tagNodes, Token contentEnd, Token closingTag,
|
| + Token nodeEnd) {
|
| + return new XmlTagNode(
|
| + nodeStart,
|
| + tag,
|
| + attributes,
|
| + attributeEnd,
|
| + tagNodes,
|
| + contentEnd,
|
| + closingTag,
|
| + nodeEnd);
|
| + }
|
| +
|
| + /**
|
| * Answer {@code true} if the specified tag is self closing and thus should never have content or
|
| * child tag nodes.
|
| *
|
| @@ -166,7 +205,7 @@ public class XmlParser {
|
| value = insertSyntheticToken(STRING);
|
| }
|
|
|
| - return new XmlAttributeNode(name, equals, value);
|
| + return createAttributeNode(name, equals, value);
|
| }
|
|
|
| /**
|
| @@ -274,7 +313,7 @@ public class XmlParser {
|
|
|
| // If the node has no children, then return the node
|
| if (attributeEnd.getType() == SLASH_GT || isSelfClosing(tag)) {
|
| - return new XmlTagNode(
|
| + return createTagNode(
|
| nodeStart,
|
| tag,
|
| attributes,
|
| @@ -320,7 +359,7 @@ public class XmlParser {
|
| nodeEnd = insertSyntheticToken(GT);
|
| }
|
|
|
| - return new XmlTagNode(
|
| + return createTagNode(
|
| nodeStart,
|
| tag,
|
| attributes,
|
|
|