Я пытаюсь разобрать объект, где порядок атрибутов не имеет значения.Операторы списка ключевых слов в Boost
Например, синтаксический анализ сотруднику
работника {фамилия = "Doe", ПгвЬЫат = "Джон", возраст = 30}
должен быть таким же, как
сотрудник {age = 30, firstname = "john", фамилия = "doe"}
Так в идеале мое правило должно быть что-то вроде (не против отсутствия формального определения)
unordered_rule %= lit("employee") >> "{"
>> kwd("surname")["=" > quoted_string]
/kwd("age")["=" > int_]
/kwd("firstname")["=" > quoted_string]
/kwd("age")["=" > int] >> "}";
Но, во-первых, как я включаю разделительные запятые в правило синтаксического анализа? И для моей структуры C++ struct employee { std::string firstname; ... int age; }
, имеет ли порядок атрибутов или как повысить значение, какое ключевое слово соответствует тому атрибуту, даже после того, как структура была преобразована в вектор слияния?
Это действительно не подходит для меня даже после прочтения документации по операторам списка ключевых слов.
Так можно ли использовать синтаксический анализ неупорядоченного текста, например моего примера, в последовательность слияния? Или я должен сделать это по-другому? – mercurial
Huh. Я не думаю, что упоминал о каких-либо ограничениях. Я просто ответил на ваш вопрос и показал способ разбора разграничения. – sehe