- Merge aicom-network-fixes up to r36740
[reactos.git] / rosapps / applications / sysutils / utils / sdkparse / iskeyword.cpp
1 // iskeyword.cpp
2
3 #ifdef _MSC_VER
4 #pragma warning ( disable : 4786 )
5 #endif//_MSC_VER
6
7 #include <string>
8
9 #include "iskeyword.h"
10
11 using std::string;
12
13 bool iskeyword ( const string& ident )
14 {
15 #define I(s) if ( ident == #s ) return true;
16 switch ( ident[0] )
17 {
18 case '_':
19 I(__cdecl);
20 I(__declspec);
21 I(__except);
22 I(__fastcall);
23 I(__finally);
24 I(__inline);
25 I(__int8);
26 I(__int16);
27 I(__int32);
28 I(__int64);
29 I(__leave);
30 I(__stdcall);
31 I(__try);
32 break;
33 case 'b':
34 I(bool);
35 I(break);
36 break;
37 case 'c':
38 I(case);
39 I(catch);
40 I(char);
41 I(class);
42 I(const);
43 I(const_cast);
44 I(continue);
45 break;
46 case 'd':
47 I(default);
48 I(delete);
49 I(dllexport);
50 I(dllimport);
51 I(do);
52 I(double);
53 I(dynamic_cast);
54 break;
55 case 'e':
56 I(else);
57 I(enum);
58 I(explicit);
59 I(extern);
60 break;
61 case 'f':
62 I(false);
63 I(float);
64 I(for);
65 I(friend);
66 break;
67 case 'g':
68 I(goto);
69 break;
70 case 'i':
71 I(if);
72 I(inline);
73 I(int);
74 break;
75 case 'l':
76 I(long);
77 break;
78 case 'm':
79 I(mutable);
80 break;
81 case 'n':
82 I(naked);
83 I(namespace);
84 I(new);
85 I(noreturn);
86 break;
87 case 'o':
88 I(operator);
89 break;
90 case 'p':
91 I(private);
92 I(protected);
93 I(public);
94 break;
95 case 'r':
96 I(register);
97 I(reinterpret_cast);
98 I(return);
99 break;
100 case 's':
101 I(short);
102 I(signed);
103 I(sizeof);
104 I(static);
105 I(static_cast);
106 I(struct);
107 I(switch);
108 break;
109 case 't':
110 I(template);
111 I(this);
112 I(thread);
113 I(throw);
114 I(true);
115 I(try);
116 I(typedef);
117 I(typeid);
118 I(typename);
119 break;
120 case 'u':
121 I(union);
122 I(unsigned);
123 I(using);
124 I(uuid);
125 I(__uuidof);
126 break;
127 case 'v':
128 I(virtual);
129 I(void);
130 I(volatile);
131 break;
132 case 'w':
133 I(wmain);
134 I(while);
135 break;
136 }
137 return false;
138 }