토큰은 "?"로 시작합니까?Pegjs에서
-
21-12-2019 - |
문제
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"]
를 얻을 수 있습니다.
제휴하지 않습니다 StackOverflow