Exemplo n.º 1
0
    def __init__(self, space, override_version=None):

        from pyparser.pythonparse import make_pyparser
        PyCodeCompiler.__init__(self, space)
        self.grammar_version = override_version or space.config.objspace.pyversion
        self.parser = make_pyparser(self.grammar_version)
        self.additional_rules = {}
        if self.grammar_version >= '2.5':
            self.futureFlags = future.futureFlags_2_5
        else:
            self.futureFlags = future.futureFlags_2_4
        self.compiler_flags = self.futureFlags.allowed_flags
Exemplo n.º 2
0
    def __init__(self, space, override_version=None):

        from pyparser.pythonparse import make_pyparser
        PyCodeCompiler.__init__(self, space)
        self.grammar_version = override_version or space.config.objspace.pyversion
        self.parser = make_pyparser(self.grammar_version)
        self.additional_rules = {}
        if self.grammar_version >= '2.5':
            self.futureFlags = future.futureFlags_2_5
        else:
            self.futureFlags = future.futureFlags_2_4
        self.compiler_flags = self.futureFlags.allowed_flags
Exemplo n.º 3
0
from pyparser.pythonparse import make_pyparser
from pyparser.tuplebuilder import TupleBuilder
import symbol
import token

parser = make_pyparser("native")
symbol_lookup = dict((num, getattr(symbol, name)) 
                     for name, num in parser.symbols.iteritems()
                     if not name.startswith(":"))
token_lookup = dict((num, getattr(token, name)) 
                    for name, num in parser.tokens.iteritems()
                    if name not in ("NULLTOKEN", "COMMENT", "NL"))

def pypy_parse(source, mode='exec', lineno=False):
    builder = TupleBuilder(parser)
    parser.parse_source(source, mode, builder)
    return builder.stack[-1].as_tuple(lineno)

int_map = {}
int_map.update(symbol_lookup)
int_map.update(token_lookup)

def suite(source):
    return source

def _renumber(a):
    return int_map[a]

def _renumber_tree(a):
    # The parser from pypy seems to allocate different integer
    # constants to the different node types.  Look up the correct