mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2025-01-18 05:54:26 +08:00
* expression.h (parse_expression_for_completion): Rename
from parse_field_expression. (parse_completion): Rename from in_parse_field. * c-exp.y (lex_one_token): Update. * completer.c (expression_completer): Update. * go-exp.y (lex_one_token): Update. * p-exp.y (yylex): Update. * parse.c (parse_completion): Rename from in_parse_field. (parse_exp_in_context): Update. (parse_expression_for_completion): Rename from parse_field_expression. Update.
This commit is contained in:
parent
4fc5d43ea6
commit
155da5173d
@ -1,3 +1,17 @@
|
|||||||
|
2012-12-07 Tom Tromey <tromey@redhat.com>
|
||||||
|
|
||||||
|
* expression.h (parse_expression_for_completion): Rename
|
||||||
|
from parse_field_expression.
|
||||||
|
(parse_completion): Rename from in_parse_field.
|
||||||
|
* c-exp.y (lex_one_token): Update.
|
||||||
|
* completer.c (expression_completer): Update.
|
||||||
|
* go-exp.y (lex_one_token): Update.
|
||||||
|
* p-exp.y (yylex): Update.
|
||||||
|
* parse.c (parse_completion): Rename from in_parse_field.
|
||||||
|
(parse_exp_in_context): Update.
|
||||||
|
(parse_expression_for_completion): Rename from
|
||||||
|
parse_field_expression. Update.
|
||||||
|
|
||||||
2012-12-07 Tom Tromey <tromey@redhat.com>
|
2012-12-07 Tom Tromey <tromey@redhat.com>
|
||||||
|
|
||||||
* typeprint.c (_initialize_typeprint): Set completer
|
* typeprint.c (_initialize_typeprint): Set completer
|
||||||
|
@ -2354,7 +2354,7 @@ lex_one_token (void)
|
|||||||
|
|
||||||
lexptr += 2;
|
lexptr += 2;
|
||||||
yylval.opcode = tokentab2[i].opcode;
|
yylval.opcode = tokentab2[i].opcode;
|
||||||
if (in_parse_field && tokentab2[i].token == ARROW)
|
if (parse_completion && tokentab2[i].token == ARROW)
|
||||||
last_was_structop = 1;
|
last_was_structop = 1;
|
||||||
return tokentab2[i].token;
|
return tokentab2[i].token;
|
||||||
}
|
}
|
||||||
@ -2417,7 +2417,7 @@ lex_one_token (void)
|
|||||||
/* Might be a floating point number. */
|
/* Might be a floating point number. */
|
||||||
if (lexptr[1] < '0' || lexptr[1] > '9')
|
if (lexptr[1] < '0' || lexptr[1] > '9')
|
||||||
{
|
{
|
||||||
if (in_parse_field)
|
if (parse_completion)
|
||||||
last_was_structop = 1;
|
last_was_structop = 1;
|
||||||
goto symbol; /* Nope, must be a symbol. */
|
goto symbol; /* Nope, must be a symbol. */
|
||||||
}
|
}
|
||||||
@ -2669,7 +2669,7 @@ lex_one_token (void)
|
|||||||
if (*tokstart == '$')
|
if (*tokstart == '$')
|
||||||
return VARIABLE;
|
return VARIABLE;
|
||||||
|
|
||||||
if (in_parse_field && *lexptr == '\0')
|
if (parse_completion && *lexptr == '\0')
|
||||||
saw_name_at_eof = 1;
|
saw_name_at_eof = 1;
|
||||||
return NAME;
|
return NAME;
|
||||||
}
|
}
|
||||||
|
@ -396,7 +396,7 @@ expression_completer (struct cmd_list_element *ignore,
|
|||||||
fieldname = NULL;
|
fieldname = NULL;
|
||||||
TRY_CATCH (except, RETURN_MASK_ERROR)
|
TRY_CATCH (except, RETURN_MASK_ERROR)
|
||||||
{
|
{
|
||||||
type = parse_field_expression (text, &fieldname);
|
type = parse_expression_for_completion (text, &fieldname);
|
||||||
}
|
}
|
||||||
if (except.reason < 0)
|
if (except.reason < 0)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
@ -98,14 +98,14 @@ struct expression
|
|||||||
|
|
||||||
extern struct expression *parse_expression (char *);
|
extern struct expression *parse_expression (char *);
|
||||||
|
|
||||||
extern struct type *parse_field_expression (char *, char **);
|
extern struct type *parse_expression_for_completion (char *, char **);
|
||||||
|
|
||||||
extern struct expression *parse_exp_1 (char **, CORE_ADDR pc,
|
extern struct expression *parse_exp_1 (char **, CORE_ADDR pc,
|
||||||
const struct block *, int);
|
const struct block *, int);
|
||||||
|
|
||||||
/* For use by parsers; set if we want to parse an expression and
|
/* For use by parsers; set if we want to parse an expression and
|
||||||
attempt to complete a field name. */
|
attempt completion. */
|
||||||
extern int in_parse_field;
|
extern int parse_completion;
|
||||||
|
|
||||||
/* The innermost context required by the stack and register variables
|
/* The innermost context required by the stack and register variables
|
||||||
we've encountered so far. To use this, set it to NULL, then call
|
we've encountered so far. To use this, set it to NULL, then call
|
||||||
|
@ -1124,7 +1124,7 @@ lex_one_token (void)
|
|||||||
/* Might be a floating point number. */
|
/* Might be a floating point number. */
|
||||||
if (lexptr[1] < '0' || lexptr[1] > '9')
|
if (lexptr[1] < '0' || lexptr[1] > '9')
|
||||||
{
|
{
|
||||||
if (in_parse_field)
|
if (parse_completion)
|
||||||
last_was_structop = 1;
|
last_was_structop = 1;
|
||||||
goto symbol; /* Nope, must be a symbol. */
|
goto symbol; /* Nope, must be a symbol. */
|
||||||
}
|
}
|
||||||
@ -1311,7 +1311,7 @@ lex_one_token (void)
|
|||||||
if (*tokstart == '$')
|
if (*tokstart == '$')
|
||||||
return DOLLAR_VARIABLE;
|
return DOLLAR_VARIABLE;
|
||||||
|
|
||||||
if (in_parse_field && *lexptr == '\0')
|
if (parse_completion && *lexptr == '\0')
|
||||||
saw_name_at_eof = 1;
|
saw_name_at_eof = 1;
|
||||||
return NAME;
|
return NAME;
|
||||||
}
|
}
|
||||||
|
@ -1237,7 +1237,7 @@ yylex (void)
|
|||||||
/* Might be a floating point number. */
|
/* Might be a floating point number. */
|
||||||
if (lexptr[1] < '0' || lexptr[1] > '9')
|
if (lexptr[1] < '0' || lexptr[1] > '9')
|
||||||
{
|
{
|
||||||
if (in_parse_field)
|
if (parse_completion)
|
||||||
last_was_structop = 1;
|
last_was_structop = 1;
|
||||||
goto symbol; /* Nope, must be a symbol. */
|
goto symbol; /* Nope, must be a symbol. */
|
||||||
}
|
}
|
||||||
@ -1529,7 +1529,7 @@ yylex (void)
|
|||||||
|
|
||||||
if (search_field && current_type)
|
if (search_field && current_type)
|
||||||
is_a_field = (lookup_struct_elt_type (current_type, tmp, 1) != NULL);
|
is_a_field = (lookup_struct_elt_type (current_type, tmp, 1) != NULL);
|
||||||
if (is_a_field || in_parse_field)
|
if (is_a_field || parse_completion)
|
||||||
sym = NULL;
|
sym = NULL;
|
||||||
else
|
else
|
||||||
sym = lookup_symbol (tmp, expression_context_block,
|
sym = lookup_symbol (tmp, expression_context_block,
|
||||||
@ -1544,7 +1544,7 @@ yylex (void)
|
|||||||
}
|
}
|
||||||
if (search_field && current_type)
|
if (search_field && current_type)
|
||||||
is_a_field = (lookup_struct_elt_type (current_type, tmp, 1) != NULL);
|
is_a_field = (lookup_struct_elt_type (current_type, tmp, 1) != NULL);
|
||||||
if (is_a_field || in_parse_field)
|
if (is_a_field || parse_completion)
|
||||||
sym = NULL;
|
sym = NULL;
|
||||||
else
|
else
|
||||||
sym = lookup_symbol (tmp, expression_context_block,
|
sym = lookup_symbol (tmp, expression_context_block,
|
||||||
@ -1572,7 +1572,7 @@ yylex (void)
|
|||||||
}
|
}
|
||||||
if (search_field && current_type)
|
if (search_field && current_type)
|
||||||
is_a_field = (lookup_struct_elt_type (current_type, tmp, 1) != NULL);
|
is_a_field = (lookup_struct_elt_type (current_type, tmp, 1) != NULL);
|
||||||
if (is_a_field || in_parse_field)
|
if (is_a_field || parse_completion)
|
||||||
sym = NULL;
|
sym = NULL;
|
||||||
else
|
else
|
||||||
sym = lookup_symbol (tmp, expression_context_block,
|
sym = lookup_symbol (tmp, expression_context_block,
|
||||||
|
13
gdb/parse.c
13
gdb/parse.c
@ -81,9 +81,8 @@ char *prev_lexptr;
|
|||||||
int paren_depth;
|
int paren_depth;
|
||||||
int comma_terminates;
|
int comma_terminates;
|
||||||
|
|
||||||
/* True if parsing an expression to find a field reference. This is
|
/* True if parsing an expression to attempt completion. */
|
||||||
only used by completion. */
|
int parse_completion;
|
||||||
int in_parse_field;
|
|
||||||
|
|
||||||
/* The index of the last struct expression directly before a '.' or
|
/* The index of the last struct expression directly before a '.' or
|
||||||
'->'. This is set when parsing and is only used when completing a
|
'->'. This is set when parsing and is only used when completing a
|
||||||
@ -1191,7 +1190,7 @@ parse_exp_in_context (char **stringptr, CORE_ADDR pc, const struct block *block,
|
|||||||
}
|
}
|
||||||
if (except.reason < 0)
|
if (except.reason < 0)
|
||||||
{
|
{
|
||||||
if (! in_parse_field)
|
if (! parse_completion)
|
||||||
{
|
{
|
||||||
xfree (expout);
|
xfree (expout);
|
||||||
throw_exception (except);
|
throw_exception (except);
|
||||||
@ -1245,7 +1244,7 @@ parse_expression (char *string)
|
|||||||
*NAME must be freed by the caller. */
|
*NAME must be freed by the caller. */
|
||||||
|
|
||||||
struct type *
|
struct type *
|
||||||
parse_field_expression (char *string, char **name)
|
parse_expression_for_completion (char *string, char **name)
|
||||||
{
|
{
|
||||||
struct expression *exp = NULL;
|
struct expression *exp = NULL;
|
||||||
struct value *val;
|
struct value *val;
|
||||||
@ -1254,10 +1253,10 @@ parse_field_expression (char *string, char **name)
|
|||||||
|
|
||||||
TRY_CATCH (except, RETURN_MASK_ERROR)
|
TRY_CATCH (except, RETURN_MASK_ERROR)
|
||||||
{
|
{
|
||||||
in_parse_field = 1;
|
parse_completion = 1;
|
||||||
exp = parse_exp_in_context (&string, 0, 0, 0, 0, &subexp);
|
exp = parse_exp_in_context (&string, 0, 0, 0, 0, &subexp);
|
||||||
}
|
}
|
||||||
in_parse_field = 0;
|
parse_completion = 0;
|
||||||
if (except.reason < 0 || ! exp)
|
if (except.reason < 0 || ! exp)
|
||||||
return NULL;
|
return NULL;
|
||||||
if (expout_last_struct == -1)
|
if (expout_last_struct == -1)
|
||||||
|
Loading…
Reference in New Issue
Block a user