Вам известен какой-нибудь лексический анализатор или лексер в Qt? - PullRequest
3 голосов
/ 22 июня 2010

Вам известен какой-нибудь лексический анализатор или лексер в Qt? Мне это нужно для разбора текстовых файлов.

Ответы [ 3 ]

2 голосов
/ 22 июня 2010

Интересно, как Qt превратился во всеобъемлющую платформу, которая заставляет программиста, который ее использует, полагать, что все полезное должно начинаться с буквы Q. Очень точная нетти. Qt - это просто библиотека классов, которая работает поверх языка, она не исключает использования повседневных библиотек, которые выполняют свою работу. Особенно, когда эта библиотека не имеет ничего общего с представлением пользовательского интерфейса, работа, которую Qt делает так хорошо.

Есть много библиотек, которые хорошо выполняют лексический анализ и анализ. Это начинается с Lex и Yacc, Flex и Bison, и так далее. Вам нужно только включить Qt для сообщений об ошибках, они с готовностью это поддерживают.

2 голосов
/ 22 июня 2010

QXmlReader позволяет определить лексический обработчик, для простого текста вы можете использовать QRegExp.Если вам нужен полноценный лексический анализатор, взгляните на Quex (не специфично для Qt, но используется для генерации кода C ++ на основе вашего ввода).

0 голосов
/ 30 января 2012

Если вы можете использовать это ... (это довольно сложно, если вы спросите меня!) Есть библиотека Spirit из boost.

Это можно использовать "динамически" в том смысле, что она не генерируетдругие файлы, которые вы должны затем скомпилировать для запуска вашего парсера.

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

Но это сложно (на мой взгляд), так как даже просто #include не всегда работает правильно(если вы включите их в неправильном порядке или документация может не соответствовать учебнику, я не слишком уверен.) Тем не менее, я вижу, что многие люди используют его!

...