tge/engine/core/tokenizer.h
2017-04-17 06:17:10 -06:00

67 lines
1.5 KiB
C++
Executable File

//-----------------------------------------------------------------------------
// Torque Game Engine
// Copyright (C) GarageGames.com, Inc.
//-----------------------------------------------------------------------------
#ifndef _TOKENIZER_H_
#define _TOKENIZER_H_
//Includes
#ifndef _PLATFORM_H_
#include "platform/platform.h"
#endif
#include "core/stream.h"
class SizedStream;
class Tokenizer
{
public:
enum {
MaxTokenSize = 1023
};
private:
char mFileName[1024];
char* mpBuffer;
U32 mBufferSize;
U32 mCurrPos;
U32 mCurrLine;
U32 mPrevPos;
U32 mStartPos;
char mCurrTokenBuffer[MaxTokenSize + 1];
bool mTokenIsCurrent;
public:
Tokenizer();
~Tokenizer();
bool openFile(const char* pFileName);
bool openFile(Stream* pStream);
bool advanceToken(const bool crossLine, const bool assertAvailable = false);
bool regressToken(const bool crossLine);
bool tokenAvailable();
const char* getToken() const;
bool tokenICmp(const char* pCmp) const;
bool findToken(const char* pCmp);
bool findToken(U32 start, const char* pCmp);
const char* getFileName() const { return mFileName; }
U32 getCurrentLine() const { return mCurrLine; }
U32 getCurrentPos() const { return mCurrPos; }
bool setCurrentPos(U32 pos);
bool reset();
bool endOfFile();
};
#endif //_TOKENIZER_H_