X-Git-Url: http://git.tdb.fi/?p=libs%2Fdatafile.git;a=blobdiff_plain;f=source%2Fbinaryparser.cpp;h=796a592d3e84d05a70e2e8316abdcccbe543f3bf;hp=fd918758294fd6c1d66ac497af5d5674d629c691;hb=6653c7d83dbe1fe81a541a125be8bb808b234eb7;hpb=01de40aa67599511f7843ab5b5aa24ec59a2768f diff --git a/source/binaryparser.cpp b/source/binaryparser.cpp index fd91875..796a592 100644 --- a/source/binaryparser.cpp +++ b/source/binaryparser.cpp @@ -32,11 +32,11 @@ BinaryParser::BinaryParser(Input &i, const string &s): dict[-3] = DictEntry("__flt", "i"); } -Statement BinaryParser::parse() +Statement BinaryParser::parse(bool raw) { while(1) { - Statement st = parse_statement(); + Statement st = parse_statement(raw); if(st.keyword=="__kwd") { int id = st.args[0].get(); @@ -64,10 +64,13 @@ Statement BinaryParser::parse() float_precision = st.args[0].get(); else return st; + + if(raw) + return st; } } -Statement BinaryParser::parse_statement() +Statement BinaryParser::parse_statement(bool raw) { while(first && in.peek()=='\n') in.get(); @@ -107,7 +110,7 @@ Statement BinaryParser::parse_statement() unsigned nsub = parse_int(); for(unsigned j = 0; j