using System; using System.Collections.Generic; namespace AspClassic.Parser; /// /// A parse tree to represent a variable name. /// /// /// A variable name can have an array modifier after it (e.g. 'x(10) As Integer'). /// public sealed class VariableName : Name { private readonly SimpleName _Name; private readonly ArrayTypeName _ArrayType; /// /// The name. /// public SimpleName Name => _Name; /// /// The array modifier, if any. /// public ArrayTypeName ArrayType => _ArrayType; /// /// Constructs a new variable name parse tree. /// /// The name. /// The array modifier, if any. /// The location of the parse tree. public VariableName(SimpleName name, ArrayTypeName arrayType, Span span) : base(TreeType.VariableName, span) { if (name == null) { throw new ArgumentNullException("name"); } SetParent(name); SetParent(arrayType); _Name = name; _ArrayType = arrayType; } protected override void GetChildTrees(IList childList) { Tree.AddChild(childList, Name); Tree.AddChild(childList, ArrayType); } }