idl-parser 0.0.10__py2.7.egg
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- EGG-INFO/PKG-INFO +109 -0
- EGG-INFO/SOURCES.txt +17 -0
- EGG-INFO/dependency_links.txt +1 -0
- EGG-INFO/top_level.txt +1 -0
- EGG-INFO/zip-safe +1 -0
- idl_parser/__init__.py +7 -0
- idl_parser/__init__.pyc +0 -0
- idl_parser/const.py +50 -0
- idl_parser/const.pyc +0 -0
- idl_parser/enum.py +114 -0
- idl_parser/enum.pyc +0 -0
- idl_parser/interface.py +207 -0
- idl_parser/interface.pyc +0 -0
- idl_parser/module.py +259 -0
- idl_parser/module.pyc +0 -0
- idl_parser/node.py +115 -0
- idl_parser/node.pyc +0 -0
- idl_parser/parser.py +274 -0
- idl_parser/parser.pyc +0 -0
- idl_parser/struct.py +145 -0
- idl_parser/struct.pyc +0 -0
- idl_parser/token_buffer.py +25 -0
- idl_parser/token_buffer.pyc +0 -0
- idl_parser/type.py +249 -0
- idl_parser/type.pyc +0 -0
- idl_parser/typedef.py +85 -0
- idl_parser/typedef.pyc +0 -0
idl_parser/struct.py
ADDED
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
import os, sys, traceback
|
|
2
|
+
|
|
3
|
+
from . import node
|
|
4
|
+
from . import type as idl_type
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
class IDLMember(node.IDLNode):
|
|
8
|
+
def __init__(self, parent):
|
|
9
|
+
super(IDLMember, self).__init__('IDLMember', '', parent)
|
|
10
|
+
self._verbose = True
|
|
11
|
+
self._type = None
|
|
12
|
+
self.sep = '::'
|
|
13
|
+
|
|
14
|
+
@property
|
|
15
|
+
def full_path(self):
|
|
16
|
+
return self.parent.full_path + self.sep + self.name
|
|
17
|
+
|
|
18
|
+
def parse_blocks(self, blocks, filepath=None):
|
|
19
|
+
self._filepath = filepath
|
|
20
|
+
name, typ = self._name_and_type(blocks)
|
|
21
|
+
if name.find('[') >= 0:
|
|
22
|
+
name_ = name[:name.find('[')]
|
|
23
|
+
typ = typ.strip() + ' ' + name[name.find('['):]
|
|
24
|
+
name = name_
|
|
25
|
+
self._name = name
|
|
26
|
+
self._type = idl_type.IDLType(typ, self)
|
|
27
|
+
|
|
28
|
+
def to_simple_dic(self, recursive=False, member_only=False):
|
|
29
|
+
if recursive:
|
|
30
|
+
if self.type.is_primitive:
|
|
31
|
+
return str(self.type) + ' ' + self.name
|
|
32
|
+
elif self.type.obj.is_enum:
|
|
33
|
+
return str('enum') + ' ' + self.name
|
|
34
|
+
dic = {str(self.type) +' ' + self.name :
|
|
35
|
+
self.type.obj.to_simple_dic(recursive=recursive, member_only=True)}
|
|
36
|
+
return dic
|
|
37
|
+
dic = {self.name : str(self.type) }
|
|
38
|
+
return dic
|
|
39
|
+
|
|
40
|
+
def to_dic(self):
|
|
41
|
+
dic = { 'name' : self.name,
|
|
42
|
+
'filepath' : self.filepath,
|
|
43
|
+
'classname' : self.classname,
|
|
44
|
+
'type' : str(self.type) }
|
|
45
|
+
return dic
|
|
46
|
+
|
|
47
|
+
@property
|
|
48
|
+
def type(self):
|
|
49
|
+
if self._type.classname == 'IDLBasicType': # Struct
|
|
50
|
+
return self.root_node.find_types(self._type.name)[0]
|
|
51
|
+
return self._type
|
|
52
|
+
|
|
53
|
+
def get_type(self, extract_typedef=False):
|
|
54
|
+
if extract_typedef:
|
|
55
|
+
if self.type.is_typedef:
|
|
56
|
+
return self.type.type
|
|
57
|
+
return self.type
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
def post_process(self):
|
|
61
|
+
#self._type = self.refine_typename(self.type)
|
|
62
|
+
pass
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
class IDLStruct(node.IDLNode):
|
|
66
|
+
|
|
67
|
+
def __init__(self, name, parent):
|
|
68
|
+
super(IDLStruct, self).__init__('IDLStruct', name.strip(), parent)
|
|
69
|
+
self._verbose = True
|
|
70
|
+
self._members = []
|
|
71
|
+
self.sep = '::'
|
|
72
|
+
|
|
73
|
+
@property
|
|
74
|
+
def full_path(self):
|
|
75
|
+
return (self.parent.full_path + self.sep + self.name).strip()
|
|
76
|
+
|
|
77
|
+
def to_simple_dic(self, quiet=False, full_path=False, recursive=False, member_only=False):
|
|
78
|
+
name = self.full_path if full_path else self.name
|
|
79
|
+
if quiet:
|
|
80
|
+
return 'struct %s' % name
|
|
81
|
+
|
|
82
|
+
dic = { 'struct %s' % name : [v.to_simple_dic(recursive=recursive) for v in self.members] }
|
|
83
|
+
|
|
84
|
+
if member_only:
|
|
85
|
+
return dic.values()[0]
|
|
86
|
+
return dic
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
def to_dic(self):
|
|
90
|
+
dic = { 'name' : self.name,
|
|
91
|
+
'classname' : self.classname,
|
|
92
|
+
'members' : [v.to_dic() for v in self.members] }
|
|
93
|
+
return dic
|
|
94
|
+
|
|
95
|
+
def parse_tokens(self, token_buf, filepath=None):
|
|
96
|
+
self._filepath = filepath
|
|
97
|
+
kakko = token_buf.pop()
|
|
98
|
+
if not kakko == '{':
|
|
99
|
+
if self._verbose: sys.stdout.write('# Error. No kakko "{".\n')
|
|
100
|
+
raise InvalidIDLSyntaxError()
|
|
101
|
+
|
|
102
|
+
block_tokens = []
|
|
103
|
+
while True:
|
|
104
|
+
|
|
105
|
+
token = token_buf.pop()
|
|
106
|
+
if token == None:
|
|
107
|
+
if self._verbose: sys.stdout.write('# Error. No kokka "}".\n')
|
|
108
|
+
raise InvalidIDLSyntaxError()
|
|
109
|
+
|
|
110
|
+
elif token == '}':
|
|
111
|
+
token = token_buf.pop()
|
|
112
|
+
if not token == ';':
|
|
113
|
+
if self._verbose: sys.stdout.write('# Error. No semi-colon after "}".\n')
|
|
114
|
+
raise InvalidIDLSyntaxError()
|
|
115
|
+
break
|
|
116
|
+
|
|
117
|
+
if token == ';':
|
|
118
|
+
self._parse_block(block_tokens)
|
|
119
|
+
block_tokens = []
|
|
120
|
+
continue
|
|
121
|
+
block_tokens.append(token)
|
|
122
|
+
|
|
123
|
+
self._post_process()
|
|
124
|
+
|
|
125
|
+
def _parse_block(self, blocks):
|
|
126
|
+
v = IDLMember(self)
|
|
127
|
+
v.parse_blocks(blocks, self.filepath)
|
|
128
|
+
self._members.append(v)
|
|
129
|
+
|
|
130
|
+
def _post_process(self):
|
|
131
|
+
self.forEachMember(lambda m : m.post_process())
|
|
132
|
+
|
|
133
|
+
@property
|
|
134
|
+
def members(self):
|
|
135
|
+
return self._members
|
|
136
|
+
|
|
137
|
+
def member_by_name(self, name):
|
|
138
|
+
for m in self._members:
|
|
139
|
+
if m.name == name:
|
|
140
|
+
return m
|
|
141
|
+
|
|
142
|
+
return None
|
|
143
|
+
def forEachMember(self, func):
|
|
144
|
+
for m in self._members:
|
|
145
|
+
func(m)
|
idl_parser/struct.pyc
ADDED
|
Binary file
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
class TokenBuffer():
|
|
4
|
+
|
|
5
|
+
def __init__(self, lines):
|
|
6
|
+
self._tokens = []
|
|
7
|
+
self._token_offset = 0
|
|
8
|
+
for line in lines:
|
|
9
|
+
ts = line.split(' ')
|
|
10
|
+
for t in ts:
|
|
11
|
+
if len(t.strip()) != 0:
|
|
12
|
+
self._tokens.append(t.strip())
|
|
13
|
+
|
|
14
|
+
@property
|
|
15
|
+
def t_debug(self):
|
|
16
|
+
return self._tokens
|
|
17
|
+
|
|
18
|
+
def pop(self):
|
|
19
|
+
if len(self._tokens) == self._token_offset:
|
|
20
|
+
return None
|
|
21
|
+
t = self._tokens[self._token_offset].strip()
|
|
22
|
+
self._token_offset = self._token_offset + 1
|
|
23
|
+
return t.strip()
|
|
24
|
+
|
|
25
|
+
|
|
Binary file
|
idl_parser/type.py
ADDED
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
import os, sys, traceback
|
|
2
|
+
|
|
3
|
+
from . import node
|
|
4
|
+
|
|
5
|
+
sep = '::'
|
|
6
|
+
|
|
7
|
+
primitive = [
|
|
8
|
+
'boolean',
|
|
9
|
+
'char', 'byte', 'octet',
|
|
10
|
+
'short', 'wchar',
|
|
11
|
+
'long',
|
|
12
|
+
'float',
|
|
13
|
+
'double',
|
|
14
|
+
'string',
|
|
15
|
+
'wstring']
|
|
16
|
+
|
|
17
|
+
def is_primitive(name):
|
|
18
|
+
for n in name.split(' '):
|
|
19
|
+
if n in primitive:
|
|
20
|
+
return True
|
|
21
|
+
return False
|
|
22
|
+
|
|
23
|
+
def IDLType(name, parent):
|
|
24
|
+
if name == 'void':
|
|
25
|
+
return IDLVoid(name, parent)
|
|
26
|
+
|
|
27
|
+
elif name.find('sequence') >= 0:
|
|
28
|
+
return IDLSequence(name, parent)
|
|
29
|
+
elif name.find('[') >= 0:
|
|
30
|
+
return IDLArray(name, parent)
|
|
31
|
+
|
|
32
|
+
if is_primitive(name):
|
|
33
|
+
return IDLPrimitive(name, parent)
|
|
34
|
+
|
|
35
|
+
return IDLBasicType(name, parent)
|
|
36
|
+
|
|
37
|
+
class IDLTypeBase(node.IDLNode):
|
|
38
|
+
def __init__(self, classname, name, parent):
|
|
39
|
+
super(IDLTypeBase, self).__init__(classname, name, parent.root_node)
|
|
40
|
+
self._is_sequence = False
|
|
41
|
+
self._is_primitive = False
|
|
42
|
+
|
|
43
|
+
def __str__(self):
|
|
44
|
+
return self.name
|
|
45
|
+
|
|
46
|
+
@property
|
|
47
|
+
def is_sequence(self):
|
|
48
|
+
return self._is_sequence
|
|
49
|
+
|
|
50
|
+
@property
|
|
51
|
+
def is_primitive(self):
|
|
52
|
+
return self._is_primitive
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
class IDLVoid(IDLTypeBase):
|
|
56
|
+
def __init__(self, name, parent):
|
|
57
|
+
super(IDLVoid, self).__init__('IDLVoid', name, parent.root_node)
|
|
58
|
+
self._verbose = True
|
|
59
|
+
|
|
60
|
+
class IDLSequence(IDLTypeBase):
|
|
61
|
+
def __init__(self, name, parent):
|
|
62
|
+
super(IDLSequence, self).__init__('IDLSequence', name, parent.root_node)
|
|
63
|
+
self._verbose = True
|
|
64
|
+
if name.find('sequence') < 0:
|
|
65
|
+
raise InvalidIDLSyntaxError()
|
|
66
|
+
typ_ = name[name.find('<')+1 : name.find('>')]
|
|
67
|
+
self._type = IDLType(typ_, parent)
|
|
68
|
+
self._is_primitive = False #self.inner_type.is_primitive
|
|
69
|
+
self._is_sequence = True
|
|
70
|
+
|
|
71
|
+
@property
|
|
72
|
+
def inner_type(self):
|
|
73
|
+
return self._type
|
|
74
|
+
|
|
75
|
+
def __str__(self):
|
|
76
|
+
return 'sequence<%s>' % str(self.inner_type)
|
|
77
|
+
|
|
78
|
+
@property
|
|
79
|
+
def obj(self):
|
|
80
|
+
return self
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
def __hoge(self):
|
|
84
|
+
global_module = self.root_node
|
|
85
|
+
typs = global_module.find_types(self.inner_type)
|
|
86
|
+
# print self.inner_type
|
|
87
|
+
if len(typs) == 0:
|
|
88
|
+
# print 'None'
|
|
89
|
+
return None
|
|
90
|
+
else:
|
|
91
|
+
# print typs[0]
|
|
92
|
+
return typs[0]
|
|
93
|
+
|
|
94
|
+
@property
|
|
95
|
+
def type(self):
|
|
96
|
+
return self._type
|
|
97
|
+
|
|
98
|
+
@property
|
|
99
|
+
def full_path(self):
|
|
100
|
+
return self.parent.full_path + sep + self.name
|
|
101
|
+
|
|
102
|
+
def to_simple_dic(self, quiet=False, full_path=False, recursive=False, member_only=False):
|
|
103
|
+
name = self.full_path if full_path else self.name
|
|
104
|
+
if quiet:
|
|
105
|
+
return 'sequence<%s>' % str(self.inner_type)
|
|
106
|
+
|
|
107
|
+
if recursive:
|
|
108
|
+
if self.type.is_primitive:
|
|
109
|
+
return { 'sequence<%s>' % str(self.type) : str(self.type)}
|
|
110
|
+
else:
|
|
111
|
+
return { 'sequence<%s>' % str(self.type) : self.type.obj.to_simple_dic(recursive=recursive, member_only=True)}
|
|
112
|
+
"""
|
|
113
|
+
n = 'typedef ' + str(self.type) +' ' + name
|
|
114
|
+
if not self.type.is_primitive:
|
|
115
|
+
dic = { n : (self.type.obj.to_simple_dic(recursive=recursive, member_only=True))}
|
|
116
|
+
else:
|
|
117
|
+
dic = { n : str(self.type) }
|
|
118
|
+
if member_only:
|
|
119
|
+
return dic
|
|
120
|
+
return {name : dic}
|
|
121
|
+
|
|
122
|
+
dic = 'typedef %s %s' % (self.type, name)
|
|
123
|
+
return dic
|
|
124
|
+
"""
|
|
125
|
+
|
|
126
|
+
def to_dic(self):
|
|
127
|
+
dic = { 'name' : self.name,
|
|
128
|
+
'classname' : self.classname,
|
|
129
|
+
'type' : str(self.type) }
|
|
130
|
+
return dic
|
|
131
|
+
|
|
132
|
+
class IDLArray(IDLTypeBase):
|
|
133
|
+
def __init__(self, name, parent):
|
|
134
|
+
super(IDLArray, self).__init__('IDLArray', name.strip(), parent.root_node)
|
|
135
|
+
|
|
136
|
+
self._verbose = True
|
|
137
|
+
if name.find('[') < 0:
|
|
138
|
+
raise InvalidIDLSyntaxError()
|
|
139
|
+
primitive_type_name = name[:name.find('[')]
|
|
140
|
+
size = name[name.find('[')+1 : name.find(']')]
|
|
141
|
+
inner_type_name = primitive_type_name + name[name.find(']')+1:]
|
|
142
|
+
self._size = int(size)
|
|
143
|
+
self._type = IDLType(inner_type_name.strip(), parent)
|
|
144
|
+
self._is_primitive = False #self.inner_type.is_primitive
|
|
145
|
+
self._is_sequence = False
|
|
146
|
+
self._is_array = True
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
@property
|
|
150
|
+
def inner_type(self):
|
|
151
|
+
return self._type
|
|
152
|
+
|
|
153
|
+
@property
|
|
154
|
+
def primitive_type(self):
|
|
155
|
+
if self.inner_type.is_array:
|
|
156
|
+
return self.inner_type.primitive_type
|
|
157
|
+
else:
|
|
158
|
+
return self.inner_type
|
|
159
|
+
|
|
160
|
+
def __str__(self):
|
|
161
|
+
n = ['%s' % self.primitive_type.name]
|
|
162
|
+
def _apply_size(typ):
|
|
163
|
+
n[0] = n[0] + '[%s]' % typ.size
|
|
164
|
+
if typ.inner_type.is_array:
|
|
165
|
+
_apply_size(typ.inner_type)
|
|
166
|
+
|
|
167
|
+
_apply_size(self)
|
|
168
|
+
return n[0]
|
|
169
|
+
|
|
170
|
+
@property
|
|
171
|
+
def obj(self):
|
|
172
|
+
return self
|
|
173
|
+
|
|
174
|
+
@property
|
|
175
|
+
def size(self):
|
|
176
|
+
return self._size
|
|
177
|
+
|
|
178
|
+
def __hoge(self):
|
|
179
|
+
global_module = self.root_node
|
|
180
|
+
typs = global_module.find_types(self.inner_type)
|
|
181
|
+
# print self.inner_type
|
|
182
|
+
if len(typs) == 0:
|
|
183
|
+
# print 'None'
|
|
184
|
+
return None
|
|
185
|
+
else:
|
|
186
|
+
# print typs[0]
|
|
187
|
+
return typs[0]
|
|
188
|
+
|
|
189
|
+
@property
|
|
190
|
+
def type(self):
|
|
191
|
+
return self._type
|
|
192
|
+
|
|
193
|
+
@property
|
|
194
|
+
def full_path(self):
|
|
195
|
+
return self.parent.full_path + sep + self.name
|
|
196
|
+
|
|
197
|
+
def to_simple_dic(self, quiet=False, full_path=False, recursive=False, member_only=False):
|
|
198
|
+
name = self.full_path if full_path else self.name
|
|
199
|
+
if quiet:
|
|
200
|
+
return str(self)
|
|
201
|
+
|
|
202
|
+
if recursive:
|
|
203
|
+
if self.type.is_primitive:
|
|
204
|
+
return str(self)
|
|
205
|
+
else:
|
|
206
|
+
return str(self)
|
|
207
|
+
"""
|
|
208
|
+
n = 'typedef ' + str(self.type) +' ' + name
|
|
209
|
+
if not self.type.is_primitive:
|
|
210
|
+
dic = { n : (self.type.obj.to_simple_dic(recursive=recursive, member_only=True))}
|
|
211
|
+
else:
|
|
212
|
+
dic = { n : str(self.type) }
|
|
213
|
+
if member_only:
|
|
214
|
+
return dic
|
|
215
|
+
return {name : dic}
|
|
216
|
+
|
|
217
|
+
dic = 'typedef %s %s' % (self.type, name)
|
|
218
|
+
return dic
|
|
219
|
+
"""
|
|
220
|
+
|
|
221
|
+
def to_dic(self):
|
|
222
|
+
dic = { 'name' : self.name,
|
|
223
|
+
'classname' : self.classname,
|
|
224
|
+
'type' : str(self.type) }
|
|
225
|
+
return dic
|
|
226
|
+
|
|
227
|
+
|
|
228
|
+
class IDLPrimitive(IDLTypeBase):
|
|
229
|
+
def __init__(self, name, parent):
|
|
230
|
+
super(IDLPrimitive, self).__init__('IDLPrimitive', name, parent.root_node)
|
|
231
|
+
self._verbose = True
|
|
232
|
+
self._is_primitive = True
|
|
233
|
+
|
|
234
|
+
class IDLBasicType(IDLTypeBase):
|
|
235
|
+
def __init__(self, name, parent):
|
|
236
|
+
super(IDLBasicType, self).__init__('IDLBasicType', name, parent.root_node)
|
|
237
|
+
self._verbose = True
|
|
238
|
+
#if self.name.find('['):
|
|
239
|
+
# self._name = self.name[self.name.find('[')+1:]
|
|
240
|
+
self._name = self.refine_typename(self.name)
|
|
241
|
+
|
|
242
|
+
@property
|
|
243
|
+
def obj(self):
|
|
244
|
+
global_module = self.root_node
|
|
245
|
+
typs = global_module.find_types(self.name)
|
|
246
|
+
if len(typs) == 0:
|
|
247
|
+
return None
|
|
248
|
+
else:
|
|
249
|
+
return typs[0]
|
idl_parser/type.pyc
ADDED
|
Binary file
|
idl_parser/typedef.py
ADDED
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
from . import node
|
|
2
|
+
from . import type as idl_type
|
|
3
|
+
sep = '::'
|
|
4
|
+
|
|
5
|
+
class IDLTypedef(node.IDLNode):
|
|
6
|
+
|
|
7
|
+
def __init__(self, parent):
|
|
8
|
+
super(IDLTypedef, self).__init__('IDLTypedef', '', parent)
|
|
9
|
+
self._verbose = True
|
|
10
|
+
self._type = None
|
|
11
|
+
|
|
12
|
+
@property
|
|
13
|
+
def full_path(self):
|
|
14
|
+
return self.parent.full_path + sep + self.name
|
|
15
|
+
|
|
16
|
+
def to_simple_dic(self, quiet=False, full_path=False, recursive=False, member_only=False):
|
|
17
|
+
name = self.full_path if full_path else self.name
|
|
18
|
+
if quiet:
|
|
19
|
+
return 'typedef ' + name
|
|
20
|
+
|
|
21
|
+
if recursive:
|
|
22
|
+
n = 'typedef ' + str(self.type) +' ' + name
|
|
23
|
+
if not self.type.is_primitive:
|
|
24
|
+
dic = { n : (self.type.obj.to_simple_dic(recursive=recursive, member_only=True))}
|
|
25
|
+
else:
|
|
26
|
+
dic = { n : str(self.type) }
|
|
27
|
+
if member_only:
|
|
28
|
+
return dic
|
|
29
|
+
return {name : dic}
|
|
30
|
+
|
|
31
|
+
dic = 'typedef %s %s' % (self.type, name)
|
|
32
|
+
return dic
|
|
33
|
+
|
|
34
|
+
def to_dic(self):
|
|
35
|
+
dic = { 'name' : self.name,
|
|
36
|
+
'classname' : self.classname,
|
|
37
|
+
'type' : str(self.type) }
|
|
38
|
+
return dic
|
|
39
|
+
|
|
40
|
+
@property
|
|
41
|
+
def type(self):
|
|
42
|
+
if self._type.classname == 'IDLBasicType': # Struct
|
|
43
|
+
return self.root_node.find_types(self._type.name)[0]
|
|
44
|
+
return self._type
|
|
45
|
+
|
|
46
|
+
def get_type(self, extract_typedef=False):
|
|
47
|
+
if extract_typedef:
|
|
48
|
+
if self.type.is_typedef:
|
|
49
|
+
return self.type.type
|
|
50
|
+
return self.type
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
def parse_blocks(self, blocks, filepath=None):
|
|
54
|
+
self._filepath = filepath
|
|
55
|
+
type_name_ = ''
|
|
56
|
+
rindex = 1
|
|
57
|
+
name = blocks[-rindex]
|
|
58
|
+
while True:
|
|
59
|
+
if name.find('[') < 0:
|
|
60
|
+
break
|
|
61
|
+
|
|
62
|
+
if name.find('[') > 0:
|
|
63
|
+
type_name_ = name[name.find('['):]
|
|
64
|
+
name = name[:name.find('[')]
|
|
65
|
+
#rindex = rindex + 1
|
|
66
|
+
break
|
|
67
|
+
|
|
68
|
+
type_name_ = name + type_name_
|
|
69
|
+
rindex = rindex + 1
|
|
70
|
+
name = blocks[-rindex]
|
|
71
|
+
|
|
72
|
+
type_name = ''
|
|
73
|
+
for t in blocks[:-rindex]:
|
|
74
|
+
type_name = type_name + ' ' + t
|
|
75
|
+
type_name = type_name + ' ' + type_name_
|
|
76
|
+
type_name = type_name.strip()
|
|
77
|
+
|
|
78
|
+
self._type = idl_type.IDLType(type_name, self)
|
|
79
|
+
self._name = name
|
|
80
|
+
|
|
81
|
+
self._post_process()
|
|
82
|
+
|
|
83
|
+
def _post_process(self):
|
|
84
|
+
#self._type = self.refine_typename(self.type)
|
|
85
|
+
pass
|
idl_parser/typedef.pyc
ADDED
|
Binary file
|