LINUX.ORG.RU

Как насчет regex? Всмысле что такого есть в Lex кроме собственного парсера, автомата с состояниями и собственно регэкспов?

arturpub ★★
()
Ответ на: комментарий от arturpub

Как насчет regex?

Немного не то, на голых регекспах мне прийдется токен искать перебором всех возможных выражений.

AF ★★★
() автор топика
Ответ на: комментарий от arturpub

Думаешь, что если у двух лексем одинаковые префиксы, то lex будет их по нескольку раз перечитывать? Я что-то сомневаюсь

AF ★★★
() автор топика
Ответ на: комментарий от AF

(abc|abd) тоже по-нескольку раз не перечитывает, я просто не думаю, что у тебя столько одинаковых префиксов и такие данные, что ты вылезешь за 5%-ю вероятность бэд-хита, чтобы стоило мутиться мутной мутью.

arturpub ★★
()
Ответ на: комментарий от arturpub

(abc|abd) тоже по-нескольку раз не перечитывает

Ага, потому что таблица генерируется одна.

мутиться мутной мутью.

Да, была бы реальная задача, то не спрашивал бы а делал. А так мною движет любопытство и ничего более.

Кстати пока нашелся http://www.benhanson.net/lexertl.html

AF ★★★
() автор топика

Не по теме: некоторое время назад мы делали проект по лексическому анализу. Модератор не я. Проприетарщина. Прикольная штучка.

Deleted
()

boost::spirit

/thread

anonymous
()
Ответ на: комментарий от johnson102

Генерация правил для Lex в рантайме, затем exec lex, exec gcc, fork-pipe-exec

ужос

boost::spirit

Ага, и внутри у него lexertl

AF ★★★
() автор топика

Так можно засунуть в PCRE: (?<1>pattern1)|(?<2>pattern2)... Автомат будет общий, а дальше по atoi(name) получаем тип.

rymis ★★
()
Ответ на: комментарий от rymis

PCRE: (?<1>pattern1)|(?<2>pattern2)

Спасибо, выглядит симпатично.

AF ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.