1 using System;
2
3 namespace LexerFileKeywords
4 {
5 internal class Keywords
6 {
7 static Keywords() :
8 instance(new Keywords())
9 {
10 }
11 public static Keywords& Instance()
12 {
13 return *instance;
14 }
15 public System.Lex.KeywordMap* GetKeywordMap()
16 {
17 return keywordMap.Get();
18 }
19 private Keywords()
20 {
21 System.Lex.Keyword keyword0(u"classmap", LexerFileTokens.CLASSMAP);
22 keywordList.Add(keyword0);
23 System.Lex.Keyword keyword1(u"tokens", LexerFileTokens.TOKENS);
24 keywordList.Add(keyword1);
25 System.Lex.Keyword keyword2(u"keywords", LexerFileTokens.KEYWORDS);
26 keywordList.Add(keyword2);
27 System.Lex.Keyword keyword3(u"expressions", LexerFileTokens.EXPRESSIONS);
28 keywordList.Add(keyword3);
29 System.Lex.Keyword keyword4(u"lexer", LexerFileTokens.LEXER);
30 keywordList.Add(keyword4);
31 System.Lex.Keyword keyword5(u"variables", LexerFileTokens.VARIABLES);
32 keywordList.Add(keyword5);
33 System.Lex.Keyword keyword6(u"actions", LexerFileTokens.ACTIONS);
34 keywordList.Add(keyword6);
35 System.Lex.Keyword keyword7(u"assert", LexerFileTokens.ASSERT);
36 keywordList.Add(keyword7);
37 System.Lex.Keyword keyword8(u"elif", LexerFileTokens.ELIF);
38 keywordList.Add(keyword8);
39 System.Lex.Keyword keyword9(u"endif", LexerFileTokens.ENDIF);
40 keywordList.Add(keyword9);
41 System.Lex.Keyword keyword10(u"bool", LexerFileTokens.BOOL);
42 keywordList.Add(keyword10);
43 System.Lex.Keyword keyword11(u"true", LexerFileTokens.TRUE);
44 keywordList.Add(keyword11);
45 System.Lex.Keyword keyword12(u"false", LexerFileTokens.FALSE);
46 keywordList.Add(keyword12);
47 System.Lex.Keyword keyword13(u"sbyte", LexerFileTokens.SBYTE);
48 keywordList.Add(keyword13);
49 System.Lex.Keyword keyword14(u"byte", LexerFileTokens.BYTE);
50 keywordList.Add(keyword14);
51 System.Lex.Keyword keyword15(u"short", LexerFileTokens.SHORT);
52 keywordList.Add(keyword15);
53 System.Lex.Keyword keyword16(u"ushort", LexerFileTokens.USHORT);
54 keywordList.Add(keyword16);
55 System.Lex.Keyword keyword17(u"int", LexerFileTokens.INT);
56 keywordList.Add(keyword17);
57 System.Lex.Keyword keyword18(u"uint", LexerFileTokens.UINT);
58 keywordList.Add(keyword18);
59 System.Lex.Keyword keyword19(u"long", LexerFileTokens.LONG);
60 keywordList.Add(keyword19);
61 System.Lex.Keyword keyword20(u"ulong", LexerFileTokens.ULONG);
62 keywordList.Add(keyword20);
63 System.Lex.Keyword keyword21(u"float", LexerFileTokens.FLOAT);
64 keywordList.Add(keyword21);
65 System.Lex.Keyword keyword22(u"double", LexerFileTokens.DOUBLE);
66 keywordList.Add(keyword22);
67 System.Lex.Keyword keyword23(u"char", LexerFileTokens.CHAR);
68 keywordList.Add(keyword23);
69 System.Lex.Keyword keyword24(u"wchar", LexerFileTokens.WCHAR);
70 keywordList.Add(keyword24);
71 System.Lex.Keyword keyword25(u"uchar", LexerFileTokens.UCHAR);
72 keywordList.Add(keyword25);
73 System.Lex.Keyword keyword26(u"void", LexerFileTokens.VOID);
74 keywordList.Add(keyword26);
75 System.Lex.Keyword keyword27(u"enum", LexerFileTokens.ENUM);
76 keywordList.Add(keyword27);
77 System.Lex.Keyword keyword28(u"cast", LexerFileTokens.CAST);
78 keywordList.Add(keyword28);
79 System.Lex.Keyword keyword29(u"interface", LexerFileTokens.INTERFACE);
80 keywordList.Add(keyword29);
81 System.Lex.Keyword keyword30(u"namespace", LexerFileTokens.NAMESPACE);
82 keywordList.Add(keyword30);
83 System.Lex.Keyword keyword31(u"using", LexerFileTokens.USING);
84 keywordList.Add(keyword31);
85 System.Lex.Keyword keyword32(u"static", LexerFileTokens.STATIC);
86 keywordList.Add(keyword32);
87 System.Lex.Keyword keyword33(u"extern", LexerFileTokens.EXTERN);
88 keywordList.Add(keyword33);
89 System.Lex.Keyword keyword34(u"as", LexerFileTokens.AS);
90 keywordList.Add(keyword34);
91 System.Lex.Keyword keyword35(u"is", LexerFileTokens.IS);
92 keywordList.Add(keyword35);
93 System.Lex.Keyword keyword36(u"explicit", LexerFileTokens.EXPLICIT);
94 keywordList.Add(keyword36);
95 System.Lex.Keyword keyword37(u"delegate", LexerFileTokens.DELEGATE);
96 keywordList.Add(keyword37);
97 System.Lex.Keyword keyword38(u"inline", LexerFileTokens.INLINE);
98 keywordList.Add(keyword38);
99 System.Lex.Keyword keyword39(u"cdecl", LexerFileTokens.CDECL);
100 keywordList.Add(keyword39);
101 System.Lex.Keyword keyword40(u"nothrow", LexerFileTokens.NOTHROW);
102 keywordList.Add(keyword40);
103 System.Lex.Keyword keyword41(u"public", LexerFileTokens.PUBLIC);
104 keywordList.Add(keyword41);
105 System.Lex.Keyword keyword42(u"protected", LexerFileTokens.PROTECTED);
106 keywordList.Add(keyword42);
107 System.Lex.Keyword keyword43(u"private", LexerFileTokens.PRIVATE);
108 keywordList.Add(keyword43);
109 System.Lex.Keyword keyword44(u"internal", LexerFileTokens.INTERNAL);
110 keywordList.Add(keyword44);
111 System.Lex.Keyword keyword45(u"virtual", LexerFileTokens.VIRTUAL);
112 keywordList.Add(keyword45);
113 System.Lex.Keyword keyword46(u"abstract", LexerFileTokens.ABSTRACT);
114 keywordList.Add(keyword46);
115 System.Lex.Keyword keyword47(u"override", LexerFileTokens.OVERRIDE);
116 keywordList.Add(keyword47);
117 System.Lex.Keyword keyword48(u"suppress", LexerFileTokens.SUPPRESS);
118 keywordList.Add(keyword48);
119 System.Lex.Keyword keyword49(u"operator", LexerFileTokens.OPERATOR);
120 keywordList.Add(keyword49);
121 System.Lex.Keyword keyword50(u"class", LexerFileTokens.CLASS);
122 keywordList.Add(keyword50);
123 System.Lex.Keyword keyword51(u"return", LexerFileTokens.RETURN);
124 keywordList.Add(keyword51);
125 System.Lex.Keyword keyword52(u"if", LexerFileTokens.IF);
126 keywordList.Add(keyword52);
127 System.Lex.Keyword keyword53(u"else", LexerFileTokens.ELSE);
128 keywordList.Add(keyword53);
129 System.Lex.Keyword keyword54(u"switch", LexerFileTokens.SWITCH);
130 keywordList.Add(keyword54);
131 System.Lex.Keyword keyword55(u"case", LexerFileTokens.CASE);
132 keywordList.Add(keyword55);
133 System.Lex.Keyword keyword56(u"default", LexerFileTokens.DEFAULT);
134 keywordList.Add(keyword56);
135 System.Lex.Keyword keyword57(u"while", LexerFileTokens.WHILE);
136 keywordList.Add(keyword57);
137 System.Lex.Keyword keyword58(u"do", LexerFileTokens.DO);
138 keywordList.Add(keyword58);
139 System.Lex.Keyword keyword59(u"for", LexerFileTokens.FOR);
140 keywordList.Add(keyword59);
141 System.Lex.Keyword keyword60(u"break", LexerFileTokens.BREAK);
142 keywordList.Add(keyword60);
143 System.Lex.Keyword keyword61(u"continue", LexerFileTokens.CONTINUE);
144 keywordList.Add(keyword61);
145 System.Lex.Keyword keyword62(u"goto", LexerFileTokens.GOTO);
146 keywordList.Add(keyword62);
147 System.Lex.Keyword keyword63(u"typedef", LexerFileTokens.TYPEDEF);
148 keywordList.Add(keyword63);
149 System.Lex.Keyword keyword64(u"typename", LexerFileTokens.TYPENAME);
150 keywordList.Add(keyword64);
151 System.Lex.Keyword keyword65(u"typeid", LexerFileTokens.TYPEID);
152 keywordList.Add(keyword65);
153 System.Lex.Keyword keyword66(u"const", LexerFileTokens.CONST);
154 keywordList.Add(keyword66);
155 System.Lex.Keyword keyword67(u"constexpr", LexerFileTokens.CONSTEXPR);
156 keywordList.Add(keyword67);
157 System.Lex.Keyword keyword68(u"null", LexerFileTokens.NULLLIT);
158 keywordList.Add(keyword68);
159 System.Lex.Keyword keyword69(u"this", LexerFileTokens.THIS);
160 keywordList.Add(keyword69);
161 System.Lex.Keyword keyword70(u"base", LexerFileTokens.BASE);
162 keywordList.Add(keyword70);
163 System.Lex.Keyword keyword71(u"construct", LexerFileTokens.CONSTRUCT);
164 keywordList.Add(keyword71);
165 System.Lex.Keyword keyword72(u"destroy", LexerFileTokens.DESTROY);
166 keywordList.Add(keyword72);
167 System.Lex.Keyword keyword73(u"new", LexerFileTokens.NEW);
168 keywordList.Add(keyword73);
169 System.Lex.Keyword keyword74(u"delete", LexerFileTokens.DELETE);
170 keywordList.Add(keyword74);
171 System.Lex.Keyword keyword75(u"sizeof", LexerFileTokens.SIZEOF);
172 keywordList.Add(keyword75);
173 System.Lex.Keyword keyword76(u"try", LexerFileTokens.TRY);
174 keywordList.Add(keyword76);
175 System.Lex.Keyword keyword77(u"catch", LexerFileTokens.CATCH);
176 keywordList.Add(keyword77);
177 System.Lex.Keyword keyword78(u"throw", LexerFileTokens.THROW);
178 keywordList.Add(keyword78);
179 System.Lex.Keyword keyword79(u"concept", LexerFileTokens.CONCEPT);
180 keywordList.Add(keyword79);
181 System.Lex.Keyword keyword80(u"where", LexerFileTokens.WHERE);
182 keywordList.Add(keyword80);
183 System.Lex.Keyword keyword81(u"axiom", LexerFileTokens.AXIOM);
184 keywordList.Add(keyword81);
185 System.Lex.Keyword keyword82(u"and", LexerFileTokens.AND);
186 keywordList.Add(keyword82);
187 System.Lex.Keyword keyword83(u"or", LexerFileTokens.OR);
188 keywordList.Add(keyword83);
189 System.Lex.Keyword keyword84(u"unit_test", LexerFileTokens.UNIT_TEST);
190 keywordList.Add(keyword84);
191 System.Lex.Keyword nullKeyword(null, -1);
192 keywordList.Add(nullKeyword);
193 keywordMap.Reset(new System.Lex.KeywordMap(keywordList.CBegin().Ptr()));
194 }
195 private static System.UniquePtr<Keywords> instance;
196 private System.Collections.List<System.Lex.Keyword> keywordList;
197 private System.UniquePtr<System.Lex.KeywordMap> keywordMap;
198 }
199
200 public System.Lex.KeywordMap* GetKeywordMap()
201 {
202 return Keywords.Instance().GetKeywordMap();
203 }
204 }