Source Files (.bas)

Text files read by FreeBASIC and compiled into executable code.

A source file is a text file that contains FreeBASIC language statements.  
A program might be made from just one source file or possibly hundreds.  
Source files are read by the compiler and compiled into object code.  
Object code is then linked to create an executable or can be stored for 
later use as a library.

FreeBASIC by default, automatically takes care of compiling sources and 
linking object modules in to executables, so normally it is possible to 
make an executable program by just passing the names of the source files on 
the fbc command line.  For example, assuming we had three source files that 
together made a program, we could create an executable for the program by 
running fbc, the FreeBASIC compiler on a command line as follows:

	fbc myprog.bas tools.bas funcs.bas

Unicode support
	* Besides ASCII files with Unicode escape sequences (\u), FreeBASIC can 
	  parse UTF-8, UTF-16LE, UTF-16BE, UTF-32LE and UTF-32BE source (.bas) 
	  or header (.bi) files as long as they were saved with Byte Order Mark 
	  (BOM), they can be freely mixed with other sources/headers in the same 
	  project (also with other ASCII files).
	* Unicode files must be saved with Byte Order Mark (BOM), otherwise fbc 
	  does not recognize them as Unicode.
	* Literal strings can be typed in the original non-Latin alphabet, just 
	  use a text-editor that supports one of the Unicode formats listed 
	  above.

	Note: The most reliable cross-platform code is obtained by encoding 
	without BOM in ASCII/UTF-8 characters.

Implicit main()
	Some languages require a special main() procedure be defined as an entry 
	point to the program which define the first statements that will be 
	executed when the program starts.  FreeBASIC allows executable 
	statements in module level code and normally the first source file 
	passed to fbc on the command line will be used as the "main" module.  
	The main module can be explicitly named by passing -m filename on the 
	command line, where filename is the name of the main module without the 
	.bas extension.
	   '' sample.bas
	   Declare Sub ShowHelp()

	   '' This next line is the first executable statement in the program
	   If Command(1) = "" Then
	      ShowHelp
	      End 0
	   End If   

	   Sub ShowHelp()
	      Print "no options specified."   
	   End Sub

Header Files
	A header file is a special kind of source file that typically only 
	contains declarations and has a .bi extension. See ProPgHeaderFilesHeader Files (.bi).

See also
	* CompilerCmdLinefbc command-line
	* ProPgHeaderFilesHeader Files (.bi)

