0
일반 접두어 (<id>
)를 사용하여이 문법을 사용하고 있으며이를 피하기 위해 변형하고 싶습니다.일반적인 접두어를 피하기 위해 문법을 변환하십시오.
void Components() : {}
{
(Read() | Write())* (<id>Assignment())* <id>Declaration() (Read() | Write() | <id>(Assignment() | Declaration()))*
}
문제는 (<id>Assignment())* <id>Declaration()
입니다. 문법은 0 개 이상의 과제/읽기/쓰기 문장을 가질 수 있지만 적어도 하나의 선언문을 포함하고 어떤 순서로든 문장/선언문을 가질 수 있습니다.