Reported by Mark Boyall.
http://lists.gnu.org/archive/html/help-bison/2011-08/msg00002.html
* data/location.cc (operator<<): Be templated on the type of
output stream.
* tests/headers.at (Several parsers): Adjust.
Magnus Fromreide magfr@lysator.liu.se
Marc Autret autret_m@epita.fr
Marc Mendiola mmendiol@usc.edu
Magnus Fromreide magfr@lysator.liu.se
Marc Autret autret_m@epita.fr
Marc Mendiola mmendiol@usc.edu
+Mark Boyall wolfeinstein@gmail.com
Martin Jacobs martin.jacobs@arcor.de
Martin Mokrejs mmokrejs@natur.cuni.cz
Martin Nylin martin.nylin@linuxmail.org
Martin Jacobs martin.jacobs@arcor.de
Martin Mokrejs mmokrejs@natur.cuni.cz
Martin Nylin martin.nylin@linuxmail.org
** \param ostr the destination output stream
** \param pos a reference to the position to redirect
*/
** \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 << ':';
{
if (pos.filename)
ostr << *pos.filename << ':';
**
** Avoid duplicate information.
*/
**
** 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;
{
position last = loc.end - 1;
ostr << loc.begin;
# C++ output relies on namespaces and still uses yy a lot.
#
# Check there is no 'YY' left.
# C++ output relies on namespaces and still uses yy a lot.
#
# Check there is no 'YY' left.
-# Ignore comments, YYPARSE_PARAM (obsolete), YYPUSH_MORE(_DEFINED)?
-# (constant definition), YY_\w+_INCLUDED (header guards).
+# Ignore comments, YYChar (template parameter), YYPARSE_PARAM
+# (obsolete), YYPUSH_MORE(_DEFINED)? (constant definition),
+# YY_\w+_INCLUDED (header guards).
#
# YYDEBUG (not renamed) can be read, but not changed.
AT_CHECK([[$PERL -n -0777 -e '
s{/\*.*?\*/}{}gs;
s{//.*}{}g;
#
# YYDEBUG (not renamed) can be read, but not changed.
AT_CHECK([[$PERL -n -0777 -e '
s{/\*.*?\*/}{}gs;
s{//.*}{}g;
+ s{\b(YYChar
+ |YYPARSE_PARAM
|YYPUSH_MORE(_DEFINED)?
|YY_\w+_INCLUDED
|YY_NULL
|YYPUSH_MORE(_DEFINED)?
|YY_\w+_INCLUDED
|YY_NULL
)\b}{}gx;
while (/^(.*YY.*)$/gm)
{
)\b}{}gx;
while (/^(.*YY.*)$/gm)
{
+ print "$ARGV: invalid exported YY: $1\n";
}
if ($ARGV =~ /\.h$/)
{
while (/^(.*yy.*)$/gm)
{
}
if ($ARGV =~ /\.h$/)
{
while (/^(.*yy.*)$/gm)
{
+ print "$ARGV: invalid exported yy: $1\n";