1
0
mirror of https://git.yoctoproject.org/poky synced 2026-05-31 00:39:46 +00:00

bitbake: [parse] In ast, make StatementGroup inherit list, and add a AstNode base class.

(Bitbake rev: 7ea31b2842b45ffe1ca688f55207f8676442a108)

Signed-off-by: Chris Larson <clarson@mvista.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
This commit is contained in:
Chris Larson
2009-07-21 12:00:29 -07:00
committed by Richard Purdie
parent c675bfd5bf
commit f03769280c
+13 -22
View File
@@ -26,23 +26,14 @@ import bb, re, string
__word__ = re.compile(r"\S+") __word__ = re.compile(r"\S+")
__parsed_methods__ = bb.methodpool.get_parsed_dict() __parsed_methods__ = bb.methodpool.get_parsed_dict()
class StatementGroup: class StatementGroup(list):
def __init__(self):
self.statements = []
def append(self, statement):
self.statements.append(statement)
def eval(self, data): def eval(self, data):
""" map(lambda x: x.eval(data), self)
Apply each statement on the data... in order
"""
map(lambda x: x.eval(data), self.statements)
def __getitem__(self, item): class AstNode(object):
return self.statements.__getitem__(item) pass
class IncludeNode: class IncludeNode(AstNode):
def __init__(self, what_file, fn, lineno, force): def __init__(self, what_file, fn, lineno, force):
self.what_file = what_file self.what_file = what_file
self.from_fn = fn self.from_fn = fn
@@ -62,14 +53,14 @@ class IncludeNode:
else: else:
bb.parse.ConfHandler.include(self.from_fn, s, data, False) bb.parse.ConfHandler.include(self.from_fn, s, data, False)
class ExportNode: class ExportNode(AstNode):
def __init__(self, var): def __init__(self, var):
self.var = var self.var = var
def eval(self, data): def eval(self, data):
bb.data.setVarFlag(self.var, "export", 1, data) bb.data.setVarFlag(self.var, "export", 1, data)
class DataNode: class DataNode(AstNode):
""" """
Various data related updates. For the sake of sanity Various data related updates. For the sake of sanity
we have one class doing all this. This means that all we have one class doing all this. This means that all
@@ -134,7 +125,7 @@ class MethodNode:
bb.data.setVarFlag(self.func_name, "func", 1, data) bb.data.setVarFlag(self.func_name, "func", 1, data)
bb.data.setVar(self.func_name, '\n'.join(self.body), data) bb.data.setVar(self.func_name, '\n'.join(self.body), data)
class PythonMethodNode: class PythonMethodNode(AstNode):
def __init__(self, root, body, fn): def __init__(self, root, body, fn):
self.root = root self.root = root
self.body = body self.body = body
@@ -148,7 +139,7 @@ class PythonMethodNode:
text = '\n'.join(self.body) text = '\n'.join(self.body)
bb.methodpool.insert_method(self.root, text, self.fn) bb.methodpool.insert_method(self.root, text, self.fn)
class MethodFlagsNode: class MethodFlagsNode(AstNode):
def __init__(self, key, m): def __init__(self, key, m):
self.key = key self.key = key
self.m = m self.m = m
@@ -168,7 +159,7 @@ class MethodFlagsNode:
else: else:
bb.data.delVarFlag(self.key, "fakeroot", data) bb.data.delVarFlag(self.key, "fakeroot", data)
class ExportFuncsNode: class ExportFuncsNode(AstNode):
def __init__(self, fns, classes): def __init__(self, fns, classes):
self.n = __word__.findall(fns) self.n = __word__.findall(fns)
self.classes = classes self.classes = classes
@@ -207,7 +198,7 @@ class ExportFuncsNode:
bb.data.setVar(var, "\t" + calledvar + "\n", data) bb.data.setVar(var, "\t" + calledvar + "\n", data)
bb.data.setVarFlag(var, 'export_func', '1', data) bb.data.setVarFlag(var, 'export_func', '1', data)
class AddTaskNode: class AddTaskNode(AstNode):
def __init__(self, func, before, after): def __init__(self, func, before, after):
self.func = func self.func = func
self.before = before self.before = before
@@ -238,7 +229,7 @@ class AddTaskNode:
if var not in existing: if var not in existing:
bb.data.setVarFlag(entry, "deps", [var] + existing, data) bb.data.setVarFlag(entry, "deps", [var] + existing, data)
class BBHandlerNode: class BBHandlerNode(AstNode):
def __init__(self, fns): def __init__(self, fns):
self.hs = __word__.findall(fns) self.hs = __word__.findall(fns)
@@ -249,7 +240,7 @@ class BBHandlerNode:
bb.data.setVarFlag(h, "handler", 1, data) bb.data.setVarFlag(h, "handler", 1, data)
bb.data.setVar('__BBHANDLERS', bbhands, data) bb.data.setVar('__BBHANDLERS', bbhands, data)
class InheritNode: class InheritNode(AstNode):
def __init__(self, files): def __init__(self, files):
self.n = __word__.findall(files) self.n = __word__.findall(files)