我有以下简单问题:如果语言是LL(0),可以 它里面有不止一个字?
我认为答案是否定的,因为如果有两个字,那么你 无法阅读它们来分辨哪一个
答案 0 :(得分:3)
让我们从定义开始:
如果LL解析器在解析句子时使用k前瞻标记,则称为LL(k)解析器
和前瞻的定义:
Lookahead建立了解析器可以用来决定它应该使用哪个规则的最大传入令牌。
假设您的语言是随机命令流,彼此之间没有任何依赖关系 - 那么您可以拥有任意数量的单词。
<强> EDITED 强> 使用野牛符号:
%token A B
%start single
single: A | B;
所以你根本不需要先行,但这个语法包括2个单词A,B