大家好我是杯子解析器的新手,我的问题是在我的语法中的trans的定义中我有空的trans而我的问题是,这是正确的吗?
例如,在我的语法中我有
INIT -> A B -c-
A -> A -a-
| empty
B -> B -b-
| empty
A,B为无端子,a,b,c为端子
我试图制作一个替代的gramar,但是扩展为我尝试解析而没有空转的语言
我如何在杯子中编程来制作解析器?感谢您的所有贡献和帮助...
答案 0 :(得分:0)
有关杯语法示例,您可以访问站点here。
关于语法,您必须首先定义您的终端和非终端
Terminal: a, b, c, EMPTY;
Non-Terminal: init, A,B;
然后开始语法
start with: init
init ::= A:e | B:e;
A ::= A:e | A:e -a- | EMPTY;
B ::= B:e | B:e -b- | EMPTY;
a ::= a:e {: RESULT = e:}
b ::= b:e {: RESULT = e:}
,依此类推。请记住,使用这种方法,您将必须有一些方法来定义端子和符号。如果您要寻找可用作词法分析器的东西,建议使用jflex。