Remove la_error
While working on the parser code, I noticed that yyerror is exported from each parser. It is used by this code in parse.c: TRY { if (lang->la_parser (&ps)) lang->la_error (NULL); } However, it seems to me that la_error will never be called here, because in every case, la_parser throws an exception on error -- each implementation of yyerror just calls error. So, this patch removes la_error and makes all the yyerror functions static. This is handy primarily because it makes it simpler to make the expression parsers pure. Tested by the buildbot. gdb/ChangeLog 2018-06-18 Tom Tromey <tom@tromey.com> * rust-lang.h (rust_yyerror): Don't declare. * rust-lang.c (rust_language_defn): Update. * rust-exp.y (yyerror): Now static. * parse.c (parse_exp_in_context_1): Update. * p-lang.h (p_yyerror): Don't declare. * p-lang.c (p_language_defn): Update. * p-exp.y (yyerror): Now static. * opencl-lang.c (opencl_language_defn): Update. * objc-lang.c (objc_language_defn): Update. * m2-lang.h (m2_yyerror): Don't declare. * m2-lang.c (m2_language_defn): Update. * m2-exp.y (yyerror): Now static. * language.h (struct language_defn) <la_error>: Remove. * language.c (unk_lang_error): Remove. (unknown_language_defn, auto_language_defn): Remove. * go-lang.h (go_yyerror): Don't declare. * go-lang.c (go_language_defn): Update. * go-exp.y (yyerror): Now static. * f-lang.h (f_yyerror): Don't declare. * f-lang.c (f_language_defn): Update. * f-exp.y (yyerror): Now static. * d-lang.h (d_yyerror): Don't declare. * d-lang.c (d_language_defn): Update. * d-exp.y (yyerror): Now static. * c-lang.h (c_yyerror): Don't declare. * c-lang.c (c_language_defn, cplus_language_defn) (asm_language_defn, minimal_language_defn): Update. * c-exp.y (yyerror): Now static. * ada-lang.h (ada_yyerror): Don't declare. * ada-lang.c (ada_language_defn): Update. * ada-exp.y (yyerror): Now static.
This commit is contained in:
parent
db67d45895
commit
69d340c684
30 changed files with 58 additions and 68 deletions
|
@ -46,8 +46,6 @@
|
|||
#include "c-lang.h"
|
||||
#include <algorithm>
|
||||
|
||||
static void unk_lang_error (const char *);
|
||||
|
||||
static int unk_lang_parser (struct parser_state *);
|
||||
|
||||
static void set_range_case (void);
|
||||
|
@ -750,12 +748,6 @@ unk_lang_parser (struct parser_state *ps)
|
|||
return 1;
|
||||
}
|
||||
|
||||
static void
|
||||
unk_lang_error (const char *msg)
|
||||
{
|
||||
error (_("Attempted to parse an expression with unknown language"));
|
||||
}
|
||||
|
||||
static void
|
||||
unk_lang_emit_char (int c, struct type *type, struct ui_file *stream,
|
||||
int quoter)
|
||||
|
@ -852,7 +844,6 @@ const struct language_defn unknown_language_defn =
|
|||
NULL,
|
||||
&exp_descriptor_standard,
|
||||
unk_lang_parser,
|
||||
unk_lang_error,
|
||||
null_post_parser,
|
||||
unk_lang_printchar, /* Print character constant */
|
||||
unk_lang_printstr,
|
||||
|
@ -904,7 +895,6 @@ const struct language_defn auto_language_defn =
|
|||
NULL,
|
||||
&exp_descriptor_standard,
|
||||
unk_lang_parser,
|
||||
unk_lang_error,
|
||||
null_post_parser,
|
||||
unk_lang_printchar, /* Print character constant */
|
||||
unk_lang_printstr,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue