Lines Matching refs:decl
10 def match_storage(decl, expected):
11 default = _info.get_default_storage(decl)
21 storage = _info.get_effective_storage(decl, default=default)
26 # decl matchers
61 def is_forward_decl(decl):
62 if decl.kind is _KIND.TYPEDEF:
64 elif is_type_decl(decl):
65 return not decl.data
66 elif decl.kind is _KIND.FUNCTION:
68 return decl.signature.isforward
69 elif decl.kind is _KIND.VARIABLE:
73 raise NotImplementedError(decl)
76 def can_have_symbol(decl):
77 return decl.kind in (_KIND.VARIABLE, _KIND.FUNCTION)
80 def has_external_symbol(decl):
81 if not can_have_symbol(decl):
83 if _info.get_effective_storage(decl) != 'extern':
85 if decl.kind is _KIND.FUNCTION:
86 return not decl.signature.isforward
89 return decl.storage != 'extern'
92 def has_internal_symbol(decl):
93 if not can_have_symbol(decl):
95 return _info.get_actual_storage(decl) == 'static'
98 def is_external_reference(decl):
99 if not can_have_symbol(decl):
102 if decl.storage != 'extern':
104 if decl.kind is _KIND.FUNCTION:
105 return decl.signature.isforward
110 def is_local_var(decl):
111 if not decl.kind is _KIND.VARIABLE:
113 return True if decl.parent else False
116 def is_global_var(decl):
117 if not decl.kind is _KIND.VARIABLE:
119 return False if decl.parent else True
128 elif kind == 'decl':
146 for decl in decls:
149 if match(decl):
151 collated[category] = [decl]
153 collated[category].append(decl)
157 raise Exception(f'no match for {decl!r}')
172 # Collate into kind groups (decl, type, etc.).