public ISassStylesheet Parse(IParsingRequest request) { var tokens = Tokenize(request); var stream = CreateTokenStream(tokens, new ParsingRequestExecutionContext(request)); var itemFactory = new ItemFactory(new DefaultSassItemFactory()); var stylesheet = new Stylesheet(); if (stylesheet.Parse(itemFactory, request.Text, stream) && !request.IsCancelled) { stylesheet.Freeze(); foreach (var import in stylesheet.Children.OfType <SassImportDirective>()) { import.ResolveImports(request.Text, request.Document, DocumentManager); } foreach (var reference in ResolveReferences(stylesheet)) { reference.ResolveImports(request.Text, request.Document, DocumentManager); } return(stylesheet); } return(null); }
public ISassStylesheet Parse(IParsingRequest request) { try { var parser = ParserFactory.Create(); return(parser.Parse(request)); } catch (Exception ex) { Logger.Log(ex, "Failed to parse document changes."); return(null); } }
public ISassStylesheet Parse(IParsingRequest request) { try { var parser = ParserFactory.Create(); return parser.Parse(request); } catch (Exception ex) { Logger.Log(ex, "Failed to parse document changes."); return null; } }
public ISassStylesheet Parse(IParsingRequest request) { var tokens = Tokenize(request); var stream = CreateTokenStream(tokens, new ParsingRequestExecutionContext(request)); var itemFactory = new ItemFactory(new DefaultSassItemFactory()); var stylesheet = new Stylesheet(); if (stylesheet.Parse(itemFactory, request.Text, stream) && !request.IsCancelled) { stylesheet.Freeze(); foreach (var import in stylesheet.Children.OfType<SassImportDirective>()) import.ResolveImports(request.Text, request.Document, DocumentManager); foreach (var reference in ResolveReferences(stylesheet)) reference.ResolveImports(request.Text, request.Document, DocumentManager); return stylesheet; } return null; }
public ParsingRequestExecutionContext(IParsingRequest request) { Request = request; }
private TokenList Tokenize(IParsingRequest request) { var stream = new TextStream(request.Text); return Lexer.Tokenize(stream, new ParsingRequestLexingContext(request)); }
public ParsingRequestLexingContext(IParsingRequest request) { Request = request; }
private TokenList Tokenize(IParsingRequest request) { var stream = new TextStream(request.Text); return(Lexer.Tokenize(stream, new ParsingRequestLexingContext(request))); }