]> git.saurik.com Git - bison.git/blobdiff - data/location.cc
skeletons: factor comments about symbols
[bison.git] / data / location.cc
index 218910b133344b88a8759864f31b5b9e21359881..b65bf49062fed54075a8aee54a872f81b5013859 100644 (file)
@@ -73,7 +73,7 @@ m4_define([b4_position_define],
   };
 
   /// Add and assign a position.
-  inline const position&
+  inline position&
   operator+= (position& res, const int width)
   {
     res.columns (width);
@@ -89,7 +89,7 @@ m4_define([b4_position_define],
   }
 
   /// Add and assign a position.
-  inline const position&
+  inline position&
   operator-= (position& res, const int width)
   {
     return res += -width;
@@ -124,8 +124,9 @@ m4_define([b4_position_define],
    ** \param ostr the destination output stream
    ** \param pos a reference to the position to redirect
    */
-  inline std::ostream&
-  operator<< (std::ostream& ostr, const position& pos)
+  template <typename YYChar>
+  inline std::basic_ostream<YYChar>&
+  operator<< (std::basic_ostream<YYChar>& ostr, const position& pos)
   {
     if (pos.filename)
       ostr << *pos.filename << ':';
@@ -248,7 +249,9 @@ m4_define([b4_location_define],
    **
    ** Avoid duplicate information.
    */
-  inline std::ostream& operator<< (std::ostream& ostr, const location& loc)
+  template <typename YYChar>
+  inline std::basic_ostream<YYChar>&
+  operator<< (std::basic_ostream<YYChar>& ostr, const location& loc)
   {
     position last = loc.end - 1;
     ostr << loc.begin;
@@ -265,11 +268,8 @@ m4_define([b4_location_define],
 ]])
 
 
-# We do want M4 expansion after # for CPP macros.
-m4_changecom()
 b4_defines_if([
-m4_divert_push(0)dnl
-@output(b4_dir_prefix[]position.hh@)@
+b4_output_begin([b4_dir_prefix[]position.hh])
 b4_copyright([Positions for Bison parsers in C++])[
 
 /**
@@ -280,7 +280,7 @@ b4_copyright([Positions for Bison parsers in C++])[
 ]b4_cpp_guard_open([b4_dir_prefix[]position.hh])[
 
 # include <algorithm> // std::max
-# include <iosfwd>
+# include <iostream>
 # include <string>
 
 ]b4_null_define[
@@ -289,7 +289,10 @@ b4_copyright([Positions for Bison parsers in C++])[
 ]b4_position_define[
 ]b4_namespace_close[
 ]b4_cpp_guard_close([b4_dir_prefix[]position.hh])
-@output(b4_dir_prefix[]location.hh@)@
+b4_output_end()
+
+
+b4_output_begin([b4_dir_prefix[]location.hh])
 b4_copyright([Locations for Bison parsers in C++])[
 
 /**
@@ -299,15 +302,14 @@ b4_copyright([Locations for Bison parsers in C++])[
 
 ]b4_cpp_guard_open([b4_dir_prefix[]location.hh])[
 
-# include <iostream>
-# include <string>
 # include "position.hh"
 
 ]b4_namespace_open[
 ]b4_location_define[
 ]b4_namespace_close[
 ]b4_cpp_guard_close([b4_dir_prefix[]location.hh])
-m4_divert_pop(0)
-])# b4_defines_if
-m4_popdef([b4_copyright_years])dnl
-m4_changecom([#])
+b4_output_end()
+])
+
+
+m4_popdef([b4_copyright_years])