aboutsummaryrefslogtreecommitdiff
path: root/gdb/expression.h
diff options
context:
space:
mode:
authorTom Tromey <tromey@redhat.com>2008-06-06 20:58:08 +0000
committerTom Tromey <tromey@redhat.com>2008-06-06 20:58:08 +0000
commit65d12d83a581c833b3c09acead57dd1134154e46 (patch)
tree5115b47443ba264269ce3c9445015317a78ceeea /gdb/expression.h
parent90aa6a4044aa608595b9a97944e27541bdd4ebf7 (diff)
downloadgdb-65d12d83a581c833b3c09acead57dd1134154e46.zip
gdb-65d12d83a581c833b3c09acead57dd1134154e46.tar.gz
gdb-65d12d83a581c833b3c09acead57dd1134154e46.tar.bz2
gdb
* value.h (evaluate_subexpression_type, extract_field_op): Declare. * printcmd.c (_initialize_printcmd): Use expression_completer for 'p', 'inspect', 'call'. * parser-defs.h (parse_field_expression): Declare. * parse.c: Include exceptions.h. (in_parse_field, expout_last_struct): New globals. (mark_struct_expression): New function. (prefixify_expression): Return int. (prefixify_subexp): Return int. Use expout_last_struct. (parse_exp_1): Update. (parse_exp_in_context): Add 'out_subexp' argument. Handle in_parse_field. (parse_field_expression): New function. * expression.h (parse_field_expression): Declare. (in_parse_field): Likewise. * eval.c (evaluate_subexpression_type): New function. (extract_field_op): Likewise. * completer.h (expression_completer): Declare. * completer.c (expression_completer): New function. (count_struct_fields, add_struct_fields): New functions. * c-exp.y (yyparse): Redefine. (COMPLETE): New token. (exp): New productions. (saw_name_at_eof, last_was_structop): New globals. (yylex): Return COMPLETE when needed. Recognize in_parse_field. (c_parse): New function. * breakpoint.c (_initialize_breakpoint): Use expression_completer for watch, awatch, and rwatch. * Makefile.in (parse.o): Depend on exceptions_h. gdb/testsuite * gdb.base/break1.c (struct some_struct): New struct. (values): New global. * gdb.base/completion.exp: Add field name completion test. gdb/doc * gdb.texinfo (Completion): Add field name example.
Diffstat (limited to 'gdb/expression.h')
-rw-r--r--gdb/expression.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/gdb/expression.h b/gdb/expression.h
index 0085b99..084c70e 100644
--- a/gdb/expression.h
+++ b/gdb/expression.h
@@ -389,8 +389,14 @@ struct expression
extern struct expression *parse_expression (char *);
+extern struct type *parse_field_expression (char *, char **);
+
extern struct expression *parse_exp_1 (char **, struct block *, int);
+/* For use by parsers; set if we want to parse an expression and
+ attempt to complete a field name. */
+extern int in_parse_field;
+
/* The innermost context required by the stack and register variables
we've encountered so far. To use this, set it to NULL, then call
parse_<whatever>, then look at it. */