Sha256: b28e7f6a92fc6645424491d9a5062e49326459be636deb0503b73c37e0be22df

Contents?: true

Size: 1.97 KB

Versions: 25

Compression:

Stored size: 1.97 KB

Contents

#include "../ast.hpp"
#include "../context.hpp"
#include "../parser.hpp"
#include "../to_string.hpp"
#include <string>

using namespace Sass;

Context ctx = Context(Context::Data());
To_String to_string;

Compound_Selector* compound_selector(string src)
{ return Parser::from_c_str(src.c_str(), ctx, "", Position()).parse_simple_selector_sequence(); }

Complex_Selector* complex_selector(string src)
{ return Parser::from_c_str(src.c_str(), ctx, "", Position()).parse_selector_combination(); }

void check_compound(string s1, string s2)
{
  cout << "Is "
       << s1
       << " a superselector of "
       << s2
       << "?\t"
       << compound_selector(s1 + ";")->is_superselector_of(compound_selector(s2 + ";"))
       << endl;
}

void check_complex(string s1, string s2)
{
  cout << "Is "
       << s1
       << " a superselector of "
       << s2
       << "?\t"
       << complex_selector(s1 + ";")->is_superselector_of(complex_selector(s2 + ";"))
       << endl;
}

int main()
{
  check_compound(".foo", ".foo.bar");
  check_compound(".foo.bar", ".foo");
  check_compound(".foo.bar", "div.foo");
  check_compound(".foo", "div.foo");
  check_compound("div.foo", ".foo");
  check_compound("div.foo", "div.bar.foo");
  check_compound("p.foo", "div.bar.foo");
  check_compound(".hux", ".mumble");

  cout << endl;

  check_complex(".foo ~ .bar", ".foo + .bar");
  check_complex(".foo .bar", ".foo + .bar");
  check_complex(".foo .bar", ".foo > .bar");
  check_complex(".foo .bar > .hux", ".foo.a .bar.b > .hux");
  check_complex(".foo ~ .bar .hux", ".foo.a + .bar.b > .hux");
  check_complex(".foo", ".bar .foo");
  check_complex(".foo", ".foo.a");
  check_complex(".foo.bar", ".foo");
  check_complex(".foo .bar .hux", ".bar .hux");
  check_complex(".foo ~ .bar .hux.x", ".foo.a + .bar.b > .hux.y");
  check_complex(".foo ~ .bar .hux", ".foo.a + .bar.b > .mumble");
  check_complex(".foo + .bar", ".foo ~ .bar");
  check_complex("a c e", "a b c d e");
  check_complex("c a e", "a b c d e");

  return 0;
}


Version data entries

25 entries across 25 versions & 2 rubygems

Version Path
gulp_assets-1.0.0.pre.5 template/node_modules/gulp-sass/node_modules/node-sass/src/libsass/test/test_superselector.cpp
gulp_assets-1.0.0.pre.4 template/node_modules/gulp-sass/node_modules/node-sass/src/libsass/test/test_superselector.cpp
gulp_assets-1.0.0.pre.3 template/node_modules/gulp-sass/node_modules/node-sass/src/libsass/test/test_superselector.cpp
sassc-1.7.1 ext/libsass/test/test_superselector.cpp
sassc-1.7.0 ext/libsass/test/test_superselector.cpp
sassc-1.6.0 ext/libsass/test/test_superselector.cpp
sassc-1.5.1 ext/libsass/test/test_superselector.cpp
sassc-1.5.0 ext/libsass/test/test_superselector.cpp
sassc-1.4.0 ext/libsass/test/test_superselector.cpp
sassc-1.3.0 ext/libsass/test/test_superselector.cpp
sassc-1.2.0 ext/libsass/test/test_superselector.cpp
sassc-1.1.2 ext/libsass/test/test_superselector.cpp
sassc-1.1.1 ext/libsass/test/test_superselector.cpp
sassc-1.1.0 ext/libsass/test/test_superselector.cpp
sassc-1.0.0 ext/libsass/test/test_superselector.cpp
sassc-0.0.11 ext/libsass/test/test_superselector.cpp
sassc-0.0.10 ext/libsass/test/test_superselector.cpp
sassc-0.0.9 ext/libsass/test/test_superselector.cpp
sassc-0.0.8 ext/libsass/test/test_superselector.cpp
sassc-0.0.7 ext/libsass/test/test_superselector.cpp