1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- #pragma once
- #include "../../Leser/KSGSLeser.h"
- #include "../../Include/KSGScript.h"
- using namespace Framework;
- namespace KSGScript
- {
- class ColorParser : private KSGSLeser
- {
- private:
- struct Position
- {
- int pos;
- bool inKeyword;
- bool inTypename;
- bool inInstanzVar;
- bool inParameter;
- bool inString;
- bool inChar;
- bool lastLehr;
- bool lastTrenner;
- };
- struct Abschnitt
- {
- int anfang;
- int ende;
- KSGSLeseKlasse *zKlasse;
- KSGSLeseFunktion *zFunktion;
- };
- struct Error
- {
- int anfang;
- int ende;
- };
- Array< Abschnitt > abschnitt;
- Array< Error > error;
- int ref;
- Text *txt;
- Text *wd;
- Position pos;
- static const char *keyword[];
- static const int keywordAnz;
- static const char *type[];
- static const int typeAnz;
- public:
- // Konstructor
- // zTxt: Der Text, der geparsed werden soll
- ColorParser( Text *zTxt );
- // Destructor
- ~ColorParser();
- // behandelt einen Fehler
- void handleError( int begin, int ende ) override;
- // Setzt den Parsevorgang zum Beginn zurück
- void reset();
- // Lädt das Script neu
- void reload();
- KSGSLeseKlasse *leseKlasse() override;
- KSGSLeseFunktion *leseFunktion() override;
- // Gibt den Farbtyp des nächsten Zeichens zurück
- KSGScriptEditor::ColorType getNextColor( int &underlineC );
- // Reference Counting
- ColorParser *getThis();
- ColorParser *release();
- };
- }
|