시작/끝 문자와 같은 문자도 허용하는 구문 분석기를 만드는 방법은 무엇입니까? 다음 예를 사용 :시작 부분과 끝 부분에있는 문자를 사용하는 파서를 만드는 방법은 무엇입니까?
'Isn't it hot'
두 번째 작은 따옴표가 시작과 작은 따옴표 끝 사이에있는 내용의 한 부분으로 인정되어야한다. 나는이 같은 파서 만든 :
char("'").seq((word()|char("'")|whitespace()).plus()).seq(char("'"))
을하지만 같은 실패
Failure[1:15]: "'" expected
내가 사용하는 경우는 "어떤() | 숯불 (" ' ") 다음은 탐욕의 원인이 끝 따옴표를 소비 뿐만 아니라 오류.
은 내가 하나를 작성하려고했지만 탐욕 끝 마커를 소비하지 않는 파서를 만드는 방법을 알아낼 수 없습니다? 실제 문법 클래스를 만들어야합니다.
이 문제에 대한 일반적인 해결책은 중간에 작은 따옴표를 인용해야한다는 것입니다. 예를 들어 C#의 축 어적 구문을 참조하십시오. https://msdn.microsoft.com/en-us/library/aa691090(v=vs.71).aspx –