]> code.ossystems Code Review - openembedded-core.git/commitdiff
bitbake: [parser] Move the handling of a method to a function
authorHolger Freyther <ich@tamarin.(none)>
Sun, 17 May 2009 10:32:36 +0000 (12:32 +0200)
committerRichard Purdie <rpurdie@linux.intel.com>
Wed, 10 Feb 2010 16:31:48 +0000 (16:31 +0000)
We want to convert this into a proper AST. So move all
such operations to methods... Later change them to generate
a node... and create that node from here.

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
bitbake/lib/bb/parse/parse_py/BBHandler.py

index c6931650dadb4be3e3251aefb36c6be471683639..0ef9ef69c0cc5394c4ae95a75cc5002419ce5755 100644 (file)
@@ -56,6 +56,20 @@ IN_PYTHON_EOF = -9999999999999
 
 __parsed_methods__ = methodpool.get_parsed_dict()
 
+# parsing routines, to be moved into AST classes
+def handleMethod(func_name, body, d):
+    if func_name == "__anonymous":
+        funcname = ("__anon_%s_%s" % (lineno, fn.translate(string.maketrans('/.+-', '____'))))
+        if not funcname in methodpool._parsed_fns:
+            text = "def %s(d):\n" % (funcname) + '\n'.join(body)
+            methodpool.insert_method(funcname, text, fn)
+        anonfuncs = data.getVar('__BBANONFUNCS', d) or []
+        anonfuncs.append(funcname)
+        data.setVar('__BBANONFUNCS', anonfuncs, d)
+    else:
+        data.setVarFlag(func_name, "func", 1, d)
+        data.setVar(func_name, '\n'.join(body), d)
+
 def supports(fn, d):
     return fn[-3:] == ".bb" or fn[-8:] == ".bbclass" or fn[-4:] == ".inc"
 
@@ -204,17 +218,7 @@ def feeder(lineno, s, fn, root, d):
     if __infunc__:
         if s == '}':
             __body__.append('')
-            if __infunc__ == "__anonymous":
-                funcname = ("__anon_%s_%s" % (lineno, fn.translate(string.maketrans('/.+-', '____'))))
-                if not funcname in methodpool._parsed_fns:
-                    text = "def %s(d):\n" % (funcname) + '\n'.join(__body__)
-                    methodpool.insert_method(funcname, text, fn)
-                anonfuncs = data.getVar('__BBANONFUNCS', d) or []
-                anonfuncs.append(funcname)
-                data.setVar('__BBANONFUNCS', anonfuncs, d)
-            else:
-                data.setVarFlag(__infunc__, "func", 1, d)
-                data.setVar(__infunc__, '\n'.join(__body__), d)
+            handleMethod(__infunc__, __body__, d)
             __infunc__ = ""
             __body__ = []
         else: