* 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:
Tom Tromey 2012-12-07 20:05:15 +00:00
parent 4fc5d43ea6
commit 155da5173d
7 changed files with 33 additions and 20 deletions

View File

@ -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

View File

@ -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;
} }

View File

@ -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;

View File

@ -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

View File

@ -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;
} }

View File

@ -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,

View File

@ -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)