CSS-Sass
view release on metacpan or search on metacpan
libsass/ast.hpp view on Meta::CPAN
bool is_invisible();
// nested rulesets need to be hoisted out of their enclosing blocks
bool is_hoistable() { return true; }
ATTACH_OPERATIONS();
};
/////////////////////////////////////////////////////////
// Nested declaration sets (i.e., namespaced properties).
/////////////////////////////////////////////////////////
class Propset : public Has_Block {
ADD_PROPERTY(String*, property_fragment);
public:
Propset(ParserState pstate, String* pf, Block* b = 0)
: Has_Block(pstate, b), property_fragment_(pf)
{ }
ATTACH_OPERATIONS();
};
/////////////////
// Bubble.
/////////////////
class Bubble : public Statement {
ADD_PROPERTY(Statement*, node);
ADD_PROPERTY(bool, group_end);
libsass/cencode.c view on Meta::CPAN
if (value_in > 63) return '=';
return encoding[(int)value_in];
}
int base64_encode_block(const char* plaintext_in, int length_in, char* code_out, base64_encodestate* state_in)
{
const char* plainchar = plaintext_in;
const char* const plaintextend = plaintext_in + length_in;
char* codechar = code_out;
char result;
char fragment;
result = state_in->result;
switch (state_in->step)
{
while (1)
{
case step_A:
if (plainchar == plaintextend)
{
state_in->result = result;
state_in->step = step_A;
return codechar - code_out;
}
fragment = *plainchar++;
result = (fragment & 0x0fc) >> 2;
*codechar++ = base64_encode_value(result);
result = (fragment & 0x003) << 4;
case step_B:
if (plainchar == plaintextend)
{
state_in->result = result;
state_in->step = step_B;
return codechar - code_out;
}
fragment = *plainchar++;
result |= (fragment & 0x0f0) >> 4;
*codechar++ = base64_encode_value(result);
result = (fragment & 0x00f) << 2;
case step_C:
if (plainchar == plaintextend)
{
state_in->result = result;
state_in->step = step_C;
return codechar - code_out;
}
fragment = *plainchar++;
result |= (fragment & 0x0c0) >> 6;
*codechar++ = base64_encode_value(result);
result = (fragment & 0x03f) >> 0;
*codechar++ = base64_encode_value(result);
++(state_in->stepcount);
}
}
/* control should not reach here */
return codechar - code_out;
}
int base64_encode_blockend(char* code_out, base64_encodestate* state_in)
libsass/expand.cpp view on Meta::CPAN
blk);
rr->tabs(r->tabs());
selector_stack.pop_back();
in_at_root = old_in_at_root;
old_in_at_root = false;
return rr;
}
Statement* Expand::operator()(Propset* p)
{
property_stack.push_back(p->property_fragment());
Block* expanded_block = p->block()->perform(this)->block();
Block* current_block = block_stack.back();
for (size_t i = 0, L = expanded_block->length(); i < L; ++i) {
Statement* stm = (*expanded_block)[i];
if (typeid(*stm) == typeid(Declaration)) {
Declaration* dec = static_cast<Declaration*>(stm);
String_Schema* combined_prop = new (ctx.mem) String_Schema(p->pstate());
if (!property_stack.empty()) {
*combined_prop << property_stack.back()
libsass/inspect.cpp view on Meta::CPAN
}
void Inspect::operator()(Keyframe_Rule* rule)
{
if (rule->selector()) rule->selector()->perform(this);
if (rule->block()) rule->block()->perform(this);
}
void Inspect::operator()(Propset* propset)
{
propset->property_fragment()->perform(this);
append_colon_separator();
propset->block()->perform(this);
}
void Inspect::operator()(Bubble* bubble)
{
append_indentation();
append_token("::BUBBLE", bubble);
append_scope_opener();
bubble->node()->perform(this);
t/sass-spec/spec/scss-tests/126_test_media_interpolation_with_reparse/input.scss view on Meta::CPAN
$constraint: "(max-width: 300px)";
$fragment: "nd #{$constraint}";
$comma: "een, pri";
@media screen and #{$constraint} {a: b}
@media screen {
@media #{$constraint} {a: b}
}
@media screen a#{$fragment} {a: b}
@media scr#{$comma}nt {
@media #{$constraint} {a: b}
}
( run in 5.399 seconds using v1.01-cache-2.11-cpan-364913b4093 )