对于我的编译器类,我们必须使用 JFlex 和 CUP 创建一个词法分析器和一个语法分析器。部分任务还要求我们为给定的输入文件打印出标记和相应的解析操作。此外,reduce 操作需要显示相应的生产编号。
例如,如果我的解析器的语法是
- S -> aXc
- X -> bX
- X -> b
- X -> 码
- Y -> Yd
- Y -> d
然后作为输入给出的 abbbc 字符串将输出
a [shift]
b [shift]
b [shift]
b [shift]
c [reduce 3] [reduce 2] [reduce 2] [shift]
[reduce 1]
[accept]
我知道 CUP 有调试选项,但输出需要采用这种特定格式。显示标记很容易,因为我可以在 Flex 规范的规则部分打印出标记,但我不知道如何打印出 CUP 规范中的操作。