* c-exp.y (yylex): scan template names, and scan nested class
names.
This commit is contained in:
parent
e640e6644d
commit
a8d23c7364
2 changed files with 21 additions and 7 deletions
|
@ -1,3 +1,8 @@
|
|||
Wed Nov 2 15:05:39 1994 Kung Hsu (kung@mexican.cygnus.com)
|
||||
|
||||
* c-exp.y (yylex): scan template names, and scan nested class
|
||||
names.
|
||||
|
||||
Wed Nov 2 11:01:55 1994 J.T. Conklin (jtc@phishhead.cygnus.com)
|
||||
|
||||
* nlm/Makefile.in: install gdbserve.nlm.
|
||||
|
|
23
gdb/c-exp.y
23
gdb/c-exp.y
|
@ -1363,9 +1363,12 @@ yylex ()
|
|||
namelen = 0;
|
||||
for (c = tokstart[namelen];
|
||||
(c == '_' || c == '$' || (c >= '0' && c <= '9')
|
||||
|| (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z'));
|
||||
c = tokstart[++namelen])
|
||||
;
|
||||
|| (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || c == '<');)
|
||||
{
|
||||
if (c == '<')
|
||||
while (tokstart[++namelen] != '>');
|
||||
c = tokstart[++namelen];
|
||||
}
|
||||
|
||||
/* The token "if" terminates the expression and is NOT
|
||||
removed from the input stream. */
|
||||
|
@ -1574,11 +1577,17 @@ yylex ()
|
|||
struct symbol *cur_sym;
|
||||
/* As big as the whole rest of the expression, which is
|
||||
at least big enough. */
|
||||
char *tmp = alloca (strlen (namestart)+1);
|
||||
char *ncopy = alloca (strlen (tmp)+strlen (namestart)+3);
|
||||
char *tmp1;
|
||||
|
||||
memcpy (tmp, namestart, p - namestart);
|
||||
tmp[p - namestart] = '\0';
|
||||
cur_sym = lookup_symbol (tmp, expression_context_block,
|
||||
tmp1 = ncopy;
|
||||
memcpy (tmp1, tmp, strlen (tmp));
|
||||
tmp1 += strlen (tmp);
|
||||
memcpy (tmp1, "::", 2);
|
||||
tmp1 += 2;
|
||||
memcpy (tmp1, namestart, p - namestart);
|
||||
tmp1[p - namestart] = '\0';
|
||||
cur_sym = lookup_symbol (ncopy, expression_context_block,
|
||||
VAR_NAMESPACE, (int *) NULL,
|
||||
(struct symtab **) NULL);
|
||||
if (cur_sym)
|
||||
|
|
Loading…
Add table
Reference in a new issue