File: __init__.py

package info (click to toggle)
pypy3 7.0.0%2Bdfsg-3
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 111,848 kB
  • sloc: python: 1,291,746; ansic: 74,281; asm: 5,187; cpp: 3,017; sh: 2,533; makefile: 544; xml: 243; lisp: 45; csh: 21; awk: 4
file content (24 lines) | stat: -rw-r--r-- 671 bytes parent folder | download | duplicates (7)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
"""Dynamic replacement for the stdlib 'symbol' module.

This module exports the symbol values computed by the grammar parser
at run-time.
"""

from pypy.interpreter.mixedmodule import MixedModule
from pypy.interpreter.pyparser import pygram


class Module(MixedModule):
    """Non-terminal symbols of Python grammar."""
    appleveldefs = {}
    interpleveldefs = {}     # see below


def _init_symbols():
    sym_name = {}
    for name, val in pygram.python_grammar.symbol_ids.iteritems():
        Module.interpleveldefs[name] = 'space.wrap(%d)' % val
        sym_name[val] = name
    Module.interpleveldefs['sym_name'] = 'space.wrap(%r)' % (sym_name,)

_init_symbols()