Dynalib Utils
TokenizerContext.h
Go to the documentation of this file.
1 //
2 // Created by Ken Kopelson on 8/11/17.
3 //
4 
5 #ifndef TOKENIZERCONTEXT_H
6 #define TOKENIZERCONTEXT_H
7 
8 #include "../IntWrapper.h"
9 #include "../DynaHashMap.h"
10 #include "../DynaHashSet.h"
11 #include "../String.h"
12 #include "CharacterClass.h"
13 
15  bool _caseSensitive = false;
16  bool _getStrings = true;
17  bool _getCharLits = false;
18  bool _getUnknown = false;
19  bool _getCRLF = false;
20  bool _getSpaces = false;
21  bool _innerApostrophe = false;
22  bool _allowNumCommas = false;
23  bool _allowSingleQuotes = false;
24 
26  DynaHashMap<Char, Integer>* _singleOps;
27  DynaHashSet<Char>* _multiOpSet;
29  CharacterClass* _charClass;
30 
31  bool _addMultiOpChar(Char* char1);
32 
33 public:
36 
37  void setCaseSensitive(bool caseSensitive);
38  bool isCaseSensitive();
39  void setGetCharLits(bool getCharLits);
40  bool isGetCharLits();
41  void setGetStrings(bool getStrings);
42  bool isGetStrings();
43  void setAllowSingleQuotes(bool allowSingleQuotes);
44  bool isAllowSingleQuotes();
45  void setGetUnknown(bool getUnknown);
46  bool isGetUnknown();
47  void setGetCRLF(bool getCRLF);
48  bool isGetCRLF();
49  void setGetSpaces(bool getSpaces);
50  bool isGetSpaces();
51  void setAllowNumCommas(bool allowNumCommas);
52  bool isAllowNumCommas();
53  void setAllowInnerApostrophe(bool innerApostrophe);
55  void setCharClass(CharacterClass* charClass);
57 
58  void init();
59  Integer* findKeyword(String* keyword);
60 
69  bool addKeyword(String* keyword, int code);
70  Integer* findSingleOp(Char* singleOp);
71 
80  bool addSingleOp(Char* singleOp, int code);
81  Integer* findMultiOp(String* multiOp);
82 
91  bool addMultiOp(String* multiOp, int code);
92  bool findIdentChar(Char* char1);
93 
99  void addIdentChars(const String& multiChars);
100  void clearIdentChars();
101  void setIdentChars(const String& multiChars);
102 
103  bool isAlphaClass(char ch);
104  bool isDigitClass(char ch);
105  bool isHexClass(char ch);
106  bool isVowelClass(char ch);
107  bool isConsonantClass(char ch);
108  bool isIdentClass(char ch);
109 
110  bool findMultiOpChar(Char* char1);
111 };
112 
113 
114 #endif //TOKENIZERCONTEXT_H
void setGetUnknown(bool getUnknown)
Definition: TokenizerContext.cpp:59
bool isIdentClass(char ch)
Definition: TokenizerContext.cpp:201
bool isGetStrings()
Definition: TokenizerContext.cpp:47
void setGetCharLits(bool getCharLits)
Definition: TokenizerContext.cpp:35
bool addKeyword(String *keyword, int code)
Adds keywords to the Tokenizer context.
Definition: TokenizerContext.cpp:121
bool isAlphaClass(char ch)
Definition: TokenizerContext.cpp:181
Definition: TokenizerContext.h:14
void setAllowNumCommas(bool allowNumCommas)
Definition: TokenizerContext.cpp:83
bool addMultiOp(String *multiOp, int code)
Adds a multi-character operator.
Definition: TokenizerContext.cpp:150
Definition: CharacterClass.h:12
bool isAllowNumCommas()
Definition: TokenizerContext.cpp:87
bool isCaseSensitive()
Definition: TokenizerContext.cpp:31
bool isHexClass(char ch)
Definition: TokenizerContext.cpp:189
~TokenizerContext()
Definition: TokenizerContext.cpp:18
bool isGetCRLF()
Definition: TokenizerContext.cpp:71
void clearIdentChars()
Definition: TokenizerContext.cpp:173
void setGetCRLF(bool getCRLF)
Definition: TokenizerContext.cpp:67
void addIdentChars(const String &multiChars)
Adds a list of the characters that can make up an identifier, to the already existing list...
Definition: TokenizerContext.cpp:169
Definition: String.h:60
void setGetStrings(bool getStrings)
Definition: TokenizerContext.cpp:43
void setCharClass(CharacterClass *charClass)
Definition: TokenizerContext.cpp:100
Definition: DynaHashMap.h:73
void init()
Definition: TokenizerContext.cpp:108
Definition: IntWrapper.h:13
bool isDigitClass(char ch)
Definition: TokenizerContext.cpp:185
Integer * findKeyword(String *keyword)
Definition: TokenizerContext.cpp:116
Definition: DynaHashSet.h:63
CharacterClass * getCharClass()
Definition: TokenizerContext.cpp:104
void setAllowSingleQuotes(bool allowSingleQuotes)
Definition: TokenizerContext.cpp:51
void setCaseSensitive(bool caseSensitive)
Definition: TokenizerContext.cpp:27
bool isAllowSingleQuotes()
Definition: TokenizerContext.cpp:55
bool addSingleOp(Char *singleOp, int code)
Adds a single-character operator.
Definition: TokenizerContext.cpp:137
bool isGetCharLits()
Definition: TokenizerContext.cpp:39
bool isGetUnknown()
Definition: TokenizerContext.cpp:63
TokenizerContext()
Definition: TokenizerContext.cpp:9
Integer * findMultiOp(String *multiOp)
Definition: TokenizerContext.cpp:146
bool isVowelClass(char ch)
Definition: TokenizerContext.cpp:193
bool isAllowInnerApostrophe()
Definition: TokenizerContext.cpp:96
void setAllowInnerApostrophe(bool innerApostrophe)
Definition: TokenizerContext.cpp:91
bool isConsonantClass(char ch)
Definition: TokenizerContext.cpp:197
bool findMultiOpChar(Char *char1)
Definition: TokenizerContext.cpp:205
void setIdentChars(const String &multiChars)
Definition: TokenizerContext.cpp:177
Integer * findSingleOp(Char *singleOp)
Definition: TokenizerContext.cpp:133
void setGetSpaces(bool getSpaces)
Definition: TokenizerContext.cpp:75
bool findIdentChar(Char *char1)
Definition: TokenizerContext.cpp:165
bool isGetSpaces()
Definition: TokenizerContext.cpp:79