2002-04-24 Michael Snyder <msnyder@redhat.com>
* parser-defs.h (prev_lexptr): New external variable. * parse.c (parse_exp_1): Set prev_lexptr to null before calling the language-specific parser. * c-exp.y (yylex): Set prev_lexptr to start of current token. (yyerror): Use prev_lexptr in error reporting.
This commit is contained in:
parent
6ff9af88cb
commit
665132f945
@ -1,3 +1,11 @@
|
|||||||
|
2002-04-24 Michael Snyder <msnyder@redhat.com>
|
||||||
|
|
||||||
|
* parser-defs.h (prev_lexptr): New external variable.
|
||||||
|
* parse.c (parse_exp_1): Set prev_lexptr to null before
|
||||||
|
calling the language-specific parser.
|
||||||
|
* c-exp.y (yylex): Set prev_lexptr to start of current token.
|
||||||
|
(yyerror): Use prev_lexptr in error reporting.
|
||||||
|
|
||||||
2002-04-24 Daniel Jacobowitz <drow@mvista.com>
|
2002-04-24 Daniel Jacobowitz <drow@mvista.com>
|
||||||
|
|
||||||
* config/i386/tm-linux.h: Define FILL_FPXREGSET.
|
* config/i386/tm-linux.h: Define FILL_FPXREGSET.
|
||||||
|
@ -1246,6 +1246,7 @@ yylex ()
|
|||||||
|
|
||||||
retry:
|
retry:
|
||||||
|
|
||||||
|
prev_lexptr = lexptr;
|
||||||
unquoted_expr = 1;
|
unquoted_expr = 1;
|
||||||
|
|
||||||
tokstart = lexptr;
|
tokstart = lexptr;
|
||||||
@ -1766,5 +1767,8 @@ void
|
|||||||
yyerror (msg)
|
yyerror (msg)
|
||||||
char *msg;
|
char *msg;
|
||||||
{
|
{
|
||||||
|
if (prev_lexptr)
|
||||||
|
lexptr = prev_lexptr;
|
||||||
|
|
||||||
error ("A %s in expression, near `%s'.", (msg ? msg : "error"), lexptr);
|
error ("A %s in expression, near `%s'.", (msg ? msg : "error"), lexptr);
|
||||||
}
|
}
|
||||||
|
@ -76,6 +76,7 @@ int arglist_len;
|
|||||||
union type_stack_elt *type_stack;
|
union type_stack_elt *type_stack;
|
||||||
int type_stack_depth, type_stack_size;
|
int type_stack_depth, type_stack_size;
|
||||||
char *lexptr;
|
char *lexptr;
|
||||||
|
char *prev_lexptr;
|
||||||
char *namecopy;
|
char *namecopy;
|
||||||
int paren_depth;
|
int paren_depth;
|
||||||
int comma_terminates;
|
int comma_terminates;
|
||||||
@ -1126,6 +1127,7 @@ parse_exp_1 (char **stringptr, struct block *block, int comma)
|
|||||||
struct cleanup *old_chain;
|
struct cleanup *old_chain;
|
||||||
|
|
||||||
lexptr = *stringptr;
|
lexptr = *stringptr;
|
||||||
|
prev_lexptr = NULL;
|
||||||
|
|
||||||
paren_depth = 0;
|
paren_depth = 0;
|
||||||
type_stack_depth = 0;
|
type_stack_depth = 0;
|
||||||
|
@ -150,6 +150,10 @@ extern struct type *follow_types (struct type *);
|
|||||||
|
|
||||||
extern char *lexptr;
|
extern char *lexptr;
|
||||||
|
|
||||||
|
/* After a token has been recognized, this variable points to it.
|
||||||
|
Currently used only for error reporting. */
|
||||||
|
extern char *prev_lexptr;
|
||||||
|
|
||||||
/* Tokens that refer to names do so with explicit pointer and length,
|
/* Tokens that refer to names do so with explicit pointer and length,
|
||||||
so they can share the storage that lexptr is parsing.
|
so they can share the storage that lexptr is parsing.
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user