표현식 문법 (peg.js) 구문 분석에서 예약 된 단어 구문 분석

StackOverflow https://stackoverflow.com//questions/11712909

  •  13-12-2019
  •  | 
  •  

문제

the 유사한 질문 저자의 웹 사이트 나에게 다음과 같은 솔루션을 제공합니다 :

Identifier "identifier"
  = !ReservedWord [A-Za-z_]+

ReservedWord
  = "test"
  / "abc"
.

이 솔루션은 "test_var"와 같은 식별자를 구문 분석 할 수 없습니다.

이 예에서 문법! 예약 워드는 "TEST"또는 "ABC"로 시작하는 모든 변수를 독점 할 것입니다.

미리 감사드립니다.

도움이 되었습니까?

해결책

ReservedWord는 예약 된 단어가 완료되면 다음과 관계없이 성공합니다.따라서 더 많은 식별자 문자가 포함 된 더 긴 일치가있는 경우 해결 방법은 실패합니다.

Identifier "identifier"
  = !ReservedWord [A-Za-z_]+

ReservedWord
  = ( "test" / "abc" ) ![A-Za-z_]
.

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