english
version "1.0"
identify "xyz"

#: This module implements PIC initialization routines.

module pic

define pic				#: Various data structures for PIC
    record
	debug_stream out_stream		#: Debugging stream
	error_stream out_stream		#: Error stream
	options options			#: Options
	out_stream out_stream		#: Output stream
	program program			#: Program
	system system			#: System object
	symbol_table symbol_table	#: Sybmol table
	type pic_type			#: Pic type
    generate allocate, erase, print

define options				#: Command line options
    record
	assembly_file_name string	#: -a <assembly_file>
	hex_file_name string		#: -h <hex_file>
	listing_file_name string	#: -l <listing_file>
    generate allocate, erase, print


#: {pic} routines:

procedure create@pic
    takes
	system system
	pic_type pic_type
    returns pic

    #: This procedure will create and return an initialized {pic}
    #, object allocated using {system}.  All the command line options
    #, are parse by this routine.

    #: Initialize and return:

procedure process@pic
    takes
	pic pic
    returns unsigned

    #: This procedure will process the resulting PIC assembly program.