This commit is contained in:
Mikhalkovich Stanislav 2021-04-24 08:52:13 +03:00
parent f7b8ca6857
commit 46c439e99e
11 changed files with 20 additions and 12 deletions

View file

@ -15,7 +15,7 @@ internal static class RevisionClass
public const string Major = "3"; public const string Major = "3";
public const string Minor = "8"; public const string Minor = "8";
public const string Build = "0"; public const string Build = "0";
public const string Revision = "2891"; public const string Revision = "2892";
public const string MainVersion = Major + "." + Minor; public const string MainVersion = Major + "." + Minor;
public const string FullVersion = Major + "." + Minor + "." + Build + "." + Revision; public const string FullVersion = Major + "." + Minor + "." + Build + "." + Revision;

View file

@ -1,4 +1,4 @@
%MINOR%=8
%REVISION%=2891
%COREVERSION%=0 %COREVERSION%=0
%REVISION%=2892
%MINOR%=8
%MAJOR%=3 %MAJOR%=3

View file

@ -1,9 +1,9 @@
// //
// This CSharp output file generated by Gardens Point LEX // This CSharp output file generated by Gardens Point LEX
// Version: 1.1.3.301 // Version: 1.1.3.301
// Machine: DESKTOP-2BJCJ7I // Machine: DESKTOP-G8V08V4
// DateTime: 05.04.2021 12:23:25 // DateTime: 24.04.2021 8:44:33
// UserName: ibond // UserName: ?????????
// GPLEX input file <ABCPascal.lex> // GPLEX input file <ABCPascal.lex>
// GPLEX frame file <embedded resource> // GPLEX frame file <embedded resource>
// //

View file

@ -446,6 +446,7 @@ namespace PascalABCSavParser
literal lt; literal lt;
text = ReplaceSpecialSymbols(text.Substring(2, text.Length - 3)); text = ReplaceSpecialSymbols(text.Substring(2, text.Length - 3));
lt = new string_const(text); lt = new string_const(text);
(lt as string_const).IsInterpolated = true;
lt.source_context = sc; lt.source_context = sc;
return lt; return lt;
} }

View file

@ -1,9 +1,9 @@
// (see accompanying GPPGcopyright.rtf) // (see accompanying GPPGcopyright.rtf)
// GPPG version 1.3.6 // GPPG version 1.3.6
// Machine: DESKTOP-2BJCJ7I // Machine: DESKTOP-G8V08V4
// DateTime: 05.04.2021 12:23:26 // DateTime: 24.04.2021 8:44:33
// UserName: ibond // UserName: ?????????
// Input file <ABCPascal.y> // Input file <ABCPascal.y>
// options: no-lines gplex // options: no-lines gplex

View file

@ -327,6 +327,8 @@ script=

View file

@ -1 +1 @@
3.8.0.2891 3.8.0.2892

View file

@ -1 +1 @@
!define VERSION '3.8.0.2891' !define VERSION '3.8.0.2892'

View file

@ -627,6 +627,7 @@ namespace PascalABCCompiler.SyntaxTree
{ {
return "'" + Value + "'"; return "'" + Value + "'";
} }
public bool IsInterpolated = false;
} }
public partial class expression_list public partial class expression_list

4
TestSuite/S_literal.pas Normal file
View file

@ -0,0 +1,4 @@
begin
var a := $'d';
Assert(a.GetType = typeof(string));
end.

View file

@ -16409,7 +16409,7 @@ namespace PascalABCCompiler.TreeConverter
public override void visit(SyntaxTree.string_const _string_const) public override void visit(SyntaxTree.string_const _string_const)
{ {
expression_node en = null; expression_node en = null;
if (_string_const.Value.Length != 1) if (_string_const.Value.Length != 1 || _string_const.IsInterpolated)
{ {
en = new string_const_node(_string_const.Value, get_location(_string_const)); en = new string_const_node(_string_const.Value, get_location(_string_const));
if (SemanticRules.GenerateNativeCode && SemanticRules.StringType != null) if (SemanticRules.GenerateNativeCode && SemanticRules.StringType != null)