/*************************************************************************** ort.h - description ------------------- begin : Sat Nov 26 2005 copyright : (C) 2005 by Mark Weyer email : cuyo-devel@nongnu.org ***************************************************************************/ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * ***************************************************************************/ #ifndef ORT_H #define ORT_H #include "definition.h" class Blop; class Code; #define absort_feld 1 #define absort_fall 2 #define absort_semiglobal 3 #define absort_global 4 struct ort_absolut { int art; bool rechts; /** bei absort_global irrelevant */ int x; /** nur bei absort_feld und absort_fall relevant. bei absort_fall zaehlt es mod 2 */ int y; /** nur bei absort_feld relevant */ ort_absolut(int aart, bool arechts, int ax, int ay) : art(aart), rechts(arechts), x(ax), y(ay) {}; bool korrekt(); Blop & finde(); }; #define ortart_hier 1 #define ortart_relativ 2 #define ortart_absolut 3 #define haelfte_hier 1 #define haelfte_drueben 2 #define haelfte_links 3 #define haelfte_rechts 4 class Ort: public Definition { /** Siehe Konstanten ort_... */ int mArt; int mAbsArt; /** nur relevant bei ortart_absolut */ int mHaelfte; /** irrelevant bei ortart_hier oder absort_global */ Code * mXKoord; Code * mYKoord; public: /** ortart_hier */ Ort(); ort_absolut berechne(ort_absolut vonhieraus, Blop & fuer_code); ~Ort(); }; #endif