6efdd94 apibuild.py: Handle enum comments properly

Authored and Committed by mprivozn 6 years ago
    apibuild.py: Handle enum comments properly
    
    After f4cb85c6aff7c1d90 we only have two options for placing enum
    values descriptions. It's either:
    
        typedef enum {
            /* Some long description. Therefore it's placed before
             * the value. */
            VIR_ENUM_A_VAL = 1,
        } virEnumA;
    
    or:
    
        typedef enum {
            VIR_ENUM_B_VAL = 1, /* Some short description */
        } virEnumB;
    
    However, our apibuild.py script is not able to deal with the
    former one. It messes up comments. To fix this couple of things
    needs to be done:
    
    a) DO NOT reset self.comment in parseEnumBlock(). This is a
    result from our tokenizer. Upon calling token() if it finds a
    comment block it stores it in self.comment and returns the next
    token (which is not comment). Therefore, if we reset self.comment
    we might lose the first comment in the enum block.
    
    b) we need a variable to track if the current enum block uses
    value descriptions before or after values. That is if it's type
    virEnumA or virEnumB. Depending on that, it we're dealing with
    virEnumA type and the current token is a comma ',' we can add the
    value into the list as we already have everything needed:
    comment, name and value.
    
    Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
    Reviewed-by: Martin Kletzander <mkletzan@redhat.com>
    
        
file modified
+7 -1