0
私は共通の接頭辞(<id>
)でこの文法を持っています。一般的な接頭辞を避けるための文法の変換
void Components() : {}
{
(Read() | Write())* (<id>Assignment())* <id>Declaration() (Read() | Write() | <id>(Assignment() | Declaration()))*
}
問題は(<id>Assignment())* <id>Declaration()
です。文法は、0以上のAssignments/Read/Write文を持つことができますが、少なくとも1つの宣言と、任意の文/宣言を任意の順序で持つことができます。