file: direct.h
#ifndef direct_h
#define direct_h
#include <iostream.h>
#include <set.h>
#include <String.h>
#include <map.h>
#include "pre.h"
class directive; //OVERLOAD CALL: directive: direct.h(?), direct.h(?), direct.h(?), direct.h(?), direct.h(?), direct.h(?)
typedef pair<const String, directive*> directive_pair; //OVERLOAD CALL: directive: direct.h(?), direct.h(?), direct.h(?), direct.h(?), direct.h(?), direct.h(?)
class directive { //OVERLOAD CALL: directive: direct.h(?), direct.h(?), direct.h(?), direct.h(?), direct.h(?), direct.h(?)
protected:
String _name;
public:
virtual void operator()(preprocessor *p) =NULL; //OVERLOAD CALL: operator: error.cc(arg_out), error.cc(error), error.cc(error), error.cc(error), filter.cc(foo), filtermain.cc(comp_String), direct.cpp(include), direct.cpp(define), direct.cpp(ifdef), direct.cpp(ifndef), direct.cpp(_else), direct.cpp(endif)
inline const String name() const {return _name;}
};//end class directive //OVERLOAD CALL: directive: direct.h(?), direct.h(?), direct.h(?), direct.h(?), direct.h(?), direct.h(?)
////////////////////////////////
class include : public directive {
public:
inline include() { _name = "include";}
void operator()(preprocessor *p); //OVERLOAD CALL: operator: error.cc(arg_out), error.cc(error), error.cc(error), error.cc(error), filter.cc(foo), filtermain.cc(comp_String), direct.cpp(include), direct.cpp(define), direct.cpp(ifdef), direct.cpp(ifndef), direct.cpp(_else), direct.cpp(endif)
};//end class include
////////////////////////////////
class define : public directive {
public:
inline define() { _name = "define";}
void operator()(preprocessor *p); //OVERLOAD CALL: operator: error.cc(arg_out), error.cc(error), error.cc(error), error.cc(error), filter.cc(foo), filtermain.cc(comp_String), direct.cpp(include), direct.cpp(define), direct.cpp(ifdef), direct.cpp(ifndef), direct.cpp(_else), direct.cpp(endif)
};//end class define
////////////////////////////////
class ifdef : public directive {
public:
inline ifdef() { _name = "ifdef";}
void operator()(preprocessor *p); //OVERLOAD CALL: operator: error.cc(arg_out), error.cc(error), error.cc(error), error.cc(error), filter.cc(foo), filtermain.cc(comp_String), direct.cpp(include), direct.cpp(define), direct.cpp(ifdef), direct.cpp(ifndef), direct.cpp(_else), direct.cpp(endif)
};//end class ifdef
////////////////////////////////
class ifndef : public directive {
public:
inline ifndef() { _name = "ifndef";}
void operator()(preprocessor *p); //OVERLOAD CALL: operator: error.cc(arg_out), error.cc(error), error.cc(error), error.cc(error), filter.cc(foo), filtermain.cc(comp_String), direct.cpp(include), direct.cpp(define), direct.cpp(ifdef), direct.cpp(ifndef), direct.cpp(_else), direct.cpp(endif)
};//end class ifndef
////////////////////////////////
class endif : public directive {
public:
inline endif() { _name = "endif";}
void operator()(preprocessor *p); //OVERLOAD CALL: operator: error.cc(arg_out), error.cc(error), error.cc(error), error.cc(error), filter.cc(foo), filtermain.cc(comp_String), direct.cpp(include), direct.cpp(define), direct.cpp(ifdef), direct.cpp(ifndef), direct.cpp(_else), direct.cpp(endif)
};//end class endif
////////////////////////////////
class _else : public directive {
public:
inline _else() { _name ="else";}
void operator()(preprocessor *p); //OVERLOAD CALL: operator: error.cc(arg_out), error.cc(error), error.cc(error), error.cc(error), filter.cc(foo), filtermain.cc(comp_String), direct.cpp(include), direct.cpp(define), direct.cpp(ifdef), direct.cpp(ifndef), direct.cpp(_else), direct.cpp(endif)
};//end class _else
////////////////////////////////
//this is defined in pre.h
/*struct strless {
inline bool operator() (String a, String b) const //OVERLOAD CALL: operator: error.cc(arg_out), error.cc(error), error.cc(error), error.cc(error), filter.cc(foo), filtermain.cc(comp_String), direct.cpp(include), direct.cpp(define), direct.cpp(ifdef), direct.cpp(ifndef), direct.cpp(_else), direct.cpp(endif)
{ return (a < b);}
};
*/
#endif
////////////////////////////////
////////////////////////////////
////////////////////////////////
/*
main()
{
map<String, directive*, strless> direct; //OVERLOAD CALL: directive: direct.h(?), direct.h(?), direct.h(?), direct.h(?), direct.h(?), direct.h(?)
include inc;
define def;
ifdef ifd;
ifndef ifn;
_else els;
endif end;
typedef pair<const String, directive*> directive_pair; //OVERLOAD CALL: directive: direct.h(?), direct.h(?), direct.h(?), direct.h(?), direct.h(?), direct.h(?)
const String include_name = inc.name();
const String define_name = def.name();
const String ifdef_name = ifd.name();
const String ifndef_name = ifn.name();
const String else_name = els.name();
const String endif_name = end.name();
const directive_pair INCLUDE = directive_pair(include_name,(directive*) &inc); //OVERLOAD CALL: directive: direct.h(?), direct.h(?), direct.h(?), direct.h(?), direct.h(?), direct.h(?)
const directive_pair DEFINE = directive_pair(define_name, (directive*) &def); //OVERLOAD CALL: directive: direct.h(?), direct.h(?), direct.h(?), direct.h(?), direct.h(?), direct.h(?)
const directive_pair IFDEF = directive_pair(ifdef_name, (directive*) &ifd); //OVERLOAD CALL: directive: direct.h(?), direct.h(?), direct.h(?), direct.h(?), direct.h(?), direct.h(?)
const directive_pair IFNDEF = directive_pair(ifndef_name, (directive*) &ifn); //OVERLOAD CALL: directive: direct.h(?), direct.h(?), direct.h(?), direct.h(?), direct.h(?), direct.h(?)
const directive_pair ELSE = directive_pair(else_name, (directive*) &els); //OVERLOAD CALL: directive: direct.h(?), direct.h(?), direct.h(?), direct.h(?), direct.h(?), direct.h(?)
const directive_pair ENDIF = directive_pair(endif_name, (directive*) &end); //OVERLOAD CALL: directive: direct.h(?), direct.h(?), direct.h(?), direct.h(?), direct.h(?), direct.h(?)
direct.insert(INCLUDE);
direct.insert(DEFINE);
direct.insert(IFDEF);
direct.insert(IFNDEF);
direct.insert(ELSE);
direct.insert(ENDIF);
const String st= (String) "include";
(*(*direct.find(st)).second)();
// (*direct.find(st).second)();
*/
/* direct.insert(
d.insert(&i);
d.insert(&j);
(*d.back())();
d.pop_back();
(*d.back())();
d.pop_back();
}
*/
C++ to HTML Conversion by ctoohtml