@@ -136,7 +136,7 @@ void PythonGenerator::generate()
136
136
137
137
makeIncludesTemplateData ();
138
138
139
- makeAliasesTemplateData ();
139
+ // makeAliasesTemplateData();
140
140
141
141
makeConstTemplateData ();
142
142
@@ -407,6 +407,7 @@ data_map PythonGenerator::makeGroupSymbolsTemplateData(Group *group)
407
407
408
408
data_list structs;
409
409
data_list unions;
410
+ data_list aliases;
410
411
411
412
Log::info (" Group symbols:\n " );
412
413
@@ -453,6 +454,10 @@ data_map PythonGenerator::makeGroupSymbolsTemplateData(Group *group)
453
454
Log::info (" %s\n " , unionType->getDescription ().c_str ());
454
455
455
456
string name = filterName (getOutputName (unionType));
457
+ if (name.find (' $' ) != string::npos) {
458
+ Log::debug (" %s is inside struct!\n " , name.c_str ());
459
+ break ;
460
+ }
456
461
457
462
// check if template for this structure has not already been generated
458
463
if (names.find (name) == names.end ())
@@ -468,13 +473,38 @@ data_map PythonGenerator::makeGroupSymbolsTemplateData(Group *group)
468
473
}
469
474
break ;
470
475
}
476
+ case DataType::kAliasTypeSymbol :
477
+ {
478
+ AliasType *aliasType = dynamic_cast <AliasType *>(symbol);
479
+ if (aliasType == nullptr )
480
+ break ;
481
+
482
+ DataType *elementDataType = aliasType->getElementType ();
483
+ DataType *trueDataType = elementDataType->getTrueDataType ();
484
+ // Only generate aliases for enums, unions and structs in Python.
485
+ if (!(trueDataType->isEnum () || trueDataType->isUnion () || trueDataType->isStruct ()))
486
+ break ;
487
+
488
+ string realType = getOutputName (aliasType);
489
+ Log::debug (" %s\n " , realType.c_str ());
490
+
491
+ info[" name" ] = filterName (realType);
492
+ info[" elementType" ] = getTypeInfo (elementDataType);
493
+ info[" trueType" ] = getTypeInfo (trueDataType);
494
+
495
+ setTemplateComments (aliasType, info);
496
+
497
+ aliases.push_back (info);
498
+ break ;
499
+ }
471
500
default :
472
501
break ;
473
502
}
474
503
}
475
504
476
505
symbolsTemplate[" structs" ] = structs;
477
506
symbolsTemplate[" unions" ] = unions;
507
+ symbolsTemplate[" aliases" ] = aliases;
478
508
479
509
return symbolsTemplate;
480
510
}
0 commit comments