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

context-free-grammar - 铁路图是否有扩展来捕获异常?

铁路图是一种可视化上下文无关语法的流行方法,您可以将 Backus-Naur Form 映射到这些图表。但是BNF 的一些变体,例如W3C-BNF允许异常(因为上下文无关语言不会在差异下关闭,这些异常必须是常规的)。我想在铁路图中可视化带有异常的语法。我应该发明自己的图形符号扩展还是有人已经对此进行了实验?

这是一个例外规则的例子(是的,你也可以毫无例外地表达这个特定的语法,但这不是重点):

异常可以是任何常规语法。我考虑过通过某种特殊类型的箭头或线条(这里用感叹号表示)添加与非终端符号连接的异常:

PS:语法错了,应该是

也许否定的非直觉使用是它在正式语法中很少使用的原因之一?

0 投票
1 回答
1256 浏览

programming-languages - 关于BNF的问题

我有这个用 BNF 写的语法。如何将其转换为 + 优先于 * 并强制 + 正确关联?

这是我的解决方案:

如何检查给定语法的正确性?任何的想法?
谢谢,

0 投票
1 回答
248 浏览

bnf - C 的 BNF 的起始状态是什么?

我不知道C 的 BNF中哪个是起始状态

有谁知道?

0 投票
3 回答
379 浏览

context-free-grammar - 常用表达

首先,我不知道这是否是我所要求的正确翻译。

在我的一门课程中,我们只是盯着学习正则表达式、形式语言等。

在这种情况下,假设我从 1R 开始,然后我可以继续使用 1R 或 0R。

如果我从 1R 开始,那么只有 1....那么句子(在这种情况下是二进制数)是完整的,对吗?因为我不能在之后“附加”一些东西,所以说 1R 然后我选择 1 然后我再次选择 1R ?

在此先感谢,如果不正确,请重新标记/移动帖子。


添加:

如何生成 1100110?

这不是家庭作业,它是来自 powerpoint 的示例/问题。我不明白这是怎么做到的。

0 投票
1 回答
777 浏览

presentation - EBNF 演示示例?

任何人都知道用于电子媒体(即 HTML)的扩展巴科斯-瑙尔表格演示的好例子吗?

我正在寻找有关形式而非内容的建议——我希望使其尽可能具有可读性,以便轻松区分规则、终端和 EBNF 符号。

0 投票
2 回答
1096 浏览

validation - 电子邮件验证问题 [abnf] [RF 5322]

在下面的句子中是什么意思1*( atext / "." ) "@" ldh-str 1*( "." ldh-str )

有人可以简单地说一下吗?

与以下 [ABNF] 产生式匹配的任何字符串:

其中 atext 在 [RFC 5322] 中定义,ldh-str 在 [RFC 1034] 中定义。

0 投票
2 回答
245 浏览

parsing - Yacc 解析器语法错误。诠释 X; 分别读为 int X 和 ;

问题描述

在我的 yacc 解析器语法中,我定义了以下规则和相应的操作(参见下面的program.y)。解析int X;应该有推导type => TOK_INTand variable_list => TOK_VARIABLE,然后这些与以 a 结尾的声明匹配statment ;。但是,将其读作int Xand ;。也就是说,两个单独的语句。谁能明白为什么?

程序.y

0 投票
2 回答
354 浏览

python - 用于 WikiLeaks 电缆的基于 Python 的容错解析器

前段时间,我开始为WikiLeaks 发布的电缆编写基于BNF 的语法。但是我现在意识到我的方法可能不是最好的,我正在寻找一些改进。

一个机箱由三部分组成。头部有一些RFC2822风格的格式。这解析通常是正确的。文本部分有一个更非正式的规范。例如,有一条REF线。这应该以 开头REF:,但我发现了不同的版本。以下正则表达式捕获大多数情况:^\s*[Rr][Ee][Ff][Ss: ]. 所以前面有空格,不同的情况等等。文本部分主要是带有一些特殊格式标题的纯文本。

我们要识别每个字段(日期、REF 等)并放入数据库。我们选择了 Python 的 SimpleParse。目前,解析在它无法识别的每个字段处停止。我们现在正在寻找更容错的解决方案。所有字段都有某种顺序。当解析器无法识别某个字段时,它应该在当前字段中添加一些“未识别”-blob 并继续。(或者也许你在这里有一些更好的方法)。

你会建议什么样的解析器或其他类型的解决方案?周围有更好的吗?

0 投票
2 回答
603 浏览

xml - 可以自动将 ABNF 转换为 XML 吗?

是否可以自动将 ABNF 转换为 XML?特别是,我需要将用 ABNF 编写的语音识别语法转换为 XML。谢谢。

0 投票
1 回答
218 浏览

regex - 解释 RFC 2141 中 NID 的 BNF 语法

我无法理解RFC2141中的一些BNF语法。

线是<NID> ::= <let-num> [ 1,31<let-num-hyp> ]。我认为这意味着它<NID>是一个字符串的符号,受两个规则的约束:

  1. 字符串必须以任何<let-num>字符的单次出现开始。
  2. 此字符后面可能出现 0-31 次出现*的任何<let-num-hyp>字符。

我读对了吗?因为,如果我是,其中的一些含义有点令人困惑。

*相当于“可选,1-31 次出现

RFC2141<NID>中(命名空间标识符)的完整 BNF 语法是: