Commit 580c318b by Aaron Leung

Don't think we need to eagerly evaluate numeric values after all, now that we're…

Don't think we need to eagerly evaluate numeric values after all, now that we're fully evaluating function args.
parent 1839dc8b
...@@ -909,45 +909,45 @@ namespace Sass { ...@@ -909,45 +909,45 @@ namespace Sass {
if (lex< identifier >()) if (lex< identifier >())
{ return context.new_Node(Node::identifier, path, line, lexed); } { return context.new_Node(Node::identifier, path, line, lexed); }
// if (lex< percentage >()) if (lex< percentage >())
// { return context.new_Node(Node::textual_percentage, path, line, lexed); } { return context.new_Node(Node::textual_percentage, path, line, lexed); }
// if (lex< dimension >()) if (lex< dimension >())
// { return context.new_Node(Node::textual_dimension, path, line, lexed); } { return context.new_Node(Node::textual_dimension, path, line, lexed); }
// if (lex< number >()) if (lex< number >())
// { return context.new_Node(Node::textual_number, path, line, lexed); } { return context.new_Node(Node::textual_number, path, line, lexed); }
// if (lex< hex >()) if (lex< hex >())
// { return context.new_Node(Node::textual_hex, path, line, lexed); } { return context.new_Node(Node::textual_hex, path, line, lexed); }
if (lex< percentage >()) // if (lex< percentage >())
{ return context.new_Node(path, line, atof(lexed.begin), Node::numeric_percentage); } // { return context.new_Node(path, line, atof(lexed.begin), Node::numeric_percentage); }
if (lex< dimension >()) { // if (lex< dimension >()) {
return context.new_Node(path, line, atof(lexed.begin), // return context.new_Node(path, line, atof(lexed.begin),
Token::make(Prelexer::number(lexed.begin), lexed.end)); // Token::make(Prelexer::number(lexed.begin), lexed.end));
} // }
if (lex< number >()) // if (lex< number >())
{ return context.new_Node(path, line, atof(lexed.begin)); } // { return context.new_Node(path, line, atof(lexed.begin)); }
if (lex< hex >()) { // if (lex< hex >()) {
Node triple(context.new_Node(Node::numeric_color, path, line, 4)); // Node triple(context.new_Node(Node::numeric_color, path, line, 4));
Token hext(Token::make(lexed.begin+1, lexed.end)); // Token hext(Token::make(lexed.begin+1, lexed.end));
if (hext.length() == 6) { // if (hext.length() == 6) {
for (int i = 0; i < 6; i += 2) { // for (int i = 0; i < 6; i += 2) {
triple << context.new_Node(path, line, static_cast<double>(strtol(string(hext.begin+i, 2).c_str(), NULL, 16))); // triple << context.new_Node(path, line, static_cast<double>(strtol(string(hext.begin+i, 2).c_str(), NULL, 16)));
} // }
} // }
else { // else {
for (int i = 0; i < 3; ++i) { // for (int i = 0; i < 3; ++i) {
triple << context.new_Node(path, line, static_cast<double>(strtol(string(2, hext.begin[i]).c_str(), NULL, 16))); // triple << context.new_Node(path, line, static_cast<double>(strtol(string(2, hext.begin[i]).c_str(), NULL, 16)));
} // }
} // }
triple << context.new_Node(path, line, 1.0); // triple << context.new_Node(path, line, 1.0);
return triple; // return triple;
} // }
if (peek< string_constant >()) if (peek< string_constant >())
{ return parse_string(); } { return parse_string(); }
...@@ -1022,30 +1022,34 @@ namespace Sass { ...@@ -1022,30 +1022,34 @@ namespace Sass {
schema << context.new_Node(Node::identifier, path, line, lexed); schema << context.new_Node(Node::identifier, path, line, lexed);
} }
else if (lex< percentage >()) { else if (lex< percentage >()) {
schema << context.new_Node(path, line, atof(lexed.begin), Node::numeric_percentage); schema << context.new_Node(Node::textual_percentage, path, line, lexed);
// schema << context.new_Node(path, line, atof(lexed.begin), Node::numeric_percentage);
} }
else if (lex< dimension >()) { else if (lex< dimension >()) {
schema << context.new_Node(path, line, atof(lexed.begin), schema << context.new_Node(Node::textual_dimension, path, line, lexed);
Token::make(Prelexer::number(lexed.begin), lexed.end)); // schema << context.new_Node(path, line, atof(lexed.begin),
// Token::make(Prelexer::number(lexed.begin), lexed.end));
} }
else if (lex< number >()) { else if (lex< number >()) {
schema << context.new_Node(path, line, atof(lexed.begin)); schema << context.new_Node(Node::textual_number, path, line, lexed);
// schema << context.new_Node(path, line, atof(lexed.begin));
} }
else if (lex< hex >()) { else if (lex< hex >()) {
Node triple(context.new_Node(Node::numeric_color, path, line, 4)); schema << context.new_Node(Node::textual_hex, path, line, lexed);
Token hext(Token::make(lexed.begin+1, lexed.end)); // Node triple(context.new_Node(Node::numeric_color, path, line, 4));
if (hext.length() == 6) { // Token hext(Token::make(lexed.begin+1, lexed.end));
for (int i = 0; i < 6; i += 2) { // if (hext.length() == 6) {
triple << context.new_Node(path, line, static_cast<double>(strtol(string(hext.begin+i, 2).c_str(), NULL, 16))); // for (int i = 0; i < 6; i += 2) {
} // triple << context.new_Node(path, line, static_cast<double>(strtol(string(hext.begin+i, 2).c_str(), NULL, 16)));
} // }
else { // }
for (int i = 0; i < 3; ++i) { // else {
triple << context.new_Node(path, line, static_cast<double>(strtol(string(2, hext.begin[i]).c_str(), NULL, 16))); // for (int i = 0; i < 3; ++i) {
} // triple << context.new_Node(path, line, static_cast<double>(strtol(string(2, hext.begin[i]).c_str(), NULL, 16)));
} // }
triple << context.new_Node(path, line, 1.0); // }
schema << triple; // triple << context.new_Node(path, line, 1.0);
// schema << triple;
} }
else if (lex< string_constant >()) { else if (lex< string_constant >()) {
Node str(context.new_Node(Node::string_constant, path, line, lexed)); Node str(context.new_Node(Node::string_constant, path, line, lexed));
......
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