Skip to content
This repository was archived by the owner on Oct 24, 2025. It is now read-only.

Commit 5bd4581

Browse files
author
Aaron Leung
committed
Merge branch 'expand-eval-apply'
Conflicts: eval_apply.cpp
2 parents 580c318 + e44e492 commit 5bd4581

File tree

7 files changed

+396
-388
lines changed

7 files changed

+396
-388
lines changed

document_parser.cpp

Lines changed: 9 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,7 @@ namespace Sass {
202202
if (!lex< identifier >()) throw_syntax_error("invalid name in @include directive");
203203
Node name(context.new_Node(Node::identifier, path, line, lexed));
204204
Node args(parse_arguments());
205-
Node the_call(context.new_Node(Node::expansion, path, line, 2));
205+
Node the_call(context.new_Node(Node::mixin_call, path, line, 2));
206206
the_call << name << args;
207207
return the_call;
208208
}
@@ -215,12 +215,10 @@ namespace Sass {
215215
if (lex< exactly<'('> >()) {
216216
if (!peek< exactly<')'> >(position)) {
217217
Node arg(parse_argument(Node::none));
218-
arg.should_eval() = true;
219218
args << arg;
220219
if (arg.type() == Node::assignment) arg_type = Node::assignment;
221220
while (lex< exactly<','> >()) {
222221
Node arg(parse_argument(arg_type));
223-
arg.should_eval() = true;
224222
args << arg;
225223
if (arg.type() == Node::assignment) arg_type = Node::assignment;
226224
}
@@ -239,6 +237,7 @@ namespace Sass {
239237
Node var(context.new_Node(Node::variable, path, line, lexed));
240238
lex< exactly<':'> >();
241239
Node val(parse_space_list());
240+
val.should_eval() = true;
242241
Node assn(context.new_Node(Node::assignment, path, line, 2));
243242
assn << var << val;
244243
return assn;
@@ -254,23 +253,14 @@ namespace Sass {
254253
Node var(context.new_Node(Node::variable, path, line, lexed));
255254
lex< exactly<':'> >();
256255
Node val(parse_space_list());
256+
val.should_eval() = true;
257257
Node assn(context.new_Node(Node::assignment, path, line, 2));
258258
assn << var << val;
259259
return assn;
260260
}
261-
return parse_space_list();
262-
// if (peek< sequence < variable, spaces_and_comments, exactly<':'> > >()) {
263-
// lex< variable >();
264-
// Node var(context.new_Node(Node::variable, path, line, lexed));
265-
// lex< exactly<':'> >();
266-
// Node val(parse_space_list());
267-
// Node assn(context.new_Node(Node::assignment, path, line, 2));
268-
// assn << var << val;
269-
// return assn;
270-
// }
271-
// else {
272-
// return parse_space_list();
273-
// }
261+
Node val(parse_space_list());
262+
val.should_eval() = true;
263+
return val;
274264
}
275265

276266
Node Document::parse_assignment()
@@ -598,7 +588,7 @@ namespace Sass {
598588
semicolon = true;
599589
}
600590
else if (lex< extend >()) {
601-
if (surrounding_ruleset.is_null_ptr()) throw_syntax_error("@extend directive may only be used within rules");
591+
if (surrounding_ruleset.is_null()) throw_syntax_error("@extend directive may only be used within rules");
602592
Node extendee(parse_simple_selector_sequence());
603593
context.extensions.insert(pair<Node, Node>(extendee, surrounding_ruleset));
604594
context.has_extensions = true;
@@ -1016,6 +1006,7 @@ namespace Sass {
10161006
if (lex< interpolant >()) {
10171007
Token insides(Token::make(lexed.begin + 2, lexed.end - 1));
10181008
Node interp_node(Document::make_from_token(context, insides, path, line).parse_list());
1009+
interp_node.should_eval() = true;
10191010
schema << interp_node;
10201011
}
10211012
else if (lex< identifier >()) {
@@ -1080,6 +1071,7 @@ namespace Sass {
10801071
else if (lex< interpolant >()) {
10811072
Token insides(Token::make(lexed.begin + 2, lexed.end - 1));
10821073
Node interp_node(Document::make_from_token(context, insides, path, line).parse_list());
1074+
interp_node.should_eval() = true;
10831075
schema << interp_node;
10841076
}
10851077
else if (lex< sequence< identifier, exactly<':'> > >()) {

0 commit comments

Comments
 (0)