我目前正在为 BASIC 语言开发一个简单的编译器,我发现了一些问题,想请教您。
第一个很简单,我应该在哪里定义我的 token ?我的意思是,在 Lexer.java 文件中,我使用以下表达式将标记发送到解析器: 返回符号(sym.STATIC); STATIC 对我来说是一个 token ,但我不知道在哪里定义它。
其次,我应该在哪里定义创建 Lexer 和 Parser 实例的主类?在 Parser 类中还是在另一个类中?
提前致谢。
最佳答案
首先:将自动为您生成一个包含定义这些符号的类的文件
第二:您使用 main 创建自己的类,在其中从生成的词法分析器创建一个对象(将输入流传递给该对象),并从解析器创建一个对象(将词法分析器传递给该对象)。 创建这两个对象后,您可以调用属于 Parser 的方法 parse()。
关于java - 使用 JFlex/CUP 构建编译器并解决一些问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4567019/