BEGIN_METHOD

#define BEGIN_METHOD ( name , arguments ) ...

Начинает реализацию (implementation) метода.

Будьте внимательны ! Поскольку реализация функции получит свои аргументы, как указатель в стеке интерпретатора,  arguments - фактически внутри структуры, описывающей содержимое стека.

Следовательно :

Пример :

Имя метода 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

Заметьте, что точка с запятой ограничивает аргументы, и что последний аргумент не имеет точки с запятой в конце.