From 7293f5c253e895048526a26c6999f4b363d9c9cc Mon Sep 17 00:00:00 2001 From: Brian Fiete Date: Sat, 26 Dec 2020 05:34:21 -0800 Subject: [PATCH] Fixed string interpolate token preceding character literal --- IDEHelper/Compiler/BfParser.cpp | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/IDEHelper/Compiler/BfParser.cpp b/IDEHelper/Compiler/BfParser.cpp index e2a5b0b1..e85f5b1f 100644 --- a/IDEHelper/Compiler/BfParser.cpp +++ b/IDEHelper/Compiler/BfParser.cpp @@ -2119,15 +2119,18 @@ void BfParser::NextToken(int endIdx, bool outerIsInterpolate) if (isInterpolate) { - auto interpolateExpr = mAlloc->Alloc(); - interpolateExpr->mString = mLiteral.mString; - interpolateExpr->mTriviaStart = mTriviaStart; - interpolateExpr->mSrcStart = mTokenStart; - interpolateExpr->mSrcEnd = mSrcIdx; - BfSizedArrayInitIndirect(interpolateExpr->mExpressions, interpolateExpressions, mAlloc); - mGeneratedNode = interpolateExpr; - mSyntaxToken = BfSyntaxToken_GeneratedNode; - mToken = BfToken_None; + if (mLiteral.mTypeCode == BfTypeCode_CharPtr) + { + auto interpolateExpr = mAlloc->Alloc(); + interpolateExpr->mString = mLiteral.mString; + interpolateExpr->mTriviaStart = mTriviaStart; + interpolateExpr->mSrcStart = mTokenStart; + interpolateExpr->mSrcEnd = mSrcIdx; + BfSizedArrayInitIndirect(interpolateExpr->mExpressions, interpolateExpressions, mAlloc); + mGeneratedNode = interpolateExpr; + mSyntaxToken = BfSyntaxToken_GeneratedNode; + mToken = BfToken_None; + } } return;