#ifndef APPLESOFTRETOKENIZER_H #define APPLESOFTRETOKENIZER_H #include "applesoftline.h" #include #include #include #include class ApplesoftRetokenizer { public: ApplesoftRetokenizer(); void setData(QByteArray data); void parse(quint16 start_address = 0x0801); quint16 getEndOfDataOffset() const { return m_data_end; } QVector getRetokenizedLines() { return m_retokenized_lines; } QList > getFlowTargets() const { return m_flowTargets; } private: void retokenizeLinesForFormatting(); void retokenizeLine(ApplesoftLine &line); QVector retokenizeRems(QVector &datatokens); QVector retokenizeStrings(QVector &datatokens); QVector retokenizeDataStatements(QVector &datatokens); QVector retokenizeDataPayload(QVector &datatokens); QVector retokenizeVariables(QVector &datatokens); QVector retokenizeNumbers(QVector &datatokens); QVector retokenizeNegativeNumbers(QVector &datatokens); QVector m_retokenized_lines; QByteArray m_data; quint16 m_data_end; bool m_isParsed; QList > m_flowTargets; }; #endif // APPLESOFTRETOKENIZER_H