文法は、右直線または左直線のいずれかであれば規則的です。再帰と交替を伴うregural文法をregural式に変換する方法
正規文法は、特殊な性質を持っている:その右側に(ルート1を除く)非終端すべての を代入することにより、あなたはそれを を下に減らすことができますので、のは、それは特殊な性質を持っていることをことをThis tutorial主張のみ 端子とオペレータ右側...端子および演算子の低減 発現を有するルートのための単一の産生が、より一層 コンパクトな形式で書くことができ、正規表現と呼ば
だから私はそれをテストすることに決めました以下に限定されている
IdentifierName ::
IdentifierStart
IdentifierName IdentifierPart
と仮定IdentifierStart
とIdentifierPart
:regural式にregural EcmaScript grammar for IdentifierNameをアイデアと変換
IdentifierStart :: IdentifierPart ::
A A
B C
C &
$
_
しかしIdentifierName
ための文法は両方持っているので、私は続行するかどうかはわかりません再帰と交替。どんな助け?
@Bergiが示した結果正規表現を見つけるのではなく、アプローチにもっと興味があります。[ABC$_][AC&]*
です。
IdentifierNameはIdentifierNameの後にIdentifierPartまたはIdentifierStartのいずれかで、IdentifierStartがSでIdentifierPartがPの場合、合法IdentifierNamesはS、SP、SPPなどです。IEとSのいくつかの数が続きます。あなたはそれに合う正規表現を考えることができますか? –
ちょうど '[ABC $ _] [AC&] *' – Bergi
@Bergi、ありがとうございます。しかし、私は正規表現そのものではなく、置き換えのアプローチにもっと興味があります。または、例はあまりにも単純すぎるので、アプローチに従わずに正規表現を思い付くことは可能ですか? M.Aroosi @ –