提振精神::从语法文法组成
-
24-09-2019 - |
题
我已想出如何使用精神 - 即,我已经写了中等复杂的语法。我始终以不断增长的一个程序的方法 - 每次一个子系统。我已经写了数据结构复杂的模型,它具有4种类型的最高水平。
我想使用文法组成从规则接近同时解析顶级类型的一种类型 - 即,我想写4个语法与一个顶级的语法。如果这是可能的(我现在开始怀疑),可能有人请张贴片段或到这一点。
一个项目的引用50 +(可能更大量)一个顶层的语法规则(对于适当的错误处理)听起来不像乐趣(TMP代码是易失性/缓慢进行编译,并提供无用错误消息)。
解决方案
与实际的程序简化,齐应该工作相同的噶
template<class Iter>
struct subgrammar_1
: karma::grammar<Iter, ...>
{
...
}
template<class Iter>
struct top_level_grammar
: karma::grammar<Iter, ...>
{
top_level_grammar() : top_level_grammar::base_type(start)
{
start %= r1 | r2;
}
karma::rule<Iter, ...> r1;
subgrammar_1<Iter> r2;
...
}
不隶属于 StackOverflow