この属性文法の書き方は?正規表現の属性文法
スターでの制作についてはわかりません。
正規表現の文脈自由文法を設計します。これを属性文法とし、開始記号に付けられたアトリビュート文法を、正規の 表現で表される言語(文字列の集合)であるとします。正規表現は、空、記号、2つの正規表現の連結、垂直バーで区切られた2つの正規表現、星の後に続く正規表現、 またはカッコ内の正規表現にすることができます。たとえば、正規表現 'l(l | d)*'に対して、あなたの属性 文法では、lとそれに続くlまたはdの0以上のすべての文字列の(無限の)集合を構築する必要があります。
ありがとうございました。
私の部分の答え:! RE :: = E {RE。 =(RE2):: RE1} =空集合{RE1.set = RE2.set} RE :: = {記号RE.set = {記号}} RE1 :: = RE2 + RE3 {RE1。 set = RE2.set union RE3.set} RE1 :: = RE2 {RE1 = RE2.set} | RE3 :: RE3 :: REA1 :: = RE2 :: {RE1} = RE2.set = RE2.set} – NoviceCai