gpt4 book ai didi

java - 如何为两个解析器语法制作相同的词法分析器

转载 作者:行者123 更新时间:2023-12-01 12:15:59 25 4
gpt4 key购买 nike

我正在为一种语言编写一个解析器。实现后我发现有很多解析器规则。所以,我拆分了语法。我在两种语法中都添加了词法分析器规则。但是,现在我发现词法分析器是从第一个语法生成的,并且它们在其他语法中不匹配,因此没有可行的 alt 异常。

任何人都可以指导我如何在两种语法中使用相同的词法分析器规则吗?

最佳答案

您可以使用相同的词法分析器,您可以使用起始行设置词法分析器文件,假设“SomeLanguage”作为您的语言:

lexer grammar SomeLanguage;

在您的 passer 文件中,您应该从以下内容开始:

parser grammar SomeLanguage;
options {
tokenVocab=SomeLanguage;
}

其中“选项”引用了语法的词法分析器。

为了编译,我们假设词法分析器位于名为“the_lexer”的文件夹中,而解析器位于文件夹“the_parser”中:

java org.antlr.v4.Tool the_lexer\SomeLanguage.g
java org.antlr.v4.Tool -lib the_lexer the_parser\SomeLanguage.g

关于java - 如何为两个解析器语法制作相同的词法分析器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27011925/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com