bool destructible = true;
};
+/* Splitting strings into words. */
+extern const char *default_word_break_characters (void);
+
/* Structure tying together assorted information about a language.
As we move over from the old structure based languages to a class
void (*la_print_typedef) (struct type *type, struct symbol *new_symbol,
struct ui_file *stream);
- /* Print a value using syntax appropriate for this language.
- RECURSE is the recursion depth. It is zero-based. */
-
- void (*la_value_print_inner) (struct value *, struct ui_file *,
- int recurse,
- const struct value_print_options *);
-
- /* Print a top-level value using syntax appropriate for this language. */
-
- void (*la_value_print) (struct value *, struct ui_file *,
- const struct value_print_options *);
-
/* Now come some hooks for lookup_symbol. */
/* If this is non-NULL, specifies the name that of the implicit
const bool la_store_sym_names_in_linkage_form_p;
- /* This is a function that lookup_symbol will call when it gets to
- the part of symbol lookup where C looks up static and global
- variables. */
-
- struct block_symbol (*la_lookup_symbol_nonlocal)
- (const struct language_defn *,
- const char *,
- const struct block *,
- const domain_enum);
-
/* Table for printing expressions. */
const struct op_print *la_op_print_tab;
/* Index to use for extracting the first element of a string. */
char string_lower_bound;
- /* The list of characters forming word boundaries. */
- const char *(*la_word_break_characters) (void);
-
- /* Add to the completion tracker all symbols which are possible
- completions for TEXT. WORD is the entire command on which the
- completion is being made. If CODE is TYPE_CODE_UNDEF, then all
- symbols should be examined; otherwise, only STRUCT_DOMAIN
- symbols whose type has a code of CODE should be matched. */
- void (*la_collect_symbol_completion_matches)
- (completion_tracker &tracker,
- complete_symbol_mode mode,
- symbol_name_match_type match_type,
- const char *text,
- const char *word,
- enum type_code code);
-
- /* Return an expression that can be used for a location
- watchpoint. TYPE is a pointer type that points to the memory
- to watch, and ADDR is the address of the watched memory. */
- gdb::unique_xmalloc_ptr<char> (*la_watch_location_expression)
- (struct type *type, CORE_ADDR addr);
-
/* Various operations on varobj. */
const struct lang_varobj_ops *la_varobj_ops;
return nullptr;
}
+ /* The list of characters forming word boundaries. */
+ virtual const char *word_break_characters (void) const
+ {
+ return default_word_break_characters ();
+ }
+
+ /* Add to the completion tracker all symbols which are possible
+ completions for TEXT. WORD is the entire command on which the
+ completion is being made. If CODE is TYPE_CODE_UNDEF, then all
+ symbols should be examined; otherwise, only STRUCT_DOMAIN symbols
+ whose type has a code of CODE should be matched. */
+
+ virtual void collect_symbol_completion_matches
+ (completion_tracker &tracker,
+ complete_symbol_mode mode,
+ symbol_name_match_type name_match_type,
+ const char *text,
+ const char *word,
+ enum type_code code) const
+ {
+ return default_collect_symbol_completion_matches_break_on
+ (tracker, mode, name_match_type, text, word, "", code);
+ }
+
+ /* This is a function that lookup_symbol will call when it gets to
+ the part of symbol lookup where C looks up static and global
+ variables. This default implements the basic C lookup rules. */
+
+ virtual struct block_symbol lookup_symbol_nonlocal
+ (const char *name,
+ const struct block *block,
+ const domain_enum domain) const;
+
+ /* Return an expression that can be used for a location
+ watchpoint. TYPE is a pointer type that points to the memory
+ to watch, and ADDR is the address of the watched memory. */
+ virtual gdb::unique_xmalloc_ptr<char> watch_location_expression
+ (struct type *type, CORE_ADDR addr) const;
+
/* List of all known languages. */
static const struct language_defn *languages[nr_languages];
+ /* Print a top-level value using syntax appropriate for this language. */
+ virtual void value_print (struct value *val, struct ui_file *stream,
+ const struct value_print_options *options) const;
+
+ /* Print a value using syntax appropriate for this language. RECURSE is
+ the recursion depth. It is zero-based. */
+ virtual void value_print_inner
+ (struct value *val, struct ui_file *stream, int recurse,
+ const struct value_print_options *options) const;
+
protected:
/* This is the overridable part of the GET_SYMBOL_NAME_MATCHER method.
(current_language->la_print_typedef(type,new_symbol,stream))
#define LA_VALUE_PRINT(val,stream,options) \
- (current_language->la_value_print(val,stream,options))
+ (current_language->value_print (val,stream,options))
#define LA_PRINT_CHAR(ch, type, stream) \
(current_language->la_printchar(ch, type, stream))
extern char *language_demangle (const struct language_defn *current_language,
const char *mangled, int options);
-/* Splitting strings into words. */
-extern const char *default_word_break_characters (void);
-
/* Return information about whether TYPE should be passed
(and returned) by reference at the language level. */
struct language_pass_by_ref_info language_pass_by_reference (struct type *type);