Implementation
    - Can we use type info to remove some of the shift/reduce conflicts ?
    
Support System
    - the distribution should contain the results of the gperf (check how egcs
      handles this)

gb/
	grammar.y/
		Accept My.Sub A, , , , ,b
		Add 
			#If WHATEVER
				If a Then jump ...
			#End If
		to the pre-processor.

		12345# - should be a floating point number.

	Make the ParseData a GtkObject and hold a ref it inside the
GBRunProject or whatever; ensure we only unref and don't destroy it
around the place.

	Write the sandbox routines; we need to ensure files are below a
certain directory, that the disk cannot be filled, that security flags are
expanded to allow / inhibit file removal / truncation etc.

	Fix exception_firev / fire to take a va_list & inclue vararg.h
	Write decent function writing documentation
	Segment some of the structures / functions from gb-main.[ch], they
belong elsewhere.
	Sort out the 'Call' statement.
	Array support must move into 'gb'.
	Fix the evilness of all these function names which are also
statements conflicting variously.

gbrun/
	Make a function with a Varient return type work.

	For every function, split the vital function description
string out into a #define, and locate the definitions near the
implementations in the file.

	Implement Load / UnLoad, each will enter a new gtk_main, and hence
when all is unloaded we will quit.

	Move the array code into gb/ and make it more explicit / add
handlers.

	Convert the form to a canvas and implement the line drawing
methods

	Sort out the mess with GBExpr's as default values.
	Named parameters to functions.
	Get security on object arguments implemented.

	Is it possible to write VB procedures that have VarArg
capabilities; if so we need to put some more work into
gbe_method_invoke_gb.

	Need some winelib stubs we can dlopen to allow native Windows
functions to be called, we need to split the stubs such that we only
start linking the massive winelib as and when we need to.

	Memprof the lot,

	Sort out nightmares such as Mid (str, 1, 3) = 'C'
etc. Syntactic grimness.

	Bonobo property hookup,
	CORBA interface via Dick's code.

	Good to split loop invariants out, esp. loop conditions, hook
iteration count into gbrun-statement.c (gbrun_frame_stmt_next): and
start doing serious optimization on loops with iteration counts > 5

	Wrap GTK objects with 'gb' objects, needs some clever hacking,
and working out the minimal set of static functions we can get away
with, we should be able to autogenerate this from the defs files
perhaps.
