Ejemplo n.º 1
0
        internal SelectorConstructor GetSelectorCreator()
        {
            var attributeSelector     = AttributeSelectorFactory.Instance;
            var pseudoClassSelector   = PseudoClassSelectorFactory.Instance;
            var pseudoElementSelector = PseudoElementSelectorFactory.Instance;

            return(Pool.NewSelectorConstructor(attributeSelector, pseudoClassSelector, pseudoElementSelector));
        }
Ejemplo n.º 2
0
        /// <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);
        }
Ejemplo n.º 3
0
        /// <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);
        }
Ejemplo n.º 4
0
 private SelectorConstructor CreateChild()
 {
     return(Pool.NewSelectorConstructor(_attributeSelector, _pseudoClassSelector, _pseudoElementSelector, preserveComments));
 }