55 string Mission::modestring(
int mode )
82 void Mission::fatalError(
missionNode *node,
int mode,
string message )
84 cout<<
"fatal ("<<modestring( mode )<<
") "<<message<<
" : ";
85 printNode( node, mode );
87 cout<<
"semantic error at line "<<node->
attr_value(
"line" )<<endl;
92 cout<<endl<<
"Stackdump: "<<endl;
97 for (
unsigned int j = 0;
j < cstack->
contexts.size();
j++) {
103 printNode( bnode, mode );
113 void Mission::runtimeFatal(
string message )
115 cout<<
"runtime fatalError: "<<message<<endl;
120 void Mission::warning(
string message )
122 cout<<
"warning: "<<message<<endl;
127 void Mission::debug(
int level,
missionNode *node,
int mode,
string message )
129 if (level <= debuglevel)
130 debug( node, mode, message );
135 void Mission::debug(
missionNode *node,
int mode,
string message )
137 cout<<
"debug ("<<modestring( mode )<<
") "<<message<<
" : ";
138 printNode( node, mode );
143 void Mission::printNode(
missionNode *node,
int mode )
151 bool Mission::have_return(
int mode )
163 void Mission::initTagMap()
190 void Mission::printVarInst(
varInst *vi ) {}
194 void Mission::printVarInst(
int dbg_level,
varInst *vi )
196 if (dbg_level <= debuglevel)
197 saveVarInst( vi, cout );
202 void Mission::printVarmap(
const varInstMap &vmap )
204 vsUMap< string, varInst* >::const_iterator iter;
205 for (iter = vmap.begin(); iter != vmap.end(); iter++) {
206 cout<<
"variable "<<(*iter).first;
215 void Mission::printModules()
217 vsUMap< string, missionNode* >::iterator iter;
219 cout<<
" module "<<(*iter).first;
221 printNode( mnode, 0 );
222 cout<<
" scripts"<<endl;
224 vsUMap< string, missionNode* >::iterator iter2;
226 cout<<
" script "<<(*iter2).first;
228 printNode( snode, 0 );
235 void Mission::printRuntime()
239 cout<<
"RUNTIME"<<endl;
240 cout<<
"MODULES:"<<endl;
242 vsUMap< string, missionNode* >::iterator iter;
244 cout<<
" module "<<(*iter).first;
245 printNode( (*iter).second, 0 );
247 cout<<
"CURRENT THREAD:"<<endl;
252 void Mission::printGlobals(
int dbg_level )
254 if (dbg_level > debuglevel)
256 vsUMap< string, missionNode* >::iterator iter;
258 cout<<
" global var "<<(*iter).first;
259 printNode( (*iter).second, 0 );
269 vector< contextStack* >::const_iterator siter;
273 vector< scriptContext* >::const_iterator iter2;
275 cout<<
"SCRIPT CONTEXTS"<<endl;
276 for (iter2 = stack->
contexts.begin(); iter2 != stack->
contexts.end(); iter2++) {
279 cout<<
"VARMAP "<<endl;
280 printVarmap( *(context->
varinsts) );
287 varInst* Mission::searchScopestack(
string name )
289 int elem = scope_stack.size()-1;
291 while (vi == NULL && elem >= 0) {
299 debug( 10, scope, 0,
"found var "+name+
" as classvar" );
302 debug( 5, scope, 0,
"variable "+name+
" not found in that scope" );
304 debug( 5, scope, 0,
"variable "+name+
" FOUND in that scope" );
313 missionNode* Mission::lookupScript(
string scriptname,
string modulename )
316 if (module == NULL) {
317 fatalError( module,
SCRIPT_PARSE,
"module "+modulename+
" not found - maybe you forgot to import it?" );
321 if (scriptnode == NULL) {
322 fatalError( module,
SCRIPT_PARSE,
"script "+scriptname+
" not found in module "+modulename );