feat: update flag enum and enum underlying type decision rules for codegen
This commit is contained in:
@@ -72,9 +72,13 @@ public class ClassidWalker extends CKDefinesParserBaseListener {
|
||||
mLevel = 0;
|
||||
mLevelStack = null;
|
||||
|
||||
// classid is signed int and do not have flags feature.
|
||||
mCurrentEnum.mCanUnsigned = false;
|
||||
mCurrentEnum.mUseFlags = false;
|
||||
// update self
|
||||
mCurrentEnum.updateByEntries();
|
||||
// we forcely set classid is signed and do not have flags feature.
|
||||
mCurrentEnum.mIsFlag = false;
|
||||
mCurrentEnum.mIsUnsigned = false;
|
||||
|
||||
// and return
|
||||
mResult = mCurrentEnum;
|
||||
mCurrentEnum = null;
|
||||
}
|
||||
@@ -90,6 +94,11 @@ public class ClassidWalker extends CKDefinesParserBaseListener {
|
||||
mCurrentEntry.mEntryName = ctx.CKGENERIC_ID(0).getText();
|
||||
mCurrentEntry.mEntryValue = ctx.CKGENERIC_NUM().getText();
|
||||
|
||||
// All classid number is positive.
|
||||
mCurrentEntry.mEntrySignKind = EnumsHelper.BEnumEntrySignKind.Positive;
|
||||
// And all in ordinary number style so it doesn't have flag feature.
|
||||
mCurrentEntry.mEntryFlagKind = EnumsHelper.BEnumEntryFlagKind.NotFlag;
|
||||
|
||||
// fill entry level info
|
||||
int this_level = getClassidLevel(ctx.getStart());
|
||||
if (this_level > mLevel) {
|
||||
|
||||
Reference in New Issue
Block a user