Lines Matching refs:decl
91 def _explain_type(decl): argument
94 typ = type(decl)
97 quals = ' '.join(decl.quals) + ' ' if decl.quals else ''
98 return quals + _explain_type(decl.type)
100 return _explain_type(decl.type)
102 return ' '.join(decl.names)
104 quals = ' '.join(decl.quals) + ' ' if decl.quals else ''
105 return quals + 'pointer to ' + _explain_type(decl.type)
108 if decl.dim: arr += '[%s]' % decl.dim.value
110 return arr + " of " + _explain_type(decl.type)
113 if decl.args:
114 params = [_explain_type(param) for param in decl.args.params]
120 _explain_type(decl.type))
123 decls = [_explain_decl_node(mem_decl) for mem_decl in decl.decls]
126 return ('struct%s ' % (' ' + decl.name if decl.name else '') +
139 def _expand_in_place(decl, file_ast, expand_struct=False, expand_typedef=False): argument
143 typ = type(decl)
146 decl.type = _expand_in_place(decl.type, file_ast, expand_struct,
150 if not decl.decls:
151 struct = _find_struct(decl.name, file_ast)
153 raise RuntimeError('using undeclared struct %s' % decl.name)
154 decl.decls = struct.decls
156 for i, mem_decl in enumerate(decl.decls):
157 decl.decls[i] = _expand_in_place(mem_decl, file_ast, expand_struct,
160 decl.decls = []
163 decl.names[0] not in ('int', 'char')):
164 typedef = _find_typedef(decl.names[0], file_ast)
166 raise RuntimeError('using undeclared type %s' % decl.names[0])
171 return decl