@@ -225,6 +225,11 @@ inline void debug_ast(AST_Node* node, string ind = "", Env* env = 0)
225
225
cerr << ind << " Declaration " << block << " " << block->tabs () << endl;
226
226
debug_ast (block->property (), ind + " prop: " , env);
227
227
debug_ast (block->value (), ind + " value: " , env);
228
+ } else if (dynamic_cast <Keyframe_Rule*>(node)) {
229
+ Keyframe_Rule* has_block = dynamic_cast <Keyframe_Rule*>(node);
230
+ cerr << ind << " Keyframe_Rule " << has_block << " " << has_block->tabs () << endl;
231
+ if (has_block->selector ()) debug_ast (has_block->selector (), ind + " @" );
232
+ if (has_block->block ()) for (auto i : has_block->block ()->elements ()) { debug_ast (i, ind + " " , env); }
228
233
} else if (dynamic_cast <At_Rule*>(node)) {
229
234
At_Rule* block = dynamic_cast <At_Rule*>(node);
230
235
cerr << ind << " At_Rule " << block << " [" << block->keyword () << " ] " << block->tabs () << endl;
@@ -348,7 +353,20 @@ inline void debug_ast(AST_Node* node, string ind = "", Env* env = 0)
348
353
endl;
349
354
} else if (dynamic_cast <Expression*>(node)) {
350
355
Expression* expression = dynamic_cast <Expression*>(node);
351
- cerr << ind << " Expression " << expression << " " << expression->concrete_type () << endl;
356
+ cerr << ind << " Expression " << expression;
357
+ switch (expression->concrete_type ()) {
358
+ case Expression::Concrete_Type::NONE: cerr << " [NONE]" ; break ;
359
+ case Expression::Concrete_Type::BOOLEAN: cerr << " [BOOLEAN]" ; break ;
360
+ case Expression::Concrete_Type::NUMBER: cerr << " [NUMBER]" ; break ;
361
+ case Expression::Concrete_Type::COLOR: cerr << " [COLOR]" ; break ;
362
+ case Expression::Concrete_Type::STRING: cerr << " [STRING]" ; break ;
363
+ case Expression::Concrete_Type::LIST: cerr << " [LIST]" ; break ;
364
+ case Expression::Concrete_Type::MAP: cerr << " [MAP]" ; break ;
365
+ case Expression::Concrete_Type::SELECTOR: cerr << " [SELECTOR]" ; break ;
366
+ case Expression::Concrete_Type::NULL_VAL: cerr << " [NULL_VAL]" ; break ;
367
+ case Expression::Concrete_Type::NUM_TYPES: cerr << " [NUM_TYPES]" ; break ;
368
+ }
369
+ cerr << endl;
352
370
} else if (dynamic_cast <Has_Block*>(node)) {
353
371
Has_Block* has_block = dynamic_cast <Has_Block*>(node);
354
372
cerr << ind << " Has_Block " << has_block << " " << has_block->tabs () << endl;
0 commit comments