CoreParse,BNF语法,堆栈溢出

时间:2014-01-09 18:32:25

标签: objective-c grammar cplex bnf coreparse

我不是语法专家,但我想在CoreParse [1]中编写CPLEX Parser(这是一种LP语法)。但是CoreParse无法构建以下语法并以堆栈溢出而不是错误退出。 以下是语法的精简示例,但不起作用。 @符号前面的字符串是一个名称,以后可用于评估解析树。 'XXX'指的是指定的词法分类,它们都是定义的。

NSString *expressionGrammar =
@"Complete    ::= dir@<Direction> obj@<ObjExpression> 'Enter';\n"
@"Direction   ::= 'maximize' | 'minimize';\n"
// obj function
@"ObjExpression  ::= term@<ObjTerm> | expr@<ObjExpression> op@<ObjAddOp> term@<ObjTerm> ;\n"
@"ObjTerm        ::= 'Identifier'  | num@<Number> op@<ObjMulOp> 'Identifier' ;\n"
@"ObjAddOp       ::= '+' | '-'; \n"
@"ObjMulOp       ::= '*'; \n"

我没有看到任何问题 - 有没有其他人知道为什么这个语法的产生会让发生器陷入无限循环?

谢谢, 马克!

[1] https://github.com/beelsebob/CoreParse

0 个答案:

没有答案