Class: Sass::SCSS::Parser
- Inherits:
-
Object
- Object
- Sass::SCSS::Parser
- Includes:
- RX
- Defined in:
- .ruby-sass/lib/sass/scss/parser.rb
Overview
The parser for SCSS. It parses a string of code into a tree of Tree::Nodes.
Direct Known Subclasses
Direct Known Subclasses
Constant Summary
Constant Summary
Constants included from RX
RX::ANY, RX::CDC, RX::CDO, RX::COMMENT, RX::DASHMATCH, RX::DOMAIN, RX::ESCAPE, RX::FUNCTION, RX::GREATER, RX::H, RX::HASH, RX::HEXCOLOR, RX::IDENT, RX::IDENT_HYPHEN_INTERP, RX::IDENT_START, RX::IMPORTANT, RX::INCLUDES, RX::INTERP_START, RX::NAME, RX::NL, RX::NMCHAR, RX::NMSTART, RX::NONASCII, RX::NOT, RX::NUMBER, RX::OPTIONAL, RX::PERCENTAGE, RX::PLUS, RX::PREFIXMATCH, RX::RANGE, RX::S, RX::SINGLE_LINE_COMMENT, RX::STATIC_COMPONENT, RX::STATIC_SELECTOR, RX::STATIC_VALUE, RX::STRING, RX::STRING1, RX::STRING1_NOINTERP, RX::STRING2, RX::STRING2_NOINTERP, RX::STRING_NOINTERP, RX::SUBSTRINGMATCH, RX::SUFFIXMATCH, RX::TILDE, RX::UNICODE, RX::UNICODERANGE, RX::UNIT, RX::UNITLESS_NUMBER, RX::URI, RX::URL, RX::URLCHAR, RX::URL_PREFIX, RX::VARIABLE, RX::W
Class Attribute Summary (collapse)
Instance Attribute Summary (collapse)
-
#offset ⇒ Object
Expose for the SASS parser.
Instance Method Summary (collapse)
-
#initialize(str, filename, importer, line = 1, offset = 1) ⇒ Parser
constructor
A new instance of Parser.
-
#parse ⇒ Sass::Tree::RootNode
Parses an SCSS document.
-
#parse_at_root_query ⇒ Array<String, Sass::Script;:Tree::Node>
Parses an at-root query.
-
#parse_declaration_value ⇒ Array<String, Sass::Script;:Tree::Node>
Parses a custom property value.
-
#parse_interp_ident ⇒ Array<String, Sass::Script::Tree::Node>?
Parses an identifier with interpolation.
-
#parse_media_query_list ⇒ Sass::Media::QueryList
Parses a media query list.
-
#parse_supports_clause ⇒ Object
Parses a supports clause for an @import directive.
-
#parse_supports_condition ⇒ Sass::Supports::Condition
Parses a supports query condition.
Methods included from RX
escape_char, escape_ident, quote
Constructor Details
#initialize(str, filename, importer, line = 1, offset = 1) ⇒ Parser
Returns a new instance of Parser
24 25 26 27 28 29 30 31 32 33 |
# File '.ruby-sass/lib/sass/scss/parser.rb', line 24 def initialize(str, filename, importer, line = 1, offset = 1) @template = str @filename = filename @importer = importer @line = line @offset = offset @strs = [] @expected = nil @throw_error = false end |
Constructor Details
#initialize(str, filename, importer, line = 1, offset = 1) ⇒ Parser
Returns a new instance of Parser
24 25 26 27 28 29 30 31 32 33 |
# File '.ruby-sass/lib/sass/scss/parser.rb', line 24 def initialize(str, filename, importer, line = 1, offset = 1) @template = str @filename = filename @importer = importer @line = line @offset = offset @strs = [] @expected = nil @throw_error = false end |
Class Attribute Details
.sass_script_parser ⇒ Object
1128 1129 1130 |
# File '.ruby-sass/lib/sass/scss/parser.rb', line 1128 def sass_script_parser @sass_script_parser end |
Instance Attribute Details
#offset ⇒ Object
Expose for the SASS parser.
10 11 12 |
# File '.ruby-sass/lib/sass/scss/parser.rb', line 10 def offset @offset end |
Instance Method Details
#parse ⇒ Sass::Tree::RootNode
Parses an SCSS document.
39 40 41 42 43 44 |
# File '.ruby-sass/lib/sass/scss/parser.rb', line 39 def parse init_scanner! root = stylesheet expected("selector or at-rule") unless root && @scanner.eos? root end |
#parse_at_root_query ⇒ Array<String, Sass::Script;:Tree::Node>
Parses an at-root query.
83 84 85 86 87 88 |
# File '.ruby-sass/lib/sass/scss/parser.rb', line 83 def parse_at_root_query init_scanner! query = at_root_query expected("@at-root query list") unless query && @scanner.eos? query end |
#parse_declaration_value ⇒ Array<String, Sass::Script;:Tree::Node>
Parses a custom property value.
107 108 109 110 111 112 |
# File '.ruby-sass/lib/sass/scss/parser.rb', line 107 def parse_declaration_value init_scanner! value = declaration_value expected('"}"') unless value && @scanner.eos? value end |
#parse_interp_ident ⇒ Array<String, Sass::Script::Tree::Node>?
Parses an identifier with interpolation. Note that this won't assert that the identifier takes up the entire input string; it's meant to be used with `StringScanner`s as part of other parsers.
52 53 54 55 |
# File '.ruby-sass/lib/sass/scss/parser.rb', line 52 def parse_interp_ident init_scanner! interp_ident end |
#parse_media_query_list ⇒ Sass::Media::QueryList
Parses a media query list.
71 72 73 74 75 76 |
# File '.ruby-sass/lib/sass/scss/parser.rb', line 71 def parse_media_query_list init_scanner! ql = media_query_list expected("media query list") unless ql && @scanner.eos? ql end |
#parse_supports_clause ⇒ Object
Parses a supports clause for an @import directive
58 59 60 61 62 63 64 |
# File '.ruby-sass/lib/sass/scss/parser.rb', line 58 def parse_supports_clause init_scanner! ss clause = supports_clause ss clause end |
#parse_supports_condition ⇒ Sass::Supports::Condition
Parses a supports query condition.
95 96 97 98 99 100 |
# File '.ruby-sass/lib/sass/scss/parser.rb', line 95 def parse_supports_condition init_scanner! condition = supports_condition expected("supports condition") unless condition && @scanner.eos? condition end |