Модераторы: Vitalik
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Лексический анализатор с подсветкой синтаксиса 
V
    Опции темы
Barracuda
  Дата 6.4.2006, 21:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 6.4.2006

Репутация: нет
Всего: нет



Народ, подскажите, как быть! smile


Пишу лексический анализатор в Delphi с подсветкой синтаксиса. Что хочу сделать:

- чтобы лексема каждого типа (идентификатор, константа, служебное слово и др.) имела свой стиль текста и цвет;

- чтобы вся эта красота могла выводиться как “на лету”, т.е. во время ввода, как в редакторе Delphi или Builder’а, так и при загрузке файла с текстом программы;

- чтобы была возможность красить фон в свой цвет.


Вопрос. Подойдёт ли для этого SynEdit? Какой версии? И напишите, пожалуйста, ссылочки, как работать с SynEdit’ом. smile

PM MAIL   Вверх
Barracuda
Дата 11.4.2006, 19:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 6.4.2006

Репутация: нет
Всего: нет



На предыдущий вопрос можно забить, объясните хотя бы как красить и присваивить свой стиль динамически идентификаторам и константам? smile
PM MAIL   Вверх
Vitalik
Дата 22.4.2006, 03:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Координатор проекта
Сообщений: 653
Регистрация: 8.11.2004
Где: Ukraine, Kharkov

Репутация: 9
Всего: 12



Цитата(Barracuda @  11.4.2006,  18:50 Найти цитируемый пост)
объясните хотя бы как красить и присваивить свой стиль динамически идентификаторам и константам?

Здравствуй, Barracuda. Объясни, пожалуйста, подробнее суть проблемы. Что считать идентификатором и константой?
Как определить, что именно является идентификатором? Это просто любая последовательность алфавитно-цифровых символов? 
А что подразумеваешь под константой? Числовые и строковые константы?

Добавлено @ 03:04 
Цитата(Barracuda @  6.4.2006,  20:46 Найти цитируемый пост)
Пишу лексический анализатор в Delphi с подсветкой синтаксиса. Что хочу сделать:
- чтобы лексема каждого типа (идентификатор, константа, служебное слово и др.) имела свой стиль текста и цвет;
- чтобы вся эта красота могла выводиться как “на лету”, т.е. во время ввода, как в редакторе Delphi или Builder’а, так и при загрузке файла с текстом программы;
- чтобы была возможность красить фон в свой цвет.
Вопрос. Подойдёт ли для этого SynEdit? Какой версии?

Если я правильно тебя понял, то тебе подойдёт любой SynEdit с любой подсветкой (либо стандартная, либо наша универсальная) smile 
PM MAIL WWW ICQ YIM   Вверх
Barracuda
Дата 22.4.2006, 17:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 6.4.2006

Репутация: нет
Всего: нет



Vitalik, здравствуй! Суть вот в чём: идентификаторы определяются по следующему правилу:

1-й символ - символ из множества ['A'..'Z','a'..'z'];
остальные символы -  из множества ['0'..'9','A'..'Z','a'..'z'].

Константы - набор символов из множества ['0'..'9'].

Цитата

Если я правильно тебя понял, то тебе подойдёт любой SynEdit с любой подсветкой (либо стандартная, либо наша универсальная)


С энтой штукой разобрался, использую SynEdit вер. 2.0.1 + UniHighLighter 1.8. Рульная весчь! Работает быстро, зарезервированные слова шпарит цветом, каким хочу, стилем, каким хочу!

Осталось разобраться только с идентификаторами... 
PM MAIL   Вверх
Vitalik
Дата 23.4.2006, 18:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Координатор проекта
Сообщений: 653
Регистрация: 8.11.2004
Где: Ukraine, Kharkov

Репутация: 9
Всего: 12



Barracuda, по поводу идентификаторов есть половинчатое решение. Создай правило Set (набор символов) со значением '_ABC...XYZabc...xyz0123...789'. А "Константы" - это Set со значением '0123456789'.
Единственная недоработка, так это то, что такие строки, как '123xyz' тоже будут считаться идентификаторами... Но я думаю, что это не страшно, так как в реальных исходниках такой нонсенс все равно не встречается smile 
PM MAIL WWW ICQ YIM   Вверх
Barracuda
Дата 26.4.2006, 22:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 6.4.2006

Репутация: нет
Всего: нет



Всё сделал. Работает!!! ОГРОМНОЕ спасибо! smile  
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | SynUniHighlighter и SynEdit | Следующая тема »


 




[ Время генерации скрипта: 0.0442 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.