cython

Форк
0
/
Visitor.pxd 
53 строки · 1.7 Кб
1
cimport cython
2

3
cdef class TreeVisitor:
4
    cdef public list access_path
5
    cdef dict dispatch_table
6

7
    cpdef visit(self, obj)
8
    cdef _visit(self, obj)
9
    cdef find_handler(self, obj)
10
    cdef _visitchild(self, child, parent, attrname, idx)
11
    cdef dict _visitchildren(self, parent, attrs, exclude)
12
    cpdef visitchildren(self, parent, attrs=*, exclude=*)
13
    cdef _raise_compiler_error(self, child, e)
14

15
cdef class VisitorTransform(TreeVisitor):
16
    cdef dict _process_children(self, parent, attrs=*, exclude=*)
17
    cpdef visitchildren(self, parent, attrs=*, exclude=*)
18
    cdef list _flatten_list(self, list orig_list)
19
    cpdef visitchild(self, parent, str attr, idx=*)
20

21
cdef class CythonTransform(VisitorTransform):
22
    cdef public context
23
    cdef public current_directives
24

25
cdef class ScopeTrackingTransform(CythonTransform):
26
    cdef public scope_type
27
    cdef public scope_node
28
    cdef visit_scope(self, node, scope_type)
29

30
cdef class EnvTransform(CythonTransform):
31
    cdef public list env_stack
32

33
cdef class MethodDispatcherTransform(EnvTransform):
34
    @cython.final
35
    cdef _visit_binop_node(self, node)
36
    @cython.final
37
    cdef _find_handler(self, match_name, bint has_kwargs)
38
    @cython.final
39
    cdef _delegate_to_assigned_value(self, node, function, arg_list, kwargs)
40
    @cython.final
41
    cdef _dispatch_to_handler(self, node, function, arg_list, kwargs)
42
    @cython.final
43
    cdef _dispatch_to_method_handler(self, attr_name, self_arg,
44
                                     is_unbound_method, type_name,
45
                                     node, function, arg_list, kwargs)
46

47
cdef class RecursiveNodeReplacer(VisitorTransform):
48
    cdef public orig_node
49
    cdef public new_node
50

51
cdef class NodeFinder(TreeVisitor):
52
    cdef node
53
    cdef public bint found
54

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.