00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 #ifndef _moot_CLASSFREQS_COMPILER_H
00030 #define _moot_CLASSFREQS_COMPILER_H
00031
00032 #include <stdio.h>
00033 #include <string.h>
00034
00035
00036
00037 #include "mootClassfreqsLexer.h"
00038 #include "mootClassfreqsParser.h"
00039
00040 moot_BEGIN_NAMESPACE
00041
00049 class mootClassfreqsCompiler : public mootClassfreqsParser {
00050 public:
00051
00053 mootClassfreqsLexer theLexer;
00054
00059 char *objname;
00060
00065 char *srcname;
00066
00067 public:
00068
00070 mootClassfreqsCompiler() : objname(NULL), srcname(NULL) {};
00072 virtual ~mootClassfreqsCompiler() {};
00073
00074
00075
00077 inline mootClassfreqs *parse_from_file(FILE *file, const char *filename=NULL) {
00078 select_streams(file,stdout);
00079 return parse_classfreqs();
00080 };
00081
00083 inline mootClassfreqs *parse_from_string(const char *string, const char *srcname=NULL) {
00084 select_string(string,srcname);
00085 return parse_classfreqs();
00086 };
00087
00088
00090 void select_streams(FILE *in, FILE *out, const char *my_srcname=NULL) {
00091 theLexer.select_streams(in,out);
00092 srcname = (char *)my_srcname;
00093 };
00094
00099 void select_string(const char *in, const char *my_srcname=NULL) {
00100 theLexer.select_string(in);
00101 srcname = (char *)my_srcname;
00102 };
00103
00104
00105 virtual int yylex();
00106
00111 mootClassfreqs *parse_classfreqs();
00112
00113
00115 virtual void yyerror(const char *msg);
00116
00118 virtual void yywarn(const char *msg);
00119 };
00120
00121 moot_END_NAMESPACE
00122
00123 #endif