public void Visit(IVisitor visitor) { if (precedingWhitespace.Length > 0) { visitor.Whitespace(precedingWhitespace); } visitor.On(); if (onWhitespace.Length > 0) { visitor.Whitespace(onWhitespace); } if (charDesc.Length > 0) { visitor.CharDescription(charDesc); if (descWhitespace.Length > 0) { visitor.Whitespace(descWhitespace); } if (consumption != null) { visitor.Consumption(consumption.Value); if (trailingWhitespace.Length > 0) { visitor.Whitespace(trailingWhitespace); } } } if (followingInvalid.Length > 0) { visitor.InvalidText(followingInvalid); } }