node/lib/metasm/metasm/compile_c.rb
def c_function(func)
			# must wait the Declaration to run the CExpr for dynamic auto offsets,
			# and must run those statements once only
			# TODO alloc a stack variable to maintain the size for each dynamic array
			# TODO offset of arguments
			# TODO nested function
			c_init_state(func)

			# hide the full @source while compiling, then add prolog/epilog (saves 1 pass)
			@source << ''
			@source << "#{@label_oldname[func.name]}:" if @label_oldname[func.name]
			@source << "#{func.name}:"
			presource, @source = @source, []

			c_block(func.initializer)

			tmpsource, @source = @source, presource
			c_prolog
			@source.concat tmpsource
			c_epilog
			@source << ''
		end
# compiles a C function +func+ to asm source into the array of strings +str+
# in a first pass the stack variable offsets are computed,
# then each statement is compiled in turn
compiles a C function +func+ to asm source into the array of strings +str+
in a first pass the stack variable offsets are computed,
then each statement is compiled in turn
compiles a C function + func + to asm source into the array of strings + str + in a first pass the stack variable offsets are computed then each statement is compiled in turn
def c_function(func)
			c_init_state(func)
			@source << ''
			@source << "#{@label_oldname[func.name]}:" if @label_oldname[func.name]
			@source << "#{func.name}:"
			presource, @source = @source, []
			c_block(func.initializer)
			tmpsource, @source = @source, presource
			c_prolog
			@source.concat tmpsource
			c_epilog
			@source << ''
		end
def c_function ( func ) c_init_state ( func ) @source << '' @source << "#{@label_oldname[func.name]}:" if @label_oldname [ func . name ] @source << "#{func.name}:" presource , @source = @source , [ ] c_block ( func . initializer ) tmpsource , @source = @source , presource c_prolog @source . concat tmpsource c_epilog @source << '' end
compiles a C function +func+ to asm source into the array of strings +str+
in a first pass the stack variable offsets are computed,
then each statement is compiled in turn
compiles a C function + func + to asm source into the array of strings + str + in a first pass the stack variable offsets are computed then each statement is compiled in turn
# must wait the Declaration to run the CExpr for dynamic auto offsets, # and must run those statements once only # TODO alloc a stack variable to maintain the size for each dynamic array # TODO offset of arguments # TODO nested function # hide the full @source while compiling, then add prolog/epilog (saves 1 pass)
func