Ejemplo n.º 1
0
def symtable(code, filename, compile_type):
    raw = _symtable.symtable(code, filename, compile_type)
    for top in raw.itervalues():
        if top.name == 'top':
            break

    return _newSymbolTable(top, filename)
Ejemplo n.º 2
0
def symtable(code, filename, compile_type):
    """ Return the toplevel *SymbolTable* for the source code.

    *filename* is the name of the file with the code
    and *compile_type* is the *compile()* mode argument.
    """
    top = _symtable.symtable(code, filename, compile_type)
    return _newSymbolTable(top, filename)
Ejemplo n.º 3
0
def test_pickle_stentry():

    st1 = _symtable.symtable('def f(x): return x', 'test', 'exec')
    assert repr(st1)[1:].startswith('symtable entry')
    s = pf.pickle_object(st1)
    st2 = pf.unpickle_object(s)

    assert type(st1) == type(st2)
    assert st1.lineno == st2.lineno
    assert st1.id == st2.id
    assert st1.varnames == st2.varnames
    assert st1.name == st2.name

    print "Symbol Table Entry pickling OK!"
Ejemplo n.º 4
0
def symtable(code, filename, compile_type):
    top = _symtable.symtable(code, filename, compile_type)
    return _newSymbolTable(top, filename)
Ejemplo n.º 5
0
def symtable(code, filename, compile_type):
    top = _symtable.symtable(code, filename, compile_type)
    return _newSymbolTable(top, filename)
Ejemplo n.º 6
0
def symtable(code, filename, compile_type):
    raw = _symtable.symtable(code, filename, compile_type)
    for top in raw.itervalues():
        if top.name == 'top':
            break
    return _newSymbolTable(top, filename)
Ejemplo n.º 7
0
def checkfilename(brokencode):
    try:
        _symtable.symtable(brokencode, "spam", "exec")
    except SyntaxError, e:
        vereq(e.filename, "spam")
Ejemplo n.º 8
0
from test.test_support import vereq, TestFailed

import _symtable

symbols = _symtable.symtable("def f(x): return x", "?", "exec")

vereq(symbols[0].name, "global")
vereq(len([ste for ste in symbols.values() if ste.name == "f"]), 1)

# Bug tickler: SyntaxError file name correct whether error raised
# while parsing or building symbol table.
def checkfilename(brokencode):
    try:
        _symtable.symtable(brokencode, "spam", "exec")
    except SyntaxError, e:
        vereq(e.filename, "spam")
    else:
        raise TestFailed("no SyntaxError for %r" % (brokencode,))


checkfilename("def f(x): foo)(")  # parse-time
checkfilename("def f(x): global x")  # symtable-build-time
Ejemplo n.º 9
0
from __future__ import absolute_import

import _symtable

from ._util import PY2, PY33


if PY2 or PY33:
    symtable_entry = type(_symtable.symtable('', '<string>', 'exec'))
else:
    symtable_entry = type(next(iter(_symtable.symtable('', '<string>', 'exec').values())))
Ejemplo n.º 10
0
from test_support import verify

import _symtable

symbols = _symtable.symtable("def f(x): return x", "?", "exec")

verify(symbols[0].name == "global")
verify(len([ste for ste in symbols.values() if ste.name == "f"]) == 1)
Ejemplo n.º 11
0
def symtable(code, filename, compile_type):
    raw = _symtable.symtable(code, filename, compile_type)
    return newSymbolTable(raw[0], filename)
Ejemplo n.º 12
0
def checkfilename(brokencode):
    try:
        _symtable.symtable(brokencode, "spam", "exec")
    except SyntaxError, e:
        vereq(e.filename, "spam")
Ejemplo n.º 13
0
"""Interface to the compiler's internal symbol tables"""
Ejemplo n.º 14
0
from test_support import verify
import _symtable
symbols = _symtable.symtable("def f(x): return x", "?", "exec")
verify(symbols[0].name == "global")
verify(len([ste for ste in symbols.values() if ste.name == "f"]) == 1)