을 표현하기위한 문법 표현, 형식적인 문법은 일반적으로 다음과 유사한 형태의 쉼표로 구분 된 목록을 표현 : 두 번 foo
언급이 피하기 위해 어떤 대안내 경험을 바탕으로 쉼표로 구분 된 목록
foo_list -> foo ("," foo)*
입니까? 이 고안된 예제가 무죄로 보일 수도 있지만 foo
이 아닌 사소한 표현이 발생합니다. 예를 들어 :
foo_list -> (bar | baz | cat) ("," ...)*
...
토큰 (이 경우, (bar | baz | cat)
에서) 앞의 표현을 의미한다 : 내 실험을하는 동안
foo_list -> ((bar | baz | cat)) ("," (bar | baz | cat))*
왜 비 사소한 표정으로 비 터미널을 만들 수 없습니다 : A -> 막대기 | 바스 | 고양이? – fbafelipe
@fbafelipe : 비 터미널이 일반적으로 좋은 해결책이라는 데 동의합니다. 그러나 제 경우에는 새로운 비 터미널에 대한 이름을 만들지 않기를 바랬습니다. 그 중 많은 터미널이 있으며 때때로 중첩 된 식에 나타납니다. –