나는 Haskell Parsec 라이브러리를 사용한 문자열 파싱을 위해이 파서를 가지고있다. 내 언어로Parsec을 사용한 문자열 토큰의 어휘 분석
myStringLiteral = lexeme (
do str <- between (char '\'')
(char '\'' <?> "end of string")
(many stringChar)
; return (U.replace "''" "'" (foldr (maybe id (:)) "" str))
<?> "literal string"
)
문자열이 ''
(예 : 'this is my string'
)의 내부 알파 NUM 문자로 정의하지만, 이러한 문자열은 또한 내부 '
를 포함 할 수 있습니다 (이 경우 '
다른 '
, 전로 이스케이프해야합니다 'this is my string with '' inside of it'
).
문자열의 구문 분석 중에 '
이 나타날 때를 기다리며, 다른 문자가있는 경우 '
(없으면 반환하고, 문자열의 끝을 반환)을 결정합니다. 그러나 나는 그것을 어떻게하는지 모른다. 어떤 아이디어? 감사!
우수! 고마워요! –