12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- #pragma once
- #include "../../Leser/KSGSLeser.h"
- #include "../../Include/KSGScript.h"
- using namespace Framework;
- namespace KSGScript
- {
- class ColorParser : private KSGSLeser
- {
- private:
- struct Position
- {
- bool inKeyword;
- bool inTypename;
- bool inInstanzVar;
- bool inParameter;
- };
- struct Abschnitt
- {
- int anfang;
- int ende;
- KSGSLeseKlasse *zKlasse;
- KSGSLeseFunktion *zFunktion;
- };
- struct TextAbschnitt
- {
- int anfang;
- int ende;
- };
- Array< Abschnitt > abschnitt;
- Array< TextAbschnitt > error;
- Array< TextAbschnitt > kommentar;
- Array< TextAbschnitt > string;
- 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;
- virtual void handleKommentar( int beginn, int ende );
- virtual void handleString( int beginn, int ende );
- // 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 pos, int &underlineC );
- // Reference Counting
- ColorParser *getThis();
- ColorParser *release();
- };
- }
|