1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
#include "state.ih"
ostream &State::insertExt(ostream &out) const
{
out << "State " << d_idx << ":\n";
// set the ways the insertions must be done
Terminal::inserter(&Terminal::plainName);
NonTerminal::inserter(&NonTerminal::nameAndFirstset);
Item::inserter(&Item::pNrDotItem);
StateItem::inserter(&StateItem::itemContext);
Next::inserter(&Next::transitionKernel);
// display the items
for (size_t idx = 0; idx != d_itemVector.size(); ++idx)
out << idx << ": " << d_itemVector[idx] << '\n';
// Next elements
for (size_t idx = 0; idx != d_nextVector.size(); ++idx)
out << " " << idx << d_nextVector[idx] << '\n';
if (d_reducible.size())
{
out << " Reduce item(s): ";
copy(d_reducible.begin(), d_reducible.end(),
ostream_iterator<size_t>(out, " "));
out << '\n';
}
return out << d_srConflict << d_rrConflict << '\n';
}
|