//	BasicTokenizer.h

#ifndef _H_BasicTokenizer
#define _H_BasicTokenizer

#include "Utils.h"

#define		kBasBufSizeMultiplier		8L

void	DeTokenizeBasic(
	char	*i_fileBufP,	ulong	*fileBufIndexSP, 
	ushort	maxTokensS,		ushort	fileBufSizeS,
	Boolean	*new_lineBP, 
	char	*i_basBufP,		ushort 	*basBufCharsSP);

void	DeTokenizeInt(
	char	*inBufZ,		ushort	inBufSizeS,
	char	*outBufZ,		ushort 	*outBufSizeSP);

class	CDetokenizeInt;

extern	CDetokenizeInt		*gTokenizerP;
Boolean						SetUpTokenizer(void);

class CDetokenizeInt {
	public:
	void	IDetokenizeInt(void);
	void	Dispose(void);
	
	void	Reset(void);

	char	*Decode(Byte tokenByte, char *buf);

	ushort		i_lineNumber;
	ushort		i_statementState;
	ushort		i_doNumber;
	short 		i_constant;
	Boolean 	i_endOfProgramB;
	Boolean 	i_quoteActiveB;
	Boolean 	i_remActiveB;
	Boolean 	i_lastWasKeyWordB;
};

#endif