Skip to content

Commit dec2eab

Browse files
committed
Better debut_ast for params and arguments
1 parent f1c9e06 commit dec2eab

File tree

1 file changed

+25
-1
lines changed

1 file changed

+25
-1
lines changed

debugger.hpp

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -342,7 +342,12 @@ inline void debug_ast(AST_Node* node, string ind = "", Env* env = 0)
342342
Definition* block = dynamic_cast<Definition*>(node);
343343
cerr << ind << "Definition " << block;
344344
cerr << " (" << pstate_source_position(node) << ")";
345+
cerr << " [name: " << block->name() << "] ";
346+
cerr << " [type: " << (block->type() == Sass::Definition::Type::MIXIN ? "Mixin " : "Function ") << "] ";
347+
cerr << " [signature: " << block->signature() << "] ";
348+
cerr << " [native: " << block->native_function() << "] ";
345349
cerr << " " << block->tabs() << endl;
350+
debug_ast(block->parameters(), ind + " params: ", env);
346351
if (block->block()) for(auto i : block->block()->elements()) { debug_ast(i, ind + " ", env); }
347352
} else if (dynamic_cast<Mixin_Call*>(node)) {
348353
Mixin_Call* block = dynamic_cast<Mixin_Call*>(node);
@@ -399,8 +404,26 @@ inline void debug_ast(AST_Node* node, string ind = "", Env* env = 0)
399404
Argument* expression = dynamic_cast<Argument*>(node);
400405
cerr << ind << "Argument " << expression;
401406
cerr << " (" << pstate_source_position(node) << ")";
402-
cerr << " [" << expression->value() << "]" << endl;
407+
cerr << " [" << expression->value() << "]";
408+
cerr << " [name: " << expression->name() << "] ";
409+
cerr << " [rest: " << expression->is_rest_argument() << "] ";
410+
cerr << " [keyword: " << expression->is_keyword_argument() << "] " << endl;
403411
debug_ast(expression->value(), ind + " value: ", env);
412+
} else if (dynamic_cast<Parameters*>(node)) {
413+
Parameters* expression = dynamic_cast<Parameters*>(node);
414+
cerr << ind << "Parameters " << expression;
415+
cerr << " (" << pstate_source_position(node) << ")";
416+
cerr << " [has_optional: " << expression->has_optional_parameters() << "] ";
417+
cerr << " [has_rest: " << expression->has_rest_parameter() << "] ";
418+
cerr << endl;
419+
for(auto i : expression->elements()) { debug_ast(i, ind + " ", env); }
420+
} else if (dynamic_cast<Parameter*>(node)) {
421+
Parameter* expression = dynamic_cast<Parameter*>(node);
422+
cerr << ind << "Parameter " << expression;
423+
cerr << " (" << pstate_source_position(node) << ")";
424+
cerr << " [name: " << expression->name() << "] ";
425+
cerr << " [default: " << expression->default_value() << "] ";
426+
cerr << " [rest: " << expression->is_rest_parameter() << "] " << endl;
404427
} else if (dynamic_cast<Unary_Expression*>(node)) {
405428
Unary_Expression* expression = dynamic_cast<Unary_Expression*>(node);
406429
cerr << ind << "Unary_Expression " << expression;
@@ -427,6 +450,7 @@ inline void debug_ast(AST_Node* node, string ind = "", Env* env = 0)
427450
(expression->separator() == Sass::List::Separator::COMMA ? "Comma " : "Space ") <<
428451
" [delayed: " << expression->is_delayed() << "] " <<
429452
" [interpolant: " << expression->is_interpolant() << "] " <<
453+
" [arglist: " << expression->is_arglist() << "] " <<
430454
endl;
431455
for(auto i : expression->elements()) { debug_ast(i, ind + " ", env); }
432456
} else if (dynamic_cast<Content*>(node)) {

0 commit comments

Comments
 (0)