ANTLR,另一种语言识别工具,是一种语言工具,它提供了一个框架,用于从包含各种目标语言中的动作的语法描述构建识别器,解释器,编译器和翻译器。
我有java9源代码,我需要使用antlr4提取某些类的字段。这是我的侦听器:私有静态类FieldListener扩展了Java9BaseListener {@Override ...
我有一种特定的应用DSL查询语言,需要翻译为Cypher。这意味着我在运行时使用域查询语言查询(例如示例中的SQL)获取一个字符串,需要...
我已将符号表转储到antlr中,但我有几个字段不清楚它们的含义。如果有对此的参考,请指出。该表具有标识符,然后具有起始令牌,...
我在为Xpath创建语法时遇到性能问题。整个语法运行良好,直到我们添加了对xpath的支持,例如:((div)[1] // span)[1]或((// div)[1] / div)[...
ANTLR Lexer规则似乎只作为解析器规则的一部分,而不是另一个lexer规则的一部分
如果我有以下语法来分析由空格分隔的整数列表:语法TEST;测试:表情* EOF;表达式:integerLiteral; integerLiteral:...
我创建了antlr4语法文件Jay.g4,并生成了JayLexer.java和JayParser.java。我编译了这些文件以创建JayLexer.class和JayParser.class。我的问题是:我该如何使用这些...
错误:(3,32)java:包org.antlr.v4.runtime.dfa不存在
我正在研究创建迷你Java语言的编译器的项目,我使用intellij,我下载了jar文件,并添加了CLASSPATH,并在IDE上添加了插件。在ANTLR生成过程中...
我在antlr中使用了不同的词法分析器模式,并且在词法分析器中遇到了'more'命令的问题,因为它与相应令牌中的所有内容都不匹配。让事情变得更多...
[ArrayInitVisitorImpl的ANTLR访问者实现
我正在尝试构建将字符串数组转换为Unicode的访客实现。我正在使用以下语法:语法ArrayInit;初始化:'{'value(','value)*'}';值:init ...
ANTLR4:Java-TokenStreamRewriter getText()方法的性能问题
我在使用ANTLR4-Java TokenStreamRewriter getText()方法时遇到性能问题。此方法花费太多时间才能获得结果。请在下面检查我的用例和观察结果,...
//解析器语句:DELIMITER * statementPart + DELIMITER *(EOL {newline();})? ; // Lexer DELIMITER:';' ; sql-stmt.g:85:13:规则类陷阱被困:sql-stmt.g:85:13:意外...
我正在将ANTLR与Presto语法一起使用,以解析SQL查询。这是我正在使用的字符串的定义:STRING:'\''(('\\''\'')|〜'\''|'\'\'')*'\'';但是,当我...
我的语言带有可选的子句(CL1,CL2)。语法规则:func:FUNC ID“(”(CL1(ID | CL11 ID))?“)”(CL2(ID | CL21 ID)))? EOS;由于可选,我什至不能使用getChild(i)....
我试图弄清楚为什么我的Antlr生成的解析器没有将输入的一部分识别为与我的一条规则(“ and_converge”规则,“网关”的一部分)匹配。我的语法看起来像:process ...
在ANTLR4(javascript目标)中使用访问者的正确方法
我无法理解如何在ANTLR4(Javascript目标)中正确使用访问者。我准备了一个非常基本的语法,它接受INT + INT或INT-INT操作。语法PlusMinus; ...
如何在antlr4中使用Listener方法获取解析器的内容?
就我而言,antlr4的Listener方法似乎只能直接获取TerminalNodes的信息,特别是Lexer Nodes。但是,现在我希望把...
我正在尝试将ANTLR用于属性语法。这是我的驱动程序代码:import org.antlr.runtime.ANTLRStringStream;导入org.antlr.v4.runtime.ANTLRFileStream;导入org.antlr.v4.runtime ....
我正在使用我的教授提供的样本来测试ANTLR-4.7.1是否正常工作,以将这些结果与相同的打印标记集相匹配:%java -jar ./antlr-4.7.1- complete.jar ...
我正在尝试在一个词法分析器规则上使用多个词法分析器命令。我的代码如下所示:LEXER_RULE:something-> mode(NUMBER);模式NUMBER; NU:[0-9] +->模式(ANOTHER_MODE); //正在运行...