include <ml/dlp/format.h> include <hush/string.h> include <iostream.h> include <stdio.h> typedef term_formatter super;
dlp_formatter::dlp_formatter() { format("#item:/1","%s\n"); format("#object:/1","object %s.\npublic."); format("#declare:/2","%s %s."); format("#list:/1","[ %s ]"); format("|/2"," %s | %s "); format("#set:/1"," dlp_set(%s) "); format("#s,:/2", " %s; %s"); format("#s|:/2", " %s : [ %s ]"); format("()/0",""); format("<</2","dlp_write(%s , %s)"); format(":-/2","%s :-\n%s."); format(":-/1",":- %s."); format("<-/2","%s <- %s"); format(":=/2","%s := %s"); format(">/2","%s > %s"); format("</2","%s > %s"); format("!/2","%s <- %s"); format("^/2","%s <- %s"); format("+/1","+%s"); format("-/1","-%s"); format("?/1","?%s"); }
char* dlp_formatter::_format( const term* t ) { if ( t->_opin(".") && (t->nargs()==2) ) { string* r = 0; char* s1 = _format( t->a1() ); char* s2 = _format( t->a2() ); if (!strcmp(s2,"[]")) return s1; sprintf(_buf(),"%s, %s",s1, (char*) s2); r = new string(_buf()); t->_register(r); return (char*) *r; // not r but *r ! } else return super::_format(t); }
Hush Online Technology
hush@cs.vu.nl
11/03/98 |
![]() |
![]() |