大家好,我是杯子解析器的新手,我的问题是在我的语法中定义的 trans 中我有空的 trans 我的问题是,这是正确的吗?
例如,在我的语法中,我有
INIT -> A B -c-
A -> A -a-
| empty
B -> B -b-
| empty
A、B 为无终端,a、b、c 为终端
我试图制作一个替代语法,但扩展了我尝试在没有空 trans 的情况下解析的语言
我怎样才能在杯子中编程来制作解析器?感谢您的所有贡献和帮助...
大家好,我是杯子解析器的新手,我的问题是在我的语法中定义的 trans 中我有空的 trans 我的问题是,这是正确的吗?
例如,在我的语法中,我有
INIT -> A B -c-
A -> A -a-
| empty
B -> B -b-
| empty
A、B 为无终端,a、b、c 为终端
我试图制作一个替代语法,但扩展了我尝试在没有空 trans 的情况下解析的语言
我怎样才能在杯子中编程来制作解析器?感谢您的所有贡献和帮助...
对于杯子语法示例,您可以在此处查看该站点。
关于你的语法,你必须首先定义你的终端和非终端
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。