int main() { term* result = 0; int line = 0; while ((result = (*_parser)()) ) { // operator() gets terms cout << "%%line: " << line << "\n" << endl; cout << _formatter->_format(result) << endl; // gives char* //cout << result->str(_formatter) << endl; // is equivalent line = _parser->lineno(); } return OK; }