parser.cxx

changeset 2
bb2c45522eb6
parent 1
f0c61c204bc8
child 3
08cab2b67dce
equal deleted inserted replaced
1:f0c61c204bc8 2:bb2c45522eb6
44 #include <stdlib.h> 44 #include <stdlib.h>
45 #include "common.h" 45 #include "common.h"
46 #include "str.h" 46 #include "str.h"
47 #include "objwriter.h" 47 #include "objwriter.h"
48 #include "scriptreader.h" 48 #include "scriptreader.h"
49 #include "events.h"
49 50
50 #define TOKEN_CHARS token.chars() 51 #define TOKEN_CHARS token.chars()
51 #define TOKEN_IS(s) !token.compare (s) 52 #define TOKEN_IS(s) !token.compare (s)
52 #define MUST_TOPLEVEL if (g_CurMode != MODE_TOPLEVEL) \ 53 #define MUST_TOPLEVEL if (g_CurMode != MODE_TOPLEVEL) \
53 ParseError ("%ss may only be defined at top level!", token.chars()); 54 ParseError ("%ss may only be defined at top level!", token.chars());
95 MUST_TOPLEVEL 96 MUST_TOPLEVEL
96 97
97 // Event definition 98 // Event definition
98 MustNext (); 99 MustNext ();
99 100
100 // TODO: make a data file for bot events and read it 101 EventDef* e = FindEventByName (token);
101 #if 0 102 if (!e)
102 unsigned int u;
103 for (u = 0; u < NUM_BOTEVENTS; u++) {
104 if (!BotEvents[u].name.compare (token))
105 break;
106 }
107
108 if (u == NUM_BOTEVENTS)
109 ParseError ("bad event! got `%s`\n", token.chars()); 103 ParseError ("bad event! got `%s`\n", token.chars());
110
111 #endif
112 104
113 MustNext ("{"); 105 MustNext ("{");
114 106
115 g_CurMode = MODE_EVENT; 107 g_CurMode = MODE_EVENT;
116 108
117 w->Write (DH_EVENT); 109 w->Write (DH_EVENT);
118 // w->Write<long> (u); 110 w->Write<long> (e->number);
119 g_NumEvents++; 111 g_NumEvents++;
120 } else if (TOKEN_IS ("}")) { 112 } else if (TOKEN_IS ("}")) {
121 // Closing brace.. 113 // Closing brace..
122 switch (g_CurMode) { 114 switch (g_CurMode) {
123 case MODE_EVENT: 115 case MODE_EVENT:

mercurial