1 // 2 // Copyright (c) 2010-2018 Antmicro 3 // 4 // This file is licensed under the MIT License. 5 // Full license text is available in 'licenses/MIT.txt'. 6 // 7 8 using System; 9 using System.Collections.Generic; 10 using Sprache; 11 12 namespace Antmicro.Renode.PlatformDescription 13 { 14 15 public sealed class DeclarationPlace 16 { DeclarationPlace()17 static DeclarationPlace() 18 { 19 BuiltinOrAlreadyRegistered = new DeclarationPlace(); 20 } 21 22 public static DeclarationPlace BuiltinOrAlreadyRegistered { get; private set; } 23 DeclarationPlace(Position position, string file)24 public DeclarationPlace(Position position, string file) 25 { 26 Position = position; 27 File = file; 28 } 29 DeclarationPlace()30 private DeclarationPlace() 31 { 32 } 33 GetFriendlyDescription()34 public string GetFriendlyDescription() 35 { 36 if(this == BuiltinOrAlreadyRegistered) 37 { 38 return "builtin"; 39 } 40 return string.Format("at {2}{0}:{1}", Position.Line, Position.Column, File == "" ? "" : File + ':'); 41 } 42 ToString()43 public override string ToString() 44 { 45 return string.Format("[DeclarationPlace: Position={0}, File={1}]", Position, File); 46 } 47 48 public Position Position { get; private set; } 49 public string File { get; private set; } 50 } 51 52 } 53