Sat, 11 Jan 2014 22:36:31 +0200
- *hot stuff coming through*
71
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
1 | /* |
73
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
2 | Copyright (c) 2013-2014, Santeri Piippo |
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
3 | All rights reserved. |
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
4 | |
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
5 | Redistribution and use in source and binary forms, with or without |
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
6 | modification, are permitted provided that the following conditions are met: |
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
7 | |
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
8 | * Redistributions of source code must retain the above copyright |
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
9 | notice, this list of conditions and the following disclaimer. |
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
10 | |
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
11 | * Redistributions in binary form must reproduce the above copyright |
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
12 | notice, this list of conditions and the following disclaimer in the |
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
13 | documentation and/or other materials provided with the distribution. |
71
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
14 | |
73
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
15 | * Neither the name of the <organization> nor the |
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
16 | names of its contributors may be used to endorse or promote products |
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
17 | derived from this software without specific prior written permission. |
71
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
18 | |
73
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
19 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND |
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
20 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
21 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
22 | DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY |
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
23 | DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES |
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
24 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; |
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
25 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND |
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
26 | ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
27 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS |
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
28 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
29 | */ |
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
30 | |
72
03e4d9db3fd9
- major refactoring begins
Teemu Piippo <crimsondusk64@gmail.com>
parents:
71
diff
changeset
|
31 | #include "main.h" |
71
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
32 | #include "scriptreader.h" |
73
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
33 | #include "object_writer.h" |
71
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
34 | #include "events.h" |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
35 | #include "commands.h" |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
36 | #include "stringtable.h" |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
37 | #include "variables.h" |
72
03e4d9db3fd9
- major refactoring begins
Teemu Piippo <crimsondusk64@gmail.com>
parents:
71
diff
changeset
|
38 | #include "containers.h" |
73
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
39 | #include "data_buffer.h" |
71
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
40 | #include "bots.h" |
73
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
41 | #include "object_writer.h" |
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
42 | #include "parser.h" |
71
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
43 | |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
44 | // List of keywords |
73
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
45 | const string_list g_Keywords = |
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
46 | { |
71
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
47 | "bool", |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
48 | "break", |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
49 | "case", |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
50 | "continue", |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
51 | "const", |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
52 | "default", |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
53 | "do", |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
54 | "else", |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
55 | "event", |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
56 | "for", |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
57 | "goto", |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
58 | "if", |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
59 | "int", |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
60 | "mainloop", |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
61 | "onenter", |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
62 | "onexit", |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
63 | "state", |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
64 | "switch", |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
65 | "str" |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
66 | "void", |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
67 | "while", |
73
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
68 | |
71
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
69 | // These ones aren't implemented yet but I plan to do so, thus they are |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
70 | // reserved. Also serves as a to-do list of sorts for me. >:F |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
71 | "enum", // Would enum actually be useful? I think so. |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
72 | "func", // Would function support need external support from zandronum? |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
73 | "return", |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
74 | }; |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
75 | |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
76 | // databuffer global variable |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
77 | int g_NextMark = 0; |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
78 | |
73
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
79 | int main (int argc, char** argv) |
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
80 | { |
71
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
81 | // Intepret command-line parameters: |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
82 | // -l: list commands |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
83 | // I guess there should be a better way to do this. |
73
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
84 | if (argc == 2 && !strcmp (argv[1], "-l")) |
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
85 | { |
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
86 | ReadCommands(); |
71
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
87 | printf ("Begin list of commands:\n"); |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
88 | printf ("------------------------------------------------------\n"); |
73
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
89 | |
71
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
90 | CommandDef* comm; |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
91 | ITERATE_COMMANDS (comm) |
72
03e4d9db3fd9
- major refactoring begins
Teemu Piippo <crimsondusk64@gmail.com>
parents:
71
diff
changeset
|
92 | print ("%1\n", GetCommandPrototype (comm)); |
73
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
93 | |
71
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
94 | printf ("------------------------------------------------------\n"); |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
95 | printf ("End of command list\n"); |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
96 | exit (0); |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
97 | } |
73
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
98 | |
71
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
99 | // Print header |
72
03e4d9db3fd9
- major refactoring begins
Teemu Piippo <crimsondusk64@gmail.com>
parents:
71
diff
changeset
|
100 | string header; |
03e4d9db3fd9
- major refactoring begins
Teemu Piippo <crimsondusk64@gmail.com>
parents:
71
diff
changeset
|
101 | string headerline; |
03e4d9db3fd9
- major refactoring begins
Teemu Piippo <crimsondusk64@gmail.com>
parents:
71
diff
changeset
|
102 | header = format ("%1 version %2.%3", APPNAME, VERSION_MAJOR, VERSION_MINOR); |
03e4d9db3fd9
- major refactoring begins
Teemu Piippo <crimsondusk64@gmail.com>
parents:
71
diff
changeset
|
103 | |
03e4d9db3fd9
- major refactoring begins
Teemu Piippo <crimsondusk64@gmail.com>
parents:
71
diff
changeset
|
104 | for (int i = 0; i < (header.len() / 2) - 1; ++i) |
03e4d9db3fd9
- major refactoring begins
Teemu Piippo <crimsondusk64@gmail.com>
parents:
71
diff
changeset
|
105 | headerline += "-="; |
03e4d9db3fd9
- major refactoring begins
Teemu Piippo <crimsondusk64@gmail.com>
parents:
71
diff
changeset
|
106 | |
71
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
107 | headerline += '-'; |
72
03e4d9db3fd9
- major refactoring begins
Teemu Piippo <crimsondusk64@gmail.com>
parents:
71
diff
changeset
|
108 | print ("%1\n%2\n", header, headerline); |
73
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
109 | |
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
110 | if (argc < 2) |
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
111 | { |
71
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
112 | fprintf (stderr, "usage: %s <infile> [outfile] # compiles botscript\n", argv[0]); |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
113 | fprintf (stderr, " %s -l # lists commands\n", argv[0]); |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
114 | exit (1); |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
115 | } |
73
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
116 | |
72
03e4d9db3fd9
- major refactoring begins
Teemu Piippo <crimsondusk64@gmail.com>
parents:
71
diff
changeset
|
117 | string outfile; |
73
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
118 | |
71
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
119 | if (argc < 3) |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
120 | outfile = ObjectFileName (argv[1]); |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
121 | else |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
122 | outfile = argv[2]; |
73
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
123 | |
71
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
124 | // If we'd end up writing into an existing file, |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
125 | // ask the user if we want to overwrite it |
73
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
126 | if (fexists (outfile)) |
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
127 | { |
71
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
128 | // Additional warning if the paths are the same |
72
03e4d9db3fd9
- major refactoring begins
Teemu Piippo <crimsondusk64@gmail.com>
parents:
71
diff
changeset
|
129 | string warning; |
71
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
130 | #ifdef FILE_CASEINSENSITIVE |
73
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
131 | |
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
132 | if (+outfile == +string (argv[1])) |
71
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
133 | #else |
73
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
134 | if (outfile == argv[1]) |
71
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
135 | #endif |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
136 | { |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
137 | warning = "\nWARNING: Output file is the same as the input file. "; |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
138 | warning += "Answering yes here will destroy the source!\n"; |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
139 | warning += "Continue nevertheless?"; |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
140 | } |
73
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
141 | |
71
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
142 | printf ("output file `%s` already exists! overwrite?%s (y/n) ", outfile.chars(), warning.chars()); |
73
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
143 | |
71
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
144 | char ans; |
73
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
145 | fgets (&ans, 1, stdin); |
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
146 | |
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
147 | if (ans != 'y') |
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
148 | { |
71
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
149 | printf ("abort\n"); |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
150 | exit (1); |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
151 | } |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
152 | } |
73
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
153 | |
71
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
154 | // Read definitions |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
155 | printf ("Reading definitions...\n"); |
73
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
156 | ReadEvents(); |
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
157 | ReadCommands(); |
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
158 | |
71
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
159 | // Prepare reader and writer |
73
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
160 | botscript_parser* r = new botscript_parser; |
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
161 | object_writer* w = new object_writer; |
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
162 | |
71
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
163 | // We're set, begin parsing :) |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
164 | printf ("Parsing script...\n"); |
73
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
165 | r->parse_botscript (argv[1], w); |
71
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
166 | printf ("Script parsed successfully.\n"); |
73
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
167 | |
71
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
168 | // Parse done, print statistics and write to file |
73
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
169 | int globalcount = g_GlobalVariables.size(); |
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
170 | int stringcount = num_strings_in_table(); |
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
171 | int NumMarks = w->MainBuffer->count_marks(); |
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
172 | int NumRefs = w->MainBuffer->count_references(); |
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
173 | print ("%1 / %2 strings written\n", stringcount, MAX_LIST_STRINGS); |
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
174 | print ("%1 / %2 global variables\n", globalcount, MAX_SCRIPT_VARIABLES); |
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
175 | print ("%1 / %2 bytecode marks\n", NumMarks, MAX_MARKS); // TODO: nuke |
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
176 | print ("%1 / %2 bytecode references\n", NumRefs, MAX_MARKS); // TODO: nuke |
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
177 | print ("%1 / %2 events\n", g_NumEvents, MAX_NUM_EVENTS); |
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
178 | print ("%1 state%s1\n", g_NumStates); |
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
179 | |
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
180 | w->write_to_file (outfile); |
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
181 | |
71
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
182 | // Clear out the junk |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
183 | delete r; |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
184 | delete w; |
73
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
185 | |
71
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
186 | // Done! |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
187 | exit (0); |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
188 | } |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
189 | |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
190 | // ============================================================================ |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
191 | // Utility functions |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
192 | |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
193 | // ============================================================================ |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
194 | // Does the given file exist? |
73
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
195 | bool fexists (string path) |
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
196 | { |
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
197 | if (FILE* test = fopen (path, "r")) |
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
198 | { |
71
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
199 | fclose (test); |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
200 | return true; |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
201 | } |
72
03e4d9db3fd9
- major refactoring begins
Teemu Piippo <crimsondusk64@gmail.com>
parents:
71
diff
changeset
|
202 | |
71
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
203 | return false; |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
204 | } |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
205 | |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
206 | // ============================================================================ |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
207 | // Generic error |
73
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
208 | void error (const char* text, ...) |
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
209 | { |
72
03e4d9db3fd9
- major refactoring begins
Teemu Piippo <crimsondusk64@gmail.com>
parents:
71
diff
changeset
|
210 | va_list va; |
03e4d9db3fd9
- major refactoring begins
Teemu Piippo <crimsondusk64@gmail.com>
parents:
71
diff
changeset
|
211 | va_start (va, text); |
03e4d9db3fd9
- major refactoring begins
Teemu Piippo <crimsondusk64@gmail.com>
parents:
71
diff
changeset
|
212 | fprintf (stderr, "error: "); |
03e4d9db3fd9
- major refactoring begins
Teemu Piippo <crimsondusk64@gmail.com>
parents:
71
diff
changeset
|
213 | vfprintf (stderr, text, va); |
03e4d9db3fd9
- major refactoring begins
Teemu Piippo <crimsondusk64@gmail.com>
parents:
71
diff
changeset
|
214 | va_end (va); |
71
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
215 | exit (1); |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
216 | } |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
217 | |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
218 | // ============================================================================ |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
219 | // Mutates given filename to an object filename |
73
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
220 | string ObjectFileName (string s) |
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
221 | { |
71
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
222 | // Locate the extension and chop it out |
72
03e4d9db3fd9
- major refactoring begins
Teemu Piippo <crimsondusk64@gmail.com>
parents:
71
diff
changeset
|
223 | int extdot = s.last ("."); |
03e4d9db3fd9
- major refactoring begins
Teemu Piippo <crimsondusk64@gmail.com>
parents:
71
diff
changeset
|
224 | |
03e4d9db3fd9
- major refactoring begins
Teemu Piippo <crimsondusk64@gmail.com>
parents:
71
diff
changeset
|
225 | if (extdot >= s.len() - 4) |
71
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
226 | s -= (s.len() - extdot); |
73
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
227 | |
71
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
228 | s += ".o"; |
72
03e4d9db3fd9
- major refactoring begins
Teemu Piippo <crimsondusk64@gmail.com>
parents:
71
diff
changeset
|
229 | return s; |
71
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
230 | } |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
231 | |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
232 | // ============================================================================ |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
233 | // Is the given argument a reserved keyword? |
73
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
234 | bool IsKeyword (string s) |
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
235 | { |
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
236 | for (int u = 0; u < NumKeywords(); u++) |
72
03e4d9db3fd9
- major refactoring begins
Teemu Piippo <crimsondusk64@gmail.com>
parents:
71
diff
changeset
|
237 | if (s.to_uppercase() == g_Keywords[u].to_uppercase()) |
71
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
238 | return true; |
73
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
239 | |
71
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
240 | return false; |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
241 | } |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
242 | |
73
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
243 | int NumKeywords() |
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
244 | { |
71
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
245 | return sizeof (g_Keywords) / sizeof (const char*); |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
246 | } |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
247 | |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
248 | // ============================================================================ |
73
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
249 | type_e GetTypeByName (string t) |
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
250 | { |
72
03e4d9db3fd9
- major refactoring begins
Teemu Piippo <crimsondusk64@gmail.com>
parents:
71
diff
changeset
|
251 | t = t.to_lowercase(); |
71
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
252 | return (t == "int") ? TYPE_INT : |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
253 | (t == "str") ? TYPE_STRING : |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
254 | (t == "void") ? TYPE_VOID : |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
255 | (t == "bool") ? TYPE_BOOL : |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
256 | TYPE_UNKNOWN; |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
257 | } |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
258 | |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
259 | |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
260 | // ============================================================================ |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
261 | // Inverse operation - type name by value |
73
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
262 | string GetTypeName (type_e type) |
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
263 | { |
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
264 | switch (type) |
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
265 | { |
71
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
266 | case TYPE_INT: return "int"; break; |
73
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
267 | |
71
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
268 | case TYPE_STRING: return "str"; break; |
73
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
269 | |
71
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
270 | case TYPE_VOID: return "void"; break; |
73
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
271 | |
71
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
272 | case TYPE_BOOL: return "bool"; break; |
73
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
273 | |
71
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
274 | case TYPE_UNKNOWN: return "???"; break; |
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
275 | } |
73
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
276 | |
71
11f23fabf8a6
- moved sources to src/, migrated to cmake
Teemu Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
277 | return ""; |
73
1ee9b312dc18
- *hot stuff coming through*
Teemu Piippo <crimsondusk64@gmail.com>
parents:
72
diff
changeset
|
278 | } |