robotpy / robotpy-cppheaderparser

DEPRECATED: use cxxheaderparser instead
Other
123 stars 39 forks source link

Fix enum parsing bug regarding decimal digit characters #79

Closed stephen-hansen closed 1 year ago

stephen-hansen commented 1 year ago

Currently if I have an enum of the form

enum Foobar
{
    A_t = 9,
    B_t = '9'
};

CppHeaderParser will parse out the enum values as

[
    {"name": "A_t", "value": 9},
    {"name": "B_t", "value": 9}
]

Clearly this is wrong, the enum values should be

[
    {"name": "A_t", "value": 9},
    {"name": "B_t", "raw_value": "9", "value": 57}
]

where B_t represents the Unicode value for the character "9" (and not the actual integer value 9).

This PR includes the changes necessary to fix the enum parse logic. I've also updated a unit test to check this case and it passes with these changes.

virtuald commented 1 year ago

Thanks!