00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00031 #ifndef _PPSCANNER_H_
00032 #define _PPSCANNER_H_
00033
00034
00035 #include "preproc/PPRullst.h"
00036 #include "preproc/PPInput.h"
00037 #include "preproc/PPAbblst.h"
00038 #include "preproc/PPFnclst.h"
00039 #include <unistd.h>
00040 #include "InputScanner.h"
00041 #include "Token.h"
00042
00043 #include <queue>
00044 #include <map>
00045 #include <string>
00046 #include <iostream>
00047
00048 using namespace std;
00049
00055
00056
00057
00058 class PreprocScanner: public InputScanner
00059 {
00060 protected:
00061
00062 PPFunctionlist fl;
00063 PPRulelist *rl;
00064 PPAbbreviationlist *al;
00065 PPInput input;
00066 FILE *outfile;
00067 queue < Token > tokenQueue;
00068 void checkRulesDefinition (char *xinput, int g);
00069 void checkAbbrevDefinition (char *xinput, int g);
00070
00071 public:
00072 PreprocScanner (const char *rulefilename, const char *abbfilename, const char *infilename);
00073 ~PreprocScanner ();
00074 bool scan ();
00075 Token getToken ();
00076
00077 };
00078
00080 #endif
00081