如何在 Happy 解析器中匹配正则表达式?
我正在使用 Happy 编写一个 JavaScript 解析器,我需要匹配正则表达式。我不想完全解析正则表达式,只需将其存储为字符串。 我的 AST 的相关部分如下…
创建简单的 LR 解析器闭包项
假设 G(增强语法): E' - > E E - > E+T|T T - > T*F|F F - > (E)|id 所以在 dfa 的创建级别之一中,我已经达到了这一点:(龙书中的 I6) I6 I9 --…
Parse::RecDescent 解析子名称
我使用模块 Parse::RecDescent 并尝试构建语法来捕获 perl 子名称 为什么在我的代码中 https://gist.github.com/1595532 不工作语法 获取子: 测试 NO…
如何让 Coco/R 解析器不贪婪
我的 ATG 文件定义了一个代码块, Codeblock = "" 当 Coco 生成的解析器遇到这样的块时: <# a=5; print "Hello world!"; #> 令牌拾取 a=5; print "He…
将 Mathematica 移植到 Octave
我必须将大量文件从 Mathematica 移植到 Octave。 我找到了 ~1991 年的 Lisp Mathematica 解析器,但我是对 Lisp 不太熟悉,所以我想知道是否有人有朝…
Happy 中的 %% 代表什么?
我正在使用 Happy 构建一个解析器,并注意到这是在线文档 : 像 yacc 一样,我们在这里包含 %%,但没有真正的原因。 %% 但一定有一个原因,即使它是微…
当与词法分析器中的 strdup() 一起使用时,Flex/bison 中的 Char* as YYSTYPE 仅返回标记中的第一个字符
我在使用 flex 和 bison 构建的编译器中使用 char* 作为 YYSTYPE 。该行 #define YYSTYPE char* 位于我的语法文件的顶部。我的词法分析器中的一些标记…
用于解析 C++ 中的许多小文本的最佳解析器生成器?
出于性能原因,我将 C# 库移植到 C++。在正常操作期间,该库除其他事项外,还需要解析大约 150,000 个平均长度小于 150 个字符的数学表达式(例如 Exc…
JavaCC语法中如何提及try-catch块
我正在尝试在 JavaCC 语法中实现错误报告和恢复,如 http://javacc.java.net/doc/errorrecovery.html 提到后代码; void Stm() : {} { try { ( IfStm()…
Scala RegexParsers 中的非贪婪匹配
假设我正在用 Scala 编写一个基本的 SQL 解析器。我有以下内容: class Arith extends RegexParsers { def selectstatement: Parser[Any] = selectcla…