Skip to content

Fix enum parsing bug regarding decimal digit characters#79

Merged
virtuald merged 2 commits into
robotpy:mainfrom
stephen-hansen:decimal_char_enum_fix
Oct 27, 2022
Merged

Fix enum parsing bug regarding decimal digit characters#79
virtuald merged 2 commits into
robotpy:mainfrom
stephen-hansen:decimal_char_enum_fix

Conversation

@stephen-hansen
Copy link
Copy Markdown
Contributor

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 virtuald merged commit 72dc4e8 into robotpy:main Oct 27, 2022
@virtuald
Copy link
Copy Markdown
Member

Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants