boolean () { PsiBuilder.Marker marker = myBuilder.mark(); if (!parseQuantifiedPattern()) { marker.drop(); return false; } while (BINARY_OPS.contains(currentToken())) { IElementType t; if (BINARY_OPS.contains(t = currentToken())) { do { advance(); if (!parseQuantifiedPattern()) { error(RelaxngBundle.message("relaxng.parse.error.pattern-expected")); } } while (currentToken() == t); marker.done(TOKEN_MAP.get(t)); marker = marker.precede(); } } marker.drop(); return true; }