@@ -423,7 +423,13 @@ namespace Sass {
423
423
string name (Util::normalize_underscores (lexed));
424
424
ParserState var_source_position = pstate;
425
425
if (!lex< exactly<' :' > >()) error (" expected ':' after " + name + " in assignment statement" , pstate);
426
- Expression* val = parse_list ();
426
+ Expression* val;
427
+ Selector_Lookahead lookahead = lookahead_for_value (position);
428
+ if (lookahead.has_interpolants && lookahead.found ) {
429
+ val = parse_value_schema (lookahead.found );
430
+ } else {
431
+ val = parse_list ();
432
+ }
427
433
val->is_delayed (false );
428
434
bool is_default = false ;
429
435
bool is_global = false ;
@@ -1568,12 +1574,18 @@ namespace Sass {
1568
1574
else if (lex< hex >()) {
1569
1575
(*schema) << new (ctx.mem ) Textual (pstate, Textual::HEX, unquote (lexed));
1570
1576
}
1577
+ else if (lex < exactly < ' -' > >()) {
1578
+ (*schema) << new (ctx.mem ) String_Constant (pstate, lexed);
1579
+ }
1571
1580
else if (lex< quoted_string >()) {
1572
1581
(*schema) << new (ctx.mem ) String_Quoted (pstate, lexed);
1573
1582
}
1574
1583
else if (lex< variable >()) {
1575
1584
(*schema) << new (ctx.mem ) Variable (pstate, Util::normalize_underscores (lexed));
1576
1585
}
1586
+ else if (peek< parenthese_scope >()) {
1587
+ (*schema) << parse_factor ();
1588
+ }
1577
1589
else {
1578
1590
error (" error parsing interpolated value" , pstate);
1579
1591
}
@@ -2175,23 +2187,24 @@ namespace Sass {
2175
2187
(q = peek< percentage >(p)) ||
2176
2188
(q = peek< dimension >(p)) ||
2177
2189
(q = peek< quoted_string >(p)) ||
2178
- (q = peek< variable >(p)) ||
2190
+ (q = peek< variable >(p)) ||
2179
2191
(q = peek< exactly<' *' > >(p)) ||
2180
2192
(q = peek< exactly<' +' > >(p)) ||
2181
2193
(q = peek< exactly<' ~' > >(p)) ||
2182
2194
(q = peek< exactly<' >' > >(p)) ||
2183
2195
(q = peek< exactly<' ,' > >(p)) ||
2196
+ (q = peek< sequence<parenthese_scope, interpolant>>(p)) ||
2184
2197
(saw_stuff && (q = peek< exactly<' -' > >(p))) ||
2185
2198
(q = peek< binomial >(p)) ||
2186
2199
(q = peek< block_comment >(p)) ||
2187
2200
(q = peek< sequence< optional<sign>,
2188
2201
zero_plus<digit>,
2189
2202
exactly<' n' > > >(p)) ||
2190
2203
(q = peek< sequence< optional<sign>,
2191
- one_plus<digit> > >(p)) ||
2204
+ one_plus<digit> > >(p)) ||
2192
2205
(q = peek< number >(p)) ||
2193
2206
(q = peek< sequence< exactly<' &' >,
2194
- identifier_alnums > >(p)) ||
2207
+ identifier_alnums > >(p)) ||
2195
2208
(q = peek< exactly<' &' > >(p)) ||
2196
2209
(q = peek< exactly<' %' > >(p)) ||
2197
2210
(q = peek< sequence< exactly<' .' >, interpolant > >(p)) ||
0 commit comments