From e2f36bbb9a0a8ac60615fd20eadffa6c2128442e Mon Sep 17 00:00:00 2001 From: drmortalwombat <90205530+drmortalwombat@users.noreply.github.com> Date: Mon, 19 Feb 2024 14:19:15 +0100 Subject: [PATCH] Fix parse embed with hex skip or size setting --- oscar64/Scanner.cpp | 9 +++++++-- oscar64/Scanner.h | 2 ++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/oscar64/Scanner.cpp b/oscar64/Scanner.cpp index d8bfa64..8331ece 100644 --- a/oscar64/Scanner.cpp +++ b/oscar64/Scanner.cpp @@ -470,6 +470,11 @@ void Scanner::MarkSourceOnce(void) mOnceDict->Insert(macro); } +bool Scanner::IsIntegerToken(void) const +{ + return mToken == TK_INTEGER || mToken == TK_INTEGERU || mToken == TK_INTEGERL || mToken == TK_INTEGERUL; +} + void Scanner::NextToken(void) { if (mReplay) @@ -885,12 +890,12 @@ void Scanner::NextPreToken(void) mCompilerOptions &= ~COPT_PETSCII; NextRawToken(); - if (mToken == TK_INTEGER) + if (IsIntegerToken()) { limit = int(mTokenInteger); NextRawToken(); - if (mToken == TK_INTEGER) + if (IsIntegerToken()) { skip = int(mTokenInteger); NextRawToken(); diff --git a/oscar64/Scanner.h b/oscar64/Scanner.h index d75f826..1a15824 100644 --- a/oscar64/Scanner.h +++ b/oscar64/Scanner.h @@ -275,6 +275,8 @@ public: uint64 mCompilerOptions; + bool IsIntegerToken(void) const; + void AddMacro(const Ident* ident, const char* value); void MarkSourceOnce(void); protected: