antlr4相关内容
我想写的规则是: 字符:'\u0000'..'\u10FFF'; 但是当尝试针对定义它的词法分析器文件运行 antlr 工具时,我收到以下错误: 词法分析器集中不允许使用多字符文字:'\u10FFF' 如何解决这个问题? 解决方案 尝试用 { 和 } 包装多字符文字,并使用 v4 样式字符集[...]: 字符:[\u0000-\u{10FFF}]; 来自 https://git
..
在Win10下运行,为了尝试在Node.JS中创建解析器,我安装了ANTLR4工具: npm install --save-dev antlr4-tool 跑: c:/prj/parser/node_modules/.bin/antlr4-tool.cmd -o parsergrammar/Lang.g4 但是收到了: 编译语法/Lang.g4...'which' 不被识别为内部或外部命
..
我正在为 XSD 中的 RegEx 开发一个 Regx 解析器.我之前的问题描述在这里:ANTLR4 parsing RegEx 从那时起我就拆分了 Lexer 和 Parser.现在我在解析括号内的括号时遇到问题.它们应该被视为括号内的字符和外的分组标记.这是我的词法分析器语法: 词法语法RegExLexer;字符:阿尔法;整数:数字;LBrack : '[' ;//->pushMode
..
我想在 Python 中使用 ANTLR 构建一个 Java 解析器. 我从 ANTLR 存储库下载了语法: 词法分析器:https://github.com/antlr/grammars-v4/blob/master/java/java/JavaLexer.g4 解析器:https://github.com/antlr/grammars-v4/blob/master/java/
..
在使用侦听器迭代令牌时,我想知道如何使用 ParserRuleContext 来查看令牌流中的下一个令牌或接下来的几个令牌? 在下面的代码中,我试图查看当前令牌之后直到 EOF 的所有令牌: @Override公共无效输入分号(JavaParser.SemicolonContext ctx){令牌tok,semiColon = ctx.getStart();int currentIndex
..
我想用 ANTLR4 解析 PostScript 代码.我完成了语法,但是一个特定的语言扩展(由其他人引入)导致难以重新调整. 一个简短的例子: 1: % 这是一行注释2: % 下一行只是将值 10 压入堆栈3:104:5: %?description 这是有问题的特殊行注释6:/过程{7:/var1 30 def %这只是创建一个变量8:/var2 10 def %?descriptio
..
我正在尝试将我的 ANTLR4 语法拆分为多个文件,以便我可以更轻松地测试它们,我在 Java 项目中使用 gradle 作为构建工具. 两种语法都可以通过单独的方式正确编译,但是当我将导入添加到主语法时,出现下一个编译错误 错误(110):kanekotic/specflow/rider/SpecflowFeature.g4:3:7:无法找到或加载语法SpecflowScenario
..
我尝试在 Antlr4 中创建一个语法,它接受正则表达式由任意字符分隔(类似于 Perl).我怎样才能做到这一点? 要明确:我的问题不是正则表达式本身(我实际上不在 Antlr 中处理,而是在访问者中处理),而是分隔符.我可以轻松地为词法分析器定义以下规则: REGEXP: '/' (ESC_SEQ | ~('\\' | '/'))+ '/' ;片段 ESC_SEQ: '\\' .; 这
..
我已经使用 github/antlr4 上的 JSON 语法创建了 python 模块 antlr4 -Dlanguage=Python3 JSON.g4 我按照本指南编写了一个主程序“JSON2.py":https://github.com/antlr/antlr4/blob/master/doc/python-target.md并从github下载了example1.json. pyth
..
我正在尝试学习 ANTLR 4,并且我正在遵循权威 ANTLR 4 参考中给出的示例.遗憾的是,我被困在第一个例子中. 系统: Windows 10 (1703) Java 8,更新 151 ANTLR 4, v4.7 我的 %CLASSPATH% 被设置为系统变量 (.;"D:\Program Files\Java\libs\antlr-4.7-complete.jar";).
..
考虑以下语法.我有操作符优先级的问题,例如:res=2*a+b 有一个与 res=2*(a+b) 类似的解析树.我知道问题出在哪里,但是我想到了没有相互左递归的“漂亮"解决方案.你能帮我一下吗?语法与自定义访问者一起使用. grammar Math;表达式:表达式 add=('+'|'-') 表达式 # expressionAddExpression|表达式 mult='*' 表达式 # exp
..
我有一个关于在我的 Unix 系统 (MacOS Sierra) 上安装 ANTLR 的问题. 我遵循了快速入门步骤(适用于 OS X 的 ANTLR 4 快速入门安装步骤) 如 ANTLR 4 主页上所述.一切似乎都运行良好,但是每当我关闭终端时,导出和别名命令似乎都消失了.有谁知道我可能做错了什么?谢谢! 附言我是 OS X 的新手并使用终端. 解决方案 将 export
..
这不会在 ANTLR 4 中编译: 数字选项 { backtrack=true;}: (IntegerLiteral Range)=>IntegerLiteral { $type = IntegerLiteral;}|(FloatLiteral)=>FloatLiteral { $type = FloatLiteral;}|IntegerLiteral { $type = IntegerLite
..
在解析器语法中,我想在locals 子句. 一个简化的例子如下所示: 正文当地人 [映射bodyContent = new HashMap();长计数器 = 0;]:BODY_CAPTION NEWLINE 行;行:key='MyKey' TAB value='MyValue' NEWLINE{$body::bodyContent.put($key.text, $value.text);$
..
我是 ANTLR 的新手.我刚刚发现可以像这样在作品中标记每个替代品: foo: 一个#一个标签|b # b标签|//...; 但是,我发现必须标记所有替代方案或不标记替代方案是令人不快的.我最近只需要标记具有 20 多个分支的产品的 2 个替代方案,我最终标记了其他每个# stubLabel.是否有任何理由必须标记全部或不标记? 解决方案 一旦您添加标签,ANTLR4 将不再为该规则
..
我有一个 ANTLR 4 语法: 语法测试;开始:非零数字'.'数字数字?EOF;点:'.';加号:'+';减 : '-' ;冒号 : ':' ;逗号 : ',' ;引用 : '\"' ;等于: '=' ;分号:';';下划线:'_';反斜杠 : '\\' ;单引号 : '\'' ;RESULT_TYPE_NONE :
..
antlr4 API 有没有可靠的方法来获取相对于文件开头而不是行的令牌起始字符位置?在做了一些研究之后,我发现唯一的方法是使用 IntStream 的一些自定义实现,它不会将 '\n' 视为行终止符,但也许我错过了一些更简单的方法?如果重要的话,我正在使用访问者 API. 我正在处理的应用程序解析源文件并为另一个应用程序提供插入坐标,该应用程序使用提供的坐标插入附加代码.如果另一个应用程序
..
鉴于以下 ANTLR 4.1 语法,有意注释掉一行... 语法Foobar;//whyDoesThisRuleHelp : 表达式 ;表达式:操作数 |二元运算;binaryOperation : 操作数 WS BINARY_OPERATOR WS 表达式;操作数:字母;BINARY_OPERATOR : '情商' ;字母 : [a-z] ;WS : [ \n]+ ; .. 为什么 echo
..
我下载了最新版本的 ANTLR - 4.2.2 (antlr-4.2.2-complete.jar)当我使用它为语法文件 Java.g4 生成解析器时,它会向我打印一些警告,例如:“Java.g4:525:16:规则‘表达式’在无法识别的位置包含‘assoc’终端选项" 文件已生成但未编译 以前的版本工作正常. 怎么了? 解决方案 现在应该移到“表达式"的左边. 它
..
无法启动所选的向导.无法为 com.github.jknack.antlr4ide.Antlr4 ExtensionFactory 创建注入器:com.github.jknack.antlr4ide.ui.Antlr4ExecutableExtensionFactory无法为 com.github.jknack.antlr4ide.Antlr4 创建注入器 我该如何解决这个问题? 解决
..