Commit aeee9f57 by Aaron Leung

Implemented the "unitless" builtin.

parent 75a60ef4
......@@ -71,6 +71,8 @@ div {
a: unit(10);
b: unit(10%);
c: unit(10boo);
d: unitless(20%);
e: unitless(123);
a: hsl(23, 100%, 50%);
b: hsl(120, 100%, 50%);
......
......@@ -73,7 +73,7 @@ namespace Sass {
// Introspection Functions
register_function(type_of_descriptor, type_of);
register_function(unit_descriptor, unit);
// register_function(unitless_descriptor, unitless);
register_function(unitless_descriptor, unitless);
// register_function(comparable_descriptor, comparable);
}
......
......@@ -416,7 +416,30 @@ namespace Sass {
return u;
}
extern const char true_str[] = "true";
extern const char false_str[] = "false";
Function_Descriptor unitless_descriptor =
{ "unitless", "$value", 0 };
Node unitless(const vector<Token>& parameters, map<Token, Node>& bindings) {
Node val(bindings[parameters[0]]);
Node result(Node::string_constant, val.line_number, Token::make());
result.unquoted = true;
switch (val.type)
{
case Node::number:
result.content.token = Token::make(true_str);
break;
case Node::numeric_percentage:
case Node::numeric_dimension:
result.content.token = Token::make(false_str);
break;
default:
// TO DO: throw an exception;
break;
}
return result;
}
......
......@@ -141,10 +141,10 @@ namespace Sass {
extern Function_Descriptor unit_descriptor;
Node unit(const vector<Token>& parameters, map<Token, Node>& bindings);
//
// extern Function_Descriptor unitless_descriptor;
// Node unitless(const vector<Token>& parameters, map<Token, Node>& bindings);
//
extern Function_Descriptor unitless_descriptor;
Node unitless(const vector<Token>& parameters, map<Token, Node>& bindings);
// extern Function_Descriptor comparable_descriptor;
// Node comparable(const vector<Token>& parameters, map<Token, Node>& bindings);
......
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