Случайно никто не встречал реализацию подсветки кода на регулярных выражениях ?
Интересует подсветка asm листингов.
Не поиск и замена заранее заданных в базе регистров, функций и операторов.
Или может кто поможет составить регулярные выражения чтоб парсить строки кода asm (синтаксис masm) ?
За вознаграждение, конечно.
Приведу пример по коду:
Цитата:mov esi, [ebx + edx + 78h]
Нужна регулярка чтоб получился массив:
0 => "mov" - оператор (может обрамляться любым количеством пробелов и табов)
1 => "esi" - первый аргумент
2 => "[ebx + edx + 78h]" - второй аргумент (отделяется от первого запятой и вариациями пробелов и табов)
Оператор может содержать и 1 аргумент.
Или может не содержать аргументов вообще.
Примеры операторов с 2 аргументами
Цитата:xchg eax, ecx
cmp dword ptr [eax], 0FFFFFFFFh
mov eax, 0
Вот примерно так это выглядит. Для человека разбирающегося в регулярках составить паттерн будет не сложно. (Отредактировано автором: 19 Августа, 2010 - 22:49:34)
|