ciderpress/reformat/BASIC.h

62 lines
1.8 KiB
C++

/*
* CiderPress
* Copyright (C) 2007, 2008 by faddenSoft, LLC. All Rights Reserved.
* See the file LICENSE for distribution terms.
*/
/*
* Reformat BASIC programs.
*/
#ifndef REFORMAT_BASIC_H
#define REFORMAT_BASIC_H
#include "ReformatBase.h"
/*
* Reformat an Applesoft BASIC program into readable text.
*/
class ReformatApplesoft : public ReformatText {
public:
ReformatApplesoft(void) {}
virtual ~ReformatApplesoft(void) {}
virtual void Examine(ReformatHolder* pHolder) override;
virtual int Process(const ReformatHolder* pHolder,
ReformatHolder::ReformatID id, ReformatHolder::ReformatPart part,
ReformatOutput* pOutput) override;
/* share our token list with others */
// TODO: this is a hack; find a better way to do this
enum { kTokenLen = 8, kTokenCount = 107 };
static const char* GetApplesoftTokens(void);
};
/*
* Reformat an Integer BASIC program into readable text.
*/
class ReformatInteger : public ReformatText {
public:
ReformatInteger(void) {}
virtual ~ReformatInteger(void) {}
virtual void Examine(ReformatHolder* pHolder) override;
virtual int Process(const ReformatHolder* pHolder,
ReformatHolder::ReformatID id, ReformatHolder::ReformatPart part,
ReformatOutput* pOutput) override;
};
/*
* Reformat an Apple /// Business BASIC program into readable text.
*/
class ReformatBusiness : public ReformatText {
public:
ReformatBusiness(void) {}
virtual ~ReformatBusiness(void) {}
virtual void Examine(ReformatHolder* pHolder) override;
virtual int Process(const ReformatHolder* pHolder,
ReformatHolder::ReformatID id, ReformatHolder::ReformatPart part,
ReformatOutput* pOutput) override;
};
#endif /*REFORMAT_BASIC_H*/