boolean (PsiBuilder b, int l) { if (!recursion_guard_(b, l, "string_literal")) return false; if (!nextTokenIs(b, "<string literal>", DOUBLE_QUOTED_STRING, SINGLE_QUOTED_STRING)) return false; boolean r; Marker m = enter_section_(b, l, _NONE_, STRING_LITERAL, "<string literal>"); r = consumeToken(b, SINGLE_QUOTED_STRING); if (!r) r = consumeToken(b, DOUBLE_QUOTED_STRING); exit_section_(b, l, m, r, false, null); return r; }