parsing 파섹에서 사용자의 도움이 필요하다고 바보 같은 상황이 있습니다.parsec의 단일 인용 문자열에서 단일 qoute char 구문 분석
필자는 |/|로 분리 된 strong/char의 시퀀스를 구문 분석해야합니다. 문자. B | | 'C'|는 ''문자열의 내부하지 않는 한 허용되지 않습니다
[a,b,c,abcd]
공간으로 전환해야한다 'ABCD'
그래서, 우리는있을 수 있습니다. 지금, 내 순진한 시도에서, 나는 a'a와 같은 문자열을 'a'bb'로 파싱 할 수 있지만 aa | b'b는 [aa, b'b]로 변환 할 수없는 상황을 갖게되었습니다. .
이제 파서에게 다음과 같이 '멈춤'을 고려해 보라고 알려주려면 어떻게해야합니까? 또는 공백? (또는이 부분에 영향을주는 문자를 얻으십시오). 입력은 사용자 생성이므로 문자에 의존 할 수 없습니다.
''b'b''을 (를) 구문 분석하려고하고 있지만'singleQuotedChar'에서 작은 따옴표 만 쌍으로 표시되도록 요구합니다. ''b'b'''b'b''''''''b'b'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ''b'b''를 파싱 할 수있게하려면 singleQuotedChar의 정의를 변경해야합니다. – rampion
파서는 중간에 'a'''b'b'를 유지해야한다는 것을 어떻게 알 수 있습니까? 나는 네가하고 싶은 것을 이해하려고 고심하고있다. 브라켓 팅 (bracketing chracter)과 같습니까? 그렇다면 왜 그렇습니까? (가능한 대답 : 이것은 공백이 다른 것을 의미하는 큰 입력의 일부입니다.) – AndrewC
다음과 같은 생각이 들었습니다. 문자열은 일련의 문자 (또는 숫자), 아포스트로피 및 아포스트로피로 묶은 공백 또는 글자 (숫자)와 아포스트로피 (아포스트로피)는 아포스트로피로 묶지 않습니다. 문자열은 수직 막대로 보간됩니다. – AndrewC