context-free-grammar相关内容

Ll-1解析器:Follow-set真的有必要吗?

据我所知,如果输入流中有错误,跟随集会在第一个可能的时刻告诉我。对吗? 因为不然的话,我想知道你到底需要它做什么。考虑到您的解析器在堆栈的顶部有一个非终结点(在我们的类中,我们使用了一个堆栈作为LL解析器的抽象) 即 [TOP] X...[BOTTOM] 下一步将替换X,因为它位于堆栈的顶部。因此,解析器询问解析表对X使用什么派生。 + b 其中+和b都是终端。 ..

语境敏感的标记化是否需要词汇语法中的多个目标符号?

根据ECMAScript spec: 在几种情况下,词汇输入的识别 元素对句法语法上下文敏感,即 使用输入元素。这需要多个目标符号 词汇语法。 两个这样的符号是InputElementDiv和InputElementRegExp。 在ECMAScript中,/的含义取决于它出现的上下文。根据上下文的不同,/可以是除法运算符、正则表达式文字的开始或注释分隔符。词法分析器本身无法区分 ..

扩展至 CFG,它是什么?

考虑以下对上下文无关文法的扩展,它允许规则在左侧具有一个(或多个)终结符,位于非终结符的右侧.即形式的规则: A b ->... 右边可以是任何东西,比如上下文无关语法.特别是,不是要求,右侧的末尾将具有完全相同的终端符号.在这种情况下,此扩展将是上下文相关的.但终端不仅仅是一个上下文.有时,这个终端被称为“推回". 显然,这不再是 CFG(类型 2).它包括类型 1.但它是什么?真的已 ..

用 NLTK 检查英语语法

