#define BEGIN_METHOD ( name , arguments
) ...
Начинает реализацию (implementation) метода.
Будьте внимательны ! Поскольку реализация функции получит свои аргументы, как указатель в стеке интерпретатора, arguments - фактически внутри структуры, описывающей содержимое стека.
Следовательно :
GB_XXXX
семейства GB_VALUE .
semicolons
(точка с запятой),
а НЕ запятыми.
Пример :
Имя метода foo
объявляется следующим образом :
...
GB_METHOD("foo", NULL, "iisvbInteger[];d", do_foo),
...
и будет реализовано так :
BEGIN_METHOD(do_foo,
GB_INTEGER param1;
GB_INTEGER param2;
GB_STRING param3;
GB_VARIANT param4;
GB_BOOLEAN param5;
GB_OBJECT param6;
GB_DATE param7)
...
END_METHOD
Заметьте, что точка с запятой ограничивает аргументы, и что последний аргумент не имеет точки с запятой в конце.