@@ -503,6 +503,7 @@ namespace Sass {
503
503
// a ruleset connects a selector and a block
504
504
Ruleset_Obj Parser::parse_ruleset (Lookahead lookahead)
505
505
{
506
+ NESTING_GUARD (nestings);
506
507
// inherit is_root from parent block
507
508
Block_Obj parent = block_stack.back ();
508
509
bool is_root = parent && parent->is_root ();
@@ -535,6 +536,7 @@ namespace Sass {
535
536
// in the eval stage we will be re-parse it into an actual selector
536
537
Selector_Schema_Obj Parser::parse_selector_schema (const char * end_of_selector, bool chroot)
537
538
{
539
+ NESTING_GUARD (nestings);
538
540
// move up to the start
539
541
lex< optional_spaces >();
540
542
const char * i = position;
@@ -646,6 +648,7 @@ namespace Sass {
646
648
{
647
649
bool reloop;
648
650
bool had_linefeed = false ;
651
+ NESTING_GUARD (nestings);
649
652
Complex_Selector_Obj sel;
650
653
Selector_List_Obj group = SASS_MEMORY_NEW (Selector_List, pstate);
651
654
group->media_block (last_media_block);
@@ -700,6 +703,7 @@ namespace Sass {
700
703
Complex_Selector_Obj Parser::parse_complex_selector (bool chroot)
701
704
{
702
705
706
+ NESTING_GUARD (nestings);
703
707
String_Obj reference = 0 ;
704
708
lex < block_comment >();
705
709
advanceToNextToken ();
@@ -1055,6 +1059,7 @@ namespace Sass {
1055
1059
1056
1060
Expression_Obj Parser::parse_map ()
1057
1061
{
1062
+ NESTING_GUARD (nestings);
1058
1063
Expression_Obj key = parse_list ();
1059
1064
List_Obj map = SASS_MEMORY_NEW (List, pstate, 0 , SASS_HASH);
1060
1065
@@ -1101,12 +1106,14 @@ namespace Sass {
1101
1106
// so to speak: we unwrap items from lists if possible here!
1102
1107
Expression_Obj Parser::parse_list (bool delayed)
1103
1108
{
1109
+ NESTING_GUARD (nestings);
1104
1110
return parse_comma_list (delayed);
1105
1111
}
1106
1112
1107
1113
// will return singletons unwrapped
1108
1114
Expression_Obj Parser::parse_comma_list (bool delayed)
1109
1115
{
1116
+ NESTING_GUARD (nestings);
1110
1117
// check if we have an empty list
1111
1118
// return the empty list as such
1112
1119
if (peek_css< alternatives <
@@ -1167,6 +1174,7 @@ namespace Sass {
1167
1174
// will return singletons unwrapped
1168
1175
Expression_Obj Parser::parse_space_list ()
1169
1176
{
1177
+ NESTING_GUARD (nestings);
1170
1178
Expression_Obj disj1 = parse_disjunction ();
1171
1179
// if it's a singleton, return it (don't wrap it)
1172
1180
if (peek_css< alternatives <
@@ -1212,6 +1220,7 @@ namespace Sass {
1212
1220
// parse logical OR operation
1213
1221
Expression_Obj Parser::parse_disjunction ()
1214
1222
{
1223
+ NESTING_GUARD (nestings);
1215
1224
advanceToNextToken ();
1216
1225
ParserState state (pstate);
1217
1226
// parse the left hand side conjunction
@@ -1233,6 +1242,7 @@ namespace Sass {
1233
1242
// parse logical AND operation
1234
1243
Expression_Obj Parser::parse_conjunction ()
1235
1244
{
1245
+ NESTING_GUARD (nestings);
1236
1246
advanceToNextToken ();
1237
1247
ParserState state (pstate);
1238
1248
// parse the left hand side relation
@@ -1255,6 +1265,7 @@ namespace Sass {
1255
1265
// parse comparison operations
1256
1266
Expression_Obj Parser::parse_relation ()
1257
1267
{
1268
+ NESTING_GUARD (nestings);
1258
1269
advanceToNextToken ();
1259
1270
ParserState state (pstate);
1260
1271
// parse the left hand side expression
@@ -1307,6 +1318,7 @@ namespace Sass {
1307
1318
// parse addition and subtraction operations
1308
1319
Expression_Obj Parser::parse_expression ()
1309
1320
{
1321
+ NESTING_GUARD (nestings);
1310
1322
advanceToNextToken ();
1311
1323
ParserState state (pstate);
1312
1324
// parses multiple add and subtract operations
@@ -1350,6 +1362,7 @@ namespace Sass {
1350
1362
// parse addition and subtraction operations
1351
1363
Expression_Obj Parser::parse_operators ()
1352
1364
{
1365
+ NESTING_GUARD (nestings);
1353
1366
advanceToNextToken ();
1354
1367
ParserState state (pstate);
1355
1368
Expression_Obj factor = parse_factor ();
@@ -1382,6 +1395,7 @@ namespace Sass {
1382
1395
// called from parse_value_schema
1383
1396
Expression_Obj Parser::parse_factor ()
1384
1397
{
1398
+ NESTING_GUARD (nestings);
1385
1399
lex < css_comments >(false );
1386
1400
if (lex_css< exactly<' (' > >()) {
1387
1401
// parse_map may return a list
0 commit comments