- Enhancement: Support C11 ano

This commit is contained in:
Roy Qu 2023-02-20 17:52:42 +08:00
parent 5bd1d92d53
commit 60db5a894b
2 changed files with 25 additions and 14 deletions

View File

@ -3,6 +3,7 @@ Red Panda C++ Version 2.13
- fix: Only C/C++/GAS files can set breakpoints. - fix: Only C/C++/GAS files can set breakpoints.
- Enhancement: Don't show breakpoints/watch related menuitems in context menu for non-C/C++/GAS files. - Enhancement: Don't show breakpoints/watch related menuitems in context menu for non-C/C++/GAS files.
- Enhancement: Disable reformat code for non-C/C++ files. - Enhancement: Disable reformat code for non-C/C++ files.
- Enhancement: Support C11 ano
Red Panda C++ Version 2.12 Red Panda C++ Version 2.12

View File

@ -3398,20 +3398,30 @@ void CppParser::handleStructs(bool isTypedef)
} }
} }
if (!firstSynonym) { if (!firstSynonym) {
//anonymous union/struct/class, add as a block PStatement scope = getCurrentScope();
firstSynonym=addStatement( if (scope && scope->kind == StatementKind::skClass
getCurrentScope(), && mIndex<mTokenizer.tokenCount() && mTokenizer[mIndex]->text=="{") {
mCurrentFile, //C11 anonymous union/struct
"", addSoloScopeLevel(scope, mTokenizer[mIndex]->line);
"", //skip {
"", mIndex++;
"", return;
"", } else {
mTokenizer[mIndex]->line, //anonymous union/struct/class, add as a block
StatementKind::skBlock, firstSynonym=addStatement(
getScope(), getCurrentScope(),
mClassScope, mCurrentFile,
StatementProperty::spHasDefinition); "",
"",
"",
"",
"",
mTokenizer[mIndex]->line,
StatementKind::skBlock,
getScope(),
mClassScope,
StatementProperty::spHasDefinition);
}
} }
if (mIndex < mTokenizer.tokenCount()) if (mIndex < mTokenizer.tokenCount())
addSoloScopeLevel(firstSynonym,mTokenizer[mIndex]->line); addSoloScopeLevel(firstSynonym,mTokenizer[mIndex]->line);