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:
committed by
Richard Purdie
parent
c675bfd5bf
commit
f03769280c
+13
-22
@@ -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)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user