Регулярные выражения для подсветки синтаксиса (c#)
Пытаюсь сделать подсветку синтаксиса c/cc++. Соображения такие: найти с помощью рег. выражений все ключевые слова (int, for, break, continue, return и т.д.) из текста RichTextBox’а и задать для них, скажем, синий цвет. Затем найти комментарии (однострочные и многострочные) и задать для них зеленый цвет. Как правильно задать шаблон рег. выражений?
Регулярными выражениями ты сможешь проверить только формальную грамматику языка, но не фактическую. Для этого советую использовать числовое представление лексем. Создаёшь свою хэш-функцию , при помощи её снимаешь значения со всех резервированных слов, затем анализируешь входную строку. Вот при анализе используешь рег. выр., с полученного слова снимаешь хэш и сверяешь с имеющимися. Пример этого смотри в исходниках в разделе "компиляторы", я там выкалдывал лексический анализатор, файл называется WSLexer