で文字列のリストが続く文字列のリストの解析:私はブーストスピリット×3を使用して、構造体の中に文字列を解析しようとしている精神×3
struct identifier {
std::vector<std::string> namespaces;
std::vector<std::string> classes;
std::string identifier;
};
は今私のような文字列に一致するようにパーサー規則を持っていますこれは:
foo::bar::baz.bla.blub
foo.bar
boo::bar
foo
私のパーサーのルールはこのようになります。
auto const nested_identifier_def =
x3::lexeme[
-(id_string % "::")
>> -(id_string % ".")
>> id_string
];
ここで、id_string
は、alphanum
の組み合わせを解析します。 このルールは、私がそれを必要とするように解析しないことを知っています。例えば、foo.bar
の解析中に、この部分のルール-(id_string % ".")
が文字列全体を消費するためです。 構造体で正しく解析するためにルールを変更するにはどうすればよいですか?あなたのid_string
を想定し