问题标签 [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 投票
4 回答
1361 浏览

state-machine - 如何构建 LR 状态机解析器?

我想尝试创建一个 LR 解析器生成器。有谁知道描述如何从语法创建状态机表的好(免费)资源?

0 投票
5 回答
9539 浏览

c++ - boost.org 的 Spirit 解析器生成器框架有哪些缺点?

在几个问题中,我从boost.org看到了关于Spirit解析器生成器框架的建议,但是在评论中,使用 Spirit 的人不满意的抱怨。请那些人站出来向我们其他人解释使用 Spirit 的缺点或缺点是什么?

0 投票
5 回答
1174 浏览

c++ - 如何在 C++ 中解析字符串

我想解析字符串,以便检查它们是否具有指定的语法。

例子:

这里我的要求是在后面Z应该有一个数字,然后是 a-和之后R应该有一个数字,然后是l,然后是一个空格,然后是 finally t

如果除此之外有任何其他内容,它应该是一个错误。

我必须像这样解析许多不同类型的语法。如果为每种所需的语法类型编写一个函数,我会很尴尬。听说yacc或者lex可以解决这个问题。

任何人都可以对我的问题有所了解吗?

0 投票
12 回答
11083 浏览

java - 如何解析代码以在 Java 中构建编译器?

我需要编写一个编译器。这是大学的家庭作业。老师告诉我们,我们可以使用任何我们想做的API来做代码的解析,只要它是好的。这样我们就可以更专注于我们将生成的 JVM。

所以是的,我会用 Java 编写一个编译器来生成 Java。

你知道有什么好的API吗?我应该使用正则表达式吗?我通常手动编写自己的解析器,尽管在这种情况下不建议这样做。

任何帮助,将不胜感激。

0 投票
7 回答
3346 浏览

java - 解析器,Java 生成器,具有以下要求

我正在寻找一个用于 Java 的解析器生成器,它执行以下操作:我的语言项目非常简单,只包含一小组标记。

以纯 READABLE Java 代码输出,以便我可以修改它(这就是我不使用 ANTLR 的原因)成熟的库,至少可以在 Java 1.4 上运行和工作

我查看了以下内容,它们可能会起作用:JavaCC、jlex、Ragel?

0 投票
5 回答
2533 浏览

python - 帮我找到合适的 ruby​​/python 解析器生成器

我使用的第一个解析器生成器是 Parse::RecDescent,可用的指南/教程很棒,但它最有用的功能是它的调试工具,特别是跟踪功能(通过将 $RD_TRACE 设置为 1 激活)。我正在寻找一个可以帮助您调试它的规则的解析器生成器。

问题是,它必须用 python 或 ruby​​ 编写,并且具有详细模式/跟踪模式或非常有用的调试技术。

有谁知道这样的解析器生成器?

编辑:当我说调试时,我指的不是调试 python 或 ruby​​。我指的是调试解析器生成器,看看它在每一步都在做什么,看看它正在读取的每个字符,它试图匹配的规则。希望你明白这一点。

赏金编辑:为了赢得赏金,请展示一个解析器生成器框架,并说明它的一些调试功能。我再说一遍,我对 pdb 不感兴趣,但对解析器的调试框架感兴趣。另外,请不要提及树梢。我对此不感兴趣。

0 投票
5 回答
11613 浏览

c# - 如何构建真值表生成器?

我正在寻找将真值表生成器作为个人项目编写。

这里这里有几个基于网络的在线网站。

替代文字
(Example screenshot of an existing Truth Table Generator)

我有以下问题:

  • 我应该如何解析表达式,例如:((P => Q) & (Q => R)) => (P => R)
  • 我应该使用像 ANTLr 或 YACC 这样的解析器生成器,还是直接使用正则表达式?
  • 一旦我解析了表达式,我应该如何生成真值表?表达式的每个部分都需要分成其最小的组件,并从表格的左侧到右侧重新构建。我将如何评价这样的事情?

谁能向我提供有关解析这些任意表达式并最终评估解析表达式的提示?

0 投票
3 回答
655 浏览

regex - 什么时候使用解析器生成器,什么时候正则表达式就足够了?

我还没有进入计算机科学的形式语言领域,所以我的问题可能很愚蠢。我正在用 C++ 编写一个简单的 NMEA 解析器,我必须选择:

我的第一个想法是手动构建一个简单的有限状态机,但后来我想也许我可以用更少的工作,甚至更有效地做到这一点。我以前用过正则表达式,但我认为NMEA正则表达式很长,应该需要“很长时间”才能匹配它。

然后我想到了使用解析器生成器。我认为所有人都使用相同的方法:它们生成 FSA。但我不知道哪个更有效。您通常什么时候使用解析器生成器而不是正则表达式(我认为您可以在解析器生成器中编写正则表达式)?

请解释差异,我对理论和经验都感兴趣。

0 投票
7 回答
25768 浏览

c# - 什么是好的 C# 编译器/解析器生成器?

我正在寻找一个为 LL(k) 语言提供 EBNF 的解析器生成器,它将给我一个 C# 解析器并生成在 EBNF 中定义的类型的类。

0 投票
5 回答
3016 浏览

delphi - Delphi的解析器生成器?

谁能推荐一个可以生成win32 Delphi代码的解析器生成器?我想要做的是创建一个简单的领域特定语言。