簡體   English   中英

至少一顆Kleene星的無上下文語法

[英]Context-free grammar with at least one Kleene star

我正在嘗試創建上下文無關文法,該文法至少用一顆Kleene星在{a,b}上生成所有正則表達式。 到目前為止,我所做的是:

S ::= A + S | A
A ::= B . A | B
B ::= T | B* | (S)
T ::= a | b | eps

我想這可以生成所有正則表達式,但是我無法理解的是如何定義它,以便該表達式中至少需要一顆Kleene星。

問題是狀態機的典型問題,其中有一個初始狀態和一個“通過”狀態。 解決方案是使右側對應於每個狀態。 我將數字2用作表示通過狀態的規則。

S  ::= S2

S2 ::= A + S2 | A2 + S1 | A2
A2 ::= B2 . A | B . A2 | B2
B2 ::= B* | (S2)

S1 ::= A + S1 | A
A  ::= B . A | B
B  ::= T | B* | (S1)
T  ::= a | b | eps

傳遞表達式是根據傳遞子表達式定義的。 因此,語法將始終在表達式的左側或右側生成一個閉包。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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