def METHOD_NAME(self,lineno,line):
    """
    read a tooltable line
    if an entry was parsed successfully, return a  Tool() instance
    """
    line.rstrip("\n")
    if re.match('\A\s*T\d+',line):
        semi = line.find(";")
        if semi != -1:
            comment = line[semi+1:]
        else:
            comment = None
        entry = line.split(';')[0]
        result = dict()
        for field in entry.split():
            (name,value)  = re.search('([a-zA-Z])([+-]?\d*\.?\d*)',field).groups()
            if name:
                key = name.upper()
                result[key] = EmcToolTable.ttype[key](value)
            else:
                print("%s:%d  bad line: '%s' " % (self.filename, lineno, entry))
        result['comment'] = comment
        return result
    print("%s:%d: unrecognized tool table entry   '%s'" % (self.filename,lineno,line))