//========================================================================================================== // Init command map, read and execute file. //========================================================================================================== ScriptReader::ScriptReader(string _filename, map<string, string> _vars, ScriptReader* parent): filename(_filename), vars(_vars), root(parent == nullptr) { print_title(); // Check validity of variable-value pairs for(auto& p: vars) { check_valid_value(p.first, p.second); } if(root) { calls_map = new CallsMap; messages = new vector<SipMessage*>; } else { calls_map = parent->calls_map; messages = parent->messages; } interpret(filename); print_end_title(); }
//========================================================================================================== //========================================================================================================== void ScriptReader::set_value(string var, string value, bool overwirte) { check_valid_value(var, value); if(vars.count(var) == 0 || overwirte) { vars[var] = value; } }
/* Takes user input, checks value of card, updates the count and repeats until the user inputs X*/ void card_loop() { char card[3]; int val = 0; int count = 0; while(card[0] != 'X') { getinput(card); val = card_value(card); if (check_valid_value(val)){ puts("I don't understand that value!"); } else { print_value(val); update_count(val,&count); } } }