2013-08-17 2 views
0

다음과 같은 간단한 pegjs 문법은 잘 작동 ""공백 규칙을 처리하는 데 실패 : 그것은 http://jsfiddle.net/4V3Zt/에서 확인할 수있다이유는 무엇입니까 pegjs은 *이

start 
    = sentence 

sentence 
    = word ws sentence 
/word 

word 
    = [a-z]* 

ws 
    = " " 

. 문법은 http://pegjs.majda.cz/online에도 붙여 넣을 수 있습니다.

는 I는 WS는 임의의 공백 공간을 허용하는 규칙을 변경하는 경우 :

ws 
    = " "* // add an asterisk to allow " ", " ", " ", ... 

파싱 슬로우 최대 호출 스택 예외 실패. (jsfiddle를 사용하는 경우 브라우저 도구에서 예외가 발생합니다. 예외는 node.js 환경에서도 발생하므로 확실히 pegj와 관련됩니다.)

이 ws 규칙의 * 문제는 무엇입니까?

답변

1

* 대신 +을 사용하십시오 (word도 마찬가지 임).

*은 빈 문자열과 일치 할 수 있습니다. +에는 하나 이상의 인스턴스가 필요합니다.

관련 문제