Changeset 7:f227a74db59d in glemon for xml.h
Legend:
- Unmodified
- Added
- Removed
-
xml.h
r1 r7 26 26 #include <map> 27 27 #include <lemon/error.h> 28 #include <lemon/assert.h> 28 29 #include <lemon/dim2.h> 29 30 … … 75 76 if(level>=0) indent(level); 76 77 else level=0; 77 else throw LogicError();78 else LEMON_ASSERT(true, "Invalid indentation."); 78 79 } 79 80 … … 160 161 void skipWhiteSpaces() 161 162 { 162 if(write()) throw LogicError();163 if(write()) LEMON_ASSERT(true, "Can't skip whitespaces in write mode."); 163 164 { 164 165 char c; … … 181 182 void useTag(const std::string &_tag) { 182 183 if(nextTag()==_tag) useTag(); 183 else throw DataFormatError("",line_number,"Unexpected token name");184 else throw FormatError("Unexpected token name","",line_number); 184 185 } 185 186 public: … … 190 191 const std::string &nextTag() 191 192 { 192 if(write()) throw LogicError();193 if(write()) LEMON_ASSERT(true,"Don't use nextTag() in write mode"); 193 194 else if(next_tag.empty()) { 194 195 char c; 195 196 skipWhiteSpaces(); 196 197 if(!is.get(c) || c!='<') 197 throw DataFormatError("",line_number,"Bad format");198 throw FormatError("Bad format","",line_number); 198 199 next_tag.clear(); 199 200 while (is.get(c) && c!='>') next_tag.push_back(c); 200 201 if(c!='>') 201 throw DataFormatError("",line_number,"Bad format");202 throw FormatError("Bad format","",line_number); 202 203 } 203 204 return next_tag; … … 230 231 skipWhiteSpaces(); 231 232 if(!(is >> const_cast<int &>(v))) 232 throw DataFormatError("",line_number,"Not an 'int'");233 throw FormatError("Not an 'int'","",line_number); 233 234 } 234 235 return *this; … … 240 241 skipWhiteSpaces(); 241 242 if(!(is >> const_cast<double &>(v))) 242 throw DataFormatError("",line_number,"Not an 'double'");243 throw FormatError("Not an 'double'","",line_number); 243 244 } 244 245 return *this; … … 272 273 if(c=='\\') 273 274 if(!is.get(c)) 274 throw DataFormatError("",line_number,"Bad string");275 throw FormatError("Bad string","",line_number); 275 276 else switch(c) { 276 277 case 'n': … … 286 287 } 287 288 if(c!='<') 288 throw DataFormatError("",line_number,"Unexpected eof");289 throw FormatError("Unexpected eof","",line_number); 289 290 is.unget(); 290 291 } … … 426 427 /// 427 428 template<class T> 428 void xml(XmlIo &x,lemon::dim2::Bo undingBox<T> &v)429 void xml(XmlIo &x,lemon::dim2::Box<T> &v) 429 430 { 430 431 if(x.write()) {
Note: See TracChangeset
for help on using the changeset viewer.