在Win10中运行,为了尝试在Node.JS中创建解析器,我安装了ANTLR4工具:
npm install --save-dev antlr4-tool
范围:
c:/prj/parser/node_modules/.bin/antlr4-tool.cmd -o parser grammar/Lang.g4
但却收到了:
Compiling grammar/Lang.g4...
'which' is not recognized as an internal or external command,
operable program or batch file.
child_
我试图使用Antlr v4为一个简单的自定义语法生成一个lexer和解析器。问题是,当我运行Antlr .jar实用程序时,它会生成一个Lexer文件,而不是我认为应该生成的Parser文件。
简单文法
// Define a grammar called Hello
grammar Hello;
r : 'hello' ID ; // match keyword hello followed by an identifier
ID : [a-z]+ ; // match lower-case identifiers
WS : [ \t
我正在尝试将我的ANTLR4解析器集成到CodeMirror文本编辑器中。当我将以下行添加到html文件中时:
var antlr4 = require('antlr4/index'); // index is an ANTLR runtime file
我在Chrome中看到以下错误:
Uncaught DOMException: Failed to execute 'send' on 'XMLHttpRequest': Failed to load 'file:///home/enes/Desktop/git/text_editor_
我是新来的,很抱歉,如果这是显而易见的事情。我正在尝试通过一个.g4文件生成一些源代码,从而使antlr4-webpack-loader包正常工作。我想我已经完成了大部分工作,因为我有一个包含require的javascript文件,.bundle.文件似乎包含antlr4的输出,但是它也有以下内容: module.exports = __webpack_require__(!(function webpackMissingModule() { var e = new Error("Cannot find module 'antlr4/index'"); e.
好吧,我对这个问题束手无策。我正在尝试将TypeScript与ANTLR4一起使用,无论我做什么,我都找不到问题所在(没有太多关于ANTLR目标的文档...)。我不确定错误是出现在我的package.json、tsconfig.json还是其他什么地方。我不断收到错误cannot find module antlr4ts和其他错误,如Property 'exitRule' does not exist on type...。我很困惑,任何帮助都是非常感谢的。
我尝试过遵循页面,有效地使用了它们的确切步骤,但我一到这一步就失败了。
我的语法非常简单,其中r()是解析器的起始规则。
我想要实现的:在JavaScript中处理ANTLR4的评论 现在我正在用antlr4js编写解释器C脚本,我想要获取注释内容。示例: /* this is my function */
int add(int a, int b); 然后,我想要获取string "this is my function",并附加到add()。 我用谷歌搜索了一下,发现我可以使用hidden channel。这是我引用的页面: This is Stuff: Tackling Comments in ANTLR Compiler 我可以在词法分析之后编码收集注释(在上面的页面中收集隐藏的标记),
我正在使用antlr4编写一个JS解析器。我基本上是使用Antlr语法库(ECMAScript.g4)上发布的语法文件作为基础。
语法将regex规则定义如下,这本身并不是一个问题。
RegularExpressionLiteral: '/' RegularExpressionBody '/' RegularExpressionFlags ;
然而,解析器认为这样的表达式代码是正则表达式。
var x = a / b + c / d;
我不知道这场冲突是否有一个简单的解决办法。谢谢!
我正在尝试用Antlr3编译 (用于Creole wiki标记),但是用Antlr工具(C#版本)遇到了内存泄漏,Java版本用完了堆空间:
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOf(Unknown Source)
at java.util.Arrays.copyOf(Unknown Source)
at java.util.ArrayList.grow(Unknown Sour
我有一个遗留项目,其中使用了ANTLR3和ANTLR4语法。我们希望将ant构建系统更新为gradle。有一个支持ANTLR2 2/3/4的,但是很明显,它一次只支持这三个中的一个(取决于所添加的依赖项)。
在我们的项目中,antlr3文件的后缀是.g,而antlr4语法的后缀是.g4。
有选择的插件或替代插件,允许我使用语法的两个ANTLR版本在同一时间?
谢谢你的暗示。
plugins {
id 'java-library'
id 'antlr'
}
dependencies {
// ...
// If both are
antlr4.5,目标Java,jdk1.6。
我编译了一个.g4组合文件,得到了这个错误:
Exception in thread "main" java.lang.UnsupportedOperationException: Serialized ATN data element out of range.
at org.antlr.v4.runtime.atn.ATNSerializer.serialize(ATNSerializer.java:370)
at org.antlr.v4.runtime.atn.ATNSerializer.getSerialized(ATN
我正在为ANTLR规则参数而挣扎。ANTLR版本为4.4。
grammar A;
DIGIT: [0-9];
s: val EOF;
val: dval[1] | val '*' val;
dval[int x]: '.';
ANTLR失败,错误为
error(50): :2:32: syntax error: '1' came as a complete surprise to me while looking for rule element
/Users/parrt/antlr/code/antlr4/tool/src/org/antl