Sha256: 513a170401e3f7ba913f3802a3a8b7a098f4e93065025f5a267f75beaf0fd0a9
Contents?: true
Size: 1.61 KB
Versions: 89
Compression:
Stored size: 1.61 KB
Contents
module Sass module SCSS # A parser for a static SCSS tree. # Parses with SCSS extensions, like nested rules and parent selectors, # but without dynamic SassScript. # This is useful for e.g. \{#parse\_selector parsing selectors} # after resolving the interpolation. class StaticParser < Parser # Parses the text as a selector. # # @param line [Fixnum] The line on which the selector appears. # Used for error reporting # @param filename [String, nil] The file in which the selector appears, # or nil if there is no such file. # Used for error reporting # @return [Selector::CommaSequence] The parsed selector # @raise [Sass::SyntaxError] if there's a syntax error in the selector def parse_selector(filename) init_scanner! selectors = [expr!(:_selector)] while tok(/,/) ws = str{ss} selectors << expr!(:_selector) selectors[-1] = Selector::Sequence.new(["\n"] + selectors.last.members) if ws.include?("\n") end expected("selector") unless @scanner.eos? seq = Selector::CommaSequence.new(selectors) seq.line = @line seq.filename = filename seq end private def variable; nil; end def script_value; nil; end def interpolation; nil; end def interp_string; s = tok(STRING) and [s]; end def interp_ident(ident = IDENT); s = tok(ident) and [s]; end def use_css_import?; true; end def special_directive(name) return unless name == 'media' || name == 'import' super end end end end
Version data entries
89 entries across 89 versions & 2 rubygems