[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