protected override Value Clone() { SquareBracketUnit result = new SquareBracketUnit(); result.Value = Value; return(result); }
public override Value ReadStartValue(CssLexer lexer) { // Skip the [: lexer.Read(); // Note that we do not read off the close bracket. // This is so the lexer knows it's done reading the value // and can terminate accordingly. SquareBracketUnit block = new SquareBracketUnit(); // Create the value: ValueSet cValue = new ValueSet(); List <Css.Value> values = new List <Css.Value>(); // Keep reading single values until a ] is reached. while (lexer.Peek() != '\0') { // Skip junk: lexer.SkipJunk(); // Read the value: Css.Value value = lexer.ReadSingleValue(); if (value.Type == ValueType.Text) { if (value.Text == "]") { break; } } values.Add(value); } cValue.Count = values.Count; // Copy over: for (int i = 0; i < values.Count; i++) { cValue[i] = values[i]; } block.Value = cValue; return(block); }