[umbrello] [Bug 338649] Extend C++ import for C++11
Oliver Kellogg
bugzilla_noreply at kde.org
Fri Apr 30 20:11:52 BST 2021
https://bugs.kde.org/show_bug.cgi?id=338649
--- Comment #19 from Oliver Kellogg <okellogg at users.sourceforge.net> ---
Git commit 464c7132349e4cf10a84fc9e6f3792087a934158 by Oliver Kellogg.
Committed on 30/04/2021 at 19:11.
Pushed by okellogg into branch 'release/21.04'.
Support C++11 "enum class" in C++ Import:
lib/cppparser/ast.{h,cpp} class EnumSpecifierAST
- Add functions setClass, isClass accessing new member m_isClass of type
bool.
- Add functions setEnumBase, enumBase accessing new member m_enumBase
of type TypeSpecifierAST::Node.
lib/cppparser/parser.cpp function parseEnumSpecifier
- Add bool isClass initialized to false.
- After consuming Token_enum add int tk initialized to
m_lexer->lookAhead(0).
- If tk is Token_class or Token_struct then set isClass true and call
nextToken().
- After call to parseName(name) add variable enumBase of type
TypeSpecifierAST::Node.
- If m_lexer->lookAhead(0) is ':' then call nextToken() followed by
parseSimpleTypeSpecifier(enumBase).
- Reassign tk from m_lexer->lookAhead(0) and permit only ';' or '{' as
its value.
- Remove call to nextToken(), it is postponed to after the assignments
to `ast'.
- At assignments to `ast' call ast->setClass(isClass) and
ast->setEnumBase(enumBase).
test/import/cxx/cxx11-strongly-typed-enumerations.h
- Rename second definition of Enum2,Enum3 to Enum4,Enum5 to avoid
overlap.
M +12 -0 lib/cppparser/ast.cpp
M +12 -0 lib/cppparser/ast.h
M +40 -20 lib/cppparser/parser.cpp
M +5 -4 test/import/cxx/cxx11-strongly-typed-enumerations.h
https://invent.kde.org/sdk/umbrello/commit/464c7132349e4cf10a84fc9e6f3792087a934158
--
You are receiving this mail because:
You are the assignee for the bug.
More information about the umbrello-devel
mailing list