string Statement::get_signature() const
{
string result;
- for(Arguments::const_iterator i = args.begin(); i!=args.end(); ++i)
- result += i->get_signature();
+ for(const Value &a: args)
+ result += a.get_signature();
return result;
}
Statement &Statement::append_from_token(const Token &token)
{
if(token.type==Token::INTEGER)
- return append(lexical_cast<IntType::Store>(token.str));
+ return append(lexical_cast<IntType::Store>(token.str, Fmt().autobase()));
else if(token.type==Token::FLOAT)
return append(lexical_cast<FloatType::Store>(token.str));
else if(token.type==Token::STRING)
else if(token.str=="false")
return append(false);
else
- return append(Symbol(token.str));
+ return append(Value(Symbol(token.str)));
}
else
throw invalid_argument("Statement::append_from_token");
key(k, s),
args_size(0)
{
- for(string::const_iterator i=key.signature.begin(); i!=key.signature.end(); ++i)
+ for(char c: key.signature)
{
arg_offsets.push_back(args_size);
- switch(*i)
+ switch(c)
{
case IntType::signature:
args_size += sizeof(IntType::Store);