문제

PEGJS를 사용하여 토큰을 일치시켜야합니다.

?xxx ?yyy
.

이 문제가 될 것으로 생각했을 것입니다 :

variable 
   = str:?[a-z]+ {  console.log('---->>>',str); return str.join(""); } 
.

소스를 구문 분석하고 오류가 발생했습니다 :

객체?'가입'은 아무 방법이 없습니다

str 변수가 일치하는 토큰의 배열이 아니기 때문입니다 ... 이것이 어떻게해야합니까?

도움이 되었습니까?

해결책

그룹 리터럴을 함께 그룹화 할 수 있습니다 :

variable 
    = str:("?"[a-z]+)
.

str["?",["a","b","c"]]에 대한 ?abc가 될 것이거나, ?가 반드시 첫 번째 char가 아니라면 클래스에 포함시키는 경우 :

variable 
    = str:[?a-z]+
.

일반 배열 ["?","a","b","c"]를 얻을 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top