kpresenter
ATFInterpreter.h00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef ATFINTERP_H
00022 #define ATFINTERP_H
00023
00024 #include <qpointarray.h>
00025 #include <qptrlist.h>
00026 #include <qstringlist.h>
00027
00028 class ATFInterpreter {
00029
00030 public:
00031
00032
00033 struct AttribList
00034 {
00035 bool isVariable;
00036 int pwDiv;
00037 };
00038
00039
00040 struct CoordStruct
00041 {
00042 QString a;
00043 QString b;
00044 QString c;
00045 QString d;
00046 QString e;
00047 QString f;
00048 QString result;
00049 };
00050
00051
00052 struct AttribStruct
00053 {
00054 QString isVariable;
00055 QString pwDiv;
00056 };
00057
00058
00059 struct Sign
00060 {
00061 char op;
00062 int num;
00063 char var;
00064 int type;
00065 };
00066
00067
00068 struct Value
00069 {
00070 QPtrList<Sign> var1;
00071 QPtrList<Sign> var2;
00072 QPtrList<Sign> var3;
00073 QPtrList<Sign> var4;
00074 QPtrList<Sign> var5;
00075 QPtrList<Sign> var6;
00076 QPtrList<Sign> result;
00077 };
00078
00079
00080 ATFInterpreter();
00081 ~ATFInterpreter();
00082
00083
00084 void load(const QString &);
00085
00086
00087 QPointArray getPointArray(int,int);
00088 QPtrList<AttribList> getAttribList();
00089
00090 protected:
00091
00092
00093 static const int ST_WIDTH;
00094 static const int ST_HEIGHT;
00095 static const int ST_VARIABLE;
00096 static const int ST_NUMBER;
00097 static const int ST_OPERATOR;
00098
00099
00100 static const char OP_EQUAL;
00101 static const char OP_PLUS;
00102 static const char OP_MINUS;
00103 static const char OP_MULT;
00104 static const char OP_DIV;
00105 static const char COMMENT;
00106
00107
00108 static const char PNT_BG[];
00109 static const char X_BG[];
00110 static const char Y_BG[];
00111 static const char ATTR_BG[];
00112 static const char END[];
00113
00114
00115 static const char VAR_1;
00116 static const char VAR_2;
00117 static const char VAR_3;
00118 static const char VAR_4;
00119 static const char VAR_5;
00120 static const char VAR_6;
00121 static const char VAR_X;
00122 static const char VAR_Y;
00123 static const char VAR_VARIA;
00124 static const char VAR_PW;
00125 static const char VAR_W;
00126 static const char VAR_H;
00127
00128
00129 static const int LEVEL_NULL;
00130 static const int LEVEL_POINT;
00131 static const int LEVEL_X;
00132 static const int LEVEL_Y;
00133 static const int LEVEL_ATTR;
00134
00135
00136 static const char NUM_0;
00137 static const char NUM_1;
00138 static const char NUM_2;
00139 static const char NUM_3;
00140 static const char NUM_4;
00141 static const char NUM_5;
00142 static const char NUM_6;
00143 static const char NUM_7;
00144 static const char NUM_8;
00145 static const char NUM_9;
00146
00147
00148 struct Coord
00149 {
00150 Value pntX;
00151 Value pntY;
00152 bool isVariable;
00153 int pwDiv;
00154 };
00155
00156
00157 void interpret();
00158
00159
00160 QPtrList<Sign> getVar(const QString&);
00161
00162
00163
00164
00165 QPtrList<Coord> coordList;
00166 QPtrList<AttribList> attrLs;
00167 Coord *coordPtr;
00168 Sign *signPtr;
00169 Value *valuePtr;
00170
00171
00172 QStringList lines;
00173 };
00174
00175 #endif //ATFINTERP_H
|