/scalate-jruby/src/main/resources/haml-3.0.25/lib/sass/scss/css_parser.rb
http://github.com/scalate/scalate · Ruby · 46 lines · 32 code · 6 blank · 8 comment · 2 complexity · d92d2c53fb732caa80c3adf7e21f2c54 MD5 · raw file
- 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
- # Parse a selector, and return its value as a string.
- #
- # @return [String, nil] The parsed selector, or nil if no selector was parsed
- # @raise [Sass::SyntaxError] if there's a syntax error in the selector
- def parse_selector_string
- init_scanner!
- str {return unless selector}
- end
- private
- def parent_selector; nil; end
- def interpolation; nil; end
- def interp_string; tok(STRING); end
- def interp_ident(ident = IDENT); tok(ident); end
- def use_css_import?; true; end
- def block_child(context)
- case context
- when :ruleset
- declaration
- when :stylesheet
- directive || ruleset
- when :directive
- directive || declaration_or_ruleset
- end
- end
- def nested_properties!(node, space)
- expected('expression (e.g. 1px, bold)');
- end
- @sass_script_parser = Class.new(Sass::Script::CssParser)
- @sass_script_parser.send(:include, ScriptParser)
- end
- end
- end