#ifndef APPLESOFTFILE_H #define APPLESOFTFILE_H #include #include #include #include #include "genericfile.h" #include "applesofttoken.h" struct ApplesoftLine { qint16 address; quint16 next_address; quint16 linenum; QVector tokens; // QString detokenized_line; }; class ApplesoftFile : public GenericFile { public: ApplesoftFile(QByteArray data = QByteArray()); void setData(QByteArray data); void setFilename(QString filename) { m_filename = filename; } QByteArray extraData(); // QList detokenized() { return m_detokenized; } QStringList extraDataHexValues(); QVector getLines() const { return m_lines; } QString filename() const { return m_filename; } private: void parse(quint16 start_address = 0x0801); QVector m_lines; int m_data_end; quint16 m_length; QString m_filename; // QList m_detokenized; friend class Retokenizer; }; class Retokenizer { public: static void retokenize(ApplesoftLine &line); private: QByteArray retokenizePart(QByteArray part); }; #endif // APPLESOFTFILE_H