X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/a2b3f10183008612c4350e072d5611e0b6a8a462..2bd435c36c0dfdefb07cef05dec851ec75bab20b:/data/location.cc
diff --git a/data/location.cc b/data/location.cc
index 0673f4c2..4082e09d 100644
--- a/data/location.cc
+++ b/data/location.cc
@@ -15,10 +15,8 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see .
-# We do want M4 expansion after # for CPP macros.
-m4_changecom()
-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++],
[2002-2007, 2009-2012])[
@@ -87,7 +85,7 @@ b4_copyright([Positions for Bison parsers in C++],
};
/// Add and assign a position.
- inline const position&
+ inline position&
operator+= (position& res, const int width)
{
res.columns (width);
@@ -103,7 +101,7 @@ b4_copyright([Positions for Bison parsers in C++],
}
/// Add and assign a position.
- inline const position&
+ inline position&
operator-= (position& res, const int width)
{
return res += -width;
@@ -138,8 +136,9 @@ b4_copyright([Positions for Bison parsers in C++],
** \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
+ inline std::basic_ostream&
+ operator<< (std::basic_ostream& ostr, const position& pos)
{
if (pos.filename)
ostr << *pos.filename << ':';
@@ -148,7 +147,10 @@ b4_copyright([Positions for Bison parsers in C++],
]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++],
[2002-2007, 2009-2012])[
@@ -159,8 +161,6 @@ b4_copyright([Locations for Bison parsers in C++],
]b4_cpp_guard_open([b4_dir_prefix[]location.hh])[
-# include
-# include
# include "position.hh"
]b4_namespace_open[
@@ -276,7 +276,9 @@ b4_copyright([Locations for Bison parsers in C++],
**
** Avoid duplicate information.
*/
- inline std::ostream& operator<< (std::ostream& ostr, const location& loc)
+ template
+ inline std::basic_ostream&
+ operator<< (std::basic_ostream& ostr, const location& loc)
{
position last = loc.end - 1;
ostr << loc.begin;
@@ -294,5 +296,4 @@ b4_copyright([Locations for Bison parsers in C++],
]b4_namespace_close[
]b4_cpp_guard_close([b4_dir_prefix[]location.hh])
-m4_divert_pop(0)
-m4_changecom([#])
+b4_output_end()