Browse Source

Fix for parsing implicit string keywords with no data, and special characters being appended to ternary values

Bepis 6 năm trước cách đây
mục cha
commit
fe9e50180b
1 tập tin đã thay đổi với 8 bổ sung2 xóa
  1. 8 2
      NTERA.Engine/Compiler/Parser.cs

+ 8 - 2
NTERA.Engine/Compiler/Parser.cs

@@ -913,7 +913,7 @@ namespace NTERA.Engine.Compiler
 			}
 			else
 			{
-				if (char.IsWhiteSpace(Lexer.CurrentChar))
+				if (char.IsWhiteSpace(Lexer.CurrentChar) && Lexer.CurrentChar != '\n')
 					Lexer.GetNextChar();
 			}
 
@@ -952,7 +952,10 @@ namespace NTERA.Engine.Compiler
 					if (Lexer.CurrentChar == '@')
 					{
 						if (nestedTernary)
+						{
+							Lexer.GetNextChar();
 							break;
+						}
 
 						var expressionValue = Expression(out error, true, true);
 						if (error != null)
@@ -963,8 +966,11 @@ namespace NTERA.Engine.Compiler
 						value = value == null
 							? expressionValue
 							: OperateNodes(value, expressionValue, Token.Plus);
+
+						continue;
 					}
-					else if (Lexer.CurrentChar == 'n')
+
+					if (Lexer.CurrentChar == 'n')
 					{
 						currentBlock.Append('\n');