'Parse and build my data from a file
Reads the next line in the file, and matches it as an argument
description.  If not a valid argument line, an error_not_found exception
is raised.'

def BuildFromFile(self, file):

    line = file.readline()
    mo = self.regex.search(line)
    if (not mo):
        raise error_not_found
    self.name = mo.group(3)
    self.inout = mo.group(1).split('][')
    typ = mo.group(2).strip()
    self.raw_type = typ
    self.indirectionLevel = 0
    if mo.group(4):
        self.arrayDecl = 1
        try:
            pos = typ.rindex('__RPC_FAR')
            self.indirectionLevel = (self.indirectionLevel + 1)
            typ = typ[:pos].strip()
        except ValueError:
            pass
    typ = typ.replace('__RPC_FAR', '')
    while 1:
        try:
            pos = typ.rindex('*')
            self.indirectionLevel = (self.indirectionLevel + 1)
            typ = typ[:pos].strip()
        except ValueError:
            break
    self.type = typ
    if (self.type[:6] == 'const    '):
        self.unc_type = self.type[6:]
    else:
        self.unc_type = self.type
    if VERBOSE:
        print (' DCTB             Arg    %s    of    type    %s%s    (%s)' % (self.name, self.type, ('*' * self.indirectionLevel), self.inout))
