public override Value ReadStartValue(CssLexer lexer) { // Read off the at: lexer.Read(); // Read the name now: string name = lexer.ReadString(); // Skip any junk: lexer.SkipJunk(); // Map to an at rule: CssAtRule rule = CssAtRules.GetLocal(name); if (rule == null) { // Unrecognised - enter error recovery mode: lexer.ErrorRecovery(); // Done: return(null); } // Create the representitive unit: AtRuleUnit at = new AtRuleUnit(); at.AtRule = rule; // Now in @ mode: rule.SetupParsing(lexer); return(at); }
public override Value ReadStartValue(CssLexer lexer) { // Skip the hash: lexer.Read(); if (lexer.SelectorMode) { // Just a hash (ID selector): return(new TextUnit("#")); } // Read the hex string now: string hex = lexer.ReadString(); ColourUnit result = new ColourUnit(); result.SetHex(hex); return(result); }