我开始使用NLTK库,我想检查一个英文句子是否正确与否. 示例: “他看到鲍勃" - 不正确 “他看到鲍勃" - 正确 我阅读了这个,但这对我来说很难.我需要一个更简单的例子. 解决方案 语法检查是 NLP 研究的一个活跃领域,因此目前还没有 100% 的答案(甚至可能不是 80% 的答案).最简单的方法(或至少是合理的基线)是 n-gram 语言模型(将 LM 概 ..
发布时间:2022-01-02 17:54:12 其他开发

C++ 是上下文无关的还是上下文敏感的?

我经常听到声称 C++ 是一种上下文敏感的语言.举个例子: a b(c); 这是变量定义还是函数声明?这取决于符号 c 的含义.如果c 是一个变量,则ab(c); 定义一个名为b 的 类型的变量一个.它直接用 c 初始化.但是如果 c 是一个 type,那么 ab(c); 声明一个名为 b 的函数,它接受一个 c 并返回一个 a. 如果您查看上下文无关语言的定义,它基本上会告诉您所有语法 ..

“现代"的识别力正则表达式

真正的现代正则表达式能识别哪类语言? 每当存在具有反向引用的无限长度捕获组(例如 (.*)_\1)时,正则表达式就会匹配非常规语言.但这本身并不足以匹配 S ::= '(' S ')' | 之类的东西.ε — 匹配括号对的上下文无关语言. 递归正则表达式(对我来说是新的,但我确信存在于 Perl 和 PCRE 中)似乎至少可以识别大多数 CFL. 有没有人做过或阅读过这方面的研究 ..
发布时间:2021-12-02 23:44:50 其他开发

在打字稿AST中获取变量声明类型的正确方法?

查看declarationEmitter,对于变量声明,它具有函数#emitVariableDeclaration,最终调用#writeTypeOfDeclaration.这段代码按照所说的去做——它需要一个变量声明并打印变量及其类型——这正是我想要做的. 问题是,当我复制此代码时,VariableDeclaration 节点没有符号属性……因此,类型始终为“任何".是否缺少初始化“符号"的 ..

是否有工具可以在 ANTLR 和其他形式的 BNF 之间进行转换?

是否有任何工具可以将 ANTLR 语法语法与其他 BNF 语法相互转换?有几种具有规范的形式 Backus-Naur Form(BNF、EBNF、ABNF、W3C-BNF、XBNF...),例如查看此列表.ANTLR 语法语法似乎只是示例描述.我知道 ANTLR 语法文件包含的不仅仅是上下文无关语法的规范,但您应该至少能够转换公共子集 - 有没有人自动完成过? 解决方案 雅各布写道: ..
发布时间:2021-11-11 03:41:38 其他开发

Antlr 3关键字和标识符冲突

惊喜,我正在为项目构建类似SQL的语言解析器. 我主要使用它,但是当我开始对它的实际请求进行测试时,它将可以处理,我意识到它的内部行为与我所想的不同. 以下语法的主要问题是,我为语言关键字" pct_within "定义了词法分析器规则 PCT_WITHIN .这可以正常工作,但是如果我尝试匹配" attributes.pct_vac "之类的字段,则该字段的文本为" attribut ..
发布时间:2021-04-24 19:38:08 其他开发

用常规语言创建语法

我在解决这种特殊语言的语法时遇到一些问题,希望您能提供帮助:语言是:Σ= {x,y,z}A = {w |w∈Σ^ ∗∧| w | _x mod 2> = | w | _y mod 2} 因为这是如此困难,所以我首先尝试将所有属性放在一个语法中,所以| w | _x mod 2> = | w | _y mod 2和w∈Σ^ ∗,但是没有得到像cacbcacb这样的所有组合等等 我得到的是 ..
发布时间:2021-04-24 19:38:05 其他开发

将上下文无关的语法转换为常规语法

E->EAE |(E)|-E |ID A->+ |-|* |/ 终端集为{id,-,+,*,/},起始符号为E. 我想将此语法转换为常规语法.我尝试取消该语法的左递归,然后得到: E->(E)X |-EX |idX A->+ |-|* |/ X->AEX |ε 是它还是我需要做的其他事情? 解决方案 您注定要失败,因为您的语言不是常规语言.没有正确 ..
发布时间:2021-04-24 19:38:02 其他开发

*随机*生成句子

我想根据给定的上下文无关语法随机生成句子. 随机是重要的部分,因为我的语法很大,并且 NLTK 会生成所有与递归均不符的可能话语(即 E-> AE ),并且花费的时间太长,无法在短时间内生成“有趣的"话语(有趣的是,与当前话语之前的其他话语不同). 是否有用于此的Python库?谢谢! 解决方案 NLTK没有提供一种从语法生成随机句子的方法,尽管此相关的SO问题从上下文无关语法 ..
发布时间:2021-04-24 19:37:59 Python

计算前导集和尾随集以实现无上下文语法

我正在寻找一种详细的算法,该算法描述如何在上下文无关的语法中为非终结符生成前导和尾随集. 我发现了这样的东西: https://pl.scribd.com/doc/51358638/16/Operator-优先关系但我不确定它是如何工作的.(请参阅第20页) 假设我们有作品: A-> YaZ |B B-> b 然后,据说Leading(A)= {a},Leading( ..
发布时间:2021-04-24 19:37:56 其他开发

nltk CFG,定义语法规则

已编辑,我需要解析以下句子:“列出飞往丹佛的航班的座位".下面的代码应该工作,但不能.问题出在nltk.CFG.fromstring命令中,我敢肯定其他功能也能正常工作.有什么想法可以在这里正确定义语法规则吗? import nltk从nltk.corpus导入树库#在这里我们定义一个语法导入nltk从nltk.corpus导入树库语法= nltk.CFG.fromstring(“"“S->N ..
发布时间:2021-04-24 19:37:52 其他开发

NLTK FCFG语法标准/规范是什么?

NLTK (自然语言工具包)使您可以使用 nltk.FCFG.fromstring([此处为语法字符串])解析FCFG语法. FCFG语法格式规范在哪里?*?我用谷歌搜索将其杀死,但我只能找到此. *即语法语言规范 解决方案 来自演示: >>>从nltk导入CFG>>>语法= CFG.fromstring(“"“... S->NP副总裁... PP->NP... NP->Det N ..
发布时间:2021-04-24 19:37:49 Python

如何确定上下文无关的语法是否描述了常规语言?

鉴于任意上下文无关的语法,我如何检查它是否描述了常规语言? 我不是在寻找考试“技巧".我正在寻找可以编写的万无一失的机械测试. 如果有帮助,这是我可能会收到的CFG示例.具体来说,请注意,答案必须比查找左或右递归复杂得多,因为存在另一种递归并不自动表示语法是不规则的. S:A B C D X答:A:B:b BB:C:c C cC:D:D d DD:dX:x YX:Y:y XY: ..

在打字稿AST中获取变量声明的类型的正确方法?

看看 declarationEmitter ,对于变量声明,它具有函数 #emitVariableDeclaration ,该函数最终会调用 #writeTypeOfDeclaration .这段代码执行了所说的操作-它需要一个变量声明,并输出该变量及其类型-这正是我要执行的操作. 问题在于,当我复制此代码时, VariableDeclaration 节点没有符号属性...因此,类型始终为" ..