Всем привет! Есть DSL, в котором комментарии начинаются с решётки (#). Еще в DSL можно писать функции, в которых комментарии начинаются в C/C++ стиле, и комментарии с решетки запрещены. Типа того:
...some code
# comments
proc myfunc @{
# ошибка! это не комментарий
// нормальный коммент
/* еще один
* нормальный коммент */
@}
...come code
Сейчас я обхожусь этим:
syn region binpacComment start="#" end="$"
syn region binpacComment start="//" end="$"
syn region binpacComment start="\/\*" end="\*\/"
hi def link binpacComment Comment
Но это приводит к тому, что во всем файле просто подсвечиваются как комментарии все три вида: #, //, /* */
А хочется, чтоб вне функций подсвечивалось только #, а в функциях только // и /* */.
Заранее спасибо за любую помощь или пример.