ColorParser.h 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. #pragma once
  2. #include "../../Leser/KSGSLeser.h"
  3. #include "../../Include/KSGScript.h"
  4. using namespace Framework;
  5. namespace KSGScript
  6. {
  7. class ColorParser : private 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. int ref;
  34. Text *txt;
  35. Text *wd;
  36. Position pos;
  37. static const char *keyword[];
  38. static const int keywordAnz;
  39. static const char *type[];
  40. static const int typeAnz;
  41. public:
  42. // Konstructor
  43. // zTxt: Der Text, der geparsed werden soll
  44. ColorParser( Text *zTxt );
  45. // Destructor
  46. ~ColorParser();
  47. // behandelt einen Fehler
  48. void handleError( int begin, int ende ) override;
  49. virtual void handleKommentar( int beginn, int ende );
  50. virtual void handleString( int beginn, int ende );
  51. // Setzt den Parsevorgang zum Beginn zurück
  52. void reset();
  53. // Lädt das Script neu
  54. void reload();
  55. KSGSLeseKlasse *leseKlasse() override;
  56. KSGSLeseFunktion *leseFunktion() override;
  57. // Gibt den Farbtyp des nächsten Zeichens zurück
  58. KSGScriptEditor::ColorType getNextColor( int pos, int &underlineC );
  59. // Reference Counting
  60. ColorParser *getThis();
  61. ColorParser *release();
  62. };
  63. }