Mercurial > emacs
changeset 29994:b5da88c41066
(token_string): Add missing tokens.
(parm_list): Handle case of qualified pointers.
author | Gerd Moellmann <gerd@gnu.org> |
---|---|
date | Mon, 03 Jul 2000 07:50:42 +0000 |
parents | 4e913c73fa7e |
children | ec33931795c4 |
files | lib-src/ebrowse.c |
diffstat | 1 files changed, 36 insertions(+), 12 deletions(-) [+] |
line wrap: on
line diff
--- a/lib-src/ebrowse.c Mon Jul 03 07:49:30 2000 +0000 +++ b/lib-src/ebrowse.c Mon Jul 03 07:50:42 2000 +0000 @@ -2075,13 +2075,33 @@ case VOID: return "void"; case VOLATILE: return "volatile"; case WHILE: return "while"; + case MUTABLE: return "mutable"; + case BOOL: return "bool"; + case TRUE: return "true"; + case FALSE: return "false"; + case SIGNATURE: return "signature"; + case NAMESPACE: return "namespace"; + case EXPLICIT: return "explicit"; + case TYPENAME: return "typename"; + case CONST_CAST: return "const_cast"; + case DYNAMIC_CAST: return "dynamic_cast"; + case REINTERPRET_CAST: return "reinterpret_cast"; + case STATIC_CAST: return "static_cast"; + case TYPEID: return "typeid"; + case USING: return "using"; + case WCHAR: return "wchar_t"; case YYEOF: return "EOF"; + + default: + if (t < 255) + { + b[0] = t; + b[1] = '\0'; + return b; + } + else + return "???"; } - - assert (t < 255); - b[0] = t; - b[1] = '\0'; - return b; } @@ -2375,14 +2395,18 @@ case IDENT: if (!type_seen) { - char *s; + char *last_id; unsigned ident_type_hash = 0; - parse_qualified_param_ident_or_type (&s); - for (; *s; ++s) - ident_type_hash = (ident_type_hash << 1) ^ *s; - hash = (hash << 1) ^ ident_type_hash; - type_seen = 1; + parse_qualified_param_ident_or_type (&last_id); + if (last_id) + { + /* LAST_ID null means something like `X::*'. */ + for (; *last_id; ++last_id) + ident_type_hash = (ident_type_hash << 1) ^ *last_id; + hash = (hash << 1) ^ ident_type_hash; + type_seen = 1; + } } else MATCH (); @@ -2904,7 +2928,7 @@ struct sym *cls = NULL; static char *id = NULL; static int id_size = 0; - + while (LOOKING_AT (IDENT)) { int len = strlen (yytext) + 1;