RESULT (PsiBuilder builder) { if (builder.getTokenType() != GroovyDocTokenTypes.mGDOC_TAG_VALUE_TOKEN) return RESULT.ERROR; builder.advanceLexer(); PsiBuilder.Marker params = builder.mark(); if (GroovyDocTokenTypes.mGDOC_TAG_VALUE_LPAREN != builder.getTokenType()) { params.drop(); return RESULT.FIELD; } builder.advanceLexer(); while (parseMethodParameter(builder) && !timeToEnd(builder)) { while (GroovyDocTokenTypes.mGDOC_TAG_VALUE_COMMA != builder.getTokenType() && GroovyDocTokenTypes.mGDOC_TAG_VALUE_RPAREN != builder.getTokenType() && !timeToEnd(builder)) { builder.advanceLexer(); } while (GroovyDocTokenTypes.mGDOC_TAG_VALUE_COMMA == builder.getTokenType()) { builder.advanceLexer(); } } if (builder.getTokenType() == GroovyDocTokenTypes.mGDOC_TAG_VALUE_RPAREN) { builder.advanceLexer(); } params.done(GroovyDocElementTypes.GDOC_METHOD_PARAMS); return RESULT.METHOD; }