forked from sass/libsass
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
includes from parent selector: 158a5af Support parent selector & in values / and/or interpolations sass#548 d10b572 Merge branch 'master' into parent-selector 829fef7 merge from master to parent-selector e1f78c0 Merge commit 'dea27e5e3cc61a0d9f00ffa3f598a1080c6502d6' into parent-selector ef73c1b issue 548 776e997 sass#548 Fixed the interpolation~! 324b14f sass#548 Fixing orphaned variable 1c15df0 sass#548 fixes for eval calling var->perform(this) edits responding to comments for append_string typo for the broken line comma added contextualize_eval to the visual studio project file. d9090b3 sass#548 fixed the set fault tests... 92e3f0b sass#548 removing commented out code thanks @mgreter. 98977d8 sass#548 removed commented code 5b6d06a sass#548 applied @xzyfer patch. Some clean up of commented out code
- Loading branch information
Eric Kimn
committed
Mar 18, 2015
1 parent
62314f6
commit 717c3ed
Showing
27 changed files
with
408 additions
and
84 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,88 @@ | ||
#include "contextualize_eval.hpp" | ||
#include "ast.hpp" | ||
#include "eval.hpp" | ||
#include "backtrace.hpp" | ||
#include "to_string.hpp" | ||
#include "parser.hpp" | ||
|
||
namespace Sass { | ||
|
||
Contextualize_Eval::Contextualize_Eval(Context& ctx, Eval* eval, Env* env, Backtrace* bt) | ||
: Contextualize(ctx, env, bt), eval(eval) | ||
{ } | ||
|
||
Contextualize_Eval::~Contextualize_Eval() { } | ||
|
||
Selector* Contextualize_Eval::fallback_impl(AST_Node* n) | ||
{ return Contextualize::fallback_impl(n); } | ||
|
||
Contextualize_Eval* Contextualize_Eval::with(Selector* s, Env* e, Backtrace* bt, Selector* p, Selector* ex) | ||
{ | ||
Contextualize::with(s, e, bt, p, ex); | ||
eval = eval->with(s, e, bt, p, ex); | ||
return this; | ||
} | ||
|
||
Selector* Contextualize_Eval::operator()(Selector_Schema* s) | ||
{ | ||
To_String to_string; | ||
string result_str(s->contents()->perform(eval)->perform(&to_string)); | ||
result_str += '{'; // the parser looks for a brace to end the selector | ||
Selector* result_sel = Parser::from_c_str(result_str.c_str(), ctx, s->pstate()).parse_selector_group(); | ||
return result_sel->perform(this); | ||
} | ||
|
||
Selector* Contextualize_Eval::operator()(Selector_List* s) | ||
{ | ||
return Contextualize::operator ()(s); | ||
} | ||
|
||
Selector* Contextualize_Eval::operator()(Complex_Selector* s) | ||
{ | ||
return Contextualize::operator ()(s); | ||
} | ||
|
||
Selector* Contextualize_Eval::operator()(Compound_Selector* s) | ||
{ | ||
return Contextualize::operator ()(s); | ||
} | ||
|
||
Selector* Contextualize_Eval::operator()(Wrapped_Selector* s) | ||
{ | ||
return Contextualize::operator ()(s); | ||
} | ||
|
||
Selector* Contextualize_Eval::operator()(Pseudo_Selector* s) | ||
{ return Contextualize::operator ()(s); } | ||
|
||
Selector* Contextualize_Eval::operator()(Attribute_Selector* s) | ||
{ | ||
// the value might be interpolated; evaluate it | ||
String* v = s->value(); | ||
if (v && eval) { | ||
v = static_cast<String*>(v->perform(eval->with(env, backtrace))); | ||
} | ||
To_String toString; | ||
Attribute_Selector* ss = new (ctx.mem) Attribute_Selector(*s); | ||
ss->value(v); | ||
return ss; | ||
} | ||
|
||
Selector* Contextualize_Eval::operator()(Selector_Qualifier* s) | ||
{ return Contextualize::operator ()(s); | ||
} | ||
|
||
Selector* Contextualize_Eval::operator()(Type_Selector* s) | ||
{ return Contextualize::operator ()(s); | ||
} | ||
|
||
Selector* Contextualize_Eval::operator()(Selector_Placeholder* p) | ||
{ | ||
return Contextualize::operator ()(p); | ||
} | ||
|
||
Selector* Contextualize_Eval::operator()(Selector_Reference* s) | ||
{ | ||
return Contextualize::operator ()(s); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
#ifndef SASS_CONTEXTUALIZE_EVAL_H | ||
#define SASS_CONTEXTUALIZE_EVAL_H | ||
|
||
#include "eval.hpp" | ||
#include "context.hpp" | ||
#include "operation.hpp" | ||
#include "environment.hpp" | ||
#include "ast_fwd_decl.hpp" | ||
|
||
namespace Sass { | ||
struct Backtrace; | ||
|
||
typedef Environment<AST_Node*> Env; | ||
|
||
class Contextualize_Eval : public Contextualize { | ||
|
||
Eval* eval; | ||
|
||
Selector* fallback_impl(AST_Node* n); | ||
|
||
public: | ||
Contextualize_Eval(Context&, Eval*, Env*, Backtrace*); | ||
virtual ~Contextualize_Eval(); | ||
Contextualize_Eval* with(Selector*, Env*, Backtrace*, Selector* placeholder = 0, Selector* extender = 0); | ||
using Operation<Selector*>::operator(); | ||
|
||
Selector* operator()(Selector_Schema*); | ||
Selector* operator()(Selector_List*); | ||
Selector* operator()(Complex_Selector*); | ||
Selector* operator()(Compound_Selector*); | ||
Selector* operator()(Wrapped_Selector*); | ||
Selector* operator()(Pseudo_Selector*); | ||
Selector* operator()(Attribute_Selector*); | ||
Selector* operator()(Selector_Qualifier*); | ||
Selector* operator()(Type_Selector*); | ||
Selector* operator()(Selector_Placeholder*); | ||
Selector* operator()(Selector_Reference*); | ||
|
||
template <typename U> | ||
Selector* fallback(U x) { return fallback_impl(x); } | ||
}; | ||
} | ||
|
||
#endif |
Oops, something went wrong.