boolean (PsiBuilder builder) { PsiBuilder.Marker marker = builder.mark(); if (!parseFieldName(builder)) { marker.drop(); return false; } if (advanceIfMatches(builder, JqlTokenTypes.IS_KEYWORD)) { advanceIfMatches(builder, JqlTokenTypes.NOT_KEYWORD); parseOperand(builder); } else if (advanceIfMatches(builder, JqlTokenTypes.SIMPLE_OPERATORS) || advanceIfMatches(builder, JqlTokenTypes.IN_KEYWORD)) { parseOperand(builder); } else if (advanceIfMatches(builder, JqlTokenTypes.NOT_KEYWORD)) { if (!advanceIfMatches(builder, JqlTokenTypes.IN_KEYWORD)) { builder.error(TaskBundle.message("parsing.error.expecting.in")); } parseOperand(builder); } else if (builder.getTokenType() == JqlTokenTypes.WAS_KEYWORD) { parseWASClause(builder); marker.done(JqlElementTypes.WAS_CLAUSE); return true; } else if (builder.getTokenType() == JqlTokenTypes.CHANGED_KEYWORD) { parseCHANGEDClause(builder); marker.done(JqlElementTypes.CHANGED_CLAUSE); return true; } else { builder.error(TaskBundle.message("parsing.error.expecting.operator")); } marker.done(JqlElementTypes.SIMPLE_CLAUSE); return true; }