1
我想語法如下解析輸入如boost :: spirit :: qi爲什麼遞歸解析器不按預期工作?
a_end
a_b_end
a_b_c_end
但它只解析a_end
上卻失敗多於一個_
什麼。下面是語法:
template < typename Iterator >
struct recursive_parser : qi::grammar<Iterator>
{
qi::rule<Iterator> start;
qi::rule<Iterator> end;
recursive_parser() : recursive_parser::base_type(start)
{
using namespace qi;
end = string("_end") | start;
start = +(char_ - '_') >> end;
}
};
不是設計規則可以遞歸使用還是我失去了一些東西更明顯?
是的,是我不好。謝謝。 – John