[英]On FOLLOW-Sets of Grammars
此處定義了http://slkpg.byethost7.com/llkparse.html FOLLOW_k-Set
“文法中的符號串的FOLLOWk集是文法中的k個長度的最終符號串的集合,它們可以跟隨語法中可衍生的某種句子形式的符號串。”
首先,我對鏈接下的示例有一個疑問,那里有語法4.2
A --> a <Baa> a a
A --> b <Bba> b a
<Baa> --> b
<Baa> -->
<Bba> --> b
<Bba> -->
據說:
FIRST2 ( A ) = { aa, ab, bb }
FIRST2 ( <Baa> ) = { epsilon }
FIRST2 ( <Bba> ) = { epsilon }
FOLLOW2 ( <Baa> ) = { aa }
FOLLOW2 ( <Bba> ) = { ba }
但是我問自己為什么不
FIRST2 ( <Baa> ) = { epsilon, b }
FIRST2 ( <Bba> ) = { epsilon, b }
因為例如也可以從中導出一個b。
再說語法
S -> X
X -> aX
X -> aY
Y -> epsilon
我不確定背景
FOLLOW2(S)
是空的,{epsilon}還是{a,aa}是因為這些字符串是可派生的,還是在S之后緊隨其后的事情很重要,並且由於S是開始符號,所以后面沒有任何內容,但是我應該寫FOLLOW2(S) = \\ empyset或FOLLOW2(S)= {epsilon}?
FOLLOWk(S)對於任何k都是空的,因為沒有任何東西可以跟隨S。 我不知道您的意思是“因為這些字符串是可派生的”,但由於它們不能跟隨S,因此無論如何都無關緊要。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.