context-free-grammar相关内容
所以问题是关于下面的语法。我正在尝试一种小型解释语言,这很有趣(我们在课堂上了解了一些编译器设计,所以我想将其带入一个新的水平,然后自己尝试一些方法)。我在尝试使非终端符号 Expr 陷入困境。 声明:: = Expr SC Expr :: = / *我在这里需要帮助* / Assign :: =名称相等Expr AddSub :: = MulDiv {(+ |-)AddSub
..
我不太清楚上下文无关语法中的歧义概念。如果有人可以帮助我并解释这个概念或提供很好的资源,我将不胜感激。 解决方案 T * U; 这是指针声明还是乘法?在知道真正的 之前,您无法知道。 p> 因此,表达式的语法取决于表达式的语义(含义)。那不是上下文无关的-在上下文无关的语言中,那只能是一件事,而不是两件事。 (这就是为什么他们不让这样的表达式成为 D “中的有
..
给出CFG S-> a S b | c | d 我想写一个谓词,例如 grammar('S',句子) strong>会生成所有可能的 句子,例如 句子= acb, 句子= acd, 句子= c, 句子= ab ...................... 使用最左导数,如果遇到的符号是 terminal ,则应打印出该终端,如果遇到符号为非终结符
..
试图找出在上下文无关的语法中删除左递归的方法。我已经习惯了某些形式,但这使我有些困惑。 S-> S {S} S | (A)| a A-> {S} A | epsilon 我还必须设计一个不错的解析器,我可以做到。但是,弄清楚这种左递归(尤其是在第一个递归上)让我感到困惑。 解决方案 尝试一下: S-> a [{S} S] | ([A])[{S}
..
最近,我发现了python模块 pyparsing ,这是通过编写语法而不是解析器来解析数据的绝佳工具。我是无上下文语法的新手,因此请更正此问题中的所有错误假设。 Pyparsing可以实现BNF( Backus–Naur形式)的上下文无关文法。该语法可以递归,但是可以向前看吗?自从偶然发现这个问题以来,我一直在想这个问题的答案 。让我给你一个具体的例子。考虑以下字符串: 1 2 3
..
这是CFG: S-> T | V T-> UU U->抗体ab V-> aVb | aWb W-> bWa | ba 因此这将接受以下形式: {a ^ nb ^ na ^ mb ^ m | n,m> = 1} U {a ^ n b ^ m a ^ m b ^ n | n,m> = 1} 这是我正在使用的代码: in_l
..
我在理解LR(1)-项目中的超前原理方面遇到困难。 以一个具有以下语法的示例为例: S-> AB A->抗体b B-> d 然后,第一个状态如下所示: S-> .AB,{向前看} A-> .aAb,{向前看} A-> .b,{向前看} 我知道向前看是什么,但我不知道如何计算它们。 我已经在Google上搜索了答案,但找不到
..
对于给定的上下文自由语法: S-> G $ G-> PG | P P-> id:R R-> ID R | epsilon 如何重写语法使其为LR(1)? 在解析输入“ id:.id”(其中“。”)时,当前语法具有移位/减少冲突。是解析器的输入指针。 此语法产生满足正则表达式(id:(id)*)+ 的语言 解决方案 很容易为同一语言生成LR(1)
..
我如何找到二进制数为5且可被1除为MSB的语法,并找到L的逆数? 因此,我需要一个生成如下数字的语法.. 5 = 101 10 = 1010 15 = 1111 20 = 10100 25 = 110011 等等 解决方案 我假设这是家庭作业,您只需要一个提示即可。 让我们考虑一个类似的问题,但是以10为底。我们如何为3整除的数字编
..
在无数次阅读了关于Stackoverflow上的“如何使用Regex解析HTML”的问题之后,我再次对语法产生了兴趣,抓起了大学脚本,几分钟后,我想知道自己过去如何我的考试。 作为一个简单的练习(我希望是这样的“简单”),我试图编写一个生成有效python元组的CFG(仅出于简单起见)使用标识符 a , b 和 c )。经过一段美好的时光,我现在想到了这个: G =({Tuple,T
..
如何为以下语言构建上下文无关的语法: L = {a ^ lb ^ mc ^ nd ^ p | l + n == m + p; l,m,n,p> = 1} 我首先尝试: S-> abcd | aAbBcd | abcCdD | aAbcdD | AabBcCd ,然后 A =其他。 ..但我无法正常工作。 。 我想知道如何记
..
有人可以用外行人的术语解释一下吗? 什么是无上下文语法? 什么是Backus Naur形式? 如何使用此符号? 如何进行字符串派生? 如何描述语言语法? 解决方案 上下文无关文法(CFG)G是四元组(V,Σ,R,S),其中 V:一组非终端符号 Σ:一组终端(V∩ Σ=Ǿ) R:一组规则(R:V→(VUΣ)*) S:起始符号 CFG示例:
..
我正在尝试开发一个基于语音的应用程序,该应用程序可以接受用户输入作为语音并根据输入执行一些操作。这是我对这项技术的第一次尝试,我在开发它的同时正在学习。 我正在使用dotnet 4附带的Microsoft SAPI识别语音。到目前为止,我已经了解了它支持的两种模式。 语音识别(SR)有两种操作模式: 听写模式-一种不受约束的自由形式的语音 解释模式,使用 识别器针对特定语言提
..
我正在学习与上下文无关的语法,而且我不了解如何用C或C ++这样的编程语言来标识表达,因子和术语。 假设我们有一个赋值语句 id:= E ,其中E是任何算术表达式。 术语是什么?什么是表情?而实际代码中的因素是什么? 我们可以拥有 int i = 3,j = 14 int i = 3 + j * 14; 非常感谢。 解决方案 “因数”,“项”
..
Python提供了哪些工具来帮助解析上下文无关的语法? 当然可以自己滚动,但是我正在寻找一个可以为给定CFG生成解析器的通用工具。 解决方案 我热烈推荐 PLY -它是Python中的Lex / Yacc克隆,它以复杂的方式使用语言的自省功能,可以很自然地指定语法。回想一下,Yacc是CFG在可理解的DSL中的体现,它定义了解析方式。 我用它来实现用于ANSI C的解析器,并且
..
可能重复: 是在括号内的块用于返回一个值有效的方法?在括号的哪个版本的c中,括号内的块用于返回有效值? 以下是典型MAX宏的类型安全版本(在gcc 4.4.5上有效): #define max(a,b)\ ({__typeof__(a)_a =(a ); \ __typeof__(b)_b =(b); \ _a> _b?_a:_b;}) 在这里,我们看
..
我需要一个CFG来生成回文以外的字符串。已经提供了解决方案,如下所示。(计算理论简介-Sipser) R-> XRX | S S-> aTb | bTa T-> XTX | X | X->一个| b 我对这种语法的工作原理有一个大致的了解。它要求通过产生 S->插入一个子串,该子串的任一半上都有相应的不等字母。 aTb | bTa ,从而
..
我有这个正则表达式: regex =%r {\A(? a\ g a | b\g b | c)\Z} x 当我针对多个字符串进行测试时,它似乎与上下文无关的语法一样强大,因为它可以正确处理递归。 regex.match(“ aaacaaa”) #=> #
..
我试图找到乔姆斯基提出的形式语法的四个层次(无限制,上下文相关,上下文无关,常规)的简单(即非正式)解释。 自从我学习形式语法以来已经有一个时代了,各种定义现在让我难以理解。需要明确的是,我不正在寻找随处可见的正式定义(例如,此处和此处-我可以在Google以及其他任何人身上使用Google,甚至可以是任何形式。取而代之的是,我希望找到的是简洁明了的解释,它们并没有为了完整性而牺牲清晰度。
..
我有以下问题: 语言L1 = {a ^ n * b ^ n:n> = 0}和L2 = {b ^ n * a ^ n:n> = 0}是 上下文无关的语言,因此它们在L1L2下关闭,因此L = {a ^ n * b ^ 2n A ^ n:n> = 0}也必须是上下文无关的,因为它是由 闭包属性生成的。 我必须证明是否是否正确。 所以我检查了L语言,但我认为它不是上下文无关的,所以我
..