33 using System.Collections.Generic;
40 private readonly List<CodeElement> declarations =
new List<CodeElement>();
41 private readonly List<CodeElement> innerElements =
new List<CodeElement>();
42 private bool increaseLevel =
true;
46 get {
return this.declarations; }
51 get {
return this.innerElements; }
56 get {
return this.increaseLevel; }
57 set { this.increaseLevel = value; }
64 if ((spacerElements == null) || (spacerElements.Length == 0))
66 this.innerElements.AddRange(elements);
70 bool spacerAdded =
false;
74 this.innerElements.Add(element);
75 this.innerElements.AddRange(spacerElements);
82 this.innerElements.RemoveRange(this.innerElements.Count - spacerElements.Length, spacerElements.Length);
92 this.innerElements.Add(element);
110 if (declaration != null)
112 this.declarations.Add(declaration);
120 if (this.increaseLevel)
123 if (this.declarations.Count > 0)
133 foreach (
CodeElement element
in this.innerElements)
Code AddCodeFormat(string codeFormat, params object[] args)
CodeElement AddDeclaration(CodeElement declaration)
Code AddCode(string code)
void AddElements(IList< CodeElement > elements, params CodeElement[] spacerElements)
static readonly EmptyLine SingleLine
virtual void GenerateCode(int level, CGenerator generator)
List< CodeElement > Declarations
override void GenerateCode(int level, CGenerator generator)
List< CodeElement > InnerElements
CodeElement AddElement(CodeElement element)
override void GenerateCode(int level, CGenerator generator)