Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Алгоритмы > Регулярные выражения для подсветки синтаксиса (C#)


Автор: udly 25.3.2006, 00:49
Пытаюсь сделать подсветку синтаксиса c/cc++. Соображения такие: найти с помощью рег. выражений все ключевые слова (int, for, break, continue, return и т.д.) из текста RichTextBox’а и задать для них, скажем, синий цвет. Затем найти комментарии (однострочные и многострочные) и задать для них зеленый цвет. Как правильно задать шаблон рег. выражений?

Автор: Сый 25.3.2006, 09:28
Да что до этого Ц подсветку синтаксиса делать? Думаю, что для него этого добра написано столько, что достаточно лишь обратиться к поисковику. А вот для Глагола подсветку сделать для HTML-страничек было бы хорошо...

Автор: udly 25.3.2006, 13:27
Цитата(Сый @ 25.3.2006, 09:28)
Да что до этого Ц подсветку синтаксиса делать? Думаю, что для него этого добра написано столько, что достаточно лишь обратиться к поисковику. А вот для Глагола подсветку сделать для HTML-страничек было бы хорошо...

Мне для контрольной в универ надо. Хотелось бы самому написать, но регулярными вырвжениями не владею smile -- а это одно из условий задания.
Может кто писал подобное, скинте шаблон рег. выражений, а то я ничего кроме "\bint|\bfor" (и так далее) придумать пока не могу.

Автор: kudinov 31.3.2006, 15:44
есть готовые синтасические парсеры
antlr
bizon, yacc

Автор: udly 15.4.2006, 13:08
Цитата

есть готовые синтасические парсеры
antlr
bizon, yacc

А еще есть регулярные выражения в С#. Именно они мне и нужны.

Автор: SoWa 15.4.2006, 14:10
Рег. выражения можно найти в справочниках.
А парсер написать- просто. Кстати, на каждое слово, которое надо подсвечивать можно сделать автомат, и прогонять весь текст по этим автоматам. Тогда сложность поиска будет (Длинна текста * Кол-во различных подсвечиваемых слов). Вот.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)