是否可以在ANTLR4中包含(但不导入)独立语法?

问题描述 投票:1回答:1

我有一个描述表达式的语法(原文,对吗?)。我想在其他语言中使用此表达式语言。

例如,OtherLanguage.g4:

grammar OtherLanguage.g4

import Expressions;

keyPair: IDENTIFIER ':' expression;
IDENTIFIER: [a-zA-Z0-9]+ 

如果我使用import Expressions;,它将生成一个有效的解析器,但它不会生成或使用ExpressionsParser.ExpressionContext,而是会生成并使用OtherLanguageParser.ExpressionContext。这意味着我无法创建采用“ ExpressionContext”的方法并将其在其他项目中重复使用。

是否有ANTLR4的功能可以使这项工作正常工作?

换句话说,我不想“导入”表达式语法,而是解析器和词法分析器。

java antlr antlr4
1个回答
0
投票

是的,导入实际上意味着包括---它不会将导入的语法视为可以使用所有这些部分树对象的单独实体。

© www.soinside.com 2019 - 2024. All rights reserved.