问题标签 [bnf]

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 投票
5 回答
2122 浏览

bnf - 描述一些东西,我应该使用 Backus-Naur 形式吗?

我想描述一个复杂的脚本和可能的编程语言。在做任何事情之前,我正在考虑用 Backus-Naur 形式描述它(不包括虚拟/示例脚本代码)

除了巴库斯-瑙尔形式,还有另一种描述语言的形式吗?我应该考虑哪些替代方案?

0 投票
3 回答
944 浏览

grammar - BNF 语法匹配

我的老师给了我两个 bnf 语法:

和四个与之匹配的字符串:

  • dffd
  • dddefddfe
  • 德夫
  • 专用的

我想出了其中两个,但其他两个让我难过。我不希望任何人告诉我答案,但如果有人能给我一些关于我哪里出错的提示,我将不胜感激。

0 投票
6 回答
17521 浏览

c++ - 在哪里可以找到 C++ 语言的标准 BNF 或 YACC 语法?

我正在尝试开发一种代码生成器来帮助对遗留的 C/C++ 混合项目进行单元测试。我没有发现任何一种独立的工具可以从声明中生成存根代码。所以我决定建一个,应该不会那么难。

拜托,任何人都可以给我一个标准的语法链接,用 yacc 语言更好地描述。

希望我不是在重新发明轮子,在这种情况下请帮助我。

最好的问候,凯文

0 投票
3 回答
4113 浏览

normalization - 上下文无关语法转换

谁能告诉我是否有任何软件可以将乔姆斯基范式转换为巴科斯-瑙尔范式,反之亦然?

0 投票
2 回答
155 浏览

java - 适合JavaME的语法编译器推荐?

我想解析一些数据,我有一个 BNF 语法来解析它。谁能推荐任何能够生成可在移动设备上使用的代码的语法编译器?

由于这是针对 JavaME 的,因此生成的代码必须是:

  • 希望很小
  • 对外来 Java 库的低依赖
  • 不依赖于任何运行时 jar 文件。
0 投票
3 回答
12041 浏览

ruby - 红宝石语法

我正在寻找 BNF 形式的 Ruby 语法。有正式版吗?

0 投票
2 回答
815 浏览

grammar - 在 EBNF 中定义语言

L给出由字符组成的语言的 EBNF 规范,使得该语言中的句子具有a以下形式bc

到目前为止我所拥有的:

如果这是正确的,我仍然不确定如何生成Q以及如何S反向表示。

0 投票
9 回答
29289 浏览

bnf - 用于生成 json.org 上使用的铁路图的工具

我喜欢json.org铁路图的语法,它是 BNF 语言的图形表示。我还没有找到任何可以产生如此雄辩的结果的工具。

任何人都可以识别用于生成这些图表的工具吗?

0 投票
2 回答
1420 浏览

javascript - BNF 中的 JavaScript for 循环

我正在为 JavaScript 编写 BNF,它将用于生成该语言的词法分析器和解析器。但是,我想要一些关于如何设计 for 循环的想法。这是我当前 BNF 的简化版本:

如您所见,示例中有两个语句,变量声明和 for 循环。有很多不同的表达式,但没有一个表达式也是语句。

现在的问题是这段 JavaScript 代码不会通过解析器:

这是因为变量声明不是表达式。

你对如何解决这个问题有什么想法?我可以想到几个方法,但我不想妨碍你自己的想法,所以在此不提。

0 投票
3 回答
796 浏览

parsing - 寻求用于创建上下文无关解析器语法的交互式实用程序

我想要一个实用程序,我可以提供一段文本(在文本框中)并尝试解析器语法(通过编辑类似的 BNF)和令牌结构,同时我可以看到解析树的外观(如果它是无法使用我当前的语法解析文本,我会看到它在哪里停止)。

关键词是交互性。例如,我可以使用 flex 和 bison 来做到这一点,但我必须不断地重新创建我的词法分析器和解析器。

外面有这样的东西吗?我还没有找到。理想情况下,它应该在 Linux 中工作并且是免费的,如果这不是一个选项,它仍然很有趣。