def  METHOD_NAME( self, section, section_filename = None ):
    output = None
    if section_filename:
        output = open_output( section_filename )
    self.section_enter( section )
    for name in section.block_names:
        skip_entry = 0
        try:
            block = self.identifiers[name]
            # `block_names' can contain field names also,
            # which we filter out
            for markup in block.markups:
                if markup.tag == 'values':
                    for field in markup.fields:
                        if field.name == name:
                            skip_entry = 1
        except:
            skip_entry = 1   # this happens e.g. for `/empty/' entries
        if skip_entry:
          continue
        self.block_enter( block )
        for markup in block.markups[1:]:   # always ignore first markup!
            self.markup_enter( markup, block )
            for field in markup.fields:
                self.field_enter( field, markup, block )
                self.field_exit( field, markup, block )
            self.markup_exit( markup, block )
        self.block_exit( block )
    self.section_exit( section )
    if output:
        close_output( output )