在C ++中解析std :: functions的循环依赖

时间:2017-07-25 21:00:57

标签: c++ c++11 circular-reference

我正在尝试为教育目的实现解析器组合器。解析器简单地定义为std::function<T(input&)>。我已经说到我能够使用类似代码的东西定义一个简单的表达式语法:

auto expression;  // the type does not matter for the context
auto factor =   number
              | (token('(') >= expression >= token(')'))
              ;
auto term = factor >= *( (token('*') | token('/')) >= factor );
expression = term >= *( (token('+') | token('-')) >= term ); 

可以看出,问题在于循环依赖性。我无法找到解决分组因子导致的循环依赖的方法。构造因子解析器的运算符需要表达式解析器,但这只是在最后构造。我怎么能解决这个问题?

0 个答案:

没有答案