예제 #1
0
        protected override void ParseArgument(ItemFactory itemFactory, ITextProvider text, TokenStream tokens)
        {
            SimpleSelector simpleSelector = itemFactory.CreateSpecific <SimpleSelector>(this);

            if (simpleSelector.ParseInFunction(itemFactory, text, tokens))
            {
                Selector = simpleSelector;
                ArgumentItems.Add(Selector);
                Children.Add(Selector);
            }

            if (tokens.CurrentToken.TokenType != CssTokenType.Comma &&
                tokens.CurrentToken.TokenType != CssTokenType.CloseFunctionBrace)
            {
                Children.AddParseError(ParseErrorType.FunctionArgumentCommaMissing);
            }
        }
        protected virtual void ParseArgument(ItemFactory itemFactory, ITextProvider text, TokenStream tokens)
        {
            while (!tokens.CurrentToken.IsFunctionArgumentTerminator())
            {
                ParseItem pi = PropertyValueHelpers.ParsePropertyValue(this, itemFactory, text, tokens);

                if (pi != null)
                {
                    ArgumentItems.Add(pi);
                    Children.Add(pi);
                }
                else
                {
                    // An unknown item is not an error
                    pi = Children.AddUnknownAndAdvance(itemFactory, text, tokens);
                    ArgumentItems.Add(pi);
                }
            }
        }