| 32 | }; |
| 33 | |
| 34 | static TVector<TString> ParseEnumValues(const TString& strValues) { |
| 35 | TVector<TString> result; |
| 36 | |
| 37 | TValuesContext ctx; |
| 38 | TCppSaxParser parser(&ctx); |
| 39 | TMemoryInput in(strValues.data(), strValues.size()); |
| 40 | TransferData(static_cast<IInputStream*>(&in), &parser); |
| 41 | parser.Finish(); |
| 42 | for (const auto& value : ctx.Values) { |
| 43 | Y_ENSURE(value.size() >= 2, "Invalid C-style string. "); |
| 44 | TString dequoted = value.substr(1, value.size() - 2); |
| 45 | // TODO: support C-unescaping |
| 46 | result.push_back(dequoted); |
| 47 | } |
| 48 | return result; |
| 49 | } |
| 50 | |
| 51 | /** |
| 52 | * Parse C++ fragment with one enum |
no test coverage detected