protected boolean parseFunction(PsiBuilder builder) {
    IElementType tokenType = builder.getTokenType();
    if (tokenType == XPathTokenTypes.FUNCTION_NAME || tokenType == XPathTokenTypes.EXT_PREFIX) {
      final PsiBuilder.Marker func = builder.mark();
      builder.advanceLexer();
      if (builder.getTokenType() == XPathTokenTypes.COL) {
        builder.advanceLexer();
        checkMatches(builder, XPathTokenTypes.FUNCTION_NAME, XPathBundle.message("parsing.error.function.name.expected"));
      }
      parseArgumentList(builder);

      func.done(XPathElementTypes.FUNCTION_CALL);
      return true;
    }
    return false;
  }
protected boolean parseFunction(PsiBuilder builder)