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 } // namespace LexerFileKeywords