簡體   English   中英

關於文法的跟隨集

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM