sassc 2.0.1 → 2.1.0.pre1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (200) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/.gitmodules +1 -1
  4. data/.travis.yml +7 -3
  5. data/CHANGELOG.md +3 -0
  6. data/CODE_OF_CONDUCT.md +1 -1
  7. data/README.md +1 -1
  8. data/Rakefile +23 -8
  9. data/ext/extconf.rb +39 -0
  10. data/ext/libsass/.gitignore +1 -0
  11. data/ext/libsass/GNUmakefile.am +23 -39
  12. data/ext/libsass/Makefile +56 -91
  13. data/ext/libsass/Makefile.conf +16 -2
  14. data/ext/libsass/configure.ac +8 -12
  15. data/ext/libsass/include/sass/base.h +1 -0
  16. data/ext/libsass/include/sass/context.h +1 -1
  17. data/ext/libsass/src/GNUmakefile.am +1 -5
  18. data/ext/libsass/src/ast.cpp +747 -2010
  19. data/ext/libsass/src/ast.hpp +239 -2383
  20. data/ext/libsass/src/{to_c.cpp → ast2c.cpp} +22 -16
  21. data/ext/libsass/src/ast2c.hpp +39 -0
  22. data/ext/libsass/src/ast_def_macros.hpp +62 -10
  23. data/ext/libsass/src/ast_fwd_decl.cpp +1 -0
  24. data/ext/libsass/src/ast_fwd_decl.hpp +43 -165
  25. data/ext/libsass/src/ast_sel_cmp.cpp +909 -0
  26. data/ext/libsass/src/ast_sel_unify.cpp +280 -0
  27. data/ext/libsass/src/ast_selectors.cpp +1475 -0
  28. data/ext/libsass/src/ast_selectors.hpp +568 -0
  29. data/ext/libsass/src/ast_supports.cpp +130 -0
  30. data/ext/libsass/src/ast_supports.hpp +121 -0
  31. data/ext/libsass/src/ast_values.cpp +967 -0
  32. data/ext/libsass/src/ast_values.hpp +489 -0
  33. data/ext/libsass/src/backtrace.cpp +4 -0
  34. data/ext/libsass/src/base64vlq.cpp +3 -0
  35. data/ext/libsass/src/bind.cpp +18 -17
  36. data/ext/libsass/src/bind.hpp +3 -1
  37. data/ext/libsass/src/c2ast.cpp +64 -0
  38. data/ext/libsass/src/c2ast.hpp +14 -0
  39. data/ext/libsass/src/cencode.c +2 -2
  40. data/ext/libsass/src/check_nesting.cpp +52 -56
  41. data/ext/libsass/src/check_nesting.hpp +35 -34
  42. data/ext/libsass/src/color_maps.cpp +156 -153
  43. data/ext/libsass/src/color_maps.hpp +152 -152
  44. data/ext/libsass/src/constants.cpp +15 -0
  45. data/ext/libsass/src/constants.hpp +13 -0
  46. data/ext/libsass/src/context.cpp +24 -14
  47. data/ext/libsass/src/context.hpp +6 -6
  48. data/ext/libsass/src/cssize.cpp +69 -71
  49. data/ext/libsass/src/cssize.hpp +50 -50
  50. data/ext/libsass/src/debugger.hpp +117 -110
  51. data/ext/libsass/src/emitter.cpp +13 -12
  52. data/ext/libsass/src/emitter.hpp +13 -9
  53. data/ext/libsass/src/environment.cpp +15 -1
  54. data/ext/libsass/src/environment.hpp +6 -0
  55. data/ext/libsass/src/error_handling.cpp +36 -59
  56. data/ext/libsass/src/error_handling.hpp +29 -16
  57. data/ext/libsass/src/eval.cpp +302 -323
  58. data/ext/libsass/src/eval.hpp +64 -55
  59. data/ext/libsass/src/expand.cpp +94 -88
  60. data/ext/libsass/src/expand.hpp +33 -37
  61. data/ext/libsass/src/extend.cpp +38 -36
  62. data/ext/libsass/src/extend.hpp +15 -15
  63. data/ext/libsass/src/file.cpp +34 -2
  64. data/ext/libsass/src/fn_colors.cpp +594 -0
  65. data/ext/libsass/src/fn_colors.hpp +85 -0
  66. data/ext/libsass/src/fn_lists.cpp +284 -0
  67. data/ext/libsass/src/fn_lists.hpp +34 -0
  68. data/ext/libsass/src/fn_maps.cpp +94 -0
  69. data/ext/libsass/src/fn_maps.hpp +30 -0
  70. data/ext/libsass/src/fn_miscs.cpp +256 -0
  71. data/ext/libsass/src/fn_miscs.hpp +40 -0
  72. data/ext/libsass/src/fn_numbers.cpp +220 -0
  73. data/ext/libsass/src/fn_numbers.hpp +45 -0
  74. data/ext/libsass/src/fn_selectors.cpp +235 -0
  75. data/ext/libsass/src/fn_selectors.hpp +35 -0
  76. data/ext/libsass/src/fn_strings.cpp +254 -0
  77. data/ext/libsass/src/fn_strings.hpp +34 -0
  78. data/ext/libsass/src/fn_utils.cpp +156 -0
  79. data/ext/libsass/src/fn_utils.hpp +56 -0
  80. data/ext/libsass/src/inspect.cpp +101 -152
  81. data/ext/libsass/src/inspect.hpp +69 -73
  82. data/ext/libsass/src/json.cpp +2 -2
  83. data/ext/libsass/src/lexer.cpp +6 -3
  84. data/ext/libsass/src/listize.cpp +9 -11
  85. data/ext/libsass/src/listize.hpp +11 -7
  86. data/ext/libsass/src/memory/SharedPtr.cpp +2 -83
  87. data/ext/libsass/src/memory/SharedPtr.hpp +127 -143
  88. data/ext/libsass/src/node.cpp +13 -10
  89. data/ext/libsass/src/node.hpp +3 -3
  90. data/ext/libsass/src/operation.hpp +184 -144
  91. data/ext/libsass/src/operators.cpp +43 -17
  92. data/ext/libsass/src/operators.hpp +5 -5
  93. data/ext/libsass/src/output.cpp +21 -18
  94. data/ext/libsass/src/output.hpp +14 -21
  95. data/ext/libsass/src/parser.cpp +215 -183
  96. data/ext/libsass/src/parser.hpp +28 -24
  97. data/ext/libsass/src/plugins.cpp +5 -1
  98. data/ext/libsass/src/position.cpp +3 -0
  99. data/ext/libsass/src/prelexer.cpp +9 -3
  100. data/ext/libsass/src/prelexer.hpp +9 -9
  101. data/ext/libsass/src/remove_placeholders.cpp +14 -11
  102. data/ext/libsass/src/remove_placeholders.hpp +8 -9
  103. data/ext/libsass/src/sass.cpp +9 -3
  104. data/ext/libsass/src/sass.hpp +12 -9
  105. data/ext/libsass/src/sass2scss.cpp +45 -14
  106. data/ext/libsass/src/sass_context.cpp +18 -15
  107. data/ext/libsass/src/sass_functions.cpp +6 -3
  108. data/ext/libsass/src/sass_functions.hpp +1 -1
  109. data/ext/libsass/src/sass_util.cpp +3 -0
  110. data/ext/libsass/src/sass_values.cpp +21 -13
  111. data/ext/libsass/src/source_map.cpp +5 -2
  112. data/ext/libsass/src/source_map.hpp +2 -2
  113. data/ext/libsass/src/subset_map.cpp +4 -1
  114. data/ext/libsass/src/to_value.cpp +23 -21
  115. data/ext/libsass/src/to_value.hpp +18 -22
  116. data/ext/libsass/src/units.cpp +4 -0
  117. data/ext/libsass/src/units.hpp +1 -0
  118. data/ext/libsass/src/utf8/checked.h +12 -10
  119. data/ext/libsass/src/utf8/core.h +3 -0
  120. data/ext/libsass/src/utf8_string.cpp +3 -0
  121. data/ext/libsass/src/util.cpp +67 -75
  122. data/ext/libsass/src/util.hpp +64 -19
  123. data/ext/libsass/src/util_string.cpp +75 -0
  124. data/ext/libsass/src/util_string.hpp +19 -0
  125. data/ext/libsass/src/values.cpp +22 -13
  126. data/ext/libsass/src/values.hpp +2 -2
  127. data/ext/libsass/win/libsass.targets +30 -4
  128. data/ext/libsass/win/libsass.vcxproj.filters +82 -4
  129. data/lib/sassc.rb +24 -0
  130. data/lib/sassc/engine.rb +2 -2
  131. data/lib/sassc/native.rb +8 -1
  132. data/lib/sassc/version.rb +1 -1
  133. data/sassc.gemspec +19 -11
  134. data/test/engine_test.rb +26 -1
  135. data/test/native_test.rb +1 -1
  136. metadata +66 -72
  137. data/ext/Rakefile +0 -3
  138. data/ext/libsass/.github/CONTRIBUTING.md +0 -65
  139. data/ext/libsass/.github/ISSUE_TEMPLATE.md +0 -54
  140. data/ext/libsass/.travis.yml +0 -64
  141. data/ext/libsass/Readme.md +0 -104
  142. data/ext/libsass/SECURITY.md +0 -10
  143. data/ext/libsass/appveyor.yml +0 -91
  144. data/ext/libsass/docs/README.md +0 -20
  145. data/ext/libsass/docs/api-context-example.md +0 -45
  146. data/ext/libsass/docs/api-context-internal.md +0 -163
  147. data/ext/libsass/docs/api-context.md +0 -295
  148. data/ext/libsass/docs/api-doc.md +0 -215
  149. data/ext/libsass/docs/api-function-example.md +0 -67
  150. data/ext/libsass/docs/api-function-internal.md +0 -8
  151. data/ext/libsass/docs/api-function.md +0 -74
  152. data/ext/libsass/docs/api-importer-example.md +0 -112
  153. data/ext/libsass/docs/api-importer-internal.md +0 -20
  154. data/ext/libsass/docs/api-importer.md +0 -86
  155. data/ext/libsass/docs/api-value-example.md +0 -55
  156. data/ext/libsass/docs/api-value-internal.md +0 -76
  157. data/ext/libsass/docs/api-value.md +0 -154
  158. data/ext/libsass/docs/build-on-darwin.md +0 -27
  159. data/ext/libsass/docs/build-on-gentoo.md +0 -55
  160. data/ext/libsass/docs/build-on-windows.md +0 -139
  161. data/ext/libsass/docs/build-shared-library.md +0 -35
  162. data/ext/libsass/docs/build-with-autotools.md +0 -78
  163. data/ext/libsass/docs/build-with-makefiles.md +0 -68
  164. data/ext/libsass/docs/build-with-mingw.md +0 -107
  165. data/ext/libsass/docs/build-with-visual-studio.md +0 -90
  166. data/ext/libsass/docs/build.md +0 -97
  167. data/ext/libsass/docs/compatibility-plan.md +0 -48
  168. data/ext/libsass/docs/contributing.md +0 -17
  169. data/ext/libsass/docs/custom-functions-internal.md +0 -122
  170. data/ext/libsass/docs/dev-ast-memory.md +0 -223
  171. data/ext/libsass/docs/implementations.md +0 -56
  172. data/ext/libsass/docs/plugins.md +0 -47
  173. data/ext/libsass/docs/setup-environment.md +0 -68
  174. data/ext/libsass/docs/source-map-internals.md +0 -51
  175. data/ext/libsass/docs/trace.md +0 -26
  176. data/ext/libsass/docs/triage.md +0 -17
  177. data/ext/libsass/docs/unicode.md +0 -39
  178. data/ext/libsass/extconf.rb +0 -6
  179. data/ext/libsass/script/bootstrap +0 -13
  180. data/ext/libsass/script/branding +0 -10
  181. data/ext/libsass/script/ci-build-libsass +0 -134
  182. data/ext/libsass/script/ci-build-plugin +0 -62
  183. data/ext/libsass/script/ci-install-compiler +0 -6
  184. data/ext/libsass/script/ci-install-deps +0 -20
  185. data/ext/libsass/script/ci-report-coverage +0 -42
  186. data/ext/libsass/script/spec +0 -5
  187. data/ext/libsass/script/tap-driver +0 -652
  188. data/ext/libsass/script/tap-runner +0 -1
  189. data/ext/libsass/script/test-leaks.pl +0 -103
  190. data/ext/libsass/src/functions.cpp +0 -2234
  191. data/ext/libsass/src/functions.hpp +0 -198
  192. data/ext/libsass/src/to_c.hpp +0 -39
  193. data/ext/libsass/test/test_node.cpp +0 -94
  194. data/ext/libsass/test/test_paths.cpp +0 -28
  195. data/ext/libsass/test/test_selector_difference.cpp +0 -25
  196. data/ext/libsass/test/test_specificity.cpp +0 -25
  197. data/ext/libsass/test/test_subset_map.cpp +0 -472
  198. data/ext/libsass/test/test_superselector.cpp +0 -69
  199. data/ext/libsass/test/test_unification.cpp +0 -31
  200. data/lib/tasks/libsass.rb +0 -33
@@ -0,0 +1,75 @@
1
+ #include "util_string.hpp"
2
+
3
+ #include <algorithm>
4
+
5
+ namespace Sass {
6
+ namespace Util {
7
+
8
+ std::string rtrim(const std::string &str) {
9
+ std::string trimmed = str;
10
+ size_t pos_ws = trimmed.find_last_not_of(" \t\n\v\f\r");
11
+ if (pos_ws != std::string::npos) {
12
+ trimmed.erase(pos_ws + 1);
13
+ } else {
14
+ trimmed.clear();
15
+ }
16
+ return trimmed;
17
+ }
18
+
19
+ std::string normalize_newlines(const std::string& str) {
20
+ std::string result;
21
+ result.reserve(str.size());
22
+ std::size_t pos = 0;
23
+ while (true) {
24
+ const std::size_t newline = str.find_first_of("\n\f\r", pos);
25
+ if (newline == std::string::npos) break;
26
+ result.append(str, pos, newline - pos);
27
+ result += '\n';
28
+ if (str[newline] == '\r' && str[newline + 1] == '\n') {
29
+ pos = newline + 2;
30
+ } else {
31
+ pos = newline + 1;
32
+ }
33
+ }
34
+ result.append(str, pos, std::string::npos);
35
+ return result;
36
+ }
37
+
38
+ std::string normalize_underscores(const std::string& str) {
39
+ std::string normalized = str;
40
+ std::replace(normalized.begin(), normalized.end(), '_', '-');
41
+ return normalized;
42
+ }
43
+
44
+ std::string normalize_decimals(const std::string& str) {
45
+ std::string normalized;
46
+ if (!str.empty() && str[0] == '.') {
47
+ normalized.reserve(str.size() + 1);
48
+ normalized += '0';
49
+ normalized += str;
50
+ } else {
51
+ normalized = str;
52
+ }
53
+ return normalized;
54
+ }
55
+
56
+ char opening_bracket_for(char closing_bracket) {
57
+ switch (closing_bracket) {
58
+ case ')': return '(';
59
+ case ']': return '[';
60
+ case '}': return '{';
61
+ default: return '\0';
62
+ }
63
+ }
64
+
65
+ char closing_bracket_for(char opening_bracket) {
66
+ switch (opening_bracket) {
67
+ case '(': return ')';
68
+ case '[': return ']';
69
+ case '{': return '}';
70
+ default: return '\0';
71
+ }
72
+ }
73
+
74
+ } // namespace Sass
75
+ } // namespace Util
@@ -0,0 +1,19 @@
1
+ #ifndef SASS_UTIL_STRING_H
2
+ #define SASS_UTIL_STRING_H
3
+
4
+ #include <string>
5
+
6
+ namespace Sass {
7
+ namespace Util {
8
+
9
+ std::string rtrim(const std::string& str);
10
+
11
+ std::string normalize_newlines(const std::string& str);
12
+ std::string normalize_underscores(const std::string& str);
13
+ std::string normalize_decimals(const std::string& str);
14
+ char opening_bracket_for(char closing_bracket);
15
+ char closing_bracket_for(char opening_bracket);
16
+
17
+ } // namespace Sass
18
+ } // namespace Util
19
+ #endif // SASS_UTIL_STRING_H
@@ -1,4 +1,7 @@
1
+ // sass.hpp must go before all system headers to get the
2
+ // __EXTENSIONS__ fix on Solaris.
1
3
  #include "sass.hpp"
