85 lines
2.5 KiB
Cython
85 lines
2.5 KiB
Cython
# cython: language_level=3str
|
|
|
|
cimport cython
|
|
|
|
from .Visitor cimport (
|
|
CythonTransform, VisitorTransform, TreeVisitor,
|
|
ScopeTrackingTransform, EnvTransform)
|
|
|
|
# Don't include mixins, only the main classes.
|
|
#cdef class SkipDeclarations:
|
|
|
|
cdef class NormalizeTree(CythonTransform):
|
|
cdef bint is_in_statlist
|
|
cdef bint is_in_expr
|
|
cpdef visit_StatNode(self, node, is_listcontainer=*)
|
|
|
|
cdef class PostParse(ScopeTrackingTransform):
|
|
cdef dict specialattribute_handlers
|
|
cdef size_t lambda_counter
|
|
cdef size_t genexpr_counter
|
|
cdef _visit_assignment_node(self, node, list expr_list)
|
|
|
|
|
|
#def eliminate_rhs_duplicates(list expr_list_list, list ref_node_sequence)
|
|
#def sort_common_subsequences(list items)
|
|
@cython.locals(starred_targets=Py_ssize_t, lhs_size=Py_ssize_t, rhs_size=Py_ssize_t)
|
|
cdef flatten_parallel_assignments(list input, list output)
|
|
cdef map_starred_assignment(list lhs_targets, list starred_assignments, list lhs_args, list rhs_args)
|
|
|
|
#class PxdPostParse(CythonTransform, SkipDeclarations):
|
|
#class InterpretCompilerDirectives(CythonTransform, SkipDeclarations):
|
|
#class WithTransform(VisitorTransform, SkipDeclarations):
|
|
#class DecoratorTransform(CythonTransform, SkipDeclarations):
|
|
|
|
#class AnalyseDeclarationsTransform(EnvTransform):
|
|
|
|
cdef class AnalyseExpressionsTransform(CythonTransform):
|
|
pass
|
|
|
|
cdef class ExpandInplaceOperators(EnvTransform):
|
|
pass
|
|
|
|
cdef class AlignFunctionDefinitions(CythonTransform):
|
|
cdef dict directives
|
|
cdef set imported_names
|
|
cdef object scope
|
|
|
|
@cython.final
|
|
cdef class YieldNodeCollector(TreeVisitor):
|
|
cdef public list yields
|
|
cdef public list returns
|
|
cdef public list finallys
|
|
cdef public list excepts
|
|
cdef public bint has_return_value
|
|
cdef public bint has_yield
|
|
cdef public bint has_await
|
|
cdef list excludes
|
|
|
|
@cython.final
|
|
cdef class MarkClosureVisitor(CythonTransform):
|
|
cdef bint needs_closure
|
|
cdef list excludes
|
|
|
|
@cython.final
|
|
cdef class CreateClosureClasses(CythonTransform):
|
|
cdef list path
|
|
cdef bint in_lambda
|
|
cdef module_scope
|
|
cdef generator_class
|
|
|
|
cdef create_class_from_scope(self, node, target_module_scope, inner_node=*)
|
|
cdef find_entries_used_in_closures(self, node)
|
|
|
|
#cdef class InjectGilHandling(VisitorTransform, SkipDeclarations):
|
|
# cdef bint nogil
|
|
|
|
cdef class GilCheck(VisitorTransform):
|
|
cdef list env_stack
|
|
cdef bint nogil
|
|
cdef bint nogil_declarator_only
|
|
cdef bint current_gilstat_node_knows_gil_state
|
|
|
|
cdef class TransformBuiltinMethods(EnvTransform):
|
|
cdef visit_cython_attribute(self, node)
|