메뉴 건너뛰기

AcroSoft

델파이 질문 및 답변

답변 [re] 문법 강조하는 로직을 알고 싶습니다.

관리자 2006.11.13 16:10 조회 수 : 24763 추천:217

>저는 델파이 유저가 아니고, VB를 주로 하거든요..
>
>하다하다 안되서, 문의드립니다.
>
>요점은 문법 강조하는 로직을 알고 싶다는 거구요..
>
>일단 영어가 입력되거나 Paste할때는 상관이 없이 키보드가 입력되는 즉시 문장전체를 검사해서,
>색을 변환해도 될 것 같지만,..
>한글입력중일 경우에가 큰 문제가 있네요..
>한글입력중에는 아스키코드값이 항상 209가 들어와서. ㅠㅠ
>한글 입력중에 로직이 수행되면, 연결되지 않는 글자가 입력되어버리거든요. ㅠㅠ
>어떻게 한글입력이 끝나는 것을 알 수 있는지요?
>
>예를 들어서, "대한민국" 입력시
>01. ㄷ
>02. 대
>03. ㄷㅐㅎ
>04. 대하
>05. 대한
>06. 대한ㅁ
>07. 대한미
>08. 대한민
>09. 대한민ㄱ
>10. 대한민구
>11. 대한민국
>
>이런식으로 자판입력이 되는 거잖아여...
>한 글자가 완성되는 거는 언제 어떤입력이 생겨서 알 수 있는지?
>아니면 한문장이 완성될 경우 어떤입력이 생겨서 알 수 있는지 알고 싶습니다.
>

이건 WM_IME_XXX 관련 메시지를 받아서 처리합니다. 여러가지 메시지가 있는데 자세한 사항은 MSDN등의 API 도움말을 살펴보시기 바랍니다.

>
>그런데 또하나의 문제는 문장이 길어지면 길어질 수록,
>Static문법이 많아지면 많아질수록, 수행속도가 기하급수적으로 저하된다는 문제인데요..
>

AcroEdit도 마찬가지입니다. 문법으로 분류될 토큰이 많으면 많을 수록 속도는 느려집니다.
다만 각 토큰을 처리하는 속도를 최대한 최적화해야 겠지요..


>지금 AcroEdit에서는 어떤식으로 문법강조를 하시고 계시는지 감히 여쭤봐도 될른지요??
>
>구현되어진 모듈을 사용하신다면, 어떤 모듈인지 죄송스럽지만 가르쳐 주시면 감사드리겠습니다.
>

별도의 모듈을 사용하진 않습니다.

>
>VB유저라 델파이 구문도 잘 모르겠고, ㅠㅠ
>렉서를 작성하라고 하셨는데, 구문분석하는 거야 VB로도 대충 구현가능합니다만,
>속도도 안나고, 구문분석 시점을 어디로 두어야 하는지 모르겠어서,.
>간단하게 로직만 설명해주시는 정도도 감사드리겠습니다. ㅠㅠ
>
>도와주세여..
>
위로