GoSub

Control flow statement to use a section of code and return.

Syntax
	GoSub label

Description
	Execution jumps to a subroutine marked by a line label. Always use KeyPgReturnGosubReturn
	to exit a GoSub,  execution will continue  on next statement after GoSub
	. 

	The line label where GoSub jumps must be in the same main/function/sub 
	block as GoSub. All the variables in the subroutine are shared with the 
	block, no arguments can be used. For this reason Gosub is considered bad 
	programming practice as it can generate unreadable and untraceable code. 
	It is better to use KeyPgSubSub or KeyPgFunctionFunction instead.

Example
	'' Compile with -lang qb

	'$lang: "qb"

	GoSub message
	End

	message:
	Print "Welcome!"
	Return

Dialect Differences
	* Only available in the CompilerOptlang-lang qb and CompilerOptlang-lang fblite dialects.
	* GoSub support is disabled by default in the CompilerOptlang-lang fblite unless the 
	  KeyPgOptiongosubOption Gosub statement is used.

Differences from QB
	* None when using the CompilerOptlang-lang qb dialect.

See also
	* KeyPgGotoGoto
	* KeyPgReturnGosubReturn (From Gosub)
	* KeyPgSubSub
	* KeyPgFunctionFunction
	* KeyPgOptiongosubOption Gosub
	* ProPgLabelsLabels

