diff options
author | Ash Wolf <ninji@wuffs.org> | 2023-06-14 00:50:34 +0100 |
---|---|---|
committer | Ash Wolf <ninji@wuffs.org> | 2023-06-14 00:50:34 +0100 |
commit | 37e364b2c6cc7487a1c888d256a73e5337bb7189 (patch) | |
tree | eaf6e857382eef16c2dd940eb4125536fbe068bd /src/T2DLL/CTokenizer.h | |
download | t2win-37e364b2c6cc7487a1c888d256a73e5337bb7189.tar.gz t2win-37e364b2c6cc7487a1c888d256a73e5337bb7189.zip |
initial commit
Diffstat (limited to '')
-rw-r--r-- | src/T2DLL/CTokenizer.h | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/T2DLL/CTokenizer.h b/src/T2DLL/CTokenizer.h new file mode 100644 index 0000000..3ad28a5 --- /dev/null +++ b/src/T2DLL/CTokenizer.h @@ -0,0 +1,33 @@ +#pragma once +#include "common.h" + +class DLL_EXPORT CTokenizer { +public: + CTokenizer(char *str, const char *newLineChars = NULL, const char *spaceChars = NULL); + virtual ~CTokenizer(); + CTokenizer& operator=(char *str); + + const char* Current() const { + return mCurrent; + } + + const char* NextString(const char *delim = NULL) { + return NextToken(delim ? delim : mNewLineChars); + } + + const char* NextWord(const char *delim = NULL) { + return NextToken(delim ? delim : mSpaceChars); + } + + int NextInteger(const char *delim = NULL) { + return atoi(NextToken(delim ? delim : mSpaceChars)); + } + +protected: + const char* NextToken(const char *delim); + + char *mNext; + char *mCurrent; + const char *mNewLineChars; + const char *mSpaceChars; +}; |