]> git.saurik.com Git - bison.git/blobdiff - src/location.c
* bootstrap: Comment out the AM_CPPFLAGS line, since we don't use
[bison.git] / src / location.c
index b4361cd62ce0a39befbbad053dcc9d92fea8dea4..ecd3658b14cb42de74548343c004b878388fa1ac 100644 (file)
@@ -1,5 +1,6 @@
 /* Locations for Bison
 /* Locations for Bison
-   Copyright (C) 2002  Free Software Foundation, Inc.
+
+   Copyright (C) 2002, 2005 Free Software Foundation, Inc.
 
    This file is part of Bison, the GNU Compiler Compiler.
 
 
    This file is part of Bison, the GNU Compiler Compiler.
 
 
    You should have received a copy of the GNU General Public License
    along with Bison; see the file COPYING.  If not, write to
 
    You should have received a copy of the GNU General Public License
    along with Bison; see the file COPYING.  If not, write to
-   the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-   Boston, MA 02111-1307, USA.  */
+   the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+   Boston, MA 02110-1301, USA.  */
 
 
+#include <config.h>
 #include "system.h"
 #include "system.h"
+
+#include <quotearg.h>
+
 #include "location.h"
 
 #include "location.h"
 
-location_t empty_location = { NULL, 0, 0, 0, 0 };
+location const empty_location;
+
+/* Output to OUT the location LOC.
+   Warning: it uses quotearg's slot 3.  */
+void
+location_print (FILE *out, location loc)
+{
+  fprintf (out, "%s:%d.%d",
+          quotearg_n_style (3, escape_quoting_style, loc.start.file),
+          loc.start.line, loc.start.column);
+
+  if (loc.start.file != loc.end.file)
+    fprintf (out, "-%s:%d.%d",
+            quotearg_n_style (3, escape_quoting_style, loc.end.file),
+            loc.end.line, loc.end.column - 1);
+  else if (loc.start.line < loc.end.line)
+    fprintf (out, "-%d.%d", loc.end.line, loc.end.column - 1);
+  else if (loc.start.column < loc.end.column - 1)
+    fprintf (out, "-%d", loc.end.column - 1);
+}