[pypy-svn] r40771 - in pypy/dist/pypy: interpreter/pyparser module/recparser
adim at codespeak.net
adim at codespeak.net
Mon Mar 19 14:47:47 CET 2007
Author: adim
Date: Mon Mar 19 14:47:40 2007
New Revision: 40771
Modified:
pypy/dist/pypy/interpreter/pyparser/pythonparse.py
pypy/dist/pypy/module/recparser/pyparser.py
Log:
modified recparser's unwrap_syntax_tree in order to make modified-2.4.1/test/test_parser.py
pass again
Modified: pypy/dist/pypy/interpreter/pyparser/pythonparse.py
==============================================================================
--- pypy/dist/pypy/interpreter/pyparser/pythonparse.py (original)
+++ pypy/dist/pypy/interpreter/pyparser/pythonparse.py Mon Mar 19 14:47:40 2007
@@ -94,17 +94,15 @@
def __init__(self): # , predefined_symbols=None):
grammar.Parser.__init__(self)
pytoken.setup_tokens(self)
+ # remember how many tokens were loaded
+ self._basetokens_count = self._sym_count
# if predefined_symbols:
# self.load_symbols(predefined_symbols)
self.keywords = []
-
- # XXX (adim): this is trunk's keyword management
- # self.with_grammar = None
- # self.keywords = dict.fromkeys(grammar_builder.keywords)
- # # Only when with_statement is enabled
- # self.keywords.pop('with', None)
- # self.keywords.pop('as', None)
-
+
+ def is_base_token(self, tokvalue):
+ return tokvalue < 0 or tokvalue >= self._basetokens_count
+
def parse_source(self, textsrc, mode, builder, flags=0):
"""Parse a python source according to goal"""
goal = self.targets[mode]
@@ -126,7 +124,6 @@
def parse_lines(self, lines, goal, builder, flags=0):
- # XXX (adim): this is trunk's keyword management
# builder.keywords = self.keywords.copy()
# if flags & CO_FUTURE_WITH_STATEMENT:
# builder.enable_with()
Modified: pypy/dist/pypy/module/recparser/pyparser.py
==============================================================================
--- pypy/dist/pypy/module/recparser/pyparser.py (original)
+++ pypy/dist/pypy/module/recparser/pyparser.py Mon Mar 19 14:47:40 2007
@@ -183,11 +183,9 @@
def unwrap_syntax_tree( space, w_sequence ):
items = space.unpackiterable( w_sequence )
+ parser = space.default_compiler.parser
nodetype = space.int_w( items[0] )
- is_syntax = True
- if nodetype>=0 and nodetype < pytoken.N_TOKENS:
- is_syntax = False
- if is_syntax:
+ if parser.is_base_token(nodetype):
nodes = []
for w_node in items[1:]:
node = unwrap_syntax_tree( space, w_node )
More information about the pypy-svn
mailing list