问题标签 [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.
scala - 语法、Scala 解析组合器和无序集
我正在编写一个将接受各种“命令”字符串的应用程序。我一直在查看 Scala 组合器库来标记命令。我发现在很多情况下我想说:“这些标记是无序的集合,因此它们可以按任何顺序出现,有些可能不会出现”。
以我目前的语法知识,我将不得不定义所有序列组合(伪语法):
所以我的问题是,考虑到 tokenA-C 是独一无二的,是否有更短的方法来使用语法定义一组任意顺序?
javascript - ECMAScript 的 EBNF?
我正在尝试找到 ECMAScript 的良好 EBNF 描述,但到目前为止我还没有找到任何完整的内容。
有任何想法吗?
scala - Scala Parser 令牌分隔符问题
我正在尝试为以下命令定义语法。
第二个命令应标记为:
当我在下面定义的语法上运行此输入时,我收到以下错误消息:
据我所见,它失败了,因为匹配消息单词的模式与属性键:值对的键模式几乎相同,因此解析器无法判断消息在哪里结束以及属性从哪里开始。我可以通过坚持为每个属性使用开始令牌来解决这个问题,如下所示:
但我更愿意让命令尽可能接近自然语言。我有两个问题:
错误消息的实际含义是什么?我将如何修改现有语法以适用于给定的输入字符串?
emacs - Emacs 有 BNF 模式吗?
我必须编辑大量 .bnf 格式的语法文件。Emacs 中有这种模式吗?
我查看了 CEDET 的语义包,似乎它曾经有一个 bnf 模式,但现在没有了。这个片段是可谷歌搜索的,但语义-bnf-mode 似乎不存在:
actionscript-3 - AS3 语法:最准确
我正在寻找一种准确的 AS3 语法(格式不是问题,但我认为 ANTLR 将是最有特色的)用于我正在制作的练习语法。
AS3 最准确的语法是什么?
grammar - 语法句法和语言学
我真的需要以一种可以被机器翻译并且严格基于规则(没有统计数据)的方式描述英语句子结构,它不一定是上下文无关的语法,但这会更好(因为它不能完全描述它)。我找到的最好的是 BNF,但它真的很基本。我需要一些没有例外的东西,除非是模棱两可的。有链接吗?
.net - 任何具有测试功能的 BNF IDE
我正在研究一种新语言,在编写语法时,我希望能够测试语法的完整性、冲突和类似情况。我并不真正关心底层解析器生成器(但最好使用 .NET 的一个)
因此,简而言之,功能列表将是:
- 文本编辑器构建功能
- 语法/语义错误报告
- 冲突报告
- 语法测试功能(即在预期语法中编写代码以验证语法定义正确性的窗口)
一个名为 Irony 的 CodePlex 项目确实有一些与我所要求的类似的东西,但不支持将语法编写为所需的 BNF。
algorithm - 未转义的用户名是否与 BNF 不兼容?
我有一个需要解析的软件的(专有)输出。可悲的是,有未转义的用户名,我正在抓挠我的头发,试图知道我是否可以描述我需要使用 BNF(或 EBNF 或 ABNF)解析的文件。
这个问题,过于简单化了(它实际上只是一个例子),可能看起来像这样:
(数据) ::= <用户名>
<用户名> ::= (其他类型的数据)
并且在某些情况下,用户名也可以出现在一行的中间,而不是出现在左侧或右侧。
问题是用户名未转义,并且对用户名没有足够的限制(它们是可打印的 ASCII,最多 20 个字符,并且不能包含换行符)。因此,例如,“=”将是一个完全有效的用户名。“= 1 = john = 2”也是如此(因为用户在登录时可以选择他们想要的任何用户名,并且这些在我得到的输出中显示为未转义)。
我问是因为我的解析器阻塞了一些非常有创意的用户名(再一次,不在我的控制范围内,它们很“奇怪”,我需要处理它),我找不到一个简单的方法来处理这个问题。另请注意,我事先不知道用户名(例如,我无权访问包含用户创建的所有用户名的数据库)。
那么不受限制和未转义的用户名是否与 BNF 不兼容?
PS:如果我犯了错误,请对我保持冷静,这是我在 stackoverflow 上的第一篇文章 :)
bnf - EBNF 到 BNF 转换
我有一个家庭作业问题,我可以使用一些帮助。我需要将以下 EBNF 语句转换为 BNF
到目前为止,这就是我想出的;
感觉不对,主要是因为它是 WAG。我的书(编程语言的概念,Sebesta)中的示例根本没有帮助我。因此,如果有人有任何见解,将不胜感激。谢谢!