]> git.saurik.com Git - bison.git/blobdiff - src/location.c
Port to SunOS 4.1.4, which lacks strtoul and strerror.
[bison.git] / src / location.c
index dd32e5c1c20e51863af8470d31dd6c29f6a93a7f..8c235bbbf98a737385b1d6be57b5dcd2e5745cc3 100644 (file)
@@ -1,5 +1,5 @@
 /* Locations for Bison
 /* Locations for Bison
-   Copyright (C) 2002  Free Software Foundation, Inc.
+   Copyright (C) 2002 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 "system.h"
+
+#include <quotearg.h>
 
 #include "location.h"
 
 
 #include "location.h"
 
-location_t empty_location = { 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);
+}