ParserMode(i, s),
first(true)
{
- dict[1]=DictEntry("__kw", "iss");
+ dict[1]=DictEntry("__st", "iss");
dict[2]=DictEntry("__enum", "is");
}
while(1)
{
Statement st=parse_statement();
- if(st.keyword=="__kw")
+ if(st.keyword=="__st")
{
if(st.args.size()!=3)
throw TypeError(src+": Keyword definition must have three arguments");
result.args.push_back(parse_bool());
break;
case 'e':
- result.args.push_back(parse_enum());
+ result.args.push_back(Value(ENUM, parse_enum()));
break;
}
}
{
int c=in.get();
- result=result<<7 | c&0x7F;
+ result=(result<<7) | (c&0x7F);
bits+=7;
if(!(c&0x80))
};
#if BYTE_ORDER == LITTLE_ENDIAN
- for(unsigned i=sizeof(float)-1; i--;)
+ for(unsigned i=sizeof(float); i--;)
d[i]=in.get();
#else
for(unsigned i=0; i<sizeof(float); ++i)
unsigned id=parse_int();
EnumMap::iterator i=enums.find(id);
if(i==enums.end())
- throw KeyError("Unknown enum");
+ throw KeyError("Unknown enum", lexical_cast(id));
return i->second;
}