필자는이 문제를 직접 조사해보고 Flex 메일 링리스트를 읽고 누군가가 그것에 대해 생각하는지 확인했습니다. Flex에 유니 코드를 읽으려면 복잡한 작업이 필요합니다 ...
UTF-8 인코딩이 가능하며 대부분의 다른 인코딩 (16s)은 자동 테이블을 구동하는 대용량 테이블로 이어집니다.
하는 일반적인 방법은 지금까지입니다 :
것은 단순히 하나의 UTF-8 문자와 일치하는 패턴을 기록했다 했는가. 그들은 다음과 같이 보입니다. 그러나 나는 이렇게 오래 전에 이것을 썼기 때문에 은 UTF-8 사양 을 다시 읽으려고 할 것입니다.
유니 코드 문자열을 원하기 때문에 을 조합해야합니다. 은 단일 문자가 아닙니다.
UB [\200-\277] %%
[\300-\337]{UB} { do something }
[\340-\357]{UB}{2} { do something }
[\360-\367]{UB}{3} { do something }
[\370-\373]{UB}{4} { do something }
[\374-\375]{UB}{5} { do something }
는 메일 링리스트에서 촬영.
UTF-8 지원을위한 적절한 패치를 더보고 난 다음에 보겠습니다. 위의 솔루션은 큰 .l 파일에서 유지 보수가 불가능한 것으로 보입니다. 그리고 정말 못 생겼어! 비슷한 범위를 사용하여 '.'을 만들 수 있습니다. 모든 ASCII 및 UTF-8 문자를 일치 시키려면 대체 규칙을 사용하지만 여전히보기 흉한 표현입니다.
희망이 도움이됩니다. 또한 도움이 가능성이있는 negatet의 characterclass를 작성
정상적으로 작동한다면, 적절한 유니 코드 지원이 좋을 것입니다. –
동의. 지금 다른 이슈에서 실행 중입니다. 플렉스는 "if (yychar <= YYEOF) {/ * 스캐닝이 끝났습니다 * /}"를 체크하지만 UTF-8 문자는 부정적입니다 : ( –
문제가 많습니다. 내부에서 ecs 코드, 테이블 생성기 등을 다시 쓰는 임무가 될 것입니다. 처음부터 시작하는 것이 더 나을 수도 있습니다 : –