16得票5回答
有没有工具可以在ANTLR和其他形式的BNF之间进行转换?

是否有工具可以将ANTLR语法转换为其他BNF语法并从其他BNF语法转换到ANTLR语法?有几种形式的巴克斯-诺尔范式(BNF,EBNF,ABNF,W3C-BNF,XBNF ...)带有规范,例如这个列表。ANTLR语法似乎只是通过示例来描述。我知道ANTLR语法文件包含的不仅仅是上下文无关语...

14得票1回答
Ruby 1.9的正则表达式和上下文无关文法一样强大吗?

我有这个正则表达式:regex = %r{\A(?<foo> a\g<foo>a | b\g<foo>b | c)\Z}x 当我用它测试多个字符串时,它似乎和上下文无关文法一样强大,因为它正确处理了递归。regex.match("aaacaaa") # =&...

14得票2回答
逐步消除这种间接左递归

我见过这个算法可以用来消除所有左递归。但是我在处理这个特定的语法时遇到了问题: A -> Cd B -> Ce C -> A | B | f 无论我尝试什么,最终都陷入循环或者语法仍然是间接左递归的问题。 在这个语法上,正确实现该算法需要哪些步骤?

13得票2回答
在字母表{0,1}上,对于{ w | w <> w^R },它是否是一个上下文无关语言?

我非常希望您能够帮助我决定关于字母表 {0,1} 上的所有单词语言,即那些无法从两侧读取相同的单词,{w | w &lt;&gt; wR} 是否是一个上下文无关语言(也就是说,它可以转化为特定的文法规则)。 我试图通过泵引理证明它不是一个上下文无关语言,但我没有找到会导致矛盾的字符串。 有...

13得票1回答
如何构建LL(k>1)的解析表?

在网络上,有很多例子展示如何从LL(1)分析器的first/follow集构造上下文无关文法的解析表。 但是我没有找到与k>1情况有关的有用信息。即使维基百科也没有相关信息。 我预计它在某种程度上类似,但指向这个领域现有研究的提示将非常有帮助。

13得票2回答
CFG/PEG用于代码补全?

我想知道是否有可能直接使用CFG或PEG语法作为代码补全的基础,而不需要进行修改。据我所知,IDE中的代码补全有时会被操纵、调整甚至硬编码,以使其性能更好。 我想在一个小DSL上完成代码,因此我充分理解语法无法帮助代码补全系统了解库函数等知识。 就我所知,解析器本身至少需要提供一种查询它下...

13得票1回答
如何证明在Chomsky范式下的派生需要2n-1步?

我试图证明以下内容: 如果G是Chomsky正则形式下的上下文无关文法,则对于任何长度为n且属于L(G)的字符串w(其中n≥1),需要恰好2n-1步才能完成w的任何推导。 我该如何证明这一点?

12得票1回答
如何找到递归语法的FIRST和FOLLOW集?

假设我有以下CFG。A -&gt; B | Cx | EPSILON B -&gt; C | yA C -&gt; B | w | z 现在,如果我尝试寻找FIRST(C) = FIRST(B) U FIRST(w) U FIRST(z) = FIRST(C) U FIRST...

12得票3回答
将语法转换为乔姆斯基范式?

将以下语法转换为乔姆斯基范式。给出所有的中间步骤。S -&gt; AB | aB A -&gt; aab|lambda B -&gt; bbA 好的,首先我添加了一个名为S0的新起始变量。 现在我有:S0 -&gt; S S -&gt; AB | aB A -&gt; aab|lambda ...

12得票1回答
有没有一种快速算法来确定上下文无关语言术语的哥德尔数?

假设我们有一个简单的语法规范。有一种方法可以枚举该语法的术语,并保证任何有限术语都具有有限位置,通过对其进行对角线迭代。例如,对于以下语法:S ::= add add ::= mul | add + mul mul ::= term | mul * term term ...