# File convertdb.rb, line 214
def parseIndexLine( string, lineNumber, pos=nil )
        $scanner.string = string
        synsets = []
        lemma, pos, polycnt = nil, nil, nil

        raise "whole error" unless $scanner.scan( IndexEntry )
        lemma, pos, polycnt, pcnt = $scanner[1], $scanner[2], $scanner[3], $scanner[4]

        # Discard pointer symbols
        pcnt.to_i.times do |i|
                $scanner.skip( PointerSymbol ) or raise "couldn't skip pointer #{i}"
        end

        # Parse sense and tagsense counts
        $scanner.scan( SenseCounts ) or raise "couldn't parse sense counts"
        senseCount, tagSenseCount = $scanner[1], $scanner[2]

        # Find synsets
        senseCount.to_i.times do |i|
                $scanner.scan( SynsetId ) or raise "couldn't parse synset #{i}"
                synset = $scanner[1]
                synsets.push( synset )
                $senseIndex[ synset + "%" + pos + "%" + lemma ] = i.to_s
        end

        # Make the index entry and return it
        key = lemma + "%" + pos
        data = synsets.join(WordNet::SubDelim)

        return key, data
rescue => err
        message "Index entry did not parse: %s at '%s...' (line %d)\n\t%s\n" % [
                err.message,
                $scanner.rest[0,20],
                lineNumber,
                err.backtrace[0]
        ]
        return nil
end