@@ -415,7 +415,13 @@ namespace Sass {
415
415
string name (Util::normalize_underscores (lexed));
416
416
ParserState var_source_position = pstate;
417
417
if (!lex< exactly<' :' > >()) error (" expected ':' after " + name + " in assignment statement" , pstate);
418
- Expression* val = parse_list ();
418
+ Expression* val;
419
+ Selector_Lookahead lookahead = lookahead_for_value (position);
420
+ if (lookahead.has_interpolants && lookahead.found ) {
421
+ val = parse_value_schema (lookahead.found );
422
+ } else {
423
+ val = parse_list ();
424
+ }
419
425
val->is_delayed (false );
420
426
bool is_default = false ;
421
427
bool is_global = false ;
@@ -1553,12 +1559,18 @@ namespace Sass {
1553
1559
else if (lex< hex >()) {
1554
1560
(*schema) << new (ctx.mem ) Textual (pstate, Textual::HEX, unquote (lexed));
1555
1561
}
1562
+ else if (lex < exactly < ' -' > >()) {
1563
+ (*schema) << new (ctx.mem ) String_Constant (pstate, lexed);
1564
+ }
1556
1565
else if (lex< quoted_string >()) {
1557
1566
(*schema) << new (ctx.mem ) String_Quoted (pstate, lexed);
1558
1567
}
1559
1568
else if (lex< variable >()) {
1560
1569
(*schema) << new (ctx.mem ) Variable (pstate, Util::normalize_underscores (lexed));
1561
1570
}
1571
+ else if (peek< parenthese_scope >()) {
1572
+ (*schema) << parse_factor ();
1573
+ }
1562
1574
else {
1563
1575
error (" error parsing interpolated value" , pstate);
1564
1576
}
@@ -2160,23 +2172,24 @@ namespace Sass {
2160
2172
(q = peek< percentage >(p)) ||
2161
2173
(q = peek< dimension >(p)) ||
2162
2174
(q = peek< quoted_string >(p)) ||
2163
- (q = peek< variable >(p)) ||
2175
+ (q = peek< variable >(p)) ||
2164
2176
(q = peek< exactly<' *' > >(p)) ||
2165
2177
(q = peek< exactly<' +' > >(p)) ||
2166
2178
(q = peek< exactly<' ~' > >(p)) ||
2167
2179
(q = peek< exactly<' >' > >(p)) ||
2168
2180
(q = peek< exactly<' ,' > >(p)) ||
2181
+ (q = peek< sequence<parenthese_scope, interpolant>>(p)) ||
2169
2182
(saw_stuff && (q = peek< exactly<' -' > >(p))) ||
2170
2183
(q = peek< binomial >(p)) ||
2171
2184
(q = peek< block_comment >(p)) ||
2172
2185
(q = peek< sequence< optional<sign>,
2173
2186
zero_plus<digit>,
2174
2187
exactly<' n' > > >(p)) ||
2175
2188
(q = peek< sequence< optional<sign>,
2176
- one_plus<digit> > >(p)) ||
2189
+ one_plus<digit> > >(p)) ||
2177
2190
(q = peek< number >(p)) ||
2178
2191
(q = peek< sequence< exactly<' &' >,
2179
- identifier_alnums > >(p)) ||
2192
+ identifier_alnums > >(p)) ||
2180
2193
(q = peek< exactly<' &' > >(p)) ||
2181
2194
(q = peek< exactly<' %' > >(p)) ||
2182
2195
(q = peek< sequence< exactly<' .' >, interpolant > >(p)) ||
0 commit comments