void () { int lastPosition = -1; while (true) { if (myBuilder.getTokenType() == XML_ENTITY_REF_TOKEN) { parseEntityRef(); continue; } if (myBuilder.getTokenType() != XML_NAME) { return; } if (lastPosition != -1) { if (lastPosition == myBuilder.getCurrentOffset()) { myBuilder.error(XmlPsiBundle.message("dtd.parser.message.whitespace.expected")); lastPosition = -1; } } addToken(); if (myBuilder.getTokenType() != XML_EQ) { myBuilder.error(XmlPsiBundle.message("xml.parsing.expected.attribute.eq.sign")); continue; } addToken(); if (myBuilder.getTokenType() != XML_ATTRIBUTE_VALUE_START_DELIMITER) { return; } addToken(); if (myBuilder.getTokenType() == XML_ATTRIBUTE_VALUE_TOKEN) { addToken(); if (myBuilder.getTokenType() == XML_ATTRIBUTE_VALUE_END_DELIMITER) { lastPosition = myBuilder.getCurrentOffset(); addToken(); } else { lastPosition = -1; } } else if (myBuilder.getTokenType() == XML_ATTRIBUTE_VALUE_END_DELIMITER) { lastPosition = myBuilder.getCurrentOffset(); addToken(); } else { lastPosition = -1; } } }