Commit 4576338f by Aaron Leung

Mixin stuff.

parent 93d29fee
...@@ -74,8 +74,7 @@ namespace Sass { ...@@ -74,8 +74,7 @@ namespace Sass {
{ {
lex< exactly<'('> >(); lex< exactly<'('> >();
if (lex< sequence < variable, spaces_and_comments, exactly<':'> > >()) { // check for keyword arg
lex< exactly<')'> )(); lex< exactly<')'> )();
} }
...@@ -106,25 +105,29 @@ namespace Sass { ...@@ -106,25 +105,29 @@ namespace Sass {
{ {
Node params(line_number, Node::parameters); Node params(line_number, Node::parameters);
lex< exactly<'('> >(); lex< exactly<'('> >();
if (lex< variable >()) { if (peek< variable >()) {
Node var(line_number, Node::variable, lexed); params << parse_parameter();
if (lex< exactly<':'> >()) { // default value
Node val(parse_space_list(true));
Node par_val(line_number, Node::assignment, 2);
par_val << var << val;
params << par_val;
}
else {
params << var;
}
while (lex< exactly<','> >()) { while (lex< exactly<','> >()) {
lex< variable >(); params << parse_parameter();
params << Node(line_number, Node::variable, lexed);
} }
} }
lex< exactly<')'> >(); lex< exactly<')'> >();
return params; return params;
} }
Node Document::parse_parameter() {
lex< variable >();
Node var(line_number, Node::variable, lexed);
if (lex< exactly<':'> >()) { // default value
Node val(parse_space_list(true));
Node par_and_val(line_number, Node::assignment, 2);
par_and_val << var << val;
return par_and_val;
}
else {
return var;
}
}
Node Document::parse_var_def(bool delay) Node Document::parse_var_def(bool delay)
{ {
......
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