internal SelectorConstructor GetSelectorCreator() { var attributeSelector = AttributeSelectorFactory.Instance; var pseudoClassSelector = PseudoClassSelectorFactory.Instance; var pseudoElementSelector = PseudoElementSelectorFactory.Instance; return(Pool.NewSelectorConstructor(attributeSelector, pseudoClassSelector, pseudoElementSelector)); }
/// <summary> /// Creates a new CSS parser instance parser with the specified stylesheet /// based on the given source manager. /// </summary> /// <param name="stylesheet">The stylesheet to be constructed.</param> /// <param name="source">The source to use.</param> internal CssParser(StylesheetReader reader) { selector = Pool.NewSelectorConstructor(); sync = new Object(); skipExceptions = true; tokenizer = new Lexer(reader); started = false; function = new Stack <FunctionBuffer>(); sheet = stylesheet; open = new Stack <CSSRule>(); SwitchTo(CssState.Data); }
/// <summary> /// Takes a string and transforms it into a selector object. /// </summary> /// <param name="selector">The string to parse.</param> /// <returns>The Selector object.</returns> public static Selector ParseSelector(String selector) { var tokenizer = new CssTokenizer(new SourceManager(selector)); var tokens = tokenizer.Tokens; var selctor = Pool.NewSelectorConstructor(); foreach (var token in tokens) { selctor.Apply(token); } var result = selctor.Result; selctor.ToPool(); return(result); }
private SelectorConstructor CreateChild() { return(Pool.NewSelectorConstructor(_attributeSelector, _pseudoClassSelector, _pseudoElementSelector, preserveComments)); }