mud++0.35/etc/
mud++0.35/etc/guilds/
mud++0.35/help/propert/
mud++0.35/mudC/
mud++0.35/player/
mud++0.35/src/interface/
mud++0.35/src/os/cygwin32/
mud++0.35/src/os/win32/
mud++0.35/src/os/win32/bcppbuilder/
mud++0.35/src/osaddon/
mud++0.35/src/util/
What it has to do.

Input files:
i1) classnames file: names of all classes known to VM, one per line; ends
	with ~
i2) number of input files containing interface functions (pseudo)code

Output files:
o1) number of files containing valid C++ function created from input (i2)
	(check detailed example later on)
o2) include file for Xlang parser, valid XLang function definitions for all
interface funs
o3) file with C++ table with all function entries, laid in struct
struct
{
	const char * mangled_name;
	const char * base_name;
	const char * signature;
	interface_function_pointer * ptr;
	long	allowance;
};


Example of parsing (comments are not parsed)


INTERFACE BUILDER | WIZARD             // pseudo code, newline terminated
int add_numbers( int a, int b )        // fake prototype
{
	vm->push_int(a+b);                 // here is a 'return' for vm
	return;                            // here is C++ return;
}

have to be converted to
.cpp file with

void add_numbers_P_i_i( VMachine * vm )
{
	vmstack * args = vm->initp(2);
	int a = args[0].val.i;
	int b = args[1].val.i;
	vm->push_int(a+b);
	return;
}

entry in .mh file
int add_numbers(int a, int b);

and entry in table
{ "add_numbers_P_i_i", "add_numbers", "i_i", add_numbers_P_i_i, BUILDER | WIZARD }


----

It has to recognize basic types int, float and string and convert them in 
proper way. 

int x     ->    int x = args[n].val.i;
float x   ->    float x = args[n].val.f;
string x  ->    String * x = args[n].val.s;
ObjName x ->    ObjName * x = args[n].val.o;


Secondary possibilities:
- adding of #line directives to allow quick finding of offending function
in (i2) files not (o1)
- would be nice to allow ommision of not-needed paramters - just like in C
fun( PC, string x, int y) - we do not need PC pointer, so it is not generated.
- there will be also problem with arrays - but this will appear later