@@ -1217,29 +1217,38 @@ def __init__(self, nameStack, doxygen, location, is_var=True, **kwargs):
1217
1217
else :
1218
1218
self ["extern" ] = False
1219
1219
1220
+ if "=" in nameStack :
1221
+ self ["type" ] = " " .join (nameStack [: nameStack .index ("=" ) - 1 ])
1222
+ self ["name" ] = nameStack [nameStack .index ("=" ) - 1 ]
1223
+ default = " " .join (nameStack [nameStack .index ("=" ) + 1 :])
1224
+ nameStack = nameStack [: nameStack .index ("=" )]
1225
+ default = self ._filter_name (default )
1226
+ self ["default" ] = default
1227
+ # backwards compat; deprecate camelCase in dicts
1228
+ self ["defaultValue" ] = default
1229
+
1220
1230
_stack_ = nameStack
1221
- if "[" in nameStack : # strip off array informatin
1222
- arrayStack = nameStack [nameStack .index ("[" ) :]
1223
- if nameStack .count ("[" ) > 1 :
1231
+ self ["array" ] = 0
1232
+ while "]" in nameStack [- 1 ]: # strip off array information
1233
+ arrayPos = len (nameStack ) - 1 - nameStack [::- 1 ].index ("[" )
1234
+ arrayStack = nameStack [arrayPos :]
1235
+ if self ["array" ] == 1 :
1224
1236
debug_print ("Multi dimensional array" )
1225
1237
debug_print ("arrayStack=%s" , arrayStack )
1226
- nums = [x for x in arrayStack if x .isdigit ()]
1227
- # Calculate size by multiplying all dimensions
1228
- p = 1
1229
- for n in nums :
1230
- p *= int (n )
1238
+ if len (arrayStack ) == 3 :
1239
+ n = arrayStack [1 ]
1231
1240
# Multi dimensional array
1232
- self ["array_size" ] = p
1241
+ if not "multi_dimensional_array_size" in self :
1242
+ self ["multi_dimensional_array_size" ] = self ["array_size" ]
1243
+ self ["multi_dimensional_array_size" ] += "x" + n
1244
+ self ["array_size" ] = str (int (self ["array_size" ]) * int (n ))
1233
1245
self ["multi_dimensional_array" ] = 1
1234
- self ["multi_dimensional_array_size" ] = "x" .join (nums )
1235
1246
else :
1236
1247
debug_print ("Array" )
1237
1248
if len (arrayStack ) == 3 :
1238
1249
self ["array_size" ] = arrayStack [1 ]
1239
- nameStack = nameStack [: nameStack . index ( "[" ) ]
1250
+ nameStack = nameStack [:arrayPos ]
1240
1251
self ["array" ] = 1
1241
- else :
1242
- self ["array" ] = 0
1243
1252
nameStack = self ._name_stack_helper (nameStack )
1244
1253
1245
1254
if doxygen :
@@ -1268,15 +1277,6 @@ def __init__(self, nameStack, doxygen, location, is_var=True, **kwargs):
1268
1277
)
1269
1278
self ["function_pointer" ] = 1
1270
1279
1271
- elif "=" in nameStack :
1272
- self ["type" ] = " " .join (nameStack [: nameStack .index ("=" ) - 1 ])
1273
- self ["name" ] = nameStack [nameStack .index ("=" ) - 1 ]
1274
- default = " " .join (nameStack [nameStack .index ("=" ) + 1 :])
1275
- default = self ._filter_name (default )
1276
- self ["default" ] = default
1277
- # backwards compat; deprecate camelCase in dicts
1278
- self ["defaultValue" ] = default
1279
-
1280
1280
elif (
1281
1281
is_fundamental (nameStack [- 1 ])
1282
1282
or nameStack [- 1 ] in [">" , "<" , ":" , "." ]
0 commit comments