diff --git a/ParserTools/ParserTools/DefaultLanguageInformation.cs b/ParserTools/ParserTools/DefaultLanguageInformation.cs index 35334467f..3f9da11be 100644 --- a/ParserTools/ParserTools/DefaultLanguageInformation.cs +++ b/ParserTools/ParserTools/DefaultLanguageInformation.cs @@ -483,7 +483,12 @@ namespace PascalABCCompiler.Parsers sb.Append('>'); return sb.ToString(); } - if (ctn.IsArray) return "array of " + GetFullTypeName(ctn.GetElementType()); + if (ctn.IsArray) + { + var rank = ctn.GetArrayRank(); + var strrank = rank > 1 ? "[" + new string(',', rank - 1) + "]" : ""; + return $"array{strrank}" + " of " + GetFullTypeName(ctn.GetElementType()); + } if (ctn == Type.GetType("System.Void*")) return "pointer"; if (ctn.IsNested) return ctn.Name; @@ -969,10 +974,15 @@ namespace PascalABCCompiler.Parsers } sb.Append('>');*/ return sb.ToString(); - } - if (ctn.IsArray) return "array of "+GetShortTypeName(ctn.GetElementType()); - //if (ctn == Type.GetType("System.Void*")) return PascalABCCompiler.TreeConverter.compiler_string_consts.pointer_type_name; - return ctn.Name; + } + if (ctn.IsArray) + { + var rank = ctn.GetArrayRank(); + var strrank = rank > 1 ? "[" + new string(',', rank - 1) + "]" : ""; + return $"array{strrank}" + " of " + GetFullTypeName(ctn.GetElementType()); + } + //if (ctn == Type.GetType("System.Void*")) return PascalABCCompiler.TreeConverter.compiler_string_consts.pointer_type_name; + return ctn.Name; } protected virtual string GetTopScopeName(IBaseScope sc)