29 public: |
29 public: |
30 enum { EndOfModel = -1 }; |
30 enum { EndOfModel = -1 }; |
31 Parser(QIODevice& device, QObject* parent = nullptr); |
31 Parser(QIODevice& device, QObject* parent = nullptr); |
32 LDHeader parseHeader(Winding& winding); |
32 LDHeader parseHeader(Winding& winding); |
33 void parseBody(Model::EditContext& editor); |
33 void parseBody(Model::EditContext& editor); |
34 static modelobjects::BaseObject* parseFromString(Model::EditContext& editor, |
34 static std::unique_ptr<modelobjects::BaseObject> parseFromString(QString line); |
35 const QString& line); |
|
36 private: |
35 private: |
37 enum HeaderParseResult {ParseSuccess, ParseFailure, StopParsing}; |
36 enum HeaderParseResult {ParseSuccess, ParseFailure, StopParsing}; |
38 QString readLine(); |
37 QString readLine(); |
39 HeaderParseResult parseHeaderLine(LDHeader& header, Winding& winding, const QString& line); |
38 HeaderParseResult parseHeaderLine(LDHeader& header, Winding& winding, const QString& line); |
40 QIODevice& device; |
39 QIODevice& device; |