17.3.4 Top-Level Function Directives

In addition to class objects and typedef's, it is possible to scan information about certain top-level functions. These functions must be preceded by a #REG_FUN comment, and the comments that apply to the function must precede the trailing ; that ends the function declaration.

// #REG_FUN
void Cs_Simple_WtDecay(CsConSpec* spec, CsCon* cn, Unit* ru, Unit* su) 
// #LIST_CsConSpec_WtDecay Simple weight decay (subtract decay*wt)
     ;				// term here so scanner picks up comment

These functions get registered as static functions of a mythical object with a TypeDef of TA_taRegFun. The purpose of registering functions in this way is to make them available for members of classes that are pointers to functions. These registered functions are shown in a menu in the edit dialog if the #LIST_xxx directive matches on the registered function and the pointer to a function.