/*
- Copyright (C) 2008-2012 Free Software Foundation, Inc.
+ Copyright (C) 2008-2013 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
*/
%debug
-%skeleton "lalr1.cc"
+%language "c++"
%defines
%define api.token.constructor
+%define api.value.type variant
%define parse.assert
-%define variant
%locations
%code requires // *.hh
namespace std
{
std::ostream&
- operator<< (std::ostream& o, const strings_type& s)
+ operator<< (std::ostream& o, const strings_type& ss)
{
- std::copy (s.begin (), s.end (),
- std::ostream_iterator<strings_type::value_type> (o, "\n"));
- return o;
+ o << "(" << &ss << ") {";
+ const char *sep = "";
+ for (strings_type::const_iterator i = ss.begin(), end = ss.end();
+ i != end; ++i)
+ {
+ o << sep << *i;
+ sep = ", ";
+ }
+ return o << "}";
}
}
%token <::std::string> TEXT;
%token <int> NUMBER;
-%printer { debug_stream () << $$; }
- <int> <::std::string> <::std::list<std::string>>;
+%printer { yyoutput << $$; } <*>;
%token END_OF_FILE 0;
%type <::std::string> item;