+2008-11-07 Akim Demaille <demaille@gostai.com>
+
+ 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 <demaille@gostai.com>
-D, --define.
`--------------------------------------*/
void
-skeleton_arg (char const *arg, int prio, location const *loc)
+skeleton_arg (char const *arg, int prio, location loc)
{
if (prio < skeleton_prio)
{
{
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;
else
return;
- if (loc)
- complain_at (*loc, msg, arg);
- else
- complain (msg, arg);
+ complain_at (loc, msg, arg);
}
/*----------------------.
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':
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_ */
/* 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:
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;
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; }
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; }