include <hush/hush.h> include <parser.h> include <format.h> include <hush/session.h>
class application : public session { public: application() { depends(0); // no libraries are loaded } void prelude() { // initialize _formatter = new dlp_formatter(); // formatter _formatter->format("Q/1","dlp_Q(%s)"); // just to show of _formatter->format("1/1","write(%s)"); _parser = new dlp_parser(); // parser _parser->alias(":hush:","'/home/eliens/hush'"); _parser->op("plus","+"); _parser->op("min","-"); _parser->op("min","-"); _parser->type("int"); _parser->pre("write"); _parser->pre("call"); //_parser->pre("int"); }
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; }
private: formatter* _formatter; parser* _parser; };
int main() { session* s = new application(); s->run(); delete s; //session::statistics(); return 0; };
Hush Online Technology
hush@cs.vu.nl
09/09/98 |
![]() |
![]() |