Commit 441d23df by Aaron Leung

Some cleanup.

parent 9e4c12d5
...@@ -127,7 +127,6 @@ namespace Sass { ...@@ -127,7 +127,6 @@ namespace Sass {
Node var(expr[0]); Node var(expr[0]);
if (expr.is_guarded() && env.query(var.token())) return; if (expr.is_guarded() && env.query(var.token())) return;
Node val(expr[1]); Node val(expr[1]);
// val = eval(val, prefix, env, f_env, new_Node, ctx);
if (val.type() == Node::list) { if (val.type() == Node::list) {
for (size_t i = 0, S = val.size(); i < S; ++i) { for (size_t i = 0, S = val.size(); i < S; ++i) {
if (val[i].should_eval()) val[i] = eval(val[i], prefix, env, f_env, new_Node, ctx); if (val[i].should_eval()) val[i] = eval(val[i], prefix, env, f_env, new_Node, ctx);
...@@ -251,7 +250,6 @@ namespace Sass { ...@@ -251,7 +250,6 @@ namespace Sass {
} break; } break;
case Node::warning: { case Node::warning: {
// expr = new_Node(expr);
Node contents(eval(expr[0], Node(), env, f_env, new_Node, ctx)); Node contents(eval(expr[0], Node(), env, f_env, new_Node, ctx));
string prefix("WARNING: "); string prefix("WARNING: ");
...@@ -279,26 +277,6 @@ namespace Sass { ...@@ -279,26 +277,6 @@ namespace Sass {
Node result = Node(); Node result = Node();
switch (expr.type()) switch (expr.type())
{ {
// case Node::selector_schema: {
// string expansion;
// for (size_t i = 0, S = expr.size(); i < S; ++i) {
// expr[i] = eval(expr[i], prefix, env, f_env, new_Node, ctx);
// if (expr[i].type() == Node::string_constant) {
// expansion += expr[i].token().unquote();
// }
// else {
// expansion += expr[i].to_string();
// }
// }
// expansion += " {"; // the parser looks for an lbrace to end a selector
// char* expn_src = new char[expansion.size() + 1];
// strcpy(expn_src, expansion.c_str());
// Document needs_reparsing(Document::make_from_source_chars(ctx, expn_src, expr.path(), true));
// needs_reparsing.line = expr.line(); // set the line number to the original node's line
// Node sel(needs_reparsing.parse_selector_group());
// return sel;
// } break;
case Node::list: { case Node::list: {
if (expr.should_eval() && expr.size() > 0) { if (expr.should_eval() && expr.size() > 0) {
result = new_Node(Node::list, expr.path(), expr.line(), expr.size()); result = new_Node(Node::list, expr.path(), expr.line(), expr.size());
...@@ -323,7 +301,6 @@ namespace Sass { ...@@ -323,7 +301,6 @@ namespace Sass {
} break; } break;
case Node::relation: { case Node::relation: {
Node lhs(eval(expr[0], prefix, env, f_env, new_Node, ctx)); Node lhs(eval(expr[0], prefix, env, f_env, new_Node, ctx));
Node op(expr[1]); Node op(expr[1]);
Node rhs(eval(expr[2], prefix, env, f_env, new_Node, ctx)); Node rhs(eval(expr[2], prefix, env, f_env, new_Node, ctx));
...@@ -755,10 +732,6 @@ namespace Sass { ...@@ -755,10 +732,6 @@ namespace Sass {
bind_arguments(mixin_name.str(), params, evaluated_args, prefix, bindings, f_env, new_Node, ctx); bind_arguments(mixin_name.str(), params, evaluated_args, prefix, bindings, f_env, new_Node, ctx);
// evaluate the mixin's body // evaluate the mixin's body
expand(body, prefix, bindings, f_env, new_Node, ctx); expand(body, prefix, bindings, f_env, new_Node, ctx);
// for (size_t i = 0, S = body.size(); i < S; ++i) {
// expand(body[i], prefix, bindings, f_env, new_Node, ctx);
// }
// cerr << "expanded " << mixin_name.str() << endl;
return body; return body;
} }
...@@ -778,7 +751,7 @@ namespace Sass { ...@@ -778,7 +751,7 @@ namespace Sass {
} }
else { else {
// TO DO: consider cloning the function body? // TO DO: consider cloning the function body?
return function_eval(f.name, f.definition[2], bindings, new_Node, ctx, true); return eval_function(f.name, f.definition[2], bindings, new_Node, ctx, true);
} }
} }
...@@ -786,7 +759,7 @@ namespace Sass { ...@@ -786,7 +759,7 @@ namespace Sass {
// algorithm is different in this case because the body needs to be // algorithm is different in this case because the body needs to be
// executed and a single value needs to be returned directly, rather than // executed and a single value needs to be returned directly, rather than
// styles being expanded and spliced in place. // styles being expanded and spliced in place.
Node function_eval(string name, Node body, Environment& bindings, Node_Factory& new_Node, Context& ctx, bool at_toplevel) Node eval_function(string name, Node body, Environment& bindings, Node_Factory& new_Node, Context& ctx, bool at_toplevel)
{ {
for (size_t i = 0, S = body.size(); i < S; ++i) { for (size_t i = 0, S = body.size(); i < S; ++i) {
Node stm(body[i]); Node stm(body[i]);
...@@ -820,13 +793,13 @@ namespace Sass { ...@@ -820,13 +793,13 @@ namespace Sass {
Node pred(new_Node(stm[j])); Node pred(new_Node(stm[j]));
Node predicate_val(eval(pred, Node(), bindings, ctx.function_env, new_Node, ctx)); Node predicate_val(eval(pred, Node(), bindings, ctx.function_env, new_Node, ctx));
if ((predicate_val.type() != Node::boolean) || predicate_val.boolean_value()) { if ((predicate_val.type() != Node::boolean) || predicate_val.boolean_value()) {
Node v(function_eval(name, stm[j+1], bindings, new_Node, ctx)); Node v(eval_function(name, stm[j+1], bindings, new_Node, ctx));
if (v.is_null()) break; if (v.is_null()) break;
else return v; else return v;
} }
} }
else { else {
Node v(function_eval(name, stm[j], bindings, new_Node, ctx)); Node v(eval_function(name, stm[j], bindings, new_Node, ctx));
if (v.is_null()) break; if (v.is_null()) break;
else return v; else return v;
} }
...@@ -846,7 +819,7 @@ namespace Sass { ...@@ -846,7 +819,7 @@ namespace Sass {
j < T; j < T;
j += 1) { j += 1) {
for_env.current_frame[iter_var.token()] = new_Node(lower_bound.path(), lower_bound.line(), j); for_env.current_frame[iter_var.token()] = new_Node(lower_bound.path(), lower_bound.line(), j);
Node v(function_eval(name, for_body, for_env, new_Node, ctx)); Node v(eval_function(name, for_body, for_env, new_Node, ctx));
if (v.is_null()) continue; if (v.is_null()) continue;
else return v; else return v;
} }
...@@ -863,7 +836,7 @@ namespace Sass { ...@@ -863,7 +836,7 @@ namespace Sass {
each_env.link(bindings); each_env.link(bindings);
for (size_t j = 0, T = list.size(); j < T; ++j) { for (size_t j = 0, T = list.size(); j < T; ++j) {
each_env.current_frame[iter_var.token()] = eval(list[j], Node(), bindings, ctx.function_env, new_Node, ctx); each_env.current_frame[iter_var.token()] = eval(list[j], Node(), bindings, ctx.function_env, new_Node, ctx);
Node v(function_eval(name, each_body, each_env, new_Node, ctx)); Node v(eval_function(name, each_body, each_env, new_Node, ctx));
if (v.is_null()) continue; if (v.is_null()) continue;
else return v; else return v;
} }
...@@ -876,7 +849,7 @@ namespace Sass { ...@@ -876,7 +849,7 @@ namespace Sass {
while_env.link(bindings); while_env.link(bindings);
Node pred_val(eval(pred_expr, Node(), bindings, ctx.function_env, new_Node, ctx)); Node pred_val(eval(pred_expr, Node(), bindings, ctx.function_env, new_Node, ctx));
while ((pred_val.type() != Node::boolean) || pred_val.boolean_value()) { while ((pred_val.type() != Node::boolean) || pred_val.boolean_value()) {
Node v(function_eval(name, while_body, while_env, new_Node, ctx)); Node v(eval_function(name, while_body, while_env, new_Node, ctx));
if (v.is_null()) { if (v.is_null()) {
pred_val = eval(new_Node(stm[0]), Node(), bindings, ctx.function_env, new_Node, ctx); pred_val = eval(new_Node(stm[0]), Node(), bindings, ctx.function_env, new_Node, ctx);
continue; continue;
......
...@@ -15,7 +15,7 @@ namespace Sass { ...@@ -15,7 +15,7 @@ namespace Sass {
void expand(Node expr, Node prefix, Environment& env, map<string, Function>& f_env, Node_Factory& new_Node, Context& ctx, bool function_name = false); void expand(Node expr, Node prefix, Environment& env, map<string, Function>& f_env, Node_Factory& new_Node, Context& ctx, bool function_name = false);
Node eval(Node expr, Node prefix, Environment& env, map<string, Function>& f_env, Node_Factory& new_Node, Context& ctx, bool function_name = false); Node eval(Node expr, Node prefix, Environment& env, map<string, Function>& f_env, Node_Factory& new_Node, Context& ctx, bool function_name = false);
Node function_eval(string name, Node stm, Environment& bindings, Node_Factory& new_Node, Context& ctx, bool toplevel = false); Node eval_function(string name, Node stm, Environment& bindings, Node_Factory& new_Node, Context& ctx, bool toplevel = false);
Node reduce(Node list, size_t head, Node acc, Node_Factory& new_Node); Node reduce(Node list, size_t head, Node acc, Node_Factory& new_Node);
Node accumulate(Node::Type op, Node acc, Node rhs, Node_Factory& new_Node); Node accumulate(Node::Type op, Node acc, Node rhs, Node_Factory& new_Node);
double operate(Node op, double lhs, double rhs); double operate(Node op, double lhs, double rhs);
......
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