1 #include "parse_context.hpp"
8 find_or_insert_symbol(const std::string& name, symtab& syms, const bool strict)
10 symtab::const_iterator p = syms.find(name);
12 return p->second.first;
15 throw std::invalid_argument(
16 std::string("find_or_insert_symbol: symbol \"")
17 + name + "\" not found");
19 // false means this symbol was created by parser
20 const std::pair<symbol, bool> tmp = std::make_pair(symbol(name), false);
22 symtab::iterator i = syms.insert(symtab::value_type(name, tmp)).first;
23 return i->second.first;