61得票4回答
LL(1), LR(1), LR(0), LALR(1)语法的例子是什么?

是否有一个在线资源,包含一些主要解析算法(LL(1), LR(1), LR(0), LALR(1))的语法集合?我找到了很多属于这些族群的单个语法,但是我不知道是否有一个好的资源,其中有人编写了一大批示例语法。 有没有人知道这样的资源?

42得票3回答
LALR和LR解析有什么区别?

我了解LR和LALR都是自下而上的语法分析算法,但它们之间有什么区别呢? LR(0)、LALR(1)和LR(1)语法分析有什么差异?我该如何判断一个语法是否为LR(0)、LALR(1)或LR(1)?

38得票7回答
LL解析器相对于LR解析器有哪些优势?

LL解析器在今天的解析器生成工具中相对流行的原因是什么优势? 根据维基百科,LR分析似乎比LL分析有优势: LR分析可以处理比LL分析更广泛的语言,并且在错误报告方面也更好,即当输入不符合语法时,它尽可能早地检测到语法错误。这与LL(k)(甚至更糟的是LL(*)解析器)形成对比,后者可能由...

35得票4回答
C#的lambda表达式语法是否为LALR(1)?

我希望问的问题已经简明地在标题中给出。让我举一个相关语法方面的例子:identifier_list : identifier | identifier_list identifier; lambda_arguments : '(' identifier_list ')...

21得票3回答
C#和Java的语法是否是LALR(x)?

我想知道C#和Java语法是否为LALR(x)?如果是,x的值是多少? 编辑: 在接受正确答案后,我认为最好将这个问题改成这样: 是否有能够解析当前发布的Java(版本7)或C#(版本4)的LALR(x)解析器?如果有,x的值是多少?

20得票2回答
LALR与LL解析器的比较

我一直在使用lex/yacc,现在我正在尝试切换到ANTLR。主要的担忧是ANTLR是LL(*)解析器,而yacc则是LALR解析器。我习惯了自下而上地思考问题,不确定LL文法的优势在哪里。人们说LL文法更容易理解,而且现在更受欢迎。但似乎LR解析器更强大,例如LL解析器无法处理左递归,虽然似...

18得票2回答
解析器的性能:PEG vs LALR(1)或LL(k)

我看到有些说法声称一般情况下,优化的PEG解析器无法比优化的LALR(1)或LL(k)解析器更快。(当然,解析性能取决于特定语法。) 我想知道是否存在任何PEG解析器的特定限制,无论是普遍有效还是针对某些PEG语法子集,这些限制会使它们在性能方面劣于LALR(1)或LL(k)。 尤其是,我...

14得票1回答
为什么这个LR(1)文法不是LALR(1)?

这不是我的作业,我正在尝试理解LALR(1)语法。所以我找到了这篇文章S -> aEa | bEb | aFb | bFa E -> e F -> e 我写了LR项,但是我无法弄清楚为什么这是一个LR(1)语法而不是LALR(1)? 有人能帮忙吗?谢谢

14得票5回答
Packrat解析与LALR解析

很多网站都声称packrat解析器可以在线性时间内解析输入,因此乍一看它们可能比由yacc或bison工具构建的LALR解析器更快。 我想知道当使用常见输入(如编程语言源文件)而不是任何理论输入进行测试时,packrat解析器的性能是更好还是更差于LALR解析器的性能。 有人可以解释一下这两种...

13得票2回答
讽刺:如何使KeyTerm优先于变量?

Irony 语法的相关部分:var VARIABLE = new RegexBasedTerminal("variable", @"(?-i)\$?\w+"); variable.Rule = VARIABLE; tag_blk.Rule = html...