diff --git a/oscar64/Parser.cpp b/oscar64/Parser.cpp index 70e091a..fb300c2 100644 --- a/oscar64/Parser.cpp +++ b/oscar64/Parser.cpp @@ -11060,6 +11060,9 @@ bool Parser::IsIntegerToken(void) void Parser::ParsePragma(void) { + uint64 op = mCompilerOptions; + mCompilerOptions &= ~COPT_PETSCII; + if (mScanner->mToken == TK_IDENT) { if (!strcmp(mScanner->mTokenIdent->mString, "message")) @@ -11887,6 +11890,8 @@ void Parser::ParsePragma(void) } else mErrors->Error(mScanner->mLocation, EERR_SYNTAX, "Invalid pragma directive"); + + mCompilerOptions = op; } void Parser::ParseNamespace(void) diff --git a/oscar64/Scanner.cpp b/oscar64/Scanner.cpp index cb77039..d8bfa64 100644 --- a/oscar64/Scanner.cpp +++ b/oscar64/Scanner.cpp @@ -883,7 +883,6 @@ void Scanner::NextPreToken(void) uint64 op = mCompilerOptions; mCompilerOptions &= ~COPT_PETSCII; - NextRawToken(); NextRawToken(); if (mToken == TK_INTEGER)