class Sass::SCSS::StaticParser

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.

Public Instance Methods

parse_selector() click to toggle source

Parses the text as a selector.

@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

# File lib/sass/scss/static_parser.rb, line 18
def parse_selector
  init_scanner!
  seq = expr!(:selector_comma_sequence)
  expected("selector") unless @scanner.eos?
  seq.line = @line
  seq.filename = @filename
  seq
end
parse_static_at_root_query() click to toggle source

Parses a static at-root query.

@return [(Symbol, Array<String>)] The type of the query

(`:with` or `:without`) and the values that are being filtered.

@raise [Sass::SyntaxError] if there's a syntax error in the query,

or if it doesn't take up the entire input string.
# File lib/sass/scss/static_parser.rb, line 33
def parse_static_at_root_query
  init_scanner!
  tok!(/\(/); ss
  type = tok!(/\b(without|with)\b/).to_sym; ss
  tok!(/:/); ss
  directives = expr!(:at_root_directive_list); ss
  tok!(/\)/)
  expected("@at-root query list") unless @scanner.eos?
  return type, directives
end

Private Instance Methods

interp_ident(ident = IDENT) click to toggle source
# File lib/sass/scss/static_parser.rb, line 59
def interp_ident(ident = IDENT); (s = tok(ident)) && [s]; end
interp_string() click to toggle source
# File lib/sass/scss/static_parser.rb, line 57
def interp_string; (s = tok(STRING)) && [s]; end
interp_uri() click to toggle source
# File lib/sass/scss/static_parser.rb, line 58
def interp_uri; (s = tok(URI)) && [s]; end
interpolation() click to toggle source
# File lib/sass/scss/static_parser.rb, line 55
def interpolation; nil; end
moz_document_function() click to toggle source
# File lib/sass/scss/static_parser.rb, line 46
def moz_document_function
  val = tok(URI) || tok(URL_PREFIX) || tok(DOMAIN) || function(!:allow_var)
  return unless val
  ss
  [val]
end
script_value() click to toggle source
# File lib/sass/scss/static_parser.rb, line 54
def script_value; nil; end
special_directive(name, start_pos) click to toggle source
Calls superclass method Sass::SCSS::Parser#special_directive
# File lib/sass/scss/static_parser.rb, line 62
def special_directive(name, start_pos)
  return unless %w[media import charset -moz-document].include?(name)
  super
end
use_css_import?() click to toggle source
# File lib/sass/scss/static_parser.rb, line 60
def use_css_import?; true; end
var_expr() click to toggle source
# File lib/sass/scss/static_parser.rb, line 56
def var_expr; nil; end
variable() click to toggle source
# File lib/sass/scss/static_parser.rb, line 53
def variable; nil; end