Class: Sass::Script::Parser
Overview
The parser for SassScript. It parses a string of code into a tree of Nodes.
Class Method Summary collapse
-
.parse(str, line, offset, filename = nil) ⇒ Script::Node
Parses a SassScript expression.
Instance Method Summary collapse
-
#initialize(str, line, offset, filename = nil) ⇒ Parser
constructor
A new instance of Parser.
-
#parse ⇒ Script::Node
Parses a SassScript expression.
-
#parse_interpolated ⇒ Script::Node
Parses a SassScript expression within an interpolated segment (‘#{}`).
Constructor Details
Class Method Details
.parse(str, line, offset, filename = nil) ⇒ Script::Node
Parses a SassScript expression.
49 50 51 |
# File 'lib/sass/script/parser.rb', line 49 def self.parse(*args) new(*args).parse end |
Instance Method Details
#parse ⇒ Script::Node
Parses a SassScript expression.
37 38 39 40 41 |
# File 'lib/sass/script/parser.rb', line 37 def parse expr = assert_expr :expr raise Sass::SyntaxError.new("Unexpected #{@lexer.peek.type} token.") unless @lexer.done? expr end |
#parse_interpolated ⇒ Script::Node
Parses a SassScript expression within an interpolated segment (‘#{}`). This means that it stops when it comes across an unmatched `}`, which signals the end of an interpolated segment, it returns rather than throwing an error.
27 28 29 30 31 |
# File 'lib/sass/script/parser.rb', line 27 def parse_interpolated expr = assert_expr :expr assert_tok :end_interpolation expr end |