Commit 6cda1442 by Aaron Leung

Adding some extra meta-info to the nodes for control directives.

parent 871c01c2
......@@ -409,7 +409,7 @@ namespace Sass {
case Node::for_to_directive: {
Node fake_mixin(new_Node(Node::mixin, expr.path(), expr.line(), 3));
Node fake_param(new_Node(Node::parameters, expr.path(), expr.line(), 1));
fake_mixin << new_Node(Node::none, "", 0, 0) << (fake_param << expr[0]) << expr[3];
fake_mixin << new_Node(Node::identifier, "", 0, Token::make(Prelexer::for_kwd)) << (fake_param << expr[0]) << expr[3];
Node lower_bound(eval(expr[1], prefix, env, f_env, new_Node, ctx));
Node upper_bound(eval(expr[2], prefix, env, f_env, new_Node, ctx));
if (!(lower_bound.is_numeric() && upper_bound.is_numeric())) {
......@@ -433,7 +433,7 @@ namespace Sass {
case Node::each_directive: {
Node fake_mixin(new_Node(Node::mixin, expr.path(), expr.line(), 3));
Node fake_param(new_Node(Node::parameters, expr.path(), expr.line(), 1));
fake_mixin << new_Node(Node::none, "", 0, 0) << (fake_param << expr[0]) << expr[2];
fake_mixin << new_Node(Node::identifier, "", 0, Token::make(Prelexer::each_kwd)) << (fake_param << expr[0]) << expr[2];
Node list(eval(expr[1], prefix, env, f_env, new_Node, ctx));
// If the list isn't really a list, make a singleton out of it.
if (list.type() != Node::space_list && list.type() != Node::comma_list) {
......@@ -453,7 +453,7 @@ namespace Sass {
Node fake_mixin(new_Node(Node::mixin, expr.path(), expr.line(), 3));
Node fake_param(new_Node(Node::parameters, expr.path(), expr.line(), 0));
Node fake_arg(new_Node(Node::arguments, expr.path(), expr.line(), 0));
fake_mixin << new_Node(Node::none, "", 0, 0) << fake_param << expr[1];
fake_mixin << new_Node(Node::identifier, "", 0, Token::make(Prelexer::while_kwd)) << fake_param << expr[1];
Node pred(expr[0]);
expr.pop_back();
expr.pop_back();
......@@ -716,6 +716,7 @@ namespace Sass {
for (size_t i = 0, S = body.size(); i < S; ++i) {
body[i] = eval(body[i], prefix, bindings, f_env, new_Node, ctx);
}
// cerr << "expanded " << mixin_name.str() << endl;
return body;
}
......
......@@ -450,5 +450,10 @@ namespace Sass {
return counter;
}
extern const char if_kwd[];
extern const char for_kwd[];
extern const char each_kwd[];
extern const char while_kwd[];
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment