예제 #1
0
        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);
        }
예제 #2
0
        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;
        }