protected override bool ParseSelectorToken(IItemFactory itemFactory, ITextProvider text, ITokenStream stream) { if (stream.Current.Type == TokenType.OpenBrace) { OpenBrace = Children.AddCurrentAndAdvance(stream, SassClassifierType.SquareBrace); if (stream.Current.Type == TokenType.Identifier) Attribute = Children.AddCurrentAndAdvance(stream); if (IsAttributeOperator(stream.Current.Type)) Operator = Children.AddCurrentAndAdvance(stream); if (stream.Current.Type == TokenType.String || stream.Current.Type == TokenType.BadString) { Value = itemFactory.CreateSpecificParsed<StringValue>(this, text, stream); if (Value != null) Children.Add(Value); } else if (stream.Current.Type == TokenType.Identifier) { Value = Children.AddCurrentAndAdvance(stream, SassClassifierType.String); } if (stream.Current.Type == TokenType.CloseBrace) CloseBrace = Children.AddCurrentAndAdvance(stream, SassClassifierType.SquareBrace); } return Children.Count > 0; }
protected override void ParseImport(IItemFactory itemFactory, ITextProvider text, ITokenStream stream) { if (stream.Current.Type == TokenType.String || stream.Current.Type == TokenType.BadString) { Filename = itemFactory.CreateSpecificParsed<StringValue>(this, text, stream); if (Filename != null) Children.Add(Filename); } else if (UrlItem.IsUrl(text, stream.Current)) { var url = new UrlItem(); if (url.Parse(itemFactory, text, stream)) { Url = url; Children.Add(url); } } while (!IsTerminator(stream.Current.Type)) { var query = new MediaQuery(); if (!query.Parse(itemFactory, text, stream)) break; _MediaQueries.Add(query); Children.Add(query); } }
protected override void ParseImport(IItemFactory itemFactory, ITextProvider text, ITokenStream stream) { if (stream.Current.Type == TokenType.String || stream.Current.Type == TokenType.BadString) { Filename = itemFactory.CreateSpecificParsed <StringValue>(this, text, stream); if (Filename != null) { Children.Add(Filename); } } else if (UrlItem.IsUrl(text, stream.Current)) { var url = new UrlItem(); if (url.Parse(itemFactory, text, stream)) { Url = url; Children.Add(url); } } while (!IsTerminator(stream.Current.Type)) { var query = new MediaQuery(); if (!query.Parse(itemFactory, text, stream)) { break; } _MediaQueries.Add(query); Children.Add(query); } }
public override bool Parse(IItemFactory itemFactory, ITextProvider text, ITokenStream stream) { if (IsUrl(text, stream.Current)) { Function = Children.AddCurrentAndAdvance(stream, SassClassifierType.SystemFunction); if (stream.Current.Type == TokenType.OpenFunctionBrace) OpenBrace = Children.AddCurrentAndAdvance(stream, SassClassifierType.FunctionBrace); if ((stream.Current.Type == TokenType.String || stream.Current.Type == TokenType.BadString)) { Url = itemFactory.CreateSpecificParsed<StringValue>(this, text, stream); if (Url != null) Children.Add(Url); } else { // not using string, so just consume everything until close of url() while (!IsUrlTerminator(stream.Current.Type)) { Children.AddCurrentAndAdvance(stream, SassClassifierType.String); } } if (stream.Current.Type == TokenType.CloseFunctionBrace) CloseBrace = Children.AddCurrentAndAdvance(stream, SassClassifierType.FunctionBrace); } return Children.Count > 0; }
protected override void ParseDirective(IItemFactory itemFactory, ITextProvider text, ITokenStream stream) { switch (stream.Current.Type) { case TokenType.String: CharacterSet = itemFactory.CreateSpecificParsed<StringValue>(this, text, stream); if (CharacterSet != null) Children.Add(CharacterSet); break; case TokenType.Identifier: CharacterSet = Children.AddCurrentAndAdvance(stream); break; } }
public override bool Parse(IItemFactory itemFactory, ITextProvider text, ITokenStream stream) { if (stream.Current.Type == TokenType.Identifier) { Name = Children.AddCurrentAndAdvance(stream, SassClassifierType.XmlDocumentationTag); if (stream.Current.Type == TokenType.Equal) EqualSign = Children.AddCurrentAndAdvance(stream); if (stream.Current.Type == TokenType.String || stream.Current.Type == TokenType.BadString) Value = itemFactory.CreateSpecificParsed<StringValue>(this, text, stream); } return Children.Count > 0; }
public override bool Parse(IItemFactory itemFactory, ITextProvider text, ITokenStream stream) { if (stream.Current.Type == TokenType.String || stream.Current.Type == TokenType.BadString) { Filename = itemFactory.CreateSpecificParsed<StringValue>(this, text, stream); if (Filename != null) Children.Add(Filename); if (stream.Current.Type == TokenType.NewLine) Children.AddCurrentAndAdvance(stream); if (stream.Current.Type == TokenType.Comma) Comma = Children.AddCurrentAndAdvance(stream, SassClassifierType.Punctuation); } return Children.Count > 0; }
protected override void ParseDirective(IItemFactory itemFactory, ITextProvider text, ITokenStream stream) { switch (stream.Current.Type) { case TokenType.String: CharacterSet = itemFactory.CreateSpecificParsed <StringValue>(this, text, stream); if (CharacterSet != null) { Children.Add(CharacterSet); } break; case TokenType.Identifier: CharacterSet = Children.AddCurrentAndAdvance(stream); break; } }
public override bool Parse(IItemFactory itemFactory, ITextProvider text, ITokenStream stream) { if (stream.Current.Type == TokenType.Identifier) { Name = Children.AddCurrentAndAdvance(stream, SassClassifierType.XmlDocumentationTag); if (stream.Current.Type == TokenType.Equal) { EqualSign = Children.AddCurrentAndAdvance(stream); } if (stream.Current.Type == TokenType.String || stream.Current.Type == TokenType.BadString) { Value = itemFactory.CreateSpecificParsed <StringValue>(this, text, stream); } } return(Children.Count > 0); }
public override bool Parse(IItemFactory itemFactory, ITextProvider text, ITokenStream stream) { if (stream.Current.Type == TokenType.String || stream.Current.Type == TokenType.BadString) { Filename = itemFactory.CreateSpecificParsed <StringValue>(this, text, stream); if (Filename != null) { Children.Add(Filename); } if (stream.Current.Type == TokenType.NewLine) { Children.AddCurrentAndAdvance(stream); } if (stream.Current.Type == TokenType.Comma) { Comma = Children.AddCurrentAndAdvance(stream, SassClassifierType.Punctuation); } } return(Children.Count > 0); }
protected override bool ParseSelectorToken(IItemFactory itemFactory, ITextProvider text, ITokenStream stream) { if (stream.Current.Type == TokenType.OpenBrace) { OpenBrace = Children.AddCurrentAndAdvance(stream, SassClassifierType.SquareBrace); if (stream.Current.Type == TokenType.Identifier) { Attribute = Children.AddCurrentAndAdvance(stream); } if (IsAttributeOperator(stream.Current.Type)) { Operator = Children.AddCurrentAndAdvance(stream); } if (stream.Current.Type == TokenType.String || stream.Current.Type == TokenType.BadString) { Value = itemFactory.CreateSpecificParsed <StringValue>(this, text, stream); if (Value != null) { Children.Add(Value); } } else if (stream.Current.Type == TokenType.Identifier) { Value = Children.AddCurrentAndAdvance(stream, SassClassifierType.String); } if (stream.Current.Type == TokenType.CloseBrace) { CloseBrace = Children.AddCurrentAndAdvance(stream, SassClassifierType.SquareBrace); } } return(Children.Count > 0); }
public override bool Parse(IItemFactory itemFactory, ITextProvider text, ITokenStream stream) { if (IsUrl(text, stream.Current)) { Function = Children.AddCurrentAndAdvance(stream, SassClassifierType.SystemFunction); if (stream.Current.Type == TokenType.OpenFunctionBrace) { OpenBrace = Children.AddCurrentAndAdvance(stream, SassClassifierType.FunctionBrace); } if ((stream.Current.Type == TokenType.String || stream.Current.Type == TokenType.BadString)) { Url = itemFactory.CreateSpecificParsed <StringValue>(this, text, stream); if (Url != null) { Children.Add(Url); } } else { // not using string, so just consume everything until close of url() while (!IsUrlTerminator(stream.Current.Type)) { Children.AddCurrentAndAdvance(stream, SassClassifierType.String); } } if (stream.Current.Type == TokenType.CloseFunctionBrace) { CloseBrace = Children.AddCurrentAndAdvance(stream, SassClassifierType.FunctionBrace); } } return(Children.Count > 0); }