Расширение синтаксиса

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Alprog
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 127
Зарегистрирован: 15.05.2008 (Чт) 14:21
Откуда: Владивосток

Расширение синтаксиса

Сообщение Alprog » 11.09.2008 (Чт) 15:09

Хочется несколько расширить синтаксис старого доброго VB, добавив в него сокращённые формы записи.

Например, пишем в IDE:
Код: Выделить всё
Dim A as Boolean = true


А компилироваться отправилась эта строчка:
Код: Выделить всё
Dim A as Boolean: A = true


Также можно было бы поступить, например, с +=, ++, упростить записи с указателями...

Причём, plug-in, который бы ловил сокращённую запись кода и заменял её на развёрнутую не годится.
Хочется, чтобы в IDE отображалась именно сокращённая форма.

Возможно ли это как-нибудь реализовать (кроме создания полностью своей IDE)?
Может быть, подмена текстового редактора или что-то в этом роде...

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Re: Расширение синтаксиса

Сообщение Viper » 11.09.2008 (Чт) 15:33

Теоретически можно попробовать сделать AddIn какой-нить, который позволял бы писать код с учетом расширения синтаксиса, а при компиляция производил преобразование расширенного синтаксиса в обычный.
З.Ы. А возможно такой AddIn уже и есть, такж вполне возможно наличие IDE поддерживающей подобные фишки. Можно поискать.
Весь мир матрица, а мы в нем потоки байтов!

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Расширение синтаксиса

Сообщение Хакер » 11.09.2008 (Чт) 17:03

Верно, нужно писать Add-in. FNDLL2 так и работает. Это что касается документированных способов.

Есть ещё недокуметированные...
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Alprog
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 127
Зарегистрирован: 15.05.2008 (Чт) 14:21
Откуда: Владивосток

Re: Расширение синтаксиса

Сообщение Alprog » 11.09.2008 (Чт) 18:13

Я плохо знаком с Add-In. Я, конечно, могу написать Add-In, который заменит текст на обновлённый. Но я не знаю, как:
1. Заставить среду подсвечивать и не ругаться на новый синтаксис
2. Перехватить момент начала компиляции/интерпретации

Не подскажите, что бы такого почитать, чтобы эти вопросы прояснить?

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Расширение синтаксиса

Сообщение Хакер » 11.09.2008 (Чт) 18:16

1. Документированных способов нет. Только всякие обходные трюки.
2. Посмотри как это сделано в FNDLL-1
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Alprog
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 127
Зарегистрирован: 15.05.2008 (Чт) 14:21
Откуда: Владивосток

Re: Расширение синтаксиса

Сообщение Alprog » 12.09.2008 (Пт) 12:12

Документированных способов нет.

Тогда моя затея обламывается :(

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Re: Расширение синтаксиса

Сообщение Mikle » 13.09.2008 (Сб) 16:24

Код: Выделить всё
Dim A as Boolean = true

А компилироваться отправилась эта строчка:
Код: Выделить всё
Dim A as Boolean: A = true

А если переменная объявлена на уровне модуля\формы\класса?


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 61

    TopList