113 |
112 |
114 // Print header |
113 // Print header |
115 str header; |
114 str header; |
116 str headerline = "-="; |
115 str headerline = "-="; |
117 header.appendformat ("%s version %d.%d", APPNAME, VERSION_MAJOR, VERSION_MINOR); |
116 header.appendformat ("%s version %d.%d", APPNAME, VERSION_MAJOR, VERSION_MINOR); |
118 |
|
119 // Include revision if non-zero |
|
120 if (VERSION_REVISION) |
|
121 header.appendformat (".%d", VERSION_REVISION); |
|
122 |
117 |
123 headerline *= (header.len() / 2) - 1; |
118 headerline *= (header.len() / 2) - 1; |
124 headerline += '-'; |
119 headerline += '-'; |
125 printf ("%s\n%s\n", header.chars(), headerline.chars()); |
120 printf ("%s\n%s\n", header.chars(), headerline.chars()); |
126 |
121 |
250 |
245 |
251 unsigned int NumKeywords () { |
246 unsigned int NumKeywords () { |
252 return sizeof (g_Keywords) / sizeof (const char*); |
247 return sizeof (g_Keywords) / sizeof (const char*); |
253 } |
248 } |
254 |
249 |
255 |
|
256 // ============================================================================ |
250 // ============================================================================ |
257 type_e GetTypeByName (str t) { |
251 type_e GetTypeByName (str t) { |
258 t = t.tolower(); |
252 t = t.tolower(); |
259 return (t == "int") ? TYPE_INT : |
253 return (t == "int") ? TYPE_INT : |
260 (t == "float") ? TYPE_FLOAT : |
|
261 (t == "str") ? TYPE_STRING : |
254 (t == "str") ? TYPE_STRING : |
262 (t == "void") ? TYPE_VOID : |
255 (t == "void") ? TYPE_VOID : |
263 (t == "bool") ? TYPE_BOOL : |
256 (t == "bool") ? TYPE_BOOL : |
264 TYPE_UNKNOWN; |
257 TYPE_UNKNOWN; |
265 } |
258 } |
270 str GetTypeName (type_e type) { |
263 str GetTypeName (type_e type) { |
271 switch (type) { |
264 switch (type) { |
272 case TYPE_INT: return "int"; break; |
265 case TYPE_INT: return "int"; break; |
273 case TYPE_STRING: return "str"; break; |
266 case TYPE_STRING: return "str"; break; |
274 case TYPE_VOID: return "void"; break; |
267 case TYPE_VOID: return "void"; break; |
275 case TYPE_FLOAT: return "float"; break; |
|
276 case TYPE_BOOL: return "bool"; break; |
268 case TYPE_BOOL: return "bool"; break; |
277 case TYPE_UNKNOWN: return "???"; break; |
269 case TYPE_UNKNOWN: return "???"; break; |
278 } |
270 } |
279 |
271 |
280 return ""; |
272 return ""; |