Sha256: 3bdee0fa4cc4fd741f9af19e2f6279c1b1b306affd2d7384c4f8a0f58d5f7020

Contents?: true

Size: 1.62 KB

Versions: 44

Compression:

Stored size: 1.62 KB

Contents

require 'sass/script/css_parser'

module Sass
  module SCSS
    # This is a subclass of {Parser} which only parses plain CSS.
    # It doesn't support any Sass extensions, such as interpolation,
    # parent references, nested selectors, and so forth.
    # It does support all the same CSS hacks as the SCSS parser, though.
    class CssParser < StaticParser
      private

      def placeholder_selector; nil; end
      def parent_selector; nil; end
      def interpolation(warn_for_color = false); nil; end
      def use_css_import?; true; end

      def block_contents(node, context)
        if node.is_a?(Sass::Tree::DirectiveNode) && node.normalized_name == '@keyframes'
          context = :keyframes
        end
        super(node, context)
      end

      def block_child(context)
        case context
        when :ruleset
          declaration
        when :stylesheet
          directive || ruleset
        when :directive
          directive || declaration_or_ruleset
        when :keyframes
          keyframes_ruleset
        end
      end

      def nested_properties!(node)
        expected('expression (e.g. 1px, bold)')
      end

      def ruleset
        start_pos = source_position
        return unless (selector = selector_comma_sequence)
        block(node(Sass::Tree::RuleNode.new(selector, range(start_pos)), start_pos), :ruleset)
      end

      def keyframes_ruleset
        start_pos = source_position
        return unless (selector = keyframes_selector)
        block(node(Sass::Tree::KeyframeRuleNode.new(selector.strip), start_pos), :ruleset)
      end

      @sass_script_parser = Sass::Script::CssParser
    end
  end
end

Version data entries

44 entries across 43 versions & 4 rubygems

Version Path
files.com-1.0.55 docs/vendor/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/scss/css_parser.rb
brakeman-4.4.0 bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/scss/css_parser.rb
sass-3.7.1 lib/sass/scss/css_parser.rb
sass-3.7.0 lib/sass/scss/css_parser.rb
sass-3.6.0 lib/sass/scss/css_parser.rb
sass-3.5.7 lib/sass/scss/css_parser.rb
brakeman-4.3.1 bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/scss/css_parser.rb
brakeman-4.3.0 bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/scss/css_parser.rb
brakeman-4.2.1 bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/scss/css_parser.rb
sass-3.5.6 lib/sass/scss/css_parser.rb
brakeman-4.2.0 bundle/ruby/2.3.0/gems/sass-3.4.25/lib/sass/scss/css_parser.rb
sass-3.5.5 lib/sass/scss/css_parser.rb
brakeman-4.1.1 bundle/ruby/2.3.0/gems/sass-3.4.25/lib/sass/scss/css_parser.rb
sass-3.5.4 lib/sass/scss/css_parser.rb
brakeman-4.1.0 bundle/ruby/2.3.0/gems/sass-3.4.25/lib/sass/scss/css_parser.rb
sass-3.5.3 lib/sass/scss/css_parser.rb
sass-3.5.2 lib/sass/scss/css_parser.rb
brakeman-4.0.1 bundle/ruby/2.3.0/gems/sass-3.4.25/lib/sass/scss/css_parser.rb
brakeman-4.0.1.pre1 bundle/ruby/2.3.0/gems/sass-3.4.25/lib/sass/scss/css_parser.rb
brakeman-4.0.0 bundle/ruby/2.3.0/gems/sass-3.4.25/lib/sass/scss/css_parser.rb