From e186a284863938a406f562630a3bdc48737a664a Mon Sep 17 00:00:00 2001 From: Akim Demaille Date: Tue, 29 Jul 2008 13:30:02 +0200 Subject: [PATCH] Pass command line location to skeleton_arg and language_argmatch. * src/getargs.h, src/getargs.c (skeleton_arg, language_argmatch): The location argument is now mandatory. Adjust all dependencies. (getargs): Use command_line_location. --- ChangeLog | 8 ++++++++ src/getargs.c | 20 ++++++++------------ src/getargs.h | 4 ++-- src/parse-gram.c | 7 +++++-- src/parse-gram.y | 4 ++-- 5 files changed, 25 insertions(+), 18 deletions(-) diff --git a/ChangeLog b/ChangeLog index e7fb5418..e7b3f1c3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2008-11-07 Akim Demaille + + Pass command line location to skeleton_arg and language_argmatch. + * src/getargs.h, src/getargs.c (skeleton_arg, language_argmatch): + The location argument is now mandatory. + Adjust all dependencies. + (getargs): Use command_line_location. + 2008-11-07 Akim Demaille -D, --define. diff --git a/src/getargs.c b/src/getargs.c index ae54f81c..a8d1c548 100644 --- a/src/getargs.c +++ b/src/getargs.c @@ -361,7 +361,7 @@ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\ `--------------------------------------*/ void -skeleton_arg (char const *arg, int prio, location const *loc) +skeleton_arg (char const *arg, int prio, location loc) { if (prio < skeleton_prio) { @@ -372,15 +372,12 @@ skeleton_arg (char const *arg, int prio, location const *loc) { char const *msg = _("multiple skeleton declarations are invalid"); - if (loc) - complain_at (*loc, msg); - else - complain (msg); + complain_at (loc, msg); } } void -language_argmatch (char const *arg, int prio, location const *loc) +language_argmatch (char const *arg, int prio, location loc) { char const *msg; @@ -401,10 +398,7 @@ language_argmatch (char const *arg, int prio, location const *loc) else return; - if (loc) - complain_at (*loc, msg, arg); - else - complain (msg, arg); + complain_at (loc, msg, arg); } /*----------------------. @@ -546,11 +540,13 @@ getargs (int argc, char *argv[]) break; case 'L': - language_argmatch (optarg, command_line_prio, NULL); + language_argmatch (optarg, command_line_prio, + command_line_location ()); break; case 'S': - skeleton_arg (AS_FILE_NAME (optarg), command_line_prio, NULL); + skeleton_arg (AS_FILE_NAME (optarg), command_line_prio, + command_line_location ()); break; case 'T': diff --git a/src/getargs.h b/src/getargs.h index eb7f448e..8d27e717 100644 --- a/src/getargs.h +++ b/src/getargs.h @@ -135,7 +135,7 @@ extern int warnings_flag; void getargs (int argc, char *argv[]); /* Used by parse-gram.y. */ -void language_argmatch (char const *arg, int prio, location const *loc); -void skeleton_arg (const char *arg, int prio, location const *loc); +void language_argmatch (char const *arg, int prio, location loc); +void skeleton_arg (const char *arg, int prio, location loc); #endif /* !GETARGS_H_ */ diff --git a/src/parse-gram.c b/src/parse-gram.c index b7938dcd..516e4f4b 100644 --- a/src/parse-gram.c +++ b/src/parse-gram.c @@ -1994,7 +1994,10 @@ yyreduce: /* Line 1455 of yacc.c */ #line 257 "parse-gram.y" - { language_argmatch ((yyvsp[(2) - (2)].chars), grammar_prio, &(yylsp[(1) - (2)])); } + { language_argmatch ((yyvsp[(2) - (2)].chars), grammar_prio, (yylsp[(1) - (2)])); } + +/* Line 1457 of yacc.c */ +#line 2036 "../../../src/parse-gram.c" break; case 19: @@ -2110,7 +2113,7 @@ yyreduce: skeleton_user = uniqstr_new (skeleton_build); free (skeleton_build); } - skeleton_arg (skeleton_user, grammar_prio, &(yylsp[(1) - (2)])); + skeleton_arg (skeleton_user, grammar_prio, (yylsp[(1) - (2)])); } break; diff --git a/src/parse-gram.y b/src/parse-gram.y index a8526b24..83b02e36 100644 --- a/src/parse-gram.y +++ b/src/parse-gram.y @@ -254,7 +254,7 @@ prologue_declaration: muscle_code_grow ("initial_action", action.code, @2); code_scanner_last_string_free (); } -| "%language" STRING { language_argmatch ($2, grammar_prio, &@1); } +| "%language" STRING { language_argmatch ($2, grammar_prio, @1); } | "%lex-param" "{...}" { add_param ("lex_param", $2, @2); } | "%locations" { locations_flag = true; } | "%name-prefix" STRING { spec_name_prefix = $2; } @@ -300,7 +300,7 @@ prologue_declaration: skeleton_user = uniqstr_new (skeleton_build); free (skeleton_build); } - skeleton_arg (skeleton_user, grammar_prio, &@1); + skeleton_arg (skeleton_user, grammar_prio, @1); } | "%token-table" { token_table_flag = true; } | "%verbose" { report_flag |= report_states; } -- 2.45.2