boolean (PsiBuilder builder) { IElementType type = builder.getTokenType(); if (!REFERENCE_BEGIN.contains(type)) return false; PsiBuilder.Marker marker = builder.mark(); if (GroovyDocTokenTypes.mGDOC_TAG_VALUE_TOKEN == type) { builder.advanceLexer(); } if (GroovyDocTokenTypes.mGDOC_TAG_VALUE_SHARP_TOKEN == builder.getTokenType()) { builder.advanceLexer(); RESULT result = parseFieldOrMethod(builder); if (result == RESULT.ERROR) { marker.drop(); } else if (result == RESULT.METHOD) { marker.done(GroovyDocElementTypes.GDOC_METHOD_REF); } else { marker.done(GroovyDocElementTypes.GDOC_FIELD_REF); } return true; } marker.drop(); return true; }