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 32 33 34
|
#include "writer.ih"
// Writes an SR element:
//
// { { symbol }, {nextstate} }, // comment
void Writer::transition(Next const &next, Table &table)
{
if (Symbol const *symbol = next.symbol())
{
ostringstream out;
Terminal::inserter(&Terminal::nameOrValue);
NonTerminal::inserter(&NonTerminal::value);
out << symbol;
table << out.str() << next.next();
out.str("");
Terminal::inserter(&Terminal::plainName);
NonTerminal::inserter(&NonTerminal::plainName);
out << "// " << symbol;
table << out.str();
}
}
|