00001 //------------------------------------------------------------------------ 00002 // 00003 // Joe Kniss 00004 // 3-20-03 00005 // ________ ____ ___ 00006 // | \ / | / / 00007 // +---+ \/ |/ / 00008 // +--+| |\ /| < 00009 // | || | \ / | |\ \ 00010 // | | \/ | | \ \ 00011 // \_____| |__| \__\ 00012 // Copyright 2003 00013 // Joe Michael Kniss 00014 // <<< jmk@cs.utah.edu >>> 00015 // "All Your Base are Belong to Us" 00016 //------------------------------------------------------------------------- 00017 00018 /// Grinder.h 00019 00020 /// everything you need to run the grinder 00021 00022 #ifndef __GRINDER_DOT_H 00023 #define __GRINDER_DOT_H 00024 00025 #include "Crank.h" 00026 #include "Tape.h" 00027 #include "GrinderKeys.h" 00028 #include "GrinderCppOps.h" 00029 00030 /// Singleton, the brain of the system, handles IR and Symbol table 00031 class Grinder { 00032 public: 00033 static Grinder &instance() { return _instance; } 00034 00035 protected: 00036 Grinder() {} 00037 Grinder(const Grinder &g); 00038 static Grinder _instance; 00039 }; 00040 00041 #endif