public CssRule CreateSupports(CssToken current) { var token = _tokenizer.Get(); var rule = new CssSupportsRule(_parser); rule.Condition = CreateCondition(ref token); if (token.Type != CssTokenType.CurlyBracketOpen) { return(SkipDeclarations(token)); } FillRules(rule); return(rule); }
public CssRule CreateSupports(CssToken current) { var rule = new CssSupportsRule(_parser); var token = NextToken(); CollectTrivia(ref token); rule.Condition = AggregateCondition(ref token); CollectTrivia(ref token); if (token.Type != CssTokenType.CurlyBracketOpen) { return(SkipDeclarations(token)); } FillRules(rule); return(rule); }
private CssSupportsRule CreateSupports(CssSupportsRule rule, CssToken current) { var token = NextToken(); CollectTrivia(ref token); var conditions = GetArgument(ref token); var result = rule.SetConditionText(conditions, throwOnError: false); CollectTrivia(ref token); if (token.Type != CssTokenType.CurlyBracketOpen) { SkipDeclarations(token); } else if (FillRules(rule) && result) { return(rule); } return(null); }
public CssRule CreateSupports(CssToken current) { var rule = new CssSupportsRule(_parser); var start = current.Position; var token = NextToken(); _nodes.Push(rule); CollectTrivia(ref token); rule.Condition = AggregateCondition(ref token); CollectTrivia(ref token); if (token.Type == CssTokenType.CurlyBracketOpen) { var end = FillRules(rule); rule.SourceCode = CreateView(start, end); _nodes.Pop(); return(rule); } _nodes.Pop(); return(SkipDeclarations(token)); }
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); }