2010-06-21 3 views

답변

2

Qt가 유용한 모든 기능이 문자 Q로 시작해야한다고 생각하는 프로그래머를 만드는 모든 기능을 갖춘 프레임 워크로 진화 한 것은 흥미 롭습니다. Very dot-netty. Qt는 언어의 최상위에서 실행되는 클래스 라이브러리 일뿐 아니라 일을 끝내는 일상적인 라이브러리를 사용하는 것을 배제하지 않습니다. 특히 사용자 인터페이스를 제공하는 것과 관련이 거의없는 라이브러리 인 경우 Qt가 그렇게 잘하는 것입니다.

어휘 분석 및 구문 분석이 잘 수행되는 라이브러리가 많이 있습니다. Lex와 Yacc, Flex와 Bison 다음으로 시작합니다. 오류 메시지에 대해 Qt를 활성화하기 만하면 쉽게 지원됩니다.

+3

이 플립 사이드는 .net 녀석들과 동일합니다. 일단 사용하면, 사용할 수도 있습니다. 모든 비트는 이미 사용자가 설치했다고 가정했기 때문에 가능합니다. 물어볼 말이있어. – dmckee

+3

Qt는 표준 C++과 달리 유니 코드에 대한 유용한 접근법도 제공합니다. 이를 염두에두고 Qt에서 텍스트 처리 요구 사항을 살펴 보는 것은 논리적입니다. – MSalters

+1

QLALR (링크 : https://wiki.qt.io/Qt_Add_ons_Modules)이라는 yacc/bison 대신 Qt를 사용할 수 있습니다. 그렇다면 왜 렉서와 비슷한 대체물이 없을까요? –

2

QXmlReader에는 어휘 처리기를 정의 할 수 있으므로 일반 텍스트의 경우 QRegExp을 사용할 수 있습니다. 완전한 어휘 분석기를 원한다면 Quex을보십시오 (Qt는 아니지만 입력을 기반으로 C++ 코드를 생성하는 데 사용됩니다).

0

당신이 그것을 사용할 수 있다면 ... (당신이 나에게 묻는다면 그것은 꽤 복잡합니다!) boost로부터 Spirit 라이브러리가 있습니다.

이것은 파서를 실행하기 위해 컴파일해야하는 다른 파일을 생성하지 않는다는 점에서 "동적으로"사용될 수 있습니다.

http://www.boost.org/doc/libs/1_48_0/libs/spirit/doc/html/spirit/lex.html

그러나 당신이 그 (것)들을 포함 할 경우에도 단지 #INCLUDE 항상 잘못된 순서로 (오른쪽 작동하지 않거나 문서는 튜토리얼과 일치하지 않을 수 있기 때문에 그것은 (내 관점을) 복잡, 나는 너무 잘 모르겠다.) 그러나, 나는 그것을 사용하는 많은 사람들을 본다!