Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > SynUniHighlighter и SynEdit > Hex числа и идентификаторы...


Автор: Checker 25.8.2005, 17:50
UniH - версия 1.8

Чета не соображу - как описать выделение 16-ричных чисел.
Это можно было бы легко реализовать, если бы SET-ы имели множество
начальных символов и множество последующих.
К примеру мнжество начальных символов ['0'..'9'], а следующих за ними ['0'..'9','A'..'F'].
Как победить?

И вторая загвоздка.
Есть 2 списка ключевых слов. Первый - типы, второй идентификаторы. Все как
в делфи. Разделитель точка. Нужно выделить сию конструкцию целиком.
Черт с ней, с точкой, хотя бы оба идентификатора. А то только первый.

call TDock_Goner.SelfDestruct

Если при формировании списка типов добавлять те же идентификаторы с точкой,
тогда проблема решается. Но это как-то криво.

call TDock_Goner.SelfDestruct

Подскажите, плз.


Автор: Quadr0 26.8.2005, 19:31
...

Автор: Checker 27.8.2005, 09:46
Цитата(Quadr0 @ 26.8.2005, 19:31)
Стоп, подожди. Насчёт hex смотри примеры. А вообще поидее можно задать диапазон начинающийся с "$" и заканчивающийся пробелом (Close on term).


Примеры посмотрел. Для 16-ричных чисел выделение хорошо работает,
если число начинается с определенного символа, например как в делфи '$' или
как в С, начиная с '0х'. Тогда все просто.
В ассемблере число начинается с цифры '0..9' и может содержать
'0..9','A..F'. Например 8FDE00. Для описания таких чисел (в существующих правилах Range)
потребуется 10 Правил - по одному для каждой цифры 0..9. Правильно?

Цитата(Quadr0 @ 26.8.2005, 19:31)
На счёт второго не очень понял. Ты имеешь ввиду при двойном щелчке выделяется весь TDock_Goner.SelfDestruct, а не TDock_Goner? Хм... странно. Первое что приходит в голову - отсутствует символ точки в делимитерах(разделителях слов).


Не, я не про выделение по двойному щелчку, я про подсветку синтаксиса.
К примеру, моему компилятору известен список классов (тот же TDock_Goner).
И известны переменные и функции, принадлежащие этому классу (например SelfDestruct). В редакторе нужно подсветить другим цветом все выражение
TDock_Goner.SelfDestruct, для того, чтобы подтвердить, что ошибки в написании идентификаторов нет.
Для этого формирую 2 правила 'Keywords' с этими списками. Символ '.' стоит в делимитерах. Так вот первое слово выделяется, а то что после точки - нет.
smile

Может я сильно многово хочу? smile






Автор: Checker 27.8.2005, 10:27
Цитата(Checker @ 27.8.2005, 09:46)
потребуется 10 Правил - по одному для каждой цифры 0..9. Правильно?

Блин, такой номер не проходит - выделяется подстрока внутри идентификаторов. Например

jump L00000B18

smile

Автор: Vitalik 28.8.2005, 18:35
Цитата(Checker @ 27.8.2005, 09:46)
В ассемблере число начинается с цифры '0..9' и может содержать '0..9','A..F'. Например 8FDE00.

Признаться, я очень давно хотел добавить такую фичу smile
Собственно новый тип правил "SymbolSet" был придуман именно для этого...

Постараюсь в ближайшем времени что-нибудь придумать smile

Цитата(Checker @ 25.8.2005, 17:50)
Есть 2 списка ключевых слов. Первый - типы, второй идентификаторы. Все как в делфи. Разделитель точка. Нужно выделить сию конструкцию целиком. Черт с ней, с точкой, хотя бы оба идентификатора. А то только первый.

А вот это очень странно. По идее всё должно работать без проблем...
Пришли ка мне, пожалуйста, свою подсветку smile

P.S. Сегодня наконец-то приехал в Харьков, но доступа к своему компу пока нет.
Надеюсь, завтра поселюсь в новую комнату и распакуюсь :-)

Автор: Checker 31.8.2005, 09:49
Цитата(Vitalik @ 28.8.2005, 18:35)
Цитата (Checker @ 27.8.2005, 09:46)
В ассемблере число начинается с цифры '0..9' и может содержать '0..9','A..F'. Например 8FDE00.

Признаться, я очень давно хотел добавить такую фичу smile
Собственно новый тип правил "SymbolSet" был придуман именно для этого...

Постараюсь в ближайшем времени что-нибудь придумать smile


Супер! Нет, правда. Очень полезная вещь.

Цитата(Vitalik @ 28.8.2005, 18:35)
Пришли ка мне, пожалуйста, свою подсветку


Отправил.

Автор: Coriolis 16.9.2005, 18:01
Vitalik
Да, я тоже хочу сделать подсветку цифр!!!
Ой. Торможу - надо создать SymbolSet всего лишь! smile

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