User Defined Functions

	User defined functions - Forward declare functions to be used:
	(function|func) [file.]name([dim|var] var1, [dim|var] var2, ...)

	e.g.
 		function fplib.showlock(var pid)
 		function fplib.log(file, line, what)
 		function somefunc(dim myarray)

	Call a function:
 		[x=][file.]name(var1, var2, ...)

	Return a value from a function:
 		return(value)

	Can pass fields: real, dummy, longvar
	Can pass arrays: Alias and system arrays are copied to a non-aliased 
	array. Non-aliased arrays are passed by reference.

	Function names must be at least 3 characters in length.
	Functions cannot modify values outside of its scope.
	Functions do not call automatic processing.
	Functions cannot modify real fields.
	Functions cannot be called unless they are declared.
	Functions can pass values by reference (changes made to the value will 
	carry back out of the function, only to arrays).
	Functions can optionally return a value.

	Parameter names must be at least 3 characters in length.
	Parameters will be passed to the function using the name they were defined 
	with in the declaration statement.

	Environment variables:
		PFFUNCDBG=(ON|OFF), default OFF. 
			If ON the debugger will be allowed to continue into the function 
			call. If OFF the debugger will skip over user defined functions. 
			NOTE: Debug statements inside of functions will still be able to 
			be activated. If debug is set inside of a function, it will 
			continue even after the function is left.
			
	Example:
	Processing table for fibonacci:
		If:                     ' Declare for future use
		Then: function fibonacci(nval)
  		If:                     ' Get the parameter
		Then: declare extern nval
  		If: nval le "1"         ' Return the result
		Then: return(nval)
  		If:                     ' Return the result
		Then: return(fibonacci(nval-"1")+fibonacci(nval-"2"))
		
	Usage:
		If:                     ' Declare for future use
		Then: function fibonacci(nval)
		If:                     ' Call the function
		Then: n=fibonacci("9")
		If:                     ' Display the result
		Then: msgbox ""{n       ' Prints "34"