Class Sass::SCSS::StaticParser
In: lib/sass/scss/static_parser.rb
Parent: Parser
Haml::Util Engine Color SyntaxError UnitConversionError StandardError AbstractSequence CommaSequence Sequence SimpleSequence Simple Parent Universal Class Negation Id Pseudo Attribute Interpolation Element Node Operation Literal UnaryOperation StringInterpolation Funcall Variable Interpolation Lexer CssLexer Number String Bool Parser Parser CssParser EvaluationContext StaticParser SassParser CssParser Node DebugNode IfNode CommentNode ForNode PropNode MixinNode DirectiveNode VariableNode RootNode WarnNode ExtendNode RuleNode MixinDefNode WhileNode Enumerable ImportNode Merb::BootLoader MerbBootLoader Repl CSS Environment Rack StalenessChecker lib/sass/repl.rb lib/sass/css.rb lib/sass/environment.rb lib/sass/error.rb lib/sass/engine.rb lib/sass/selector/simple_sequence.rb lib/sass/selector/abstract_sequence.rb lib/sass/selector/sequence.rb lib/sass/selector/comma_sequence.rb lib/sass/selector/simple.rb lib/sass/selector.rb Selector lib/sass/script/css_parser.rb lib/sass/script/lexer.rb lib/sass/script/color.rb lib/sass/script/string.rb lib/sass/script/unary_operation.rb lib/sass/script/variable.rb lib/sass/script/funcall.rb lib/sass/script/string_interpolation.rb lib/sass/script/operation.rb lib/sass/script/bool.rb lib/sass/script/parser.rb lib/sass/script/node.rb lib/sass/script/literal.rb lib/sass/script/interpolation.rb lib/sass/script/css_lexer.rb lib/sass/script/number.rb lib/sass/script/functions.rb Functions Script lib/sass/scss/sass_parser.rb lib/sass/scss/static_parser.rb lib/sass/scss/parser.rb lib/sass/scss/css_parser.rb ScriptParser ScriptLexer RX SCSS Files Callbacks lib/sass/tree/while_node.rb lib/sass/tree/if_node.rb lib/sass/tree/mixin_def_node.rb lib/sass/tree/debug_node.rb lib/sass/tree/root_node.rb lib/sass/tree/for_node.rb lib/sass/tree/import_node.rb lib/sass/tree/prop_node.rb lib/sass/tree/node.rb lib/sass/tree/comment_node.rb lib/sass/tree/extend_node.rb lib/sass/tree/mixin_node.rb lib/sass/tree/warn_node.rb lib/sass/tree/directive_node.rb lib/sass/tree/rule_node.rb lib/sass/tree/variable_node.rb Tree lib/sass/plugin/rack.rb lib/sass/plugin/staleness_checker.rb lib/sass/plugin/merb.rb Plugin Sass dot/m_61_0.png

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.

Methods

Public Instance methods

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

[Source]

    # File lib/sass/scss/static_parser.rb, line 18
18:       def parse_selector(filename)
19:         init_scanner!
20:         selectors = [expr!(:_selector)]
21:         while tok(/,/)
22:           ws = str{ss}
23:           selectors << expr!(:_selector)
24:           selectors[-1] = Selector::Sequence.new(["\n"] + selectors.last.members) if ws.include?("\n")
25:         end
26:         expected("selector") unless @scanner.eos?
27:         seq = Selector::CommaSequence.new(selectors)
28:         seq.line = @line
29:         seq.filename = filename
30:         seq
31:       end

Private Instance methods

[Source]

    # File lib/sass/scss/static_parser.rb, line 39
39:       def interp_ident(ident = IDENT); s = tok(ident) and [s]; end

[Source]

    # File lib/sass/scss/static_parser.rb, line 38
38:       def interp_string; s = tok(STRING) and [s]; end

[Source]

    # File lib/sass/scss/static_parser.rb, line 37
37:       def interpolation; nil; end

[Source]

    # File lib/sass/scss/static_parser.rb, line 36
36:       def script_value; nil; end

[Source]

    # File lib/sass/scss/static_parser.rb, line 42
42:       def special_directive(name)
43:         return unless name == 'media' || name == 'import'
44:         super
45:       end

[Source]

    # File lib/sass/scss/static_parser.rb, line 40
40:       def use_css_import?; true; end

[Source]

    # File lib/sass/scss/static_parser.rb, line 35
35:       def variable; nil; end

[Validate]