src/parser.cpp

changeset 4
68988ebc2a68
parent 3
55a55a9ec2c2
child 5
593a658cba8e
equal deleted inserted replaced
3:55a55a9ec2c2 4:68988ebc2a68
260 } 260 }
261 invertNext = false; 261 invertNext = false;
262 } 262 }
263 } 263 }
264 264
265 namespace
266 {
267 namespace regexes
268 {
269 static const QRegExp comment {R"(^\s*0\s*\/\/\s*(.+)$)"};
270 static const QRegExp metacommand {R"(^\s*0\s*(.+)$)"};
271 static const QRegExp edgeline
272 {
273 R"(^\s*2)" // starting 2-token
274 R"(\s+(\d+))" // colour
275 R"(((?:\s+[^\s]+){3}))" // 1st vertex
276 R"(((?:\s+[^\s]+){3}))" // 2nd vertex
277 R"(\s*$)" // end
278 };
279 static const QRegExp triangle
280 {
281 R"(^\s*3)" // starting 3-token
282 R"(\s+(\d+))" // colour
283 R"(((?:\s+[^\s]+){3}))" // 1st vertex
284 R"(((?:\s+[^\s]+){3}))" // 2nd vertex
285 R"(((?:\s+[^\s]+){3}))" // 3rd vertex
286 R"(\s*$)" // end
287 };
288 static const QRegExp quadrilateral
289 {
290 R"(^\s*4)" // starting 4-token
291 R"(\s+(\d+))" // colour
292 R"(((?:\s+[^\s]+){3}))" // 1st vertex
293 R"(((?:\s+[^\s]+){3}))" // 2nd vertex
294 R"(((?:\s+[^\s]+){3}))" // 3rd vertex
295 R"(((?:\s+[^\s]+){3}))" // 4th vertex
296 R"(\s*$)" // end
297 };
298 static const QRegExp conditionaledge
299 {
300 R"(^\s*5)" // starting 5-token
301 R"(\s+(\d+))" // colour
302 R"(((?:\s+[^\s]+){3}))" // 1st vertex
303 R"(((?:\s+[^\s]+){3}))" // 2nd vertex
304 R"(((?:\s+[^\s]+){3}))" // 1st control point
305 R"(((?:\s+[^\s]+){3}))" // 2nd control point
306 R"(\s*$)" // end
307 };
308 }
309 }
310
265 modelobjects::BaseObject* Parser::parseFromString( 311 modelobjects::BaseObject* Parser::parseFromString(
266 Model::EditContext& editor, 312 Model::EditContext& editor,
267 const QString& line) 313 const QString& line)
268 { 314 {
269 return editor.append<modelobjects::Comment>(line); 315 return editor.append<modelobjects::Comment>(line);

mercurial