| Кодогенерация | - Интерфейс кодогенератора |
Интерфейс кодогенератора
О кодогенераторе
Кодогенератор пакета в HiAsm – это обычная dll библиотека, расположенная по адресу %hiasm%\Elements\‹имя пакета›\CodeGen.dll. Именно эту библиотеку HiAsm использует для сборки исходников схем и последующей передачи их сборщику соответствующего проекта (см. статью Интерфейс модуля make).
Описание интерфейса
Основные методы:
buildPrepareProc - ф-ция вызывается средой перед процедурой сборки проекта
buildProcessProc - ф-ция вызывается средой для сборки текущего проекта. В качестве параметров передаются: cgt - интерфейс для доступа с элементам схемы, sdk - указатель на корневой контейнер схемы, result - пустое поле, в которое кодогенератор должен записать результат своей работы. Обычно это код программы или имя основного файла проекта.
CheckVersionProc - ф-ция вызывается средой перед началом работы с кодогенератором и передает в качестве параметра версию среды. Кодогенератор должен вернуть CG_SUCCESS если он работает с данной версией и CG_INVALID_VERSION в противном случае.
Дополнительные методы (не поддерживаются HiAsm 5):
ConfToCode - ф-ция вызывается диалогом ECreator в момент сохранения нового компонента. В качестве параметров передаются имя пакета и имя элемента. Кодогенератор должен по INI элемента сгенерировать шаблон файла с кодом компонента.
synReadFuncList - ф-ция вызывается редактором кода среды в момент нажатия Ctrl+Space либо после печати символа '.'. Кодогенератор должен сформировать список строк, который будет выведен в подсказке.
hintForElement - ф-ция вызывается редактором схем в среде в момент наведения курсора мыши на точку Work элемента при нажатой клавише Ctrl. В качестве параметров передаются идентификатор корневого контейнера схемы, идентификатор точки элемента, интерфейс cgt. В качестве результата кодогенератор должен вернуть текстовое сообщение, которое среда в последствие отобразит в подсказке над данной точкой. Если кодогенератор вернул пустую строку, то будет отображена стандартная подсказка.
isElementMaker - ф-ция вызывается средой для получения информации о том, возможно ли по указанному элементу схемы автоматически создать новый элемент палитры.
MakeElement - ф-ция вызывается средой в том случае, если пользователь выполнил команду создания элемента
isReadyForAdd - ф-ция вызывается средой при необходимости получить состояние кнопки в палитре элементов, т.е. ее флаг доступности (как правило используется для управления доступностью элементов при нахождении в контейнерах или смене компиляторов)
buildPrepareProc - ф-ция вызывается средой перед процедурой сборки проекта
buildProcessProc - ф-ция вызывается средой для сборки текущего проекта. В качестве параметров передаются: cgt - интерфейс для доступа с элементам схемы, sdk - указатель на корневой контейнер схемы, result - пустое поле, в которое кодогенератор должен записать результат своей работы. Обычно это код программы или имя основного файла проекта.
CheckVersionProc - ф-ция вызывается средой перед началом работы с кодогенератором и передает в качестве параметра версию среды. Кодогенератор должен вернуть CG_SUCCESS если он работает с данной версией и CG_INVALID_VERSION в противном случае.
Дополнительные методы (не поддерживаются HiAsm 5):
ConfToCode - ф-ция вызывается диалогом ECreator в момент сохранения нового компонента. В качестве параметров передаются имя пакета и имя элемента. Кодогенератор должен по INI элемента сгенерировать шаблон файла с кодом компонента.
synReadFuncList - ф-ция вызывается редактором кода среды в момент нажатия Ctrl+Space либо после печати символа '.'. Кодогенератор должен сформировать список строк, который будет выведен в подсказке.
hintForElement - ф-ция вызывается редактором схем в среде в момент наведения курсора мыши на точку Work элемента при нажатой клавише Ctrl. В качестве параметров передаются идентификатор корневого контейнера схемы, идентификатор точки элемента, интерфейс cgt. В качестве результата кодогенератор должен вернуть текстовое сообщение, которое среда в последствие отобразит в подсказке над данной точкой. Если кодогенератор вернул пустую строку, то будет отображена стандартная подсказка.
isElementMaker - ф-ция вызывается средой для получения информации о том, возможно ли по указанному элементу схемы автоматически создать новый элемент палитры.
MakeElement - ф-ция вызывается средой в том случае, если пользователь выполнил команду создания элемента
isReadyForAdd - ф-ция вызывается средой при необходимости получить состояние кнопки в палитре элементов, т.е. ее флаг доступности (как правило используется для управления доступностью элементов при нахождении в контейнерах или смене компиляторов)
BB-code статьи для вставки