4
+
2
5
  #include "sass.h"
3
6
  #include "values.hpp"
4
7
 
@@ -7,21 +10,26 @@
7
10
  namespace Sass {
8
11
 
9
12
  // convert value from C++ side to C-API
10
- union Sass_Value* ast_node_to_sass_value (const Expression_Ptr val)
13
+ union Sass_Value* ast_node_to_sass_value (const Expression* val)
11
14
  {
12
15
  if (val->concrete_type() == Expression::NUMBER)
13
16
  {
14
- Number_Ptr_Const res = Cast<Number>(val);
17
+ const Number* res = Cast<Number>(val);
15
18
  return sass_make_number(res->value(), res->unit().c_str());
16
19
  }
17
20
  else if (val->concrete_type() == Expression::COLOR)
18
21
  {
19
- Color_Ptr_Const col = Cast<Color>(val);
20
- return sass_make_color(col->r(), col->g(), col->b(), col->a());
22
+ if (const Color_RGBA* rgba = Cast<Color_RGBA>(val)) {
23
+ return sass_make_color(rgba->r(), rgba->g(), rgba->b(), rgba->a());
24
+ } else {
25
+ // ToDo: allow to also use HSLA colors!!
26
+ Color_RGBA_Obj col = Cast<Color>(val)->copyAsRGBA();
27
+ return sass_make_color(col->r(), col->g(), col->b(), col->a());
28
+ }
21
29
  }
22
30
  else if (val->concrete_type() == Expression::LIST)
23
31
  {
24
- List_Ptr_Const l = Cast<List>(val);
32
+ const List* l = Cast<List>(val);
25
33
  union Sass_Value* list = sass_make_list(l->size(), l->separator(), l->is_bracketed());
26
34
  for (size_t i = 0, L = l->length(); i < L; ++i) {
27
35
  Expression_Obj obj = l->at(i);
@@ -32,7 +40,7 @@ namespace Sass {
32
40
  }
33
41
  else if (val->concrete_type() == Expression::MAP)
34
42
  {
35
- Map_Ptr_Const m = Cast<Map>(val);
43
+ const Map* m = Cast<Map>(val);
36
44
  union Sass_Value* map = sass_make_map(m->length());
37
45
  size_t i = 0; for (Expression_Obj key : m->keys()) {
38
46
  sass_map_set_key(map, i, ast_node_to_sass_value(key));
@@ -47,16 +55,16 @@ namespace Sass {
47
55
  }
48
56
  else if (val->concrete_type() == Expression::BOOLEAN)
49
57
  {
50
- Boolean_Ptr_Const res = Cast<Boolean>(val);
58
+ const Boolean* res = Cast<Boolean>(val);
51
59
  return sass_make_boolean(res->value());
52
60
  }
53
61
  else if (val->concrete_type() == Expression::STRING)
54
62
  {
55
- if (String_Quoted_Ptr_Const qstr = Cast<String_Quoted>(val))
63
+ if (const String_Quoted* qstr = Cast<String_Quoted>(val))
56
64
  {
57
65
  return sass_make_qstring(qstr->value().c_str());
58
66
  }
59
- else if (String_Constant_Ptr_Const cstr = Cast<String_Constant>(val))
67
+ else if (const String_Constant* cstr = Cast<String_Constant>(val))
60
68
  {
61
69
  return sass_make_string(cstr->value().c_str());
62
70
  }
@@ -65,7 +73,7 @@ namespace Sass {
65
73
  }
66
74
 
67
75
  // convert value from C-API to C++ side
68
- Value_Ptr sass_value_to_ast_node (const union Sass_Value* val)
76
+ Value* sass_value_to_ast_node (const union Sass_Value* val)
69
77
  {
70
78
  switch (sass_value_get_tag(val)) {
71
79
  case SASS_NUMBER:
@@ -78,7 +86,8 @@ namespace Sass {
78
86
  ParserState("[C-VALUE]"),
79
87
  sass_boolean_get_value(val));
80
88
  case SASS_COLOR:
81
- return SASS_MEMORY_NEW(Color,
89
+ // ToDo: allow to also use HSLA colors!!
90
+ return SASS_MEMORY_NEW(Color_RGBA,
82
91
  ParserState("[C-VALUE]"),
83
92
  sass_color_get_r(val),
84
93
  sass_color_get_g(val),
@@ -94,7 +103,7 @@ namespace Sass {
94
103
  ParserState("[C-VALUE]"),
95
104
  sass_string_get_value(val));
96
105
  case SASS_LIST: {
97
- List_Ptr l = SASS_MEMORY_NEW(List,
106
+ List* l = SASS_MEMORY_NEW(List,
98
107
  ParserState("[C-VALUE]"),
99
108
  sass_list_get_length(val),
100
109
  sass_list_get_separator(val));
@@ -105,7 +114,7 @@ namespace Sass {
105
114
  return l;
106
115
  }
107
116
  case SASS_MAP: {
108
- Map_Ptr m = SASS_MEMORY_NEW(Map, ParserState("[C-VALUE]"));
117
+ Map* m = SASS_MEMORY_NEW(Map, ParserState("[C-VALUE]"));
109
118
  for (size_t i = 0, L = sass_map_get_length(val); i < L; ++i) {
110
119
  *m << std::make_pair(
111
120
  sass_value_to_ast_node(sass_map_get_key(val, i)),
@@ -5,8 +5,8 @@
5
5
 
6
6
  namespace Sass {
7
7
 
8
- union Sass_Value* ast_node_to_sass_value (const Expression_Ptr val);
9
- Value_Ptr sass_value_to_ast_node (const union Sass_Value* val);
8
+ union Sass_Value* ast_node_to_sass_value (const Expression* val);
9
+ Value* sass_value_to_ast_node (const union Sass_Value* val);
10
10
 
11
11
  }
12
12
  #endif
@@ -11,6 +11,9 @@
11
11
  </ItemGroup>
12
12
  <ItemGroup Label="LibSass Headers">
13
13
  <ClInclude Include="$(LIBSASS_HEADERS_DIR)\ast.hpp" />
14
+ <ClInclude Include="$(LIBSASS_HEADERS_DIR)\ast_values.hpp" />
15
+ <ClInclude Include="$(LIBSASS_HEADERS_DIR)\ast_selectors.hpp" />
16
+ <ClInclude Include="$(LIBSASS_HEADERS_DIR)\ast_supports.hpp" />
14
17
  <ClInclude Include="$(LIBSASS_HEADERS_DIR)\ast_def_macros.hpp" />
15
18
  <ClInclude Include="$(LIBSASS_HEADERS_DIR)\memory\SharedPtr.hpp" />
16
19
  <ClInclude Include="$(LIBSASS_HEADERS_DIR)\ast_factory.hpp" />
@@ -32,7 +35,14 @@
32
35
  <ClInclude Include="$(LIBSASS_HEADERS_DIR)\expand.hpp" />
33
36
  <ClInclude Include="$(LIBSASS_HEADERS_DIR)\extend.hpp" />
34
37
  <ClInclude Include="$(LIBSASS_HEADERS_DIR)\file.hpp" />
35
- <ClInclude Include="$(LIBSASS_HEADERS_DIR)\functions.hpp" />
38
+ <ClInclude Include="$(LIBSASS_HEADERS_DIR)\fn_utils.hpp" />
39
+ <ClInclude Include="$(LIBSASS_HEADERS_DIR)\fn_miscs.hpp" />
40
+ <ClInclude Include="$(LIBSASS_HEADERS_DIR)\fn_maps.hpp" />
41
+ <ClInclude Include="$(LIBSASS_HEADERS_DIR)\fn_lists.hpp" />
42
+ <ClInclude Include="$(LIBSASS_HEADERS_DIR)\fn_colors.hpp" />
43
+ <ClInclude Include="$(LIBSASS_HEADERS_DIR)\fn_numbers.hpp" />
44
+ <ClInclude Include="$(LIBSASS_HEADERS_DIR)\fn_strings.hpp" />
45
+ <ClInclude Include="$(LIBSASS_HEADERS_DIR)\fn_selectors.hpp" />
36
46
  <ClInclude Include="$(LIBSASS_HEADERS_DIR)\inspect.hpp" />
37
47
  <ClInclude Include="$(LIBSASS_HEADERS_DIR)\json.hpp" />
38
48
  <ClInclude Include="$(LIBSASS_HEADERS_DIR)\kwd_arg_macros.hpp" />
@@ -55,7 +65,8 @@
55
65
  <ClInclude Include="$(LIBSASS_HEADERS_DIR)\sass_values.hpp" />
56
66
  <ClInclude Include="$(LIBSASS_HEADERS_DIR)\source_map.hpp" />
57
67
  <ClInclude Include="$(LIBSASS_HEADERS_DIR)\subset_map.hpp" />
58
- <ClInclude Include="$(LIBSASS_HEADERS_DIR)\to_c.hpp" />
68
+ <ClInclude Include="$(LIBSASS_HEADERS_DIR)\ast2c.hpp" />
69
+ <ClInclude Include="$(LIBSASS_HEADERS_DIR)\c2ast.hpp" />
59
70
  <ClInclude Include="$(LIBSASS_HEADERS_DIR)\to_value.hpp" />
60
71
  <ClInclude Include="$(LIBSASS_HEADERS_DIR)\units.hpp" />
61
72
  <ClInclude Include="$(LIBSASS_HEADERS_DIR)\utf8.h" />
@@ -64,10 +75,16 @@
64
75
  <ClInclude Include="$(LIBSASS_HEADERS_DIR)\utf8\unchecked.h" />
65
76
  <ClInclude Include="$(LIBSASS_HEADERS_DIR)\utf8_string.hpp" />
66
77
  <ClInclude Include="$(LIBSASS_HEADERS_DIR)\util.hpp" />
78
+ <ClInclude Include="$(LIBSASS_HEADERS_DIR)\util_string.hpp" />
67
79
  <ClInclude Include="$(LIBSASS_HEADERS_DIR)\values.hpp" />
68
80
  </ItemGroup>
69
81
  <ItemGroup Label="LibSass Sources">
70
82
  <ClCompile Include="$(LIBSASS_SRC_DIR)\ast.cpp" />
83
+ <ClCompile Include="$(LIBSASS_SRC_DIR)\ast_values.cpp" />
84
+ <ClCompile Include="$(LIBSASS_SRC_DIR)\ast_supports.cpp" />
85
+ <ClCompile Include="$(LIBSASS_SRC_DIR)\ast_sel_cmp.cpp" />
86
+ <ClCompile Include="$(LIBSASS_SRC_DIR)\ast_sel_unify.cpp" />
87
+ <ClCompile Include="$(LIBSASS_SRC_DIR)\ast_selectors.cpp" />
71
88
  <ClCompile Include="$(LIBSASS_SRC_DIR)\memory\SharedPtr.cpp" />
72
89
  <ClCompile Include="$(LIBSASS_SRC_DIR)\ast_fwd_decl.cpp" />
73
90
  <ClCompile Include="$(LIBSASS_SRC_DIR)\base64vlq.cpp" />
@@ -86,7 +103,14 @@
86
103
  <ClCompile Include="$(LIBSASS_SRC_DIR)\expand.cpp" />
87
104
  <ClCompile Include="$(LIBSASS_SRC_DIR)\extend.cpp" />
88
105
  <ClCompile Include="$(LIBSASS_SRC_DIR)\file.cpp" />
89
- <ClCompile Include="$(LIBSASS_SRC_DIR)\functions.cpp" />
106
+ <ClCompile Include="$(LIBSASS_SRC_DIR)\fn_utils.cpp" />
107
+ <ClCompile Include="$(LIBSASS_SRC_DIR)\fn_miscs.cpp" />
108
+ <ClCompile Include="$(LIBSASS_SRC_DIR)\fn_maps.cpp" />
109
+ <ClCompile Include="$(LIBSASS_SRC_DIR)\fn_lists.cpp" />
110
+ <ClCompile Include="$(LIBSASS_SRC_DIR)\fn_colors.cpp" />
111
+ <ClCompile Include="$(LIBSASS_SRC_DIR)\fn_numbers.cpp" />
112
+ <ClCompile Include="$(LIBSASS_SRC_DIR)\fn_strings.cpp" />
113
+ <ClCompile Include="$(LIBSASS_SRC_DIR)\fn_selectors.cpp" />
90
114
  <ClCompile Include="$(LIBSASS_SRC_DIR)\inspect.cpp" />
91
115
  <ClCompile Include="$(LIBSASS_SRC_DIR)\json.cpp" />
92
116
  <ClCompile Include="$(LIBSASS_SRC_DIR)\lexer.cpp" />
@@ -108,11 +132,13 @@
108
132
  <ClCompile Include="$(LIBSASS_SRC_DIR)\sass2scss.cpp" />
109
133
  <ClCompile Include="$(LIBSASS_SRC_DIR)\source_map.cpp" />
110
134
  <ClCompile Include="$(LIBSASS_SRC_DIR)\subset_map.cpp" />
111
- <ClCompile Include="$(LIBSASS_SRC_DIR)\to_c.cpp" />
135
+ <ClCompile Include="$(LIBSASS_SRC_DIR)\ast2c.cpp" />
136
+ <ClCompile Include="$(LIBSASS_SRC_DIR)\c2ast.cpp" />
112
137
  <ClCompile Include="$(LIBSASS_SRC_DIR)\to_value.cpp" />
113
138
  <ClCompile Include="$(LIBSASS_SRC_DIR)\units.cpp" />
114
139
  <ClCompile Include="$(LIBSASS_SRC_DIR)\utf8_string.cpp" />
115
140
  <ClCompile Include="$(LIBSASS_SRC_DIR)\util.cpp" />
141
+ <ClCompile Include="$(LIBSASS_SRC_DIR)\util_string.cpp" />
116
142
  <ClCompile Include="$(LIBSASS_SRC_DIR)\values.cpp" />
117
143
  </ItemGroup>
118
144
  </Project>
@@ -48,6 +48,15 @@
48
48
  <ClInclude Include="$(LIBSASS_HEADERS_DIR)\ast.hpp">
49
49
  <Filter>Headers</Filter>
50
50
  </ClInclude>
51
+ <ClInclude Include="$(LIBSASS_HEADERS_DIR)\ast_values.hpp">
52
+ <Filter>Headers</Filter>
53
+ </ClInclude>
54
+ <ClInclude Include="$(LIBSASS_HEADERS_DIR)\ast_selectors.hpp">
55
+ <Filter>Headers</Filter>
56
+ </ClInclude>
57
+ <ClInclude Include="$(LIBSASS_HEADERS_DIR)\ast_supports.hpp">
58
+ <Filter>Headers</Filter>
59
+ </ClInclude>
51
60
  <ClInclude Include="$(LIBSASS_HEADERS_DIR)\memory\SharedPtr.hpp">
52
61
  <Filter>Headers</Filter>
53
62
  </ClInclude>
@@ -108,7 +117,28 @@
108
117
  <ClInclude Include="$(LIBSASS_HEADERS_DIR)\file.hpp">
109
118
  <Filter>Headers</Filter>
110
119
  </ClInclude>
111
- <ClInclude Include="$(LIBSASS_HEADERS_DIR)\functions.hpp">
120
+ <ClInclude Include="$(LIBSASS_HEADERS_DIR)\fn_utils.hpp">
121
+ <Filter>Headers</Filter>
122
+ </ClInclude>
123
+ <ClInclude Include="$(LIBSASS_HEADERS_DIR)\fn_miscs.hpp">
124
+ <Filter>Headers</Filter>
125
+ </ClInclude>
126
+ <ClInclude Include="$(LIBSASS_HEADERS_DIR)\fn_maps.hpp">
127
+ <Filter>Headers</Filter>
128
+ </ClInclude>
129
+ <ClInclude Include="$(LIBSASS_HEADERS_DIR)\fn_lists.hpp">
130
+ <Filter>Headers</Filter>
131
+ </ClInclude>
132
+ <ClInclude Include="$(LIBSASS_HEADERS_DIR)\fn_colors.hpp">
133
+ <Filter>Headers</Filter>
134
+ </ClInclude>
135
+ <ClInclude Include="$(LIBSASS_HEADERS_DIR)\fn_numbers.hpp">
136
+ <Filter>Headers</Filter>
137
+ </ClInclude>
138
+ <ClInclude Include="$(LIBSASS_HEADERS_DIR)\fn_strings.hpp">
139
+ <Filter>Headers</Filter>
140
+ </ClInclude>
141
+ <ClInclude Include="$(LIBSASS_HEADERS_DIR)\fn_selectors.hpp">
112
142
  <Filter>Headers</Filter>
113
143
  </ClInclude>
114
144
  <ClInclude Include="$(LIBSASS_HEADERS_DIR)\inspect.hpp">
@@ -174,7 +204,10 @@
174
204
  <ClInclude Include="$(LIBSASS_HEADERS_DIR)\subset_map.hpp">
175
205
  <Filter>Headers</Filter>
176
206
  </ClInclude>
177
- <ClInclude Include="$(LIBSASS_HEADERS_DIR)\to_c.hpp">
207
+ <ClInclude Include="$(LIBSASS_HEADERS_DIR)\ast2c.hpp">
208
+ <Filter>Headers</Filter>
209
+ </ClInclude>
210
+ <ClInclude Include="$(LIBSASS_HEADERS_DIR)\c2ast.hpp">
178
211
  <Filter>Headers</Filter>
179
212
  </ClInclude>
180
213
  <ClInclude Include="$(LIBSASS_HEADERS_DIR)\to_value.hpp">
@@ -201,6 +234,9 @@
201
234
  <ClInclude Include="$(LIBSASS_HEADERS_DIR)\util.hpp">
202
235
  <Filter>Headers</Filter>
203
236
  </ClInclude>
237
+ <ClInclude Include="$(LIBSASS_HEADERS_DIR)\util_string.hpp">
238
+ <Filter>Headers</Filter>
239
+ </ClInclude>
204
240
  <ClInclude Include="$(LIBSASS_HEADERS_DIR)\values.hpp">
205
241
  <Filter>Headers</Filter>
206
242
  </ClInclude>
@@ -215,6 +251,21 @@
215
251
  <ClCompile Include="$(LIBSASS_SRC_DIR)\ast.cpp">
216
252
  <Filter>Sources</Filter>
217
253
  </ClCompile>
254
+ <ClCompile Include="$(LIBSASS_SRC_DIR)\ast_values.cpp">
255
+ <Filter>Sources</Filter>
256
+ </ClCompile>
257
+ <ClCompile Include="$(LIBSASS_SRC_DIR)\ast_selectors.cpp">
258
+ <Filter>Sources</Filter>
259
+ </ClCompile>
260
+ <ClCompile Include="$(LIBSASS_SRC_DIR)\ast_supports.cpp">
261
+ <Filter>Sources</Filter>
262
+ </ClCompile>
263
+ <ClCompile Include="$(LIBSASS_SRC_DIR)\ast_sel_cmp.cpp">
264
+ <Filter>Sources</Filter>
265
+ </ClCompile>
266
+ <ClCompile Include="$(LIBSASS_SRC_DIR)\ast_sel_unify.cpp">
267
+ <Filter>Sources</Filter>
268
+ </ClCompile>
218
269
  <ClCompile Include="$(LIBSASS_SRC_DIR)\memory\SharedPtr.cpp">
219
270
  <Filter>Sources</Filter>
220
271
  </ClCompile>
@@ -269,7 +320,28 @@
269
320
  <ClCompile Include="$(LIBSASS_SRC_DIR)\file.cpp">
270
321
  <Filter>Sources</Filter>
271
322
  </ClCompile>
272
- <ClCompile Include="$(LIBSASS_SRC_DIR)\functions.cpp">
323
+ <ClCompile Include="$(LIBSASS_SRC_DIR)\fn_utils.cpp">
324
+ <Filter>Sources</Filter>
325
+ </ClCompile>
326
+ <ClCompile Include="$(LIBSASS_SRC_DIR)\fn_miscs.cpp">
327
+ <Filter>Sources</Filter>
328
+ </ClCompile>
329
+ <ClCompile Include="$(LIBSASS_SRC_DIR)\fn_maps.cpp">
330
+ <Filter>Sources</Filter>
331
+ </ClCompile>
332
+ <ClCompile Include="$(LIBSASS_SRC_DIR)\fn_lists.cpp">
333
+ <Filter>Sources</Filter>
334
+ </ClCompile>
335
+ <ClCompile Include="$(LIBSASS_SRC_DIR)\fn_colors.cpp">
336
+ <Filter>Sources</Filter>
337
+ </ClCompile>
338
+ <ClCompile Include="$(LIBSASS_SRC_DIR)\fn_numbers.cpp">
339
+ <Filter>Sources</Filter>
340
+ </ClCompile>
341
+ <ClCompile Include="$(LIBSASS_SRC_DIR)\fn_strings.cpp">
342
+ <Filter>Sources</Filter>
343
+ </ClCompile>
344
+ <ClCompile Include="$(LIBSASS_SRC_DIR)\fn_selectors.cpp">
273
345
  <Filter>Sources</Filter>
274
346
  </ClCompile>
275
347
  <ClCompile Include="$(LIBSASS_SRC_DIR)\inspect.cpp">
@@ -335,7 +407,10 @@
335
407
  <ClCompile Include="$(LIBSASS_SRC_DIR)\subset_map.cpp">
336
408
  <Filter>Sources</Filter>
337
409
  </ClCompile>
338
- <ClCompile Include="$(LIBSASS_SRC_DIR)\to_c.cpp">
410
+ <ClCompile Include="$(LIBSASS_SRC_DIR)\ast2c.cpp">
411
+ <Filter>Sources</Filter>
412
+ </ClCompile>
413
+ <ClCompile Include="$(LIBSASS_SRC_DIR)\c2ast.cpp">
339
414
  <Filter>Sources</Filter>
340
415
  </ClCompile>
341
416
  <ClCompile Include="$(LIBSASS_SRC_DIR)\to_value.cpp">
@@ -350,6 +425,9 @@
350
425
  <ClCompile Include="$(LIBSASS_SRC_DIR)\util.cpp">
351
426
  <Filter>Sources</Filter>
352
427
  </ClCompile>
428
+ <ClCompile Include="$(LIBSASS_SRC_DIR)\util_string.cpp">
429
+ <Filter>Sources</Filter>
430
+ </ClCompile>
353
431
  <ClCompile Include="$(LIBSASS_SRC_DIR)\values.cpp">
354
432
  <Filter>Sources</Filter>
355
433
  </ClCompile>
@@ -1,6 +1,30 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SassC
4
+ # The global load paths for Sass files. This is meant for plugins and
5
+ # libraries to register the paths to their Sass stylesheets to that they may
6
+ # be `@imported`. This load path is used by every instance of {Sass::Engine}.
7
+ # They are lower-precedence than any load paths passed in via the
8
+ # {file:SASS_REFERENCE.md#load_paths-option `:load_paths` option}.
9
+ #
10
+ # If the `SASS_PATH` environment variable is set,
11
+ # the initial value of `load_paths` will be initialized based on that.
12
+ # The variable should be a colon-separated list of path names
13
+ # (semicolon-separated on Windows).
14
+ #
15
+ # Note that files on the global load path are never compiled to CSS
16
+ # themselves, even if they aren't partials. They exist only to be imported.
17
+ #
18
+ # @example
19
+ # SassC.load_paths << File.dirname(__FILE__ + '/sass')
20
+ # @return [Array<String, Pathname, Sass::Importers::Base>]
21
+ def self.load_paths
22
+ @load_paths ||= if ENV['SASS_PATH']
23
+ ENV['SASS_PATH'].split(SassC::Util.windows? ? ';' : ':')
24
+ else
25
+ []
26
+ end
27
+ end
4
28
  end
5
29
 
6
30
  require_relative "sassc/version"