Распознавание кода, конечный автомат, лексический анализатор и прочие умные слова?
Я так понимаю вам сюда: Синтаксический анализ и, например, сюда: yacc
Если вам нужна конкретно простейшая подсветка синтаксиса (как в вашем примере с html), то вам достаточно лексического анализа. Вам нужно выбирать токены в тексте, и в зависимости от типа токена, выбирать цвет для подсветки. В разных средах это будет реализовано по-разному - в Саблайме это делается через спец. язык описания конечных автоматов, в других редакторах могут использоваться регулярные выражения, в Visual Studio пишется лексический анализатор на ЯП общего назначения.
Поглядите на эти инструменты, С/С++: Flex, ANTLR для дотнет-языков еще FsLex хорош (правда, синтаксис у него F#-овский).
Если нужен более сложный анализ (например, подстановки в зависимости от контекста), смотрите ответ Дмитрий Макаров - это уже синтаксический анализ, следующий этап после лексического. Упомянутый Yacc - это классическая пара к Lex/Flex. Есть и более современный аналог, совместимый с Yacc - Bison. Под дотнет могу посоветовать тот же ANTLR, и FsYacc в пару к FsLex.