javacc相关内容

为什么019不是一个JavaScript语法错误?或者为什么是019&>020

如果我在JavaScript控制台(在Chrome和Firefox中都进行了测试)中键入019 > 020,则会得到答案true。 这是因为020被解释为OctalIntegerLiteral(等于16),而019显然被解释为DecimalLiteral(并且等于19)。由于19大于16,019 > 020为true。 令我困惑的是,为什么019首先被解释为DecimalLiteral。是 ..
发布时间:2022-07-20 11:51:16 前端开发

Java:有限递归中的StackOverflow

我为一些命题逻辑表达式编写了一个javaCC解析器。 表达式可能会很长,有30K个字符。 当我分析这么大的表达式时,我得到了堆栈溢出异常。 是否可能有某些决定堆栈大小的VM参数? 或者在这种情况下您会怎么做? 谢谢 推荐答案 是,请使用-Xss参数。例如: java -Xss4m Blah 将堆栈大小设置为4MB。 ..
发布时间:2022-04-12 17:11:43 Java开发

ANTLR 或 JavaCC 哪个更好?

关注点是文档/可学习性、eclipse 集成、工具、社区支持和性能(大致按这个顺序). 解决方案 您不应该排除以下几种选择: JParsec 是一个解析器组合器框架,可让您完全从代码构建解析器. Scala 的解析器组合器框架 解决了类似的问题;然而,Scala 的语法使所有这些都更具可读性. 然后还有由 John Metsker 为他的书 使用 Java 构建解析器;我不记得图 ..
发布时间:2021-11-28 18:05:33 其他开发

如何在语法上实现 JJTree

我有一个作业,要使用 JavaCC 为讲师提供的语言制作一个带有语义分析的自上而下的解析器.我写出了生产规则,没有错误.我完全被困在如何将 JJTree 用于我的代码,而我在互联网上搜索教程的时间并没有让我获得任何帮助.只是想知道有人能花点时间解释一下如何在代码中实现 JJTree 吗?或者,如果某个地方有隐藏的分步教程会很有帮助! 以下是我的一些生产规则,以备不时之需.提前致谢! voi ..

ANTLR 还是 JavaCC 哪个更好?

关注点是文档/可学习性、eclipse 集成、工具、社区支持和性能(大致按这个顺序). 解决方案 您不应该排除以下几种选择: JParsec 是一个解析器组合器框架,可让您完全从代码构建解析器. Scala 的解析器组合器框架 解决了类似的问题;然而,Scala 的语法使所有这些都更具可读性. 然后还有 John Metsker 为他的书 使用 Java 构建解析器;我不记得图书 ..
发布时间:2021-11-11 03:33:48 其他开发

JavaCC - 解析 XPATH 表达式的一个步骤

我正在尝试为(简单的)XPath 解析器编写 JavaCC 脚本,但在解析各个步骤时遇到了问题. 我对语法的想法是这样的: Step ::= ( AxisName "::" )?NodeTest ( "[" 谓词 "]" )* 我已将其转换为以下脚本片段: Step Step() :{令牌 t;步步;轴心轴;NodeTest nodeTest;表达式谓词;}{{ 轴 = Axis.ch ..
发布时间:2021-10-02 19:47:58 其他开发

任何类型的空格上的 JavaCC 词法错误

我清楚地在我的 SKIP 令牌中定义了 unicode 空白字符,如下所示: 跳过 {""|"\r"|"\n"|“\t"} 但是,当我运行 Java CC 时,它会很好地解析所有标记,直到我遇到上述任何一个空格字符并抛出以下错误: 线程“main"prjct1.TokenMgrError 中的异常:第 1 行第 25 列的词法错误.遇到:“\r"(13),之后:“Random:Word:H ..
发布时间:2021-09-08 20:19:33 其他开发

使用 JavaCC 解析字符串

我正在尝试想出一种使用 JavaCC 解析字符串的好方法,而不会错误地将其与另一个标记匹配.这些字符串应该可以有空格、字母和数字. 我的标识符和数字令牌如下: 我当前的字符串标记是: 理想情况下,我只想保存引号内的内容.我有一个单独的文件,我在其中实际保存变量和值.我应该删除那里的引号吗? 我最初在解析器文件中有一个这样的方法: vari ..
发布时间:2021-06-14 19:33:46 其他开发

Java对象相等不起作用

我真的试图在该论坛中搜索有关此类问题的答案,但到目前为止,似乎没有任何一项工作. 我想输入检查方法声明,例如: public int stackOverFlow(){int a;a = a + 1;返回0;} 返回表达式的类型必须与方法的返回类型匹配(在此示例中为true). 我使用Java Tree Builder为语法中的所有非终结符(以节点的形式)和默认的深度优先访问者生 ..
发布时间:2021-05-03 19:41:37 Java开发

我如何在javacc中实现循环(For)

我为包含循环的脚本语言做了一个解释器,使用javacc我定义了语法,但是我没有办法备份到行上重复执行"for"块. 如何备份令牌管理器,以便可以一遍又一遍地重新解析并重新评估循环体? void For(): {ArrayList lst;Token n,v;int i=0;} { "for" "(" n= ":" v= ")" "{" ..
发布时间:2020-11-30 04:14:40 其他开发

使用JavaCC解析C语法的源代码

作为项目任务,我需要从Java解析纯C语法以生成AST输出.作为启动,我使用的是在 的语法文件中找到的文件c.jj http://java.net/projects/javacc/sources/svn/ 但是我发现它仅具有语法和词法作用,而没有真正的语义来解析C源代码.还有其他一些来源,其中包含typedef,变量,构造函数,包含文件吗? 解决方案 您可以去寻找完整的语法.这样 ..
发布时间:2020-11-20 04:58:43 其他开发

更好的是ANTLR还是JavaCC?

需要关注的是文档/学习能力,日食集成,工具,社区支持和性能(大致顺序). 解决方案 您不应该排除其他几种选择: JParsec 是一个解析器组合器框架,可让您完全从代码构造解析器. Scala的解析器组合框架解决了类似的问题;但是,Scala的语法使所有这些内容都更具可读性. 然后还有John Metsker为他的书要塞,Sun多年来一直在使用的编程语言现在似乎已建立在该工具包上 ..
发布时间:2020-09-02 22:22:11 其他开发

JavaCC转储方法来打印AST

我正在使用JavaCC以特定格式打印AST。 我需要这样: LetNode(Identier(X),ExprNode(PlusNode(IntegerLiteral(8 ),IntegerLiteral(2)))) 但我得到: 开始(LetNode(Identifier(x)(ExprNode(IntegerLiteral(5)(PlusNode(IntegerL ..
发布时间:2020-05-31 22:48:36 其他开发