问题标签 [parser-generator]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
124 浏览

compiler-construction - 如何处理 parser.mly 中的变量声明?

我正在用 Ocaml 编写一个 mini-pascal 编译器。例如,我希望我的编译器接受以下代码:

我在处理变量声明时遇到了困难(以下部分var)。目前,变量的类型在sib_syntax.ml中定义如下:

这是sib_parser.mly。我的问题是,我可以在哪里以及如何告诉编译器构建globals,变量的声明,它实际上是一个s_var. 我想我需要在sib_parser.mlyterminated_bindings, binding, separated_nonempty_list, 等)的末尾提炼menhir的部分,但我不知道如何......

有人可以帮忙吗?非常感谢你!

0 投票
3 回答
266 浏览

java - 如何将字符串解析为int?

我的字符串是 743.4445 我希望它显示 743 所以它必须解析为 double 然后解析为 int 所以我尝试这样

(实际上 743.4445 来自服务器,因此我不知道确切的值)

我该怎么办?

0 投票
3 回答
3149 浏览

objective-c - Objective C 的解析器生成器?

有人建议我使用解析器生成器为我的领域特定语言创建解析器。

理想情况下,我希望它输出一个 Objective-C 解析器并采用 BNF 输入来描述语言。

似乎几乎没有选择..是否可以使用带有目标 C 的更流行的解析器生成器之一?

谢谢!

0 投票
1 回答
196 浏览

qt - 在 Qt 项目中使用 flex

我需要在我的 Qt 应用程序中使用 flex++ 生成的解析器代码。我收到了这个错误:

我还将这一行添加到 .pro 文件中:

0 投票
1 回答
260 浏览

iphone - 如何为 iPhone 下载 ParseKit?

非常基本(并且可能非常愚蠢)的问题,但我不熟悉这个下载源代码的过程。即使您从未下载过此文件,您也可以指出我遗漏的内容。

我正在尝试让 ParseKit 解析器生成器与我的 iPhone 应用程序一起使用:

说明说我需要一个名为“ParseKit.xcodeproj”的项目文件:

http://parsekit.com/iphone.html

下面的链接将我带到源文件,但我看不到从哪里获取实际的项目文件:

http://code.google.com/p/todparsekit/source/browse/#svn%2Ftags%2Frelease-1.5-tag

ParseKit.xcodeproj 在左边,但我不能自己下载它,project.pbxproj 打开包含一些源代码。如何获取项目文件本身?

为这个问题道歉,但整个事情似乎很不明显,为什么不提供一个下载链接呢?我肯定错过了什么...

谢谢!

0 投票
2 回答
1140 浏览

parsing - Lemon LALR 解析器的简单语法

一段时间以来,我一直坚持这一点。我想解析一些简单的东西:

喜欢:word1 word2 .. wordN 讨厌:word1 word2 .. wordN

我正在使用柠檬+Flex。目前我的语法看起来像这样:

但这仅适用于前 2 个单词。显然我做错了什么,可能在递归定义中?任何提醒表示赞赏:)

0 投票
2 回答
942 浏览

objective-c - 这个 ParseKit BNF 有什么问题?

我将 ParseKit 用于 Objective-C,它采用类似 BNF 的语法来指定语法:

包含最后一行会导致错误。基本上我想说一个对象可以是房子或其他东西。非终结元素“other”应该能捕捉到任何不是房子的词。

我是否以错误的方式谈论“这里的任何东西”的想法?

谢谢!

0 投票
1 回答
3165 浏览

context-free-grammar - 适合初学者的 BNF 语法教程/介绍?

你对 BNF 语法的介绍(以及如何在实践中使用它们)有什么建议?

有很多例子的简洁的东西会很棒。一直在谷歌搜索,但到目前为止只发现了非常长的文章,其中的例子不清楚:/

(在我的特殊情况下,我正在尝试解析Galaxy Toolconfig 语法,其中包括 if/else 语句等)

0 投票
1 回答
360 浏览

objective-c - 使用 Parsekit 构造解析树

我正在为 XCode 使用 Parsekit,但这个问题很可能适用于大多数解析器生成器。我用一个游戏玩家解析一个脚本,它工作正常。但是,我在下一步遇到问题。考虑 grmmer:

@start = 行+; 线=树;

tree = 'tree' 果实分支;

fruits = 'with' 'fruits' 编号;分支 = 'with' '分支' 编号;

以及要通过的脚本:

有果子的树 8 有树枝 12

如果我随后实现匹配的方法,水果和树枝将匹配一次,这是意料之中的。

但是树会匹配两次,为什么?这阻止了我构建我想要的解析树。

谢谢你的帮助!

0 投票
2 回答
755 浏览

javascript - 可与闭包编译器一起使用的 JavaScript 解析器生成器

我一直在寻找 Javascript 的解析器生成器,并找到了一些(即 PEG.js)。

不过,尚不清楚这些与 Google Closure Compiler 之类的东西配合得如何。

例如,它看起来像在 PEG.js 中,我可以给它代码作为规则的一部分执行,但是我如何将函数(可能被编译器重命名)绑定到规则?

此外,我不清楚哪些解析器支持传入符号表。例如,我想定义一个接受像“A 或 B”这样的表达式的语法,其中“A”和“B”的值是在运行时定义的,例如,作为用户正在查看的记录的属性。

PEG.js 当然不是必需的,它只是似乎出现在搜索结果中并且看起来可用的唯一解析器生成器。