The DejaVU Framework -- hush 3.0
[.] Papers Tutorials Examples Manuals Interfaces Sources Packages Resources ?

source: format.c hush-3.1/grammar/ml/dlp


[.] - [up] [top] - index README make include source logic grammar scripts graphs slides talks
  include <ml/dlp/format.h>
  include <hush/string.h>
  
  include <iostream.h>
  include <stdio.h>
  
  typedef term_formatter super;
  
  

format directives


  
  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");
          }
  
  

slide: format directives


partially overriding term_formatter::_format -- <hush/ml/format.i>


  
  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);
          }
  
  

slide: partially overriding term_formatter::_format --

  

[.] Papers Tutorials Examples Manuals Interfaces Sources Packages Resources ?
Hush Online Technology
hush@cs.vu.nl
11/03/98