summaryrefslogtreecommitdiffstats
path: root/kpresenter/autoformEdit/ATFInterpreter.h
diff options
context:
space:
mode:
Diffstat (limited to 'kpresenter/autoformEdit/ATFInterpreter.h')
-rw-r--r--kpresenter/autoformEdit/ATFInterpreter.h175
1 files changed, 175 insertions, 0 deletions
diff --git a/kpresenter/autoformEdit/ATFInterpreter.h b/kpresenter/autoformEdit/ATFInterpreter.h
new file mode 100644
index 00000000..8e0feebb
--- /dev/null
+++ b/kpresenter/autoformEdit/ATFInterpreter.h
@@ -0,0 +1,175 @@
+// -*- Mode: c++-mode; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 4; -*-
+/* This file is part of the KDE project
+ Copyright (C) 1998, 1999 Reginald Stadlbauer <[email protected]>
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public License
+ along with this library; see the file COPYING.LIB. If not, write to
+ the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+*/
+
+#ifndef ATFINTERP_H
+#define ATFINTERP_H
+
+#include <qpointarray.h>
+#include <qptrlist.h>
+#include <qstringlist.h>
+
+class ATFInterpreter {
+
+public:
+
+ // structure of an attribute list
+ struct AttribList
+ {
+ bool isVariable;
+ int pwDiv;
+ };
+
+ // coordinate structure
+ struct CoordStruct
+ {
+ QString a;
+ QString b;
+ QString c;
+ QString d;
+ QString e;
+ QString f;
+ QString result;
+ };
+
+ // attribute structure
+ struct AttribStruct
+ {
+ QString isVariable;
+ QString pwDiv;
+ };
+
+ // structure of signs
+ struct Sign
+ {
+ char op;
+ int num;
+ char var;
+ int type;
+ };
+
+ // structure of values
+ struct Value
+ {
+ QPtrList<Sign> var1;
+ QPtrList<Sign> var2;
+ QPtrList<Sign> var3;
+ QPtrList<Sign> var4;
+ QPtrList<Sign> var5;
+ QPtrList<Sign> var6;
+ QPtrList<Sign> result;
+ };
+
+ // constructure - destructure
+ ATFInterpreter();
+ ~ATFInterpreter();
+
+ // load autoform
+ void load(const QString &);
+
+ // get pointarray/attribute list/points
+ QPointArray getPointArray(int,int);
+ QPtrList<AttribList> getAttribList();
+
+protected:
+
+ // fields
+ static const int ST_WIDTH;
+ static const int ST_HEIGHT;
+ static const int ST_VARIABLE;
+ static const int ST_NUMBER;
+ static const int ST_OPERATOR;
+
+ // operators
+ static const char OP_EQUAL;
+ static const char OP_PLUS;
+ static const char OP_MINUS;
+ static const char OP_MULT;
+ static const char OP_DIV;
+ static const char COMMENT;
+
+ // block (structure) beginnings - ends
+ static const char PNT_BG[];
+ static const char X_BG[];
+ static const char Y_BG[];
+ static const char ATTR_BG[];
+ static const char END[];
+
+ // allowed variables
+ static const char VAR_1;
+ static const char VAR_2;
+ static const char VAR_3;
+ static const char VAR_4;
+ static const char VAR_5;
+ static const char VAR_6;
+ static const char VAR_X;
+ static const char VAR_Y;
+ static const char VAR_VARIA;
+ static const char VAR_PW;
+ static const char VAR_W;
+ static const char VAR_H;
+
+ // level (depth) of the syntax
+ static const int LEVEL_NULL;
+ static const int LEVEL_POINT;
+ static const int LEVEL_X;
+ static const int LEVEL_Y;
+ static const int LEVEL_ATTR;
+
+ // numbers
+ static const char NUM_0;
+ static const char NUM_1;
+ static const char NUM_2;
+ static const char NUM_3;
+ static const char NUM_4;
+ static const char NUM_5;
+ static const char NUM_6;
+ static const char NUM_7;
+ static const char NUM_8;
+ static const char NUM_9;
+
+ // structure of coordinates
+ struct Coord
+ {
+ Value pntX;
+ Value pntY;
+ bool isVariable;
+ int pwDiv;
+ };
+
+ // interpret the code
+ void interpret();
+
+ // get varaible of a line
+ QPtrList<Sign> getVar(const QString&);
+
+ // ********** variables **********
+
+ // list of coordinates and pointers to coordinate/sign/value
+ QPtrList<Coord> coordList;
+ QPtrList<AttribList> attrLs;
+ Coord *coordPtr;
+ Sign *signPtr;
+ Value *valuePtr;
+
+ // list of lines
+ QStringList lines;
+};
+
+#endif //ATFINTERP_H