include <ml/dlp/parser.h>
dlp_parser::dlp_parser(istream* in, ostream* out) { _scanner = new dlp_lex(in,out); _parser = new dlp_yacc(_scanner); init(); } dlp_parser::dlp_parser(scanner* sc = 0, parser* p = 0) { _scanner = (dlp_lex*) (sc?sc:new dlp_lex()); //(in); _parser = p?p:new dlp_yacc((scanner*)_scanner); init(); } dlp_parser::~dlp_parser() { delete _scanner; delete _parser; }
term* dlp_parser::operator()() { return (*_parser)(); }
void dlp_parser::init() { op("<-"); right("is"); right(":="); pre("new"); specifier("class"); specifier("object"); declarative("var","var"); declarative("proc","proc"); command(":-"); end("end"); }
Hush Online Technology
hush@cs.vu.nl
11/03/98 |
![]() |
![]() |