From 13fdd4ae5d5709332d84427ff8e60dc9ba62974f Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Thu, 26 Aug 2010 18:06:30 +0100 Subject: bitbake/BBHandler: Save python functions into the dictonary Signed-off-by: Richard Purdie --- bitbake/lib/bb/parse/ast.py | 10 +++++++--- bitbake/lib/bb/parse/parse_py/BBHandler.py | 5 +++-- 2 files changed, 10 insertions(+), 5 deletions(-) (limited to 'bitbake/lib/bb/parse') diff --git a/bitbake/lib/bb/parse/ast.py b/bitbake/lib/bb/parse/ast.py index eb24e0ddd..8763362cd 100644 --- a/bitbake/lib/bb/parse/ast.py +++ b/bitbake/lib/bb/parse/ast.py @@ -137,7 +137,8 @@ class MethodNode: bb.data.setVar(self.func_name, '\n'.join(self.body), data) class PythonMethodNode(AstNode): - def __init__(self, root, body, fn): + def __init__(self, funcname, root, body, fn): + self.func_name = funcname self.root = root self.body = body self.fn = fn @@ -149,6 +150,9 @@ class PythonMethodNode(AstNode): if not bb.methodpool.parsed_module(self.root): text = '\n'.join(self.body) bb.methodpool.insert_method(self.root, text, self.fn) + bb.data.setVarFlag(self.func_name, "func", 1, data) + bb.data.setVarFlag(self.func_name, "python", 1, data) + bb.data.setVar(self.func_name, text, data) class MethodFlagsNode(AstNode): def __init__(self, key, m): @@ -270,8 +274,8 @@ def handleData(statements, groupd): def handleMethod(statements, func_name, lineno, fn, body): statements.append(MethodNode(func_name, body, lineno, fn)) -def handlePythonMethod(statements, root, body, fn): - statements.append(PythonMethodNode(root, body, fn)) +def handlePythonMethod(statements, funcname, root, body, fn): + statements.append(PythonMethodNode(funcname, root, body, fn)) def handleMethodFlags(statements, key, m): statements.append(MethodFlagsNode(key, m)) diff --git a/bitbake/lib/bb/parse/parse_py/BBHandler.py b/bitbake/lib/bb/parse/parse_py/BBHandler.py index bb5617488..51ad10fb9 100644 --- a/bitbake/lib/bb/parse/parse_py/BBHandler.py +++ b/bitbake/lib/bb/parse/parse_py/BBHandler.py @@ -183,7 +183,7 @@ def feeder(lineno, s, fn, root, statements): __body__.append(s) return else: - ast.handlePythonMethod(statements, root, __body__, fn) + ast.handlePythonMethod(statements, __inpython__, root, __body__, fn) __body__ = [] __inpython__ = False @@ -210,7 +210,8 @@ def feeder(lineno, s, fn, root, statements): m = __def_regexp__.match(s) if m: __body__.append(s) - __inpython__ = True + __inpython__ = m.group(1) + return m = __export_func_regexp__.match(s) -- cgit v1.2.3