Beispiel #1
0
        static CssImportRule NewImportRule(String cssText)
        {
            var parser = new CssParser();
            var rule   = new CssImportRule(parser);

            rule.CssText = cssText;
            return(rule);
        }
Beispiel #2
0
        public CssRule CreateImport(CssToken current)
        {
            var token = _tokenizer.Get();
            var rule  = new CssImportRule(_parser);

            if (token.Is(CssTokenType.String, CssTokenType.Url))
            {
                rule.Href = token.Data;
                token     = _tokenizer.Get();
                FillMediaList(rule.Media, CssTokenType.Semicolon, ref token);
            }

            _tokenizer.JumpToNextSemicolon();
            return(rule);
        }
Beispiel #3
0
        public CssRule CreateImport(CssToken current)
        {
            var rule  = new CssImportRule(_parser);
            var token = NextToken();

            CollectTrivia(ref token);

            if (token.Is(CssTokenType.String, CssTokenType.Url))
            {
                rule.Href = token.Data;
                token     = NextToken();
                CollectTrivia(ref token);
                FillMediaList(rule.Media, CssTokenType.Semicolon, ref token);
            }

            CollectTrivia(ref token);
            JumpToEnd(token);
            return(rule);
        }
        private CssImportRule CreateImport(CssImportRule rule, CssToken current)
        {
            var token = NextToken();

            CollectTrivia(ref token);

            if (token.Is(CssTokenType.String, CssTokenType.Url))
            {
                rule.Href = token.Data;
                token     = NextToken();
                CollectTrivia(ref token);
                var media = GetArgument(ref token);

                if (!String.IsNullOrEmpty(media))
                {
                    rule.Media.SetMediaText(media, throwOnError: false);
                }
            }

            CollectTrivia(ref token);
            JumpToEnd(ref token);
            return(rule);
        }
Beispiel #5
0
        public CssRule CreateImport(CssToken current)
        {
            var rule  = new CssImportRule(_parser);
            var start = current.Position;
            var token = NextToken();

            _nodes.Push(rule);
            CollectTrivia(ref token);

            if (token.Is(CssTokenType.String, CssTokenType.Url))
            {
                rule.Href = token.Data;
                token     = NextToken();
                CollectTrivia(ref token);
                FillMediaList(rule.Media, CssTokenType.Semicolon, ref token);
            }

            CollectTrivia(ref token);
            JumpToEnd(ref token);
            rule.SourceCode = CreateView(start, token.Position);
            _nodes.Pop();
            return(rule);
        }
        private ICssRule CreateAtRule(ICssStyleSheet sheet, CssToken token)
        {
            if (token.Data.Is(RuleNames.Media))
            {
                var rule = new CssMediaRule(sheet);
                return(CreateMedia(rule, token));
            }
            else if (token.Data.Is(RuleNames.FontFace))
            {
                var rule = new CssFontFaceRule(sheet);
                return(CreateFontFace(rule, token));
            }
            else if (token.Data.Is(RuleNames.Keyframes))
            {
                var rule = new CssKeyframesRule(sheet);
                return(CreateKeyframes(rule, token));
            }
            else if (token.Data.Is(RuleNames.Import))
            {
                var rule = new CssImportRule(sheet);
                return(CreateImport(rule, token));
            }
            else if (token.Data.Is(RuleNames.Charset))
            {
                var rule = new CssCharsetRule(sheet);
                return(CreateCharset(rule, token));
            }
            else if (token.Data.Is(RuleNames.Namespace))
            {
                var rule = new CssNamespaceRule(sheet);
                return(CreateNamespace(rule, token));
            }
            else if (token.Data.Is(RuleNames.Page))
            {
                var rule = new CssPageRule(sheet);
                return(CreatePage(rule, token));
            }
            else if (token.Data.Is(RuleNames.Supports))
            {
                var rule = new CssSupportsRule(sheet);
                return(CreateSupports(rule, token));
            }
            else if (token.Data.Is(RuleNames.ViewPort))
            {
                var rule = new CssViewportRule(sheet);
                return(CreateViewport(rule, token));
            }
            else if (token.Data.Is(RuleNames.Document))
            {
                var rule = new CssDocumentRule(sheet);
                return(CreateDocument(rule, token));
            }
            else if (_options.IsIncludingUnknownRules)
            {
                return(CreateUnknownAtRule(sheet, token));
            }

            RaiseErrorOccurred(CssParseError.UnknownAtRule, token.Position);
            JumpToRuleEnd(ref token);
            return(null);
        }