boolean (PsiBuilder builder) { PsiBuilder.Marker expr = builder.mark(); if (!parsePrimaryExpr(builder)) { expr.drop(); return false; } while (XPathTokenTypes.LBRACKET == builder.getTokenType()) { parsePredicate(builder); expr.done(XPathElementTypes.FILTER_EXPRESSION); expr = expr.precede(); } expr.drop(); return true; }