# coding: iso-8859-1
#
# script(ed/able/ing/ful) code compiler
# (c)2006 Tiago Rezende
# Distributed freely.
#
# internal file classes
#

class FileEndingException:
    def __init__(self, filename):
        self.filename = filename

class NamedLinedFile:
    def __init__(self, infile, filename):
        self.file = infile
        self.filename = filename
        self.line = 0
    
    def readline(self):
        line = self.file.readline()
        if line:
            self.line = self.line + 1
            return line
        raise FileEndingException(self.filename)

    def getFileName(self):
        return self.filename

    def getLineNum(self):
        return self.line

    def closeFile(self):
        self.file.close()
    
