private @Nullable String parseAttributeName() {
    StringBuilder name = new StringBuilder();
    ZenCodingToken token = getToken();
    while (token != null) {
      if ((token instanceof IdentifierToken)) {
        name.append(((IdentifierToken)token).getText());
      }
      else if (token instanceof OperationToken &&
               (((OperationToken)token).getSign() == '+' || ((OperationToken)token).getSign() == '-')) {
        name.append(((OperationToken)token).getSign());
      }
      else {
        break;
      }
      advance();
      token = getToken();
    }

    if (name.length() == 0) {
      return null;
    }

    final XmlTag tag = XmlElementFactory.getInstance(myCallback.getProject()).createTagFromText("<tag " + name + "=''/>", HTMLLanguage.INSTANCE);
    XmlAttribute[] attributes = tag.getAttributes();
    if (attributes.length == 1) {
      return attributes[0].getName();
    }
    else {
      return null;
    }
  }
private @Nullable String parseAttributeName()