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

source: dlp.c hush-3.0b4/api/grammar/examples/dlp


[.] - [up] [top] - index README C++ make include source logic grammar scripts
  include <hush/hush.h>
  
  include <parser.h>
  include <format.h>
  include <hush/session.h>
  
  

application


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

slide: application


the actual process


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

slide: the actual process


...


  private:
  formatter* _formatter;
  parser* _parser;
  };

slide: ...

  
  

main


  
  int main() {
  session* s = new application();
  s->run();
  delete s;
  //session::statistics();
  return 0;
  };

slide: main

  
  

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