OpenMW
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
scripthighlighter.hpp
Go to the documentation of this file.
1 #ifndef CSV_WORLD_SCRIPTHIGHLIGHTER_H
2 #define CSV_WORLD_SCRIPTHIGHLIGHTER_H
3 
4 #include <map>
5 #include <string>
6 
7 #include <QSyntaxHighlighter>
8 
12 
13 #include "../../model/world/scriptcontext.hpp"
14 
15 namespace CSMPrefs
16 {
17  class Setting;
18 }
19 
20 namespace CSVWorld
21 {
23  {
24  public:
25 
26  enum Type
27  {
28  Type_Int = 0,
30  Type_Name = 2,
35  Type_Id = 7
36  };
37 
38  enum Mode
39  {
43  };
44 
45  private:
46 
50  std::map<Type, QTextCharFormat> mScheme;
53  std::string mMarkedWord;
54 
55  private:
56 
57  virtual bool parseInt (int value, const Compiler::TokenLoc& loc,
58  Compiler::Scanner& scanner);
61 
62  virtual bool parseFloat (float value, const Compiler::TokenLoc& loc,
63  Compiler::Scanner& scanner);
66 
67  virtual bool parseName (const std::string& name,
68  const Compiler::TokenLoc& loc, Compiler::Scanner& scanner);
71 
72  virtual bool parseKeyword (int keyword, const Compiler::TokenLoc& loc,
73  Compiler::Scanner& scanner);
76 
77  virtual bool parseSpecial (int code, const Compiler::TokenLoc& loc,
78  Compiler::Scanner& scanner);
81 
82  virtual bool parseComment (const std::string& comment, const Compiler::TokenLoc& loc,
83  Compiler::Scanner& scanner);
86 
87  virtual void parseEOF (Compiler::Scanner& scanner);
89 
90  void highlight (const Compiler::TokenLoc& loc, Type type);
91 
92  public:
93 
94  ScriptHighlighter (const CSMWorld::Data& data, Mode mode, QTextDocument *parent);
95 
96  virtual void highlightBlock (const QString& text);
97 
98  void setMarkOccurrences(bool);
99 
100  void setMarkedWord(const std::string& name);
101 
102  void invalidateIds();
103 
104  bool settingChanged (const CSMPrefs::Setting *setting);
105  };
106 }
107 
108 #endif
Mode
Definition: scripthighlighter.hpp:38
void highlight(const Compiler::TokenLoc &loc, Type type)
Definition: scripthighlighter.cpp:66
Definition: scripthighlighter.hpp:42
Definition: scripthighlighter.hpp:34
bool settingChanged(const CSMPrefs::Setting *setting)
Definition: scripthighlighter.cpp:127
Definition: scriptcontext.hpp:15
void invalidateIds()
Definition: scripthighlighter.cpp:122
virtual bool parseName(const std::string &name, const Compiler::TokenLoc &loc, Compiler::Scanner &scanner)
Definition: scripthighlighter.cpp:25
Type
Definition: scripthighlighter.hpp:26
Definition: scripthighlighter.hpp:29
void setMarkedWord(const std::string &name)
Definition: scripthighlighter.cpp:117
virtual void highlightBlock(const QString &text)
Definition: scripthighlighter.cpp:99
virtual bool parseComment(const std::string &comment, const Compiler::TokenLoc &loc, Compiler::Scanner &scanner)
Definition: scripthighlighter.cpp:56
Definition: scripthighlighter.hpp:33
CSMWorld::ScriptContext mContext
Definition: scripthighlighter.hpp:49
Location of a token in a source file.
Definition: tokenloc.hpp:10
bool mMarkOccurrences
Definition: scripthighlighter.hpp:52
std::map< Type, QTextCharFormat > mScheme
Definition: scripthighlighter.hpp:50
Compiler::NullErrorHandler mErrorHandler
Definition: scripthighlighter.hpp:47
virtual void parseEOF(Compiler::Scanner &scanner)
Handle EOF token.
Definition: scripthighlighter.cpp:63
virtual bool parseFloat(float value, const Compiler::TokenLoc &loc, Compiler::Scanner &scanner)
Definition: scripthighlighter.cpp:18
Definition: scripthighlighter.hpp:32
Error handler implementation: Ignore all error messages.
Definition: nullerrorhandler.hpp:10
Definition: scripthighlighter.hpp:31
void setMarkOccurrences(bool)
Definition: scripthighlighter.cpp:112
Collection of compiler extensions.
Definition: extensions.hpp:39
Definition: scripthighlighter.hpp:40
virtual bool parseInt(int value, const Compiler::TokenLoc &loc, Compiler::Scanner &scanner)
Definition: scripthighlighter.cpp:11
virtual bool parseSpecial(int code, const Compiler::TokenLoc &loc, Compiler::Scanner &scanner)
Definition: scripthighlighter.cpp:49
Definition: data.hpp:80
Definition: scripthighlighter.hpp:28
Definition: setting.hpp:22
Definition: scripthighlighter.hpp:30
ScriptHighlighter(const CSMWorld::Data &data, Mode mode, QTextDocument *parent)
Definition: scripthighlighter.cpp:82
Definition: scripthighlighter.hpp:41
int code
Definition: crashcatcher.cpp:78
Compiler::Extensions mExtensions
Definition: scripthighlighter.hpp:48
Mode mMode
Definition: scripthighlighter.hpp:51
Definition: scripthighlighter.hpp:22
std::string mMarkedWord
Definition: scripthighlighter.hpp:53
Definition: scripthighlighter.hpp:35
Parser base class.
Definition: parser.hpp:17
virtual bool parseKeyword(int keyword, const Compiler::TokenLoc &loc, Compiler::Scanner &scanner)
Definition: scripthighlighter.cpp:32
Scanner.
Definition: scanner.hpp:21
const char * name
Definition: crashcatcher.cpp:67