PHP 8.2.30
Preview: symtable.h Size: 4.58 KB
//opt/alt/python33/include/python3.3m/symtable.h

#ifndef Py_LIMITED_API
#ifndef Py_SYMTABLE_H
#define Py_SYMTABLE_H

#ifdef __cplusplus
extern "C" {
#endif

/* XXX(ncoghlan): This is a weird mix of public names and interpreter internal
 *                names.
 */

typedef enum _block_type { FunctionBlock, ClassBlock, ModuleBlock }
    _Py_block_ty;

struct _symtable_entry;

struct symtable {
    const char *st_filename;        /* name of file being compiled,
                                       decoded from the filesystem encoding */
    struct _symtable_entry *st_cur; /* current symbol table entry */
    struct _symtable_entry *st_top; /* symbol table entry for module */
    PyObject *st_blocks;            /* dict: map AST node addresses
                                     *       to symbol table entries */
    PyObject *st_stack;             /* list: stack of namespace info */
    PyObject *st_global;            /* borrowed ref to st_top->ste_symbols */
    int st_nblocks;                 /* number of blocks used. kept for
                                       consistency with the corresponding
                                       compiler structure */
    PyObject *st_private;           /* name of current class or NULL */
    PyFutureFeatures *st_future;    /* module's future features that affect
                                       the symbol table */
    int recursion_depth;            /* current recursion depth */
    int recursion_limit;            /* recursion limit */
};

typedef struct _symtable_entry {
    PyObject_HEAD
    PyObject *ste_id;        /* int: key in ste_table->st_blocks */
    PyObject *ste_symbols;   /* dict: variable names to flags */
    PyObject *ste_name;      /* string: name of current block */
    PyObject *ste_varnames;  /* list of function parameters */
    PyObject *ste_children;  /* list of child blocks */
    _Py_block_ty ste_type;   /* module, class, or function */
    int ste_unoptimized;     /* false if namespace is optimized */
    int ste_nested;      /* true if block is nested */
    unsigned ste_free : 1;        /* true if block has free variables */
    unsigned ste_child_free : 1;  /* true if a child block has free vars,
                                     including free refs to globals */
    unsigned ste_generator : 1;   /* true if namespace is a generator */
    unsigned ste_varargs : 1;     /* true if block has varargs */
    unsigned ste_varkeywords : 1; /* true if block has varkeywords */
    unsigned ste_returns_value : 1;  /* true if namespace uses return with
                                        an argument */
    int ste_lineno;          /* first line of block */
    int ste_col_offset;      /* offset of first line of block */
    int ste_opt_lineno;      /* lineno of last exec or import * */
    int ste_opt_col_offset;  /* offset of last exec or import * */
    int ste_tmpname;         /* counter for listcomp temp vars */
    struct symtable *ste_table;
} PySTEntryObject;

PyAPI_DATA(PyTypeObject) PySTEntry_Type;

#define PySTEntry_Check(op) (Py_TYPE(op) == &PySTEntry_Type)

PyAPI_FUNC(int) PyST_GetScope(PySTEntryObject *, PyObject *);

PyAPI_FUNC(struct symtable *) PySymtable_Build(
    mod_ty mod,
    const char *filename,       /* decoded from the filesystem encoding */
    PyFutureFeatures *future);
PyAPI_FUNC(PySTEntryObject *) PySymtable_Lookup(struct symtable *, void *);

PyAPI_FUNC(void) PySymtable_Free(struct symtable *);

/* Flags for def-use information */

#define DEF_GLOBAL 1           /* global stmt */
#define DEF_LOCAL 2            /* assignment in code block */
#define DEF_PARAM 2<<1         /* formal parameter */
#define DEF_NONLOCAL 2<<2      /* nonlocal stmt */
#define USE 2<<3               /* name is used */
#define DEF_FREE 2<<4          /* name used but not defined in nested block */
#define DEF_FREE_CLASS 2<<5    /* free variable from class's method */
#define DEF_IMPORT 2<<6        /* assignment occurred via import */

#define DEF_BOUND (DEF_LOCAL | DEF_PARAM | DEF_IMPORT)

/* GLOBAL_EXPLICIT and GLOBAL_IMPLICIT are used internally by the symbol
   table.  GLOBAL is returned from PyST_GetScope() for either of them.
   It is stored in ste_symbols at bits 12-15.
*/
#define SCOPE_OFFSET 11
#define SCOPE_MASK (DEF_GLOBAL | DEF_LOCAL | DEF_PARAM | DEF_NONLOCAL)

#define LOCAL 1
#define GLOBAL_EXPLICIT 2
#define GLOBAL_IMPLICIT 3
#define FREE 4
#define CELL 5

/* The following two names are used for the ste_unoptimized bit field */
#define OPT_IMPORT_STAR 1
#define OPT_TOPLEVEL 2  /* top-level names, including eval and exec */

#define GENERATOR 1
#define GENERATOR_EXPRESSION 2

#ifdef __cplusplus
}
#endif
#endif /* !Py_SYMTABLE_H */
#endif /* Py_LIMITED_API */

Directory Contents

Dirs: 0 × Files: 95

Name Size Perms Modified Actions
41.61 KB lrw-r--r-- 2017-09-19 07:32:02
Edit Download
1016 B lrw-r--r-- 2017-09-19 07:32:02
Edit Download
1.07 KB lrw-r--r-- 2017-09-19 07:32:02
Edit Download
344 B lrw-r--r-- 2017-09-19 07:32:02
Edit Download
792 B lrw-r--r-- 2017-09-19 07:32:02
Edit Download
264 B lrw-r--r-- 2017-09-19 07:32:02
Edit Download
886 B lrw-r--r-- 2017-09-19 07:32:02
Edit Download
1.95 KB lrw-r--r-- 2017-09-19 07:32:02
Edit Download
4.78 KB lrw-r--r-- 2017-09-19 07:32:02
Edit Download
1.98 KB lrw-r--r-- 2017-09-19 07:32:02
Edit Download
701 B lrw-r--r-- 2017-09-19 07:32:02
Edit Download
7.03 KB lrw-r--r-- 2017-09-19 07:32:02
Edit Download
1.63 KB lrw-r--r-- 2017-09-19 07:32:02
Edit Download
4.13 KB lrw-r--r-- 2017-09-19 07:32:02
Edit Download
6.33 KB lrw-r--r-- 2017-09-19 07:32:02
Edit Download
1.62 KB lrw-r--r-- 2017-09-19 07:32:02
Edit Download
1.91 KB lrw-r--r-- 2017-09-19 07:32:02
Edit Download
8.34 KB lrw-r--r-- 2017-09-19 07:32:02
Edit Download
2.84 KB lrw-r--r-- 2017-09-19 07:32:02
Edit Download
4.86 KB lrw-r--r-- 2017-09-19 07:32:02
Edit Download
458 B lrw-r--r-- 2017-09-19 07:32:02
Edit Download
21.94 KB lrw-r--r-- 2017-09-19 07:32:02
Edit Download
253 B lrw-r--r-- 2017-09-19 07:32:02
Edit Download
1.46 KB lrw-r--r-- 2017-09-19 07:32:02
Edit Download
597 B lrw-r--r-- 2017-09-19 07:32:02
Edit Download
1.73 KB lrw-r--r-- 2017-09-19 07:32:02
Edit Download
1.06 KB lrw-r--r-- 2017-09-19 07:32:02
Edit Download
4.53 KB lrw-r--r-- 2017-09-19 07:32:02
Edit Download
3.29 KB lrw-r--r-- 2017-09-19 07:32:02
Edit Download
3.68 KB lrw-r--r-- 2017-09-19 07:32:02
Edit Download
1.05 KB lrw-r--r-- 2017-09-19 07:32:02
Edit Download
1.83 KB lrw-r--r-- 2017-09-19 07:32:02
Edit Download
1.97 KB lrw-r--r-- 2017-09-19 07:32:02
Edit Download
3.79 KB lrw-r--r-- 2017-09-19 07:32:02
Edit Download
460 B lrw-r--r-- 2017-09-19 07:32:02
Edit Download
567 B lrw-r--r-- 2017-09-19 07:32:02
Edit Download
2.77 KB lrw-r--r-- 2017-09-19 07:32:02
Edit Download
3.90 KB lrw-r--r-- 2017-09-19 07:32:02
Edit Download
7.55 KB lrw-r--r-- 2017-09-19 07:32:02
Edit Download
743 B lrw-r--r-- 2017-09-19 07:32:02
Edit Download
2.80 KB lrw-r--r-- 2017-09-19 07:32:02
Edit Download
253 B lrw-r--r-- 2017-09-19 07:32:02
Edit Download
3.23 KB lrw-r--r-- 2017-09-19 07:32:02
Edit Download
4.75 KB lrw-r--r-- 2017-09-19 07:32:02
Edit Download
1.53 KB lrw-r--r-- 2017-09-19 07:32:02
Edit Download
297 B lrw-r--r-- 2017-09-19 07:32:02
Edit Download
996 B lrw-r--r-- 2017-09-19 07:32:02
Edit Download
37.09 KB lrw-r--r-- 2017-09-19 07:32:02
Edit Download
13.08 KB lrw-r--r-- 2017-09-19 07:32:02
Edit Download
5.09 KB lrw-r--r-- 2017-09-19 07:32:02
Edit Download
986 B lrw-r--r-- 2017-09-19 07:32:02
Edit Download
2.23 KB lrw-r--r-- 2017-09-19 07:32:02
Edit Download
1.10 KB lrw-r--r-- 2017-09-19 07:32:02
Edit Download
253 B lrw-r--r-- 2017-09-19 07:32:02
Edit Download
1.12 KB lrw-r--r-- 2017-09-19 07:32:02
Edit Download
2.68 KB lrw-r--r-- 2017-09-19 07:32:02
Edit Download
5.80 KB lrw-r--r-- 2017-09-19 07:32:02
Edit Download
1.69 KB lrw-r--r-- 2017-09-19 07:32:02
Edit Download
41.43 KB lrw-r--r-- 2024-04-17 16:56:51
Edit Download
162 B lrw-r--r-- 2024-04-17 16:58:11
Edit Download
1.29 KB lrw-r--r-- 2017-09-19 07:32:02
Edit Download
986 B lrw-r--r-- 2017-09-19 07:32:02
Edit Download
14.34 KB lrw-r--r-- 2017-09-19 07:32:02
Edit Download
2.29 KB lrw-r--r-- 2017-09-19 07:32:02
Edit Download
8.29 KB lrw-r--r-- 2017-09-19 07:32:02
Edit Download
388 B lrw-r--r-- 2017-09-19 07:32:02
Edit Download
2.92 KB lrw-r--r-- 2017-09-19 07:32:02
Edit Download
2.62 KB lrw-r--r-- 2017-09-19 07:32:02
Edit Download
6.26 KB lrw-r--r-- 2017-09-19 07:32:02
Edit Download
4.59 KB lrw-r--r-- 2017-09-19 07:32:02
Edit Download
30.32 KB lrw-r--r-- 2017-09-19 07:32:02
Edit Download
7.58 KB lrw-r--r-- 2017-09-19 07:32:02
Edit Download
436 B lrw-r--r-- 2017-09-19 07:32:02
Edit Download
1.25 KB lrw-r--r-- 2017-09-19 07:32:02
Edit Download
18.87 KB lrw-r--r-- 2017-09-19 07:38:53
Edit Download
2.77 KB lrw-r--r-- 2017-09-19 07:32:02
Edit Download
8.79 KB lrw-r--r-- 2017-09-19 07:32:02
Edit Download
2.96 KB lrw-r--r-- 2017-09-19 07:32:02
Edit Download
2.64 KB lrw-r--r-- 2017-09-19 07:32:02
Edit Download
4.08 KB lrw-r--r-- 2017-09-19 07:32:02
Edit Download
629 B lrw-r--r-- 2017-09-19 07:32:02
Edit Download
3.21 KB lrw-r--r-- 2017-09-19 07:32:02
Edit Download
1.35 KB lrw-r--r-- 2017-09-19 07:32:02
Edit Download
2.02 KB lrw-r--r-- 2017-09-19 07:32:02
Edit Download
1.19 KB lrw-r--r-- 2017-09-19 07:32:02
Edit Download
4.58 KB lrw-r--r-- 2017-09-19 07:32:02
Edit Download
1.08 KB lrw-r--r-- 2017-09-19 07:32:02
Edit Download
1.84 KB lrw-r--r-- 2017-09-19 07:32:02
Edit Download
2.09 KB lrw-r--r-- 2017-09-19 07:32:02
Edit Download
2.39 KB lrw-r--r-- 2017-09-19 07:32:02
Edit Download
1.95 KB lrw-r--r-- 2017-09-19 07:32:02
Edit Download
1.03 KB lrw-r--r-- 2017-09-19 07:32:02
Edit Download
74.41 KB lrw-r--r-- 2017-09-19 07:32:02
Edit Download
953 B lrw-r--r-- 2017-09-19 07:32:02
Edit Download
2.80 KB lrw-r--r-- 2017-09-19 07:32:02
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).