summaryrefslogtreecommitdiff
path: root/src/complain.c
diff options
context:
space:
mode:
authorAkim Demaille <demaille@gostai.com>2009-04-20 12:24:23 +0200
committerAkim Demaille <demaille@gostai.com>2009-04-20 23:17:51 +0200
commit4f646c3794c45940aaf96d5409eff02a2c74978e (patch)
tree914054ac558d9aca40ef8e42f680be96a27cb81b /src/complain.c
parent184e31795670448ce726a8d4aafa7582faa1cb4a (diff)
downloadbison-4f646c3794c45940aaf96d5409eff02a2c74978e.tar.gz
variables: accept dashes.
* data/bison.m4 (b4_percent_define_if_define_): Also map dashes to underscores. * src/scan-gram.l ({id}): Also accept dashes after the initial letter. ({directive}): Use {id}. * src/parse-gram.y: Comment and formatting changes. * doc/bison.texinfo (Symbols): Adjust the lexical definitions of symbols. * src/complain.h, src/complain.c (yacc_at): New. * src/symtab.c (symbol_new): Use yacc_at to report inappropriate symbol names. * src/output.c (token_definitions_output): Do not #define token names with dashes.
Diffstat (limited to 'src/complain.c')
-rw-r--r--src/complain.c23
1 files changed, 22 insertions, 1 deletions
diff --git a/src/complain.c b/src/complain.c
index 2c26c4e4..4cc35c8a 100644
--- a/src/complain.c
+++ b/src/complain.c
@@ -1,6 +1,6 @@
/* Declaration for error-reporting function for Bison.
- Copyright (C) 2000, 2001, 2002, 2004, 2005, 2006
+ Copyright (C) 2000, 2001, 2002, 2004, 2005, 2006, 2009
Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
@@ -120,6 +120,27 @@ complain (const char *message, ...)
}
+/*--------------------------------------------------------------.
+| An incompatibility with POSIX Yacc: mapped either to warn* or |
+| complain* depending on yacc_flag. |
+`--------------------------------------------------------------*/
+
+void
+yacc_at (location loc, const char *message, ...)
+{
+ if (yacc_flag)
+ {
+ ERROR_MESSAGE (&loc, NULL, message);
+ complaint_issued = true;
+ }
+ else if (warnings_flag & warnings_yacc)
+ {
+ set_warning_issued ();
+ ERROR_MESSAGE (&loc, _("warning"), message);
+ }
+}
+
+
/*-------------------------------------------------.
| A severe error has occurred, we cannot proceed. |
`-------------------------------------------------*/