[pypy-svn] r16745 - in pypy/release/0.7.x/pypy: interpreter/pyparser translator/goal

ludal at codespeak.net ludal at codespeak.net
Sat Aug 27 13:37:40 CEST 2005


Author: ludal
Date: Sat Aug 27 13:37:36 2005
New Revision: 16745

Modified:
   pypy/release/0.7.x/pypy/interpreter/pyparser/astbuilder.py
   pypy/release/0.7.x/pypy/interpreter/pyparser/pythonutil.py
   pypy/release/0.7.x/pypy/translator/goal/targetcompiler.py
   pypy/release/0.7.x/pypy/translator/goal/targetparser.py
Log:
 - reflect changes from the -laptop options so the targets don't crash right away
 - reverted targetparser to using the tuplebuilder since it allows testing the stable pypy parser
 - remove some dead code


Modified: pypy/release/0.7.x/pypy/interpreter/pyparser/astbuilder.py
==============================================================================
--- pypy/release/0.7.x/pypy/interpreter/pyparser/astbuilder.py	(original)
+++ pypy/release/0.7.x/pypy/interpreter/pyparser/astbuilder.py	Sat Aug 27 13:37:36 2005
@@ -7,6 +7,7 @@
 from pypy.interpreter.astcompiler import ast, consts
 import pypy.interpreter.pyparser.pysymbol as sym
 import pypy.interpreter.pyparser.pytoken as tok
+from pypy.interpreter.pyparser.error import SyntaxError
 
 DEBUG_MODE = 0
 

Modified: pypy/release/0.7.x/pypy/interpreter/pyparser/pythonutil.py
==============================================================================
--- pypy/release/0.7.x/pypy/interpreter/pyparser/pythonutil.py	(original)
+++ pypy/release/0.7.x/pypy/interpreter/pyparser/pythonutil.py	Sat Aug 27 13:37:36 2005
@@ -52,6 +52,15 @@
     return pypy_parse(source, 'exec', lineno)
 
 def internal_pypy_parse(source, mode='exec', lineno=False, flags=0):
+    """This function has no other role than testing the parser's annotation
+
+    annotateme() is basically the same code that pypy_parse(), but with the
+    following differences :
+
+     - returns a tuplebuilder.StackElement instead of the *real* nested
+       tuples (StackElement is only a wrapper class around these tuples)
+
+    """
     builder = TupleBuilder(PYTHON_PARSER.rules, lineno=False)
     target_rule = TARGET_DICT[mode]
     PYTHON_PARSER.parse_source(source, target_rule, builder, flags)
@@ -101,20 +110,6 @@
     ast = transformer.compile_node(tuples)
     return ast
 
-def ast_from_input_(input, mode):
-    builder = AstBuilder()
-    target = TARGET_DICT[mode]
-    PYTHON_PARSER.parse_source(input, target, builder)
-    return builder.rule_stack[-1]
-
-def ast_compile(input, mode):
-    from pypy.interpreter.astcompiler import ast, misc, pycodegen
-    ast_tree = ast_from_input_( input, mode )
-    misc.set_filename("<?>", ast_tree)
-    codegenerator = pycodegen.InteractiveCodeGenerator(ast_tree)
-    code1 = codegenerator.getCode()
-    return code1
-
 def target_ast_compile(space, input, mode):
     from pypy.interpreter.astcompiler import ast, misc, pycodegen
     builder = AstBuilder(rules=None, debug=0, space=space)
@@ -122,7 +117,14 @@
     PYTHON_PARSER.parse_source(input, target, builder)
     ast_tree = builder.rule_stack[-1]
     misc.set_filename("<?>", ast_tree)
-    codegenerator = pycodegen.InteractiveCodeGenerator(ast_tree)
+    if mode=="single":
+        codegenerator = pycodegen.InteractiveCodeGenerator(space,ast_tree)
+    elif mode=="eval":
+        codegenerator = pycodegen.ExpressionCodeGenerator(space,ast_tree)
+    elif mode=="exec":
+        codegenerator = pycodegen.ModuleCodeGenerator(space,ast_tree)
+    else:
+        raise ValueError("incorrect mode")
     code1 = codegenerator.getCode()
     return code1
 
@@ -135,20 +137,6 @@
     return (builder.source_encoding, ast_tree)
 
 
-## TARGET FOR ANNOTATORS #############################################
-def annotateme(source):
-    """This function has no other role than testing the parser's annotation
-
-    annotateme() is basically the same code that pypy_parse(), but with the
-    following differences :
-
-     - returns a tuplebuilder.StackElement instead of the *real* nested
-       tuples (StackElement is only a wrapper class around these tuples)
-
-    """
-    return internal_pypy_parse(source, 'exec')
-
-
 if __name__ == "__main__":
     import sys
     if len(sys.argv) < 2:

Modified: pypy/release/0.7.x/pypy/translator/goal/targetcompiler.py
==============================================================================
--- pypy/release/0.7.x/pypy/translator/goal/targetcompiler.py	(original)
+++ pypy/release/0.7.x/pypy/translator/goal/targetcompiler.py	Sat Aug 27 13:37:36 2005
@@ -20,7 +20,7 @@
     return target_ast_compile( space, s1, s2 )
 
 # _____ Define and setup target ___
-def target():
+def target(geninterp=True):
     global space, w_entry_point
     # disable translation of the whole of classobjinterp.py
     StdObjSpace.setup_old_style_classes = lambda self: None
@@ -28,10 +28,10 @@
     # for the poor translator already
     # XXX why can't I enable this? crashes the annotator!
     space = StdObjSpace(nofaking=True,
-                        compiler="astparser",
+                        compiler="ast",
                         translating=True,
                         #usemodules=['marhsal', '_sre'],
-                        geninterp=False)
+                        geninterp=geninterp)
     return entry_point, [str, str]
 
 # _____ Run translated _____

Modified: pypy/release/0.7.x/pypy/translator/goal/targetparser.py
==============================================================================
--- pypy/release/0.7.x/pypy/translator/goal/targetparser.py	(original)
+++ pypy/release/0.7.x/pypy/translator/goal/targetparser.py	Sat Aug 27 13:37:36 2005
@@ -8,16 +8,13 @@
 
 this_dir = os.path.dirname(sys.argv[0])
 
-# from pypy.interpreter.pyparser.pythonutil import annotateme
+from pypy.interpreter.pyparser.pythonutil import internal_pypy_parse
 # __________  Entry point  __________
-# entry_point = annotateme
-
-from pypy.interpreter.pyparser.pythonutil import ast_from_input_
-entry_point = ast_from_input_
+entry_point = internal_pypy_parse
 
 # _____ Define and setup target ___
-def target():
-    return entry_point, [str, str]
+def target(*args):
+    return entry_point, [str, str, bool, int]
 
 # _____ Run translated _____
 def run(c_entry_point):



More information about the Pypy-commit mailing list