struct symtab;
+#include "location.h"
#include "vec.h"
/* Flags to pass to decode_line_1 and decode_line_full. */
linespec_result ()
: special_display (0),
pre_expanded (0),
- location (NULL),
sals (NULL)
{
}
int pre_expanded;
/* If PRE_EXPANDED is non-zero, this is set to the location entered
- by the user. This will be freed by destroy_linespec_result. */
- struct event_location *location;
+ by the user. */
+ event_location_up location;
/* The sals. The vector will be freed by the destructor. */
VEC (linespec_sals) *sals;
extern void linespec_lex_to_end (char **stringp);
+extern const char * const linespec_keywords[];
+
+/* Complete a linespec. */
+
+extern void linespec_complete (completion_tracker &tracker,
+ const char *text);
+
+/* Complete a function symbol, in linespec mode. If SOURCE_FILENAME
+ is non-NULL, limits completion to the list of functions defined in
+ source files that match SOURCE_FILENAME. */
+
+extern void linespec_complete_function (completion_tracker &tracker,
+ const char *function,
+ const char *source_filename);
+
+/* Complete a label symbol, in linespec mode. Only labels of
+ functions named FUNCTION_NAME are considered. If SOURCE_FILENAME
+ is non-NULL, limits completion to labels of functions defined in
+ source files that match SOURCE_FILENAME. */
+
+extern void linespec_complete_label (completion_tracker &tracker,
+ const struct language_defn *language,
+ const char *source_filename,
+ const char *function_name,
+ const char *label_name);
+
/* Evaluate the expression pointed to by EXP_PTR into a CORE_ADDR,
advancing EXP_PTR past any parsed text. */