@@ -675,7 +675,7 @@ sub detect_non_method_member{
675
675
}
676
676
677
677
# Skip forward declarations
678
- if ($LINE =~ m / ^\s *(class|struct) \w +(?<external> *SIP_EXTERNAL)?;\s *(\/\/ .*)?$ / ){
678
+ if ($LINE =~ m / ^\s *(enum \s +)?( class|struct) \w +(?<external> *SIP_EXTERNAL)?;\s *(\/\/ .*)?$ / ){
679
679
if ($+ {external }){
680
680
dbg_info(' do not skip external forward declaration' );
681
681
$COMMENT = ' ' ;
@@ -959,7 +959,7 @@ sub detect_non_method_member{
959
959
my $is_scope_based = " 0" ;
960
960
$is_scope_based = " 1" if defined $2 ;
961
961
my $monkeypatch = " 0" ;
962
- $monkeypatch = " 1" if defined $is_scope_based eq " 1" and $LINE =~ m /SIP_MONKEYPATCH_SCOPEENUM (:?\(\s *(?<emkb>\w +)\s *\) )/ ;
962
+ $monkeypatch = " 1" if defined $is_scope_based eq " 1" and $LINE =~ m /SIP_MONKEYPATCH_SCOPEENUM_UNNEST (:?\(\s *(?<emkb>\w +)\s *\) )/ ;
963
963
my $enum_mk_base = " " ;
964
964
$enum_mk_base = $+ {emkb } if defined $+ {emkb };
965
965
if ($LINE =~ m /\{ ((\s *\w +)(\s *=\s *[\w\s\d <|]+.*?)?(,?))+\s *\} / ){
@@ -984,15 +984,20 @@ sub detect_non_method_member{
984
984
985
985
do {no warnings ' uninitialized' ;
986
986
my $enum_decl = $LINE =~ s / ^(\s *(?<em>\w +))(\s +SIP_\w +(?:\( [^()]+\) )?)?(?:\s *=\s *(?:[\w\s\d |+-]|::|<<)+)?(,?)(:?\s *\/\/ !<\s *(?<co>.*)|.*)$/ $1$3$4 / r ;
987
- my $enum_member = $+ {em };
988
- push @enum_members_doc , " '* $enum_member : ' + $ACTUAL_CLASS .$enum_qualname .$2 .__doc__" ;
987
+ my $enum_member = $+ {em };
989
988
my $comment = $+ {co };
990
- push @OUTPUT_PYTHON , " $ACTUAL_CLASS .$enum_qualname .$enum_member .__doc__ = \" $comment \"\n " if $is_scope_based eq " 1" ;
991
- if ($monkeypatch eq " 1" ) {
989
+ push @enum_members_doc , " '* $enum_member : ' + $ACTUAL_CLASS .$enum_qualname .$2 .__doc__" ;
990
+ dbg_info(" is_scope_based:$is_scope_based enum_mk_base:$enum_mk_base monkeypatch:$monkeypatch " );
991
+ if ($is_scope_based eq " 1" ) {
992
992
if ( $enum_mk_base ne " " ){
993
- push @OUTPUT_PYTHON , " $enum_mk_base .$enum_member = $enum_qualname .$enum_member \n " ;
993
+ push @OUTPUT_PYTHON , " $enum_mk_base .$enum_member .__doc__ = \" $comment \"\n " ;
994
+ if ($monkeypatch eq " 1" ) {
995
+ push @OUTPUT_PYTHON , " $enum_mk_base .$enum_member = $enum_qualname .$enum_member \n " ;
996
+ } else {
997
+ push @OUTPUT_PYTHON , " $ACTUAL_CLASS .$enum_member = $ACTUAL_CLASS .$enum_qualname .$enum_member \n " ;
998
+ }
994
999
} else {
995
- push @OUTPUT_PYTHON , " $ACTUAL_CLASS .$enum_member = $ACTUAL_CLASS . $enum_qualname . $enum_member \n " ;
1000
+ push @OUTPUT_PYTHON , " $ACTUAL_CLASS .$enum_qualname . $ enum_member.__doc__ = \" $comment \" \n" ;
996
1001
}
997
1002
}
998
1003
$enum_decl = fix_annotations($enum_decl );
0 commit comments