1 // =================================
 2 // Copyright (c) 2024 Seppo Laakko
 3 // Distributed under the MIT license
 4 // =================================
 5 
 6 using System;
 7 
 8 namespace System.Xml
 9 {
10     public class EntityReference : CharacterData
11     {
12         public EntityReference(const System.Lex.Span& span_int fileIndex_) : base(NodeKind.entityReferenceNodespan_fileIndex_"entity_reference")
13         {
14         }
15         public EntityReference(const System.Lex.Span& span_int fileIndex_const string& entityReference_) : 
16             base(NodeKind.entityReferenceNodespan_fileIndex_"entity_reference"entityReference_)
17         {
18         }
19         public override void Accept(Visitor& visitor)
20         {
21             visitor.Visit(*this);
22         }
23         [nodiscard]
24         public override Result<bool> Write(System.Text.CodeFormatter& formatter)
25         {
26             if (formatter.Error())
27             {
28                 return Result<bool>(ErrorId(formatter.GetErrorId()));
29             }
30             formatter << "&" << Data() << ";";
31             return Result<bool>(true);
32         }
33         public override Node* Clone(bool deep) const
34         {
35             return new EntityReference(Span()FileIndex()Data());
36         }
37     }
38 
39     public EntityReference* MakeEntityReference(const string& entityReference)
40     {
41         return new EntityReference(System.Lex.Span()-1entityReference);
42     }
43 }