protected boolean parseDottedNameAsAware(boolean optional) {
    if (myBuilder.getTokenType() != PyTokenTypes.IDENTIFIER) {
      if (optional) return true;
      myBuilder.error(PyParsingBundle.message("PARSE.expected.identifier"));
      return false;
    }
    SyntaxTreeBuilder.Marker marker = myBuilder.mark();
    myBuilder.advanceLexer();
    marker.done(getReferenceType());
    while (myBuilder.getTokenType() == PyTokenTypes.DOT) {
      marker = marker.precede();
      myBuilder.advanceLexer();
      checkMatches(PyTokenTypes.IDENTIFIER, PyParsingBundle.message("PARSE.expected.identifier"));
      marker.done(getReferenceType());
    }
    return true;
  }
protected boolean parseDottedNameAsAware(boolean optional)