ColorParser.h 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. #pragma once
  2. #include "../../Leser/KSGSLeser.h"
  3. #include "../../Include/KSGScript.h"
  4. using namespace Framework;
  5. namespace KSGScript
  6. {
  7. class ColorParser : public KSGSLeser
  8. {
  9. private:
  10. struct Position
  11. {
  12. bool inKeyword;
  13. bool inTypename;
  14. bool inInstanzVar;
  15. bool inParameter;
  16. };
  17. struct Abschnitt
  18. {
  19. int anfang;
  20. int ende;
  21. KSGSLeseKlasse *zKlasse;
  22. KSGSLeseFunktion *zFunktion;
  23. };
  24. struct TextAbschnitt
  25. {
  26. int anfang;
  27. int ende;
  28. };
  29. Array< Abschnitt > abschnitt;
  30. Array< TextAbschnitt > error;
  31. Array< TextAbschnitt > kommentar;
  32. Array< TextAbschnitt > string;
  33. Text *txt;
  34. Text *wd;
  35. Position pos;
  36. static const char *keyword[];
  37. static const int keywordAnz;
  38. static const char *type[];
  39. static const int typeAnz;
  40. public:
  41. // Konstructor
  42. // zTxt: Der Text, der geparsed werden soll
  43. ColorParser( Text *zTxt );
  44. // Destructor
  45. ~ColorParser();
  46. // behandelt einen Fehler
  47. void handleError( int begin, int ende ) override;
  48. virtual void handleKommentar( int beginn, int ende );
  49. virtual void handleString( int beginn, int ende );
  50. // Setzt den Parsevorgang zum Beginn zurück
  51. void reset();
  52. // Lädt das Script neu
  53. void reload();
  54. KSGSLeseKlasse *leseKlasse() override;
  55. KSGSLeseFunktion *leseFunktion() override;
  56. // Gibt den Farbtyp des nächsten Zeichens zurück
  57. KSGScriptEditor::ColorType getNextColor( int pos, int &underlineC );
  58. };
  59. }