@@ -290,6 +290,7 @@ inline void debug_ast(AST_Node* node, string ind = "", Env* env = 0)
290
290
cerr << ind << " Import " << block;
291
291
cerr << " (" << pstate_source_position (node) << " )" ;
292
292
cerr << " " << block->tabs () << endl;
293
+ debug_ast (block->media_queries (), ind + " @ " );
293
294
// vector<string> files_;
294
295
for (auto imp : block->urls ()) debug_ast (imp, " @ " , env);
295
296
} else if (dynamic_cast <Assignment*>(node)) {
@@ -374,35 +375,54 @@ inline void debug_ast(AST_Node* node, string ind = "", Env* env = 0)
374
375
else if (expression->type () == Textual::PERCENTAGE) cerr << " [PERCENTAGE]" ;
375
376
else if (expression->type () == Textual::DIMENSION) cerr << " [DIMENSION]" ;
376
377
else if (expression->type () == Textual::HEX) cerr << " [HEX]" ;
377
- cerr << expression << " [" << expression->value () << " ]" << endl;
378
+ cerr << expression << " [" << expression->value () << " ]" ;
379
+ if (expression->is_delayed ()) cerr << " [delayed]" ;
380
+ cerr << endl;
378
381
} else if (dynamic_cast <Variable*>(node)) {
379
382
Variable* expression = dynamic_cast <Variable*>(node);
383
+ cerr << ind << " Variable " << expression << " [" << expression->name () << " ]" ;
384
+ if (expression->is_delayed ()) cerr << " [delayed]" ;
385
+ cerr << endl;
380
386
cerr << ind << " Variable " << expression;
381
387
cerr << " (" << pstate_source_position (node) << " )" ;
382
388
cerr << " [" << expression->name () << " ]" << endl;
383
389
string name (expression->name ());
384
390
if (env && env->has (name)) debug_ast (static_cast <Expression*>((*env)[name]), ind + " -> " , env);
385
391
} else if (dynamic_cast <Function_Call_Schema*>(node)) {
386
392
Function_Call_Schema* expression = dynamic_cast <Function_Call_Schema*>(node);
393
+ cerr << ind << " Function_Call_Schema " << expression << " ]" ;
394
+ if (expression->is_delayed ()) cerr << " [delayed]" ;
395
+ cerr << endl;
387
396
cerr << ind << " Function_Call_Schema " << expression;
388
397
cerr << " (" << pstate_source_position (node) << " )" ;
389
398
cerr << " " << endl;
390
399
debug_ast (expression->name (), ind + " name: " , env);
391
400
debug_ast (expression->arguments (), ind + " args: " , env);
392
401
} else if (dynamic_cast <Function_Call*>(node)) {
393
402
Function_Call* expression = dynamic_cast <Function_Call*>(node);
403
+ cerr << ind << " Function_Call " << expression << " [" << expression->name () << " ]" ;
404
+ if (expression->is_delayed ()) cerr << " [delayed]" ;
405
+ cerr << endl;
394
406
cerr << ind << " Function_Call " << expression;
395
407
cerr << " (" << pstate_source_position (node) << " )" ;
396
408
cerr << " [" << expression->name () << " ]" << endl;
397
409
debug_ast (expression->arguments (), ind + " args: " , env);
398
410
} else if (dynamic_cast <Arguments*>(node)) {
399
411
Arguments* expression = dynamic_cast <Arguments*>(node);
412
+ cerr << ind << " Arguments " << expression << " ]" ;
413
+ if (expression->is_delayed ()) cerr << " [delayed]" ;
414
+ cerr << endl;
400
415
cerr << ind << " Arguments " << expression;
401
416
cerr << " (" << pstate_source_position (node) << " )" ;
402
417
cerr << endl;
403
418
for (auto i : expression->elements ()) { debug_ast (i, ind + " " , env); }
404
419
} else if (dynamic_cast <Argument*>(node)) {
405
420
Argument* expression = dynamic_cast <Argument*>(node);
421
+ cerr << ind << " Argument " << expression << " [" << expression->value () << " ]" ;
422
+ if (expression->is_delayed ()) cerr << " [delayed]" ;
423
+ if (expression->is_rest_argument ()) cerr << " [is_rest_argument]" ;
424
+ if (expression->is_keyword_argument ()) cerr << " [is_keyword_argument]" ;
425
+ cerr << endl;
406
426
cerr << ind << " Argument " << expression;
407
427
cerr << " (" << pstate_source_position (node) << " )" ;
408
428
cerr << " [" << expression->value () << " ]" ;
@@ -427,12 +447,18 @@ inline void debug_ast(AST_Node* node, string ind = "", Env* env = 0)
427
447
cerr << " [rest: " << expression->is_rest_parameter () << " ] " << endl;
428
448
} else if (dynamic_cast <Unary_Expression*>(node)) {
429
449
Unary_Expression* expression = dynamic_cast <Unary_Expression*>(node);
450
+ cerr << ind << " Unary_Expression " << expression << " [" << expression->type_name () << " ]" ;
451
+ if (expression->is_delayed ()) cerr << " [delayed]" ;
452
+ cerr << endl;
430
453
cerr << ind << " Unary_Expression " << expression;
431
454
cerr << " (" << pstate_source_position (node) << " )" ;
432
455
cerr << " [" << expression->type () << " ]" << endl;
433
456
debug_ast (expression->operand (), ind + " operand: " , env);
434
457
} else if (dynamic_cast <Binary_Expression*>(node)) {
435
458
Binary_Expression* expression = dynamic_cast <Binary_Expression*>(node);
459
+ cerr << ind << " Binary_Expression " << expression << " [" << expression->type_name () << " ]" ;
460
+ if (expression->is_delayed ()) cerr << " [delayed]" ;
461
+ cerr << endl;
436
462
cerr << ind << " Binary_Expression " << expression;
437
463
cerr << " (" << pstate_source_position (node) << " )" ;
438
464
cerr << " [" << expression->type () << " ]" << endl;
@@ -450,6 +476,9 @@ inline void debug_ast(AST_Node* node, string ind = "", Env* env = 0)
450
476
cerr << " (" << expression->length () << " ) " <<
451
477
(expression->separator () == Sass::List::Separator::COMMA ? " Comma " : " Space " ) <<
452
478
" [delayed: " << expression->is_delayed () << " ] " <<
479
+ " [interpolant: " << expression->is_interpolant () << " ]" ;
480
+ if (expression->is_arglist ()) cerr << " [is_arglist]" ;
481
+ cerr << endl;
453
482
" [interpolant: " << expression->is_interpolant () << " ] " <<
454
483
" [arglist: " << expression->is_arglist () << " ] " <<
455
484
endl;
@@ -461,21 +490,36 @@ inline void debug_ast(AST_Node* node, string ind = "", Env* env = 0)
461
490
cerr << " [Statement]" << endl;
462
491
} else if (dynamic_cast <Boolean*>(node)) {
463
492
Boolean* expression = dynamic_cast <Boolean*>(node);
493
+ cerr << ind << " Boolean " << expression << " [" << expression->value () << " ]" ;
494
+ if (expression->is_delayed ()) cerr << " [delayed]" ;
495
+ cerr << endl;
464
496
cerr << ind << " Boolean " << expression;
465
497
cerr << " (" << pstate_source_position (node) << " )" ;
466
498
cerr << " [" << expression->value () << " ]" << endl;
467
499
} else if (dynamic_cast <Color*>(node)) {
468
500
Color* expression = dynamic_cast <Color*>(node);
501
+ cerr << ind << " Color " << expression << " [" << expression->r () << " :" << expression->g () << " :" << expression->b () << " @" << expression->a () << " ]" ;
502
+ if (expression->is_delayed ()) cerr << " [delayed]" ;
503
+ cerr << endl;
469
504
cerr << ind << " Color " << expression;
470
505
cerr << " (" << pstate_source_position (node) << " )" ;
471
506
cerr << " [" << expression->r () << " :" << expression->g () << " :" << expression->b () << " @" << expression->a () << " ]" << endl;
472
507
} else if (dynamic_cast <Number*>(node)) {
473
508
Number* expression = dynamic_cast <Number*>(node);
509
+ cerr << ind << " Number " << expression << " [" << expression->value () << expression->unit () << " ]" ;
510
+ if (expression->is_delayed ()) cerr << " [delayed]" ;
511
+ cerr << endl;
474
512
cerr << ind << " Number " << expression;
475
513
cerr << " (" << pstate_source_position (node) << " )" ;
476
514
cerr << " [" << expression->value () << expression->unit () << " ]" << endl;
477
515
} else if (dynamic_cast <String_Quoted*>(node)) {
478
516
String_Quoted* expression = dynamic_cast <String_Quoted*>(node);
517
+ cerr << ind << " String_Quoted : " << expression << " [" ;
518
+ cerr << prettyprint (expression->value ()) << " ]" ;
519
+ if (expression->is_delayed ()) cerr << " [delayed]" ;
520
+ if (expression->sass_fix_1291 ()) cerr << " [sass_fix_1291]" ;
521
+ if (expression->quote_mark ()) cerr << " [quote_mark]" ;
522
+ cerr << " <" << prettyprint (expression->pstate ().token .ws_before ()) << " >" << endl;
479
523
cerr << ind << " String_Quoted : " << expression;
480
524
cerr << " (" << pstate_source_position (node) << " )" ;
481
525
cerr << " [" << prettyprint (expression->value ()) << " ]" <<
@@ -486,6 +530,11 @@ inline void debug_ast(AST_Node* node, string ind = "", Env* env = 0)
486
530
} else if (dynamic_cast <String_Constant*>(node)) {
487
531
String_Constant* expression = dynamic_cast <String_Constant*>(node);
488
532
cerr << ind << " String_Constant : " << expression;
533
+ cerr << " [" << prettyprint (expression->value ()) << " ]" ;
534
+ if (expression->is_delayed ()) cerr << " [delayed]" ;
535
+ if (expression->sass_fix_1291 ()) cerr << " [sass_fix_1291]" ;
536
+ cerr " <" << prettyprint (expression->pstate ().token .ws_before ()) << " >" << endl;
537
+ cerr << ind << " String_Constant : " << expression;
489
538
cerr << " (" << pstate_source_position (node) << " )" ;
490
539
cerr << " [" << prettyprint (expression->value ()) << " ]" <<
491
540
(expression->is_delayed () ? " {delayed}" : " " ) <<
@@ -494,6 +543,10 @@ inline void debug_ast(AST_Node* node, string ind = "", Env* env = 0)
494
543
" <" << prettyprint (expression->pstate ().token .ws_before ()) << " >" << endl;
495
544
} else if (dynamic_cast <String_Schema*>(node)) {
496
545
String_Schema* expression = dynamic_cast <String_Schema*>(node);
546
+ cerr << ind << " String_Schema " << expression << " [" << expression->concrete_type () << " ]" ;
547
+ if (expression->is_delayed ()) cerr << " [delayed]" ;
548
+ if (expression->has_interpolants ()) cerr << " [has_interpolants]" ;
549
+ cerr " <" << prettyprint (expression->pstate ().token .ws_before ()) << " >" << endl;
497
550
cerr << ind << " String_Schema " << expression;
498
551
cerr << " (" << pstate_source_position (node) << " )" ;
499
552
cerr << " " << expression->concrete_type () <<
@@ -502,6 +555,9 @@ inline void debug_ast(AST_Node* node, string ind = "", Env* env = 0)
502
555
for (auto i : expression->elements ()) { debug_ast (i, ind + " " , env); }
503
556
} else if (dynamic_cast <String*>(node)) {
504
557
String* expression = dynamic_cast <String*>(node);
558
+ cerr << ind << " String " << expression << expression->concrete_type ();
559
+ if (expression->sass_fix_1291 ()) cerr << " [sass_fix_1291]" ;
560
+ cerr " <" << prettyprint (expression->pstate ().token .ws_before ()) << " >" << endl;
505
561
cerr << ind << " String " << expression;
506
562
cerr << " (" << pstate_source_position (node) << " )" ;
507
563
cerr << expression->concrete_type () <<
0 commit comments