Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Antlr4 如何在ANTLR 4中使用自定义标记和上下文_Antlr4 - Fatal编程技术网

Antlr4 如何在ANTLR 4中使用自定义标记和上下文

Antlr4 如何在ANTLR 4中使用自定义标记和上下文,antlr4,Antlr4,我使用ANTLR3已经有一段时间了。我只是切换到ANTLR 4。一般来说,在我的编译器课上,我的学生更容易理解它。然而,从我找到的书和其他文档中还不清楚如何制作构成解析树定制类节点的标记和上下文。对于Antlr3,我只是使用这些选项让生成的代码在生成的代码中重命名它们。在ANTLR 4中呢?有我应该能够找到的文档吗?实现TokenFactory其中CustomTokenType扩展CommonToken。在调用解析器之前,在lexer(以及所需的解析器)上设置TokenFactory 在“”一书

我使用ANTLR3已经有一段时间了。我只是切换到ANTLR 4。一般来说,在我的编译器课上,我的学生更容易理解它。然而,从我找到的书和其他文档中还不清楚如何制作构成解析树定制类节点的标记和上下文。对于Antlr3,我只是使用这些选项让生成的代码在生成的代码中重命名它们。在ANTLR 4中呢?有我应该能够找到的文档吗?

实现
TokenFactory
其中
CustomTokenType
扩展
CommonToken
。在调用解析器之前,在lexer(以及所需的解析器)上设置TokenFactory

在“”一书的源代码的“extras”目录中查找一些简单的示例。书中讨论了这些问题

请看一个工作示例,特别是Converter.java中的方法


Github上还有其他例子——使用“language:antlr”作为搜索词。还有一些是根据实现语言分类的,所以比较难找到--“language:javaantlr”会找到很多。

谢谢。非常感谢。我确实在书中找到了象征性的答案,但没有任何关于解析器的内容。这是一个很大的帮助。