Commit e0aec359 by Aaron Leung

Working on handling nested mixin expansions and getting them to emit correctly.

parent 059ce633
......@@ -20,10 +20,8 @@ namespace Sass {
}
else if (peek< include >(position)) {
Node call(parse_mixin_call());
call << root;
root << call;
root.has_rules_or_comments |= call.has_rules_or_comments;
root.has_rulesets |= call.has_rulesets;
root.has_propsets |= call.has_propsets;
lex< exactly<';'> >();
context.pending.push_back(call);
}
......@@ -109,7 +107,7 @@ namespace Sass {
lex< identifier >();
Node name(line_number, Node::identifier, lexed);
Node args(parse_mixin_arguments());
Node call(line_number, Node::expansion, 2);
Node call(line_number, Node::expansion, 3);
call << name << args;
return call;
}
......@@ -333,11 +331,8 @@ namespace Sass {
}
else if (peek< include >(position)) {
Node call(parse_mixin_call());
call << block;
block << call;
block.has_rules_or_comments |= call.has_rules_or_comments;
block.has_rulesets |= call.has_rulesets;
block.has_propsets |= call.has_propsets;
semicolon = true;
if (!definition) context.pending.push_back(call);
}
else if (lex< variable >()) {
......
......@@ -17,10 +17,16 @@ namespace Sass {
case Node::expansion: {
Token name(expr[0].token);
Node args(expr[1]);
Node parent(expr[2]);
Node mixin(env[name]);
Node expansion(apply(mixin, args, env));
parent.has_rules_or_comments |= expansion.has_rules_or_comments;
parent.has_rulesets |= expansion.has_rulesets;
parent.has_propsets |= expansion.has_propsets;
expr.children->pop_back();
expr.children->pop_back();
expr += apply(mixin, args, env);
expr.children->pop_back();
expr += expansion;
return expr;
} break;
......
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