44 lines
1.8 KiB
C++
44 lines
1.8 KiB
C++
#ifndef PRAGMAS_H
|
|
#define PRAGMAS_H
|
|
|
|
#include <string>
|
|
#include <map>
|
|
|
|
|
|
namespace Pragmas
|
|
{
|
|
enum PragmaResult {PragmaNotFound, PragmaError, PragmaFound};
|
|
|
|
using PragamFuncPtr = bool (*)(const std::string& input, int codeLineIndex, size_t foundPos);
|
|
struct Pragma
|
|
{
|
|
std::string _name;
|
|
PragamFuncPtr _func;
|
|
};
|
|
|
|
|
|
std::map<std::string, Pragma>& getPragmas(void);
|
|
|
|
|
|
bool initialise(void);
|
|
|
|
bool findPragma(std::string code, const std::string& pragma, size_t& foundPos);
|
|
PragmaResult handlePragmas(std::string& input, int codeLineIndex);
|
|
|
|
// Pragmas
|
|
bool CODEROMTYPE(const std::string& input, int codeLineIndex, size_t foundPos);
|
|
bool RUNTIMEPATH(const std::string& input, int codeLineIndex, size_t foundPos);
|
|
bool RUNTIMESTART(const std::string& input, int codeLineIndex, size_t foundPos);
|
|
bool USERCODESTART(const std::string& input, int codeLineIndex, size_t foundPos);
|
|
bool ARRAYSSTART(const std::string& input, int codeLineIndex, size_t foundPos);
|
|
bool STRINGSSTART(const std::string& input, int codeLineIndex, size_t foundPos);
|
|
bool STRINGWORKAREA(const std::string& input, int codeLineIndex, size_t foundPos);
|
|
bool TEMPVARSIZE(const std::string& input, int codeLineIndex, size_t foundPos);
|
|
bool CODEOPTIMISETYPE(const std::string& input, int codeLineIndex, size_t foundPos);
|
|
bool ARRAYINDICIESONE(const std::string& input, int codeLineIndex, size_t foundPos);
|
|
bool MAXNUMSPRITES(const std::string& input, int codeLineIndex, size_t foundPos);
|
|
bool SPRITESTRIPECHUNKS(const std::string& input, int codeLineIndex, size_t foundPos);
|
|
bool ENABLE6BITAUDIOEMU(const std::string& input, int codeLineIndex, size_t foundPos);
|
|
}
|
|
|
|
#endif |