0
|
1 /*
|
|
2 init2.c
|
|
3
|
|
4 Symbol table initialization.
|
|
5
|
|
6 gSOAP XML Web services tools
|
|
7 Copyright (C) 2000-2008, Robert van Engelen, Genivia Inc. All Rights Reserved.
|
|
8 This part of the software is released under one of the following licenses:
|
|
9 GPL or Genivia's license for commercial use.
|
|
10 --------------------------------------------------------------------------------
|
|
11 GPL license.
|
|
12
|
|
13 This program is free software; you can redistribute it and/or modify it under
|
|
14 the terms of the GNU General Public License as published by the Free Software
|
|
15 Foundation; either version 2 of the License, or (at your option) any later
|
|
16 version.
|
|
17
|
|
18 This program is distributed in the hope that it will be useful, but WITHOUT ANY
|
|
19 WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
|
20 PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
|
21
|
|
22 You should have received a copy of the GNU General Public License along with
|
|
23 this program; if not, write to the Free Software Foundation, Inc., 59 Temple
|
|
24 Place, Suite 330, Boston, MA 02111-1307 USA
|
|
25
|
|
26 Author contact information:
|
|
27 engelen@genivia.com / engelen@acm.org
|
|
28
|
|
29 This program is released under the GPL with the additional exemption that
|
|
30 compiling, linking, and/or using OpenSSL is allowed.
|
|
31 --------------------------------------------------------------------------------
|
|
32 A commercial use license is available from Genivia, Inc., contact@genivia.com
|
|
33 --------------------------------------------------------------------------------
|
|
34 */
|
|
35
|
|
36 #include "soapcpp2.h"
|
|
37
|
|
38 #ifdef HAVE_CONFIG_H
|
|
39 #include "soapcpp2_yacc.h"
|
|
40 #else
|
|
41 #include "soapcpp2_yacc.tab.h"
|
|
42 #endif
|
|
43
|
|
44 typedef struct Keyword
|
|
45 { char *s; /* name */
|
|
46 Token t; /* token */
|
|
47 } Keyword;
|
|
48
|
|
49 static Keyword keywords[] =
|
|
50 { { "asm", NONE },
|
|
51 { "auto", AUTO },
|
|
52 { "bool", BOOL },
|
|
53 { "break", BREAK },
|
|
54 { "case", CASE },
|
|
55 { "catch", NONE },
|
|
56 { "char", CHAR },
|
|
57 { "class", CLASS },
|
|
58 { "const", CONST },
|
|
59 { "const_cast", NONE },
|
|
60 { "continue", CONTINUE },
|
|
61 { "default", DEFAULT },
|
|
62 { "delete", NONE },
|
|
63 { "do", DO },
|
|
64 { "double", DOUBLE },
|
|
65 { "dynamic_cast", NONE },
|
|
66 { "else", ELSE },
|
|
67 { "enum", ENUM },
|
|
68 { "errno", NONE },
|
|
69 { "explicit", EXPLICIT },
|
|
70 { "export", NONE },
|
|
71 { "extern", EXTERN },
|
|
72 { "false", CFALSE },
|
|
73 { "float", FLOAT },
|
|
74 { "for", FOR },
|
|
75 { "friend", FRIEND },
|
|
76 { "goto", GOTO },
|
|
77 { "if", IF },
|
|
78 { "inline", INLINE },
|
|
79 { "int", INT },
|
|
80 { "int8_t", CHAR },
|
|
81 { "int16_t", SHORT },
|
|
82 { "int32_t", INT },
|
|
83 { "int64_t", LLONG },
|
|
84 { "long", LONG },
|
|
85 { "LONG64", LLONG },
|
|
86 { "mutable", NONE },
|
|
87 { "namespace", NAMESPACE },
|
|
88 { "new", NONE },
|
|
89 { "NULL", null },
|
|
90 { "operator", OPERATOR },
|
|
91 { "private", PRIVATE },
|
|
92 { "protected", PROTECTED },
|
|
93 { "public", PUBLIC },
|
|
94 { "register", REGISTER },
|
|
95 { "reinterpret_cast", NONE },
|
|
96 { "restrict", NONE },
|
|
97 { "return", RETURN },
|
|
98 { "short", SHORT },
|
|
99 { "signed", SIGNED },
|
|
100 { "size_t", SIZE },
|
|
101 { "sizeof", SIZEOF },
|
|
102 { "static", STATIC },
|
|
103 { "static_cast", NONE },
|
|
104 { "struct", STRUCT },
|
|
105 { "switch", SWITCH },
|
|
106 { "template", TEMPLATE },
|
|
107 { "this", NONE },
|
|
108 { "throw", NONE },
|
|
109 { "time_t", TIME },
|
|
110 { "true", CTRUE },
|
|
111 { "typedef", TYPEDEF },
|
|
112 { "typeid", NONE },
|
|
113 { "typename", TYPENAME },
|
|
114 { "uint8_t", UCHAR },
|
|
115 { "uint16_t", USHORT },
|
|
116 { "uint32_t", UINT },
|
|
117 { "uint64_t", ULLONG },
|
|
118 { "ULONG64", ULLONG },
|
|
119 { "union", UNION },
|
|
120 { "unsigned", UNSIGNED },
|
|
121 { "using", USING },
|
|
122 { "virtual", VIRTUAL },
|
|
123 { "void", VOID },
|
|
124 { "volatile", VOLATILE },
|
|
125 { "wchar_t", WCHAR },
|
|
126 { "while", WHILE },
|
|
127
|
|
128 { "operator!", NONE },
|
|
129 { "operator~", NONE },
|
|
130 { "operator=", NONE },
|
|
131 { "operator+=", NONE },
|
|
132 { "operator-=", NONE },
|
|
133 { "operator*=", NONE },
|
|
134 { "operator/=", NONE },
|
|
135 { "operator%=", NONE },
|
|
136 { "operator&=", NONE },
|
|
137 { "operator^=", NONE },
|
|
138 { "operator|=", NONE },
|
|
139 { "operator<<=", NONE },
|
|
140 { "operator>>=", NONE },
|
|
141 { "operator||", NONE },
|
|
142 { "operator&&", NONE },
|
|
143 { "operator|", NONE },
|
|
144 { "operator^", NONE },
|
|
145 { "operator&", NONE },
|
|
146 { "operator==", NONE },
|
|
147 { "operator!=", NONE },
|
|
148 { "operator<", NONE },
|
|
149 { "operator<=", NONE },
|
|
150 { "operator>", NONE },
|
|
151 { "operator>=", NONE },
|
|
152 { "operator<<", NONE },
|
|
153 { "operator>>", NONE },
|
|
154 { "operator+", NONE },
|
|
155 { "operator-", NONE },
|
|
156 { "operator*", NONE },
|
|
157 { "operator/", NONE },
|
|
158 { "operator%", NONE },
|
|
159 { "operator++", NONE },
|
|
160 { "operator--", NONE },
|
|
161 { "operator->", NONE },
|
|
162 { "operator[]", NONE },
|
|
163 { "operator()", NONE },
|
|
164
|
|
165 { "mustUnderstand", MUSTUNDERSTAND },
|
|
166
|
|
167 { "soap", ID },
|
|
168 { "SOAP_ENV__Header", ID },
|
|
169 { "dummy", ID },
|
|
170 { "soap_header", ID },
|
|
171
|
|
172 { "SOAP_ENV__Fault", ID },
|
|
173 { "SOAP_ENV__Code", ID },
|
|
174 { "SOAP_ENV__Subcode", ID },
|
|
175 { "SOAP_ENV__Reason", ID },
|
|
176 { "SOAP_ENV__Text", ID },
|
|
177 { "SOAP_ENV__Detail", ID },
|
|
178 { "SOAP_ENV__Value", ID },
|
|
179 { "SOAP_ENV__Node", ID },
|
|
180 { "SOAP_ENV__Role", ID },
|
|
181 { "faultcode", ID },
|
|
182 { "faultstring", ID },
|
|
183 { "faultactor", ID },
|
|
184 { "detail", ID },
|
|
185 { "__type", ID },
|
|
186 { "fault", ID },
|
|
187 { "__any", ID },
|
|
188
|
|
189 { "_QName", ID },
|
|
190 { "_XML", ID },
|
|
191 { "std::string", TYPE },
|
|
192 { "std::wstring", TYPE },
|
|
193
|
|
194 { "/*?*/", NONE },
|
|
195
|
|
196 { 0, 0 }
|
|
197 };
|
|
198
|
|
199 /*
|
|
200 init - initialize symbol table with predefined keywords
|
|
201 */
|
|
202 void init(void)
|
|
203 { struct Keyword *k;
|
|
204 for (k = keywords; k->s; k++)
|
|
205 install(k->s, k->t);
|
|
206 }
|