0

누군가가이 패턴에 대한 CFG가 무엇인지 말해 줄 수 : 여기 /var/{id}문맥 자유 문법

는, VAR는 여러 번 반복 될 수 있지만 패턴은 항상 {id}

로 끝

따라서 이러한 모든 유효한 경우는 다음과 같습니다

/var/var/{id} 

/var/var/var/var/{id} 

/var/{id} 

나는 지금까지이 문법을받은했습니다

start::= token 

token::= token expr token 

token::= "/" 

expr::= "var" | "{id}" 

하지만 나는 그 권리를 생각하지 않습니다. 도움을 주시면 감사하겠습니다. 감사!

답변

0

거의 다 왔어! 여러분이 지금 가지고있는 문법은 /var/var/var/{id}/과 같은 문자열을 생성 할 것이고 /{id}/var/var/{id}/var/ 같은 문자열을 생성 할 것입니다. 따라서 expr 규칙에서 {id}을 제거하면됩니다. 그러나 언어의 정의에 맞게 {id}을 마지막으로 붙이면됩니다. 이는 start 규칙에서 수행 할 수 있습니다. 결과 문법은 다음과 같습니다.

start::= token "{id}" 
token::= token expr token 
token::= "/" 
expr::= "var"