antlr3

    0热度

    1回答

    以下是我的antlr 3语法。我想剥离html标签内的内容。 当标签内部有算术运算符< >时,就会出现问题。 这怎么处理? grammar T; options { output=AST; } tokens { ROOT; } parse : text+ ; text : (tag)=> tag ! | SPACE ! | o

    0热度

    1回答

    令人惊讶的是,我正在为项目构建一个像SQL语言解析器。 我大部分都在工作,但是当我开始根据真正的请求对它进行测试时,我会意识到它在内部的行为与我想象的不同。 的主要问题在下面的语法是我定义了一个词法规则PCT_WITHIN的语言关键字“pct_within”。这工作得很好,但如果我尝试匹配诸如“attributes.pct_vac”领域,我得到具有“attributes.ac”和一个漂亮的ANTL

    1热度

    3回答

    我正在使用ANTLR 3 我试图自定义从Praser引发的异常消息。 表达我现在用: - 2+*3 错误消息从ANTLR recived是: no viable alternative at input '*' line 1:3 我想自定义此异常消息 Invalid Expression Term line 1:3 我试着覆盖分析器的方法GetErrorMessage(Recognit

    0热度

    1回答

    我有一个以下语法,我想避免“在AST中显示为一个节点,要做到这一点,我是!后缀,但ANTLWorks仍然在树上显示出来,我做错了什么? grammar BooleanExpr; options { output=AST; ASTLabelType=CommonTree; } booleanExpr : andExpr ('OR'^ andExpr)*; andEx

    0热度

    1回答

    我正在使用ANTLRWorks来测试我想出的一种语法,其中一个规则预见了BULLET符号的用法,但是当解析树正在构建时,它每次都会转义它。我也尝试了扩展ASCII表中的其他字符,并且它们也被省略。它是一个知道的错误,或者我应该以某种方式启用扩展的ASCII字符?

    0热度

    1回答

    我有以下语法。它应该识别由单引号字符(')分隔的字符串。但是,这不符合预期。在ANTLWorks,控制台窗口显示以下警告: [10时46分50秒]的错误(139):Test.g:9:15: 补集是空 为什么那我怎样才能匹配一个字符串,可以包含任何字符,但分隔符? grammar Test; options { language=CSharp3; output=AST;

    0热度

    1回答

    ,当我在我的语法运行输入 integer function() : 2+2+2; integer x; 3-1-2; end. : evaluator : type 'function' '(' ')' ':' (expression ';' | declaration ';')* 'end' '.' EOF ; decla

    0热度

    1回答

    我通过工作ANTLR使用Java语法来生成Java代码AST和我使用的命令行编译文件,我得到了这些问题: 当我用antlrworks与此Java.g -1-1.4.3.jar,并用javac编译文件时,我得到了1个错误,这是 JavaParser.java:24631: illegal start of expression void =null; ^1 error 我

    2热度

    1回答

    我的build.xml文件看起来像以下: <property name="lib" value="${basedir}/lib" /> <property name="src" value="${basedir}/src" /> <property name="package" value="com/package/antlr" /> <path id="compile.classpath

    0热度

    1回答

    我想了解如何应用访问者模式,一旦我有从ANTLR语法生成的AST。它是否与遍历树不同? 例如,假设我有以下AST(From this question): 如果我想appened FUNDEF IDS向其所有VARDECL的ID,我的做法是做一个树遍历查找所有VARDECL在BLOCK内部,并添加一个新的(FUNDEF ID + old_name)孩子,并删除旧的。 这是正确的方法还是会以某种方式