[geany/geany] 6c7f69: Parse C++11 classed enums
Colomban Wendling
git-noreply at geany.org
Mon Oct 22 20:39:04 UTC 2012
Branch: refs/heads/master
Author: Colomban Wendling <ban at herbesfolles.org>
Committer: Colomban Wendling <ban at herbesfolles.org>
Date: Mon, 22 Oct 2012 20:39:04
Commit: 6c7f69578d8e142f5994cc9cf0e0abc83a606a1b
https://github.com/geany/geany/commit/6c7f69578d8e142f5994cc9cf0e0abc83a606a1b
Log Message:
-----------
Parse C++11 classed enums
Part of #3578557.
Modified Paths:
--------------
tagmanager/ctags/c.c
Modified: tagmanager/ctags/c.c
10 files changed, 8 insertions(+), 2 deletions(-)
===================================================================
@@ -1968,6 +1968,12 @@ static void readParents (statementInfo *const st, const int qualifier)
deleteToken (token);
}
+static void checkIsClassEnum (statementInfo *const st, const declType decl)
+{
+ if (! isLanguage (Lang_cpp) || st->declaration != DECL_ENUM)
+ st->declaration = decl;
+}
+
static void processToken (tokenInfo *const token, statementInfo *const st)
{
switch (token->keyword) /* is it a reserved word? */
@@ -1979,7 +1985,7 @@ static void processToken (tokenInfo *const token, statementInfo *const st)
case KEYWORD_ATTRIBUTE: skipParens (); initToken (token); break;
case KEYWORD_CATCH: skipParens (); skipBraces (); break;
case KEYWORD_CHAR: st->declaration = DECL_BASE; break;
- case KEYWORD_CLASS: st->declaration = DECL_CLASS; break;
+ case KEYWORD_CLASS: checkIsClassEnum (st, DECL_CLASS); break;
case KEYWORD_CONST: st->declaration = DECL_BASE; break;
case KEYWORD_DOUBLE: st->declaration = DECL_BASE; break;
case KEYWORD_ENUM: st->declaration = DECL_ENUM; break;
@@ -2003,7 +2009,7 @@ static void processToken (tokenInfo *const token, statementInfo *const st)
case KEYWORD_PUBLIC: setAccess (st, ACCESS_PUBLIC); break;
case KEYWORD_SHORT: st->declaration = DECL_BASE; break;
case KEYWORD_SIGNED: st->declaration = DECL_BASE; break;
- case KEYWORD_STRUCT: st->declaration = DECL_STRUCT; break;
+ case KEYWORD_STRUCT: checkIsClassEnum (st, DECL_STRUCT); break;
case KEYWORD_THROWS: discardTypeList (token); break;
case KEYWORD_TYPEDEF: st->scope = SCOPE_TYPEDEF; break;
case KEYWORD_UNION: st->declaration = DECL_UNION; break;
--------------
This E-Mail was brought to you by github_commit_mail.py (Source: TBD).
More information about the Commits
mailing list