html редактор на с++
Я его уже написал но вот хочу еще добавить подсветку html тегов ...
Как правильно это сделать ?
Спасибо
В общем случае это делается поиском блоков текста при помощи регулярных выражений.
Там это через одно место сделано. Я как-то хотел попробовать вкорячить подсветку синтаксиса в блокнот++, анализ исходников показал, что лучше и не браться. В SharpDevelop, напротив, значительно проще.
Только не понятно, автор хочет подсветку синтаксиса делать или таки визуальный редактор (читаем - "закат солнца своими руками")?
В общем случае это делается поиском блоков текста при помощи регулярных выражений.
В общем случае на регулярных выражениях задача не решаема в принципе. Для корректной подсветки синтаксиса нужно строить парсер конкретного языка (достаточно сильно упрощенный), который будет производить синтаксический разбор "на лету".
Я его уже написал но вот хочу еще добавить подсветку html тегов ...
Как правильно это сделать ?
Спасибо
Посмотри теорию компиляторов там описано как делать лексический анализатор. Прежде чем делать подсветку, надо знать что выделять, а для этого придется разбирать по лексемам. Тебе необходимо будет задать полное описание всех лексем используемых в языке html и выполнять лексический анализ при каждом изменение в твоем редакторе.
Обоснуй
Парсер производит разбор на основе регулярок, набор самих регулярок зависит от языка.
Парсер производит разбор на основе регулярок, набор самих регулярок зависит от языка.
Регулярное выражение способно разобрать исключительно регулярный язык. Контекстно свободные и контекстно зависимые языки ему не под силу.