def handle(fn, data, include): init(data) if include == 0: oldfile = None else: oldfile = data.getVar('FILE', False) abs_fn = resolve_file(fn, data) f = open(abs_fn, 'r') if include: bb.parse.mark_dependency(data, abs_fn) statements = ast.StatementGroup() lineno = 0 while True: lineno = lineno + 1 s = f.readline() if not s: break w = s.strip() # skip empty lines if not w: continue s = s.rstrip() while s[-1] == '\\': s2 = f.readline().strip() lineno = lineno + 1 if (not s2 or s2 and s2[0] != "#") and s[0] == "#": bb.fatal( "There is a confusing multiline, partially commented expression on line %s of file %s (%s).\nPlease clarify whether this is all a comment or should be parsed." % (lineno, fn, s)) s = s[:-1] + s2 # skip comments if s[0] == '#': continue feeder(lineno, s, abs_fn, statements) # DONE WITH PARSING... time to evaluate data.setVar('FILE', abs_fn) statements.eval(data) if oldfile: data.setVar('FILE', oldfile) f.close() for f in confFilters: f(fn, data) return data
def handle(fn, data, include): init(data) if include == 0: oldfile = None else: oldfile = data.getVar('FILE') abs_fn = resolve_file(fn, data) f = open(abs_fn, 'r') if include: bb.parse.mark_dependency(data, abs_fn) statements = ast.StatementGroup() lineno = 0 while True: lineno = lineno + 1 s = f.readline() if not s: break w = s.strip() if not w: continue # skip empty lines s = s.rstrip() if s[0] == '#': continue # skip comments while s[-1] == '\\': s2 = f.readline().strip() lineno = lineno + 1 s = s[:-1] + s2 feeder(lineno, s, fn, statements) # DONE WITH PARSING... time to evaluate data.setVar('FILE', abs_fn) statements.eval(data) if oldfile: data.setVar('FILE', oldfile) for f in confFilters: f(fn, data) return data