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