Вверх ↑
Пакеты 
Кодогенерация - Интерфейс кодогенератора

Интерфейс кодогенератора
О кодогенераторе
Кодогенератор пакета в 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 - ф-ция вызывается средой при необходимости получить состояние кнопки в палитре элементов, т.е. ее флаг доступности (как правило используется для управления доступностью элементов при нахождении в контейнерах или смене компиляторов)
BB-code статьи для вставки