sassc 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (151) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +15 -0
  3. data/.gitmodules +3 -0
  4. data/.travis.yml +9 -0
  5. data/Gemfile +4 -0
  6. data/LICENSE.txt +22 -0
  7. data/README.md +24 -0
  8. data/Rakefile +21 -0
  9. data/ext/libsass/.editorconfig +15 -0
  10. data/ext/libsass/.gitattributes +2 -0
  11. data/ext/libsass/.gitignore +61 -0
  12. data/ext/libsass/.travis.yml +38 -0
  13. data/ext/libsass/COPYING +25 -0
  14. data/ext/libsass/INSTALL +1 -0
  15. data/ext/libsass/LICENSE +25 -0
  16. data/ext/libsass/Makefile +223 -0
  17. data/ext/libsass/Makefile.am +145 -0
  18. data/ext/libsass/Readme.md +93 -0
  19. data/ext/libsass/appveyor.yml +76 -0
  20. data/ext/libsass/ast.cpp +581 -0
  21. data/ext/libsass/ast.hpp +1949 -0
  22. data/ext/libsass/ast_def_macros.hpp +16 -0
  23. data/ext/libsass/ast_factory.hpp +87 -0
  24. data/ext/libsass/ast_fwd_decl.hpp +72 -0
  25. data/ext/libsass/b64/cencode.h +32 -0
  26. data/ext/libsass/b64/encode.h +77 -0
  27. data/ext/libsass/backtrace.hpp +81 -0
  28. data/ext/libsass/base64vlq.cpp +43 -0
  29. data/ext/libsass/base64vlq.hpp +28 -0
  30. data/ext/libsass/bind.cpp +187 -0
  31. data/ext/libsass/bind.hpp +18 -0
  32. data/ext/libsass/cencode.c +102 -0
  33. data/ext/libsass/color_names.hpp +324 -0
  34. data/ext/libsass/configure.ac +130 -0
  35. data/ext/libsass/constants.cpp +144 -0
  36. data/ext/libsass/constants.hpp +145 -0
  37. data/ext/libsass/context.cpp +507 -0
  38. data/ext/libsass/context.hpp +150 -0
  39. data/ext/libsass/contextualize.cpp +157 -0
  40. data/ext/libsass/contextualize.hpp +65 -0
  41. data/ext/libsass/copy_c_str.cpp +13 -0
  42. data/ext/libsass/copy_c_str.hpp +5 -0
  43. data/ext/libsass/debug.hpp +39 -0
  44. data/ext/libsass/environment.hpp +75 -0
  45. data/ext/libsass/error_handling.cpp +28 -0
  46. data/ext/libsass/error_handling.hpp +28 -0
  47. data/ext/libsass/eval.cpp +1149 -0
  48. data/ext/libsass/eval.hpp +80 -0
  49. data/ext/libsass/expand.cpp +430 -0
  50. data/ext/libsass/expand.hpp +77 -0
  51. data/ext/libsass/extconf.rb +6 -0
  52. data/ext/libsass/extend.cpp +1962 -0
  53. data/ext/libsass/extend.hpp +50 -0
  54. data/ext/libsass/file.cpp +291 -0
  55. data/ext/libsass/file.hpp +18 -0
  56. data/ext/libsass/functions.cpp +1565 -0
  57. data/ext/libsass/functions.hpp +187 -0
  58. data/ext/libsass/inspect.cpp +727 -0
  59. data/ext/libsass/inspect.hpp +108 -0
  60. data/ext/libsass/json.cpp +1411 -0
  61. data/ext/libsass/json.hpp +117 -0
  62. data/ext/libsass/kwd_arg_macros.hpp +23 -0
  63. data/ext/libsass/m4/.gitkeep +0 -0
  64. data/ext/libsass/mapping.hpp +17 -0
  65. data/ext/libsass/memory_manager.hpp +54 -0
  66. data/ext/libsass/node.cpp +251 -0
  67. data/ext/libsass/node.hpp +122 -0
  68. data/ext/libsass/operation.hpp +153 -0
  69. data/ext/libsass/output_compressed.cpp +401 -0
  70. data/ext/libsass/output_compressed.hpp +95 -0
  71. data/ext/libsass/output_nested.cpp +364 -0
  72. data/ext/libsass/output_nested.hpp +108 -0
  73. data/ext/libsass/parser.cpp +2016 -0
  74. data/ext/libsass/parser.hpp +264 -0
  75. data/ext/libsass/paths.hpp +69 -0
  76. data/ext/libsass/position.hpp +22 -0
  77. data/ext/libsass/posix/getopt.c +562 -0
  78. data/ext/libsass/posix/getopt.h +95 -0
  79. data/ext/libsass/prelexer.cpp +688 -0
  80. data/ext/libsass/prelexer.hpp +513 -0
  81. data/ext/libsass/remove_placeholders.cpp +59 -0
  82. data/ext/libsass/remove_placeholders.hpp +43 -0
  83. data/ext/libsass/res/resource.rc +35 -0
  84. data/ext/libsass/sass.cpp +33 -0
  85. data/ext/libsass/sass.h +60 -0
  86. data/ext/libsass/sass2scss.cpp +834 -0
  87. data/ext/libsass/sass2scss.h +110 -0
  88. data/ext/libsass/sass_context.cpp +709 -0
  89. data/ext/libsass/sass_context.h +120 -0
  90. data/ext/libsass/sass_functions.cpp +137 -0
  91. data/ext/libsass/sass_functions.h +90 -0
  92. data/ext/libsass/sass_interface.cpp +277 -0
  93. data/ext/libsass/sass_interface.h +97 -0
  94. data/ext/libsass/sass_util.cpp +136 -0
  95. data/ext/libsass/sass_util.hpp +259 -0
  96. data/ext/libsass/sass_values.cpp +337 -0
  97. data/ext/libsass/sass_values.h +124 -0
  98. data/ext/libsass/script/bootstrap +10 -0
  99. data/ext/libsass/script/branding +10 -0
  100. data/ext/libsass/script/ci-build-libsass +72 -0
  101. data/ext/libsass/script/ci-install-compiler +4 -0
  102. data/ext/libsass/script/ci-install-deps +19 -0
  103. data/ext/libsass/script/ci-report-coverage +25 -0
  104. data/ext/libsass/script/coveralls-debug +32 -0
  105. data/ext/libsass/script/spec +5 -0
  106. data/ext/libsass/script/tap-driver +652 -0
  107. data/ext/libsass/script/tap-runner +1 -0
  108. data/ext/libsass/source_map.cpp +133 -0
  109. data/ext/libsass/source_map.hpp +46 -0
  110. data/ext/libsass/subset_map.hpp +145 -0
  111. data/ext/libsass/support/libsass.pc.in +11 -0
  112. data/ext/libsass/test-driver +127 -0
  113. data/ext/libsass/test/test_node.cpp +98 -0
  114. data/ext/libsass/test/test_paths.cpp +29 -0
  115. data/ext/libsass/test/test_selector_difference.cpp +28 -0
  116. data/ext/libsass/test/test_specificity.cpp +28 -0
  117. data/ext/libsass/test/test_subset_map.cpp +472 -0
  118. data/ext/libsass/test/test_superselector.cpp +71 -0
  119. data/ext/libsass/test/test_unification.cpp +33 -0
  120. data/ext/libsass/to_c.cpp +61 -0
  121. data/ext/libsass/to_c.hpp +44 -0
  122. data/ext/libsass/to_string.cpp +29 -0
  123. data/ext/libsass/to_string.hpp +32 -0
  124. data/ext/libsass/token.hpp +32 -0
  125. data/ext/libsass/units.cpp +54 -0
  126. data/ext/libsass/units.hpp +10 -0
  127. data/ext/libsass/utf8.h +34 -0
  128. data/ext/libsass/utf8/checked.h +327 -0
  129. data/ext/libsass/utf8/core.h +329 -0
  130. data/ext/libsass/utf8/unchecked.h +228 -0
  131. data/ext/libsass/utf8_string.cpp +102 -0
  132. data/ext/libsass/utf8_string.hpp +36 -0
  133. data/ext/libsass/util.cpp +189 -0
  134. data/ext/libsass/util.hpp +26 -0
  135. data/ext/libsass/win/libsass.filters +291 -0
  136. data/ext/libsass/win/libsass.sln +28 -0
  137. data/ext/libsass/win/libsass.vcxproj +255 -0
  138. data/lib/sassc.rb +6 -0
  139. data/lib/sassc/engine.rb +13 -0
  140. data/lib/sassc/native.rb +44 -0
  141. data/lib/sassc/native/native_context_api.rb +140 -0
  142. data/lib/sassc/native/native_functions_api.rb +41 -0
  143. data/lib/sassc/native/sass_input_style.rb +11 -0
  144. data/lib/sassc/native/sass_output_style.rb +10 -0
  145. data/lib/sassc/native/sass_value.rb +95 -0
  146. data/lib/sassc/native/string_list.rb +8 -0
  147. data/lib/sassc/version.rb +3 -0
  148. data/sassc.gemspec +43 -0
  149. data/test/smoke_test.rb +171 -0
  150. data/test/test_helper.rb +4 -0
  151. metadata +281 -0
@@ -0,0 +1,102 @@
1
+ #ifndef SASS_UTF8_STRING
2
+ #define SASS_UTF8_STRING
3
+
4
+ #include <string>
5
+ #include <vector>
6
+ #include <cstdlib>
7
+ #include <cmath>
8
+
9
+ #include "utf8.h"
10
+
11
+ namespace Sass {
12
+ namespace UTF_8 {
13
+ using std::string;
14
+
15
+ // naming conventions:
16
+ // offset: raw byte offset (0 based)
17
+ // position: code point offset (0 based)
18
+ // index: code point offset (1 based or negative)
19
+
20
+ // function that will count the number of code points (utf-8 characters) from the given beginning to the given end
21
+ size_t code_point_count(const string& str, size_t start, size_t end) {
22
+ return utf8::distance(str.begin() + start, str.begin() + end);
23
+ }
24
+
25
+ size_t code_point_count(const string& str) {
26
+ return utf8::distance(str.begin(), str.end());
27
+ }
28
+
29
+ // function that will return the byte offset at a code point position
30
+ size_t offset_at_position(const string& str, size_t position) {
31
+ string::const_iterator it = str.begin();
32
+ utf8::advance(it, position, str.end());
33
+ return distance(str.begin(), it);
34
+ }
35
+
36
+ // function that returns number of bytes in a character at offset
37
+ size_t code_point_size_at_offset(const string& str, size_t offset) {
38
+ // get iterator from string and forward by offset
39
+ string::const_iterator stop = str.begin() + offset;
40
+ // check if beyond boundary
41
+ if (stop == str.end()) return 0;
42
+ // advance by one code point
43
+ utf8::advance(stop, 1, str.end());
44
+ // calculate offset for code point
45
+ return stop - str.begin() - offset;
46
+ }
47
+
48
+ // function that will return a normalized index, given a crazy one
49
+ size_t normalize_index(int index, size_t len) {
50
+ long signed_len = static_cast<long>(len);
51
+ // assuming the index is 1-based
52
+ // we are returning a 0-based index
53
+ if (index > 0 && index <= signed_len) {
54
+ // positive and within string length
55
+ return index-1;
56
+ }
57
+ else if (index > signed_len) {
58
+ // positive and past string length
59
+ return len;
60
+ }
61
+ else if (index == 0) {
62
+ return 0;
63
+ }
64
+ else if (std::abs((double)index) <= signed_len) {
65
+ // negative and within string length
66
+ return index + signed_len;
67
+ }
68
+ else {
69
+ // negative and past string length
70
+ return 0;
71
+ }
72
+ }
73
+
74
+ // utf16 functions
75
+ using std::wstring;
76
+
77
+ // convert from utf16/wide string to utf8 string
78
+ string convert_from_utf16(const wstring& utf16)
79
+ {
80
+ string utf8;
81
+ // pre-allocate expected memory
82
+ utf8.reserve(sizeof(utf16)/2);
83
+ utf8::utf16to8(utf16.begin(), utf16.end(),
84
+ back_inserter(utf8));
85
+ return utf8;
86
+ }
87
+
88
+ // convert from utf8 string to utf16/wide string
89
+ wstring convert_to_utf16(const string& utf8)
90
+ {
91
+ wstring utf16;
92
+ // pre-allocate expected memory
93
+ utf16.reserve(code_point_count(utf8)*2);
94
+ utf8::utf8to16(utf8.begin(), utf8.end(),
95
+ back_inserter(utf16));
96
+ return utf16;
97
+ }
98
+
99
+ }
100
+ }
101
+
102
+ #endif
@@ -0,0 +1,36 @@
1
+ #ifndef SASS_UTF8_STRING
2
+ #define SASS_UTF8_STRING
3
+
4
+ #include <string>
5
+
6
+ namespace Sass {
7
+ namespace UTF_8 {
8
+
9
+ // naming conventions:
10
+ // offset: raw byte offset (0 based)
11
+ // position: code point offset (0 based)
12
+ // index: code point offset (1 based or negative)
13
+
14
+ // function that will count the number of code points (utf-8 characters) from the beginning to the given end
15
+ size_t code_point_count(const string& str, size_t start, size_t end);
16
+ size_t code_point_count(const string& str);
17
+
18
+ // function that will return the byte offset of a code point in a
19
+ size_t offset_at_position(const string& str, size_t position);
20
+
21
+ // function that returns number of bytes in a character in a string
22
+ size_t code_point_size_at_offset(const string& str, size_t offset);
23
+
24
+ // function that will return a normalized index, given a crazy one
25
+ size_t normalize_index(int index, size_t len);
26
+
27
+ #ifdef _WIN32
28
+ // functions to handle unicode paths on windows
29
+ string convert_from_utf16(const wstring& wstr);
30
+ wstring convert_to_utf16(const string& str);
31
+ #endif
32
+
33
+ }
34
+ }
35
+
36
+ #endif
@@ -0,0 +1,189 @@
1
+ #include "util.hpp"
2
+
3
+ namespace Sass {
4
+ namespace Util {
5
+ using std::string;
6
+
7
+ string normalize_underscores(const string& str) {
8
+ string normalized = str;
9
+ for(size_t i = 0, L = normalized.length(); i < L; ++i) {
10
+ if(normalized[i] == '_') {
11
+ normalized[i] = '-';
12
+ }
13
+ }
14
+ return normalized;
15
+ }
16
+
17
+ string normalize_decimals(const string& str) {
18
+ string prefix = "0";
19
+ string normalized = str;
20
+
21
+ return normalized[0] == '.' ? normalized.insert(0, prefix) : normalized;
22
+ }
23
+
24
+ // compress a color sixtuplet if possible
25
+ // input: "#CC9900" -> output: "#C90"
26
+ string normalize_sixtuplet(const string& col) {
27
+ if(
28
+ col.substr(1, 1) == col.substr(2, 1) &&
29
+ col.substr(3, 1) == col.substr(4, 1) &&
30
+ col.substr(5, 1) == col.substr(6, 1)
31
+ ) {
32
+ return string("#" + col.substr(1, 1)
33
+ + col.substr(3, 1)
34
+ + col.substr(5, 1));
35
+ } else {
36
+ return string(col);
37
+ }
38
+ }
39
+
40
+ bool isPrintable(Ruleset* r) {
41
+ if (r == NULL) {
42
+ return false;
43
+ }
44
+
45
+ Block* b = r->block();
46
+
47
+ bool hasSelectors = static_cast<Selector_List*>(r->selector())->length() > 0;
48
+
49
+ if (!hasSelectors) {
50
+ return false;
51
+ }
52
+
53
+ bool hasDeclarations = false;
54
+ bool hasPrintableChildBlocks = false;
55
+ for (size_t i = 0, L = b->length(); i < L; ++i) {
56
+ Statement* stm = (*b)[i];
57
+ if (dynamic_cast<Has_Block*>(stm)) {
58
+ Block* pChildBlock = ((Has_Block*)stm)->block();
59
+ if (isPrintable(pChildBlock)) {
60
+ hasPrintableChildBlocks = true;
61
+ }
62
+ } else {
63
+ hasDeclarations = true;
64
+ }
65
+
66
+ if (hasDeclarations || hasPrintableChildBlocks) {
67
+ return true;
68
+ }
69
+ }
70
+
71
+ return false;
72
+ }
73
+
74
+ bool isPrintable(Feature_Block* f) {
75
+ if (f == NULL) {
76
+ return false;
77
+ }
78
+
79
+ Block* b = f->block();
80
+
81
+ bool hasSelectors = f->selector() && static_cast<Selector_List*>(f->selector())->length() > 0;
82
+
83
+ bool hasDeclarations = false;
84
+ bool hasPrintableChildBlocks = false;
85
+ for (size_t i = 0, L = b->length(); i < L; ++i) {
86
+ Statement* stm = (*b)[i];
87
+ if (!stm->is_hoistable() && f->selector() != NULL && !hasSelectors) {
88
+ // If a statement isn't hoistable, the selectors apply to it. If there are no selectors (a selector list of length 0),
89
+ // then those statements aren't considered printable. That means there was a placeholder that was removed. If the selector
90
+ // is NULL, then that means there was never a wrapping selector and it is printable (think of a top level media block with
91
+ // a declaration in it).
92
+ }
93
+ else if (typeid(*stm) == typeid(Declaration) || typeid(*stm) == typeid(At_Rule)) {
94
+ hasDeclarations = true;
95
+ }
96
+ else if (dynamic_cast<Has_Block*>(stm)) {
97
+ Block* pChildBlock = ((Has_Block*)stm)->block();
98
+ if (isPrintable(pChildBlock)) {
99
+ hasPrintableChildBlocks = true;
100
+ }
101
+ }
102
+
103
+ if (hasDeclarations || hasPrintableChildBlocks) {
104
+ return true;
105
+ }
106
+ }
107
+
108
+ return false;
109
+ }
110
+
111
+ bool isPrintable(Media_Block* m) {
112
+ if (m == NULL) {
113
+ return false;
114
+ }
115
+
116
+ Block* b = m->block();
117
+
118
+ bool hasSelectors = m->selector() && static_cast<Selector_List*>(m->selector())->length() > 0;
119
+
120
+ bool hasDeclarations = false;
121
+ bool hasPrintableChildBlocks = false;
122
+ for (size_t i = 0, L = b->length(); i < L; ++i) {
123
+ Statement* stm = (*b)[i];
124
+ if (!stm->is_hoistable() && m->selector() != NULL && !hasSelectors) {
125
+ // If a statement isn't hoistable, the selectors apply to it. If there are no selectors (a selector list of length 0),
126
+ // then those statements aren't considered printable. That means there was a placeholder that was removed. If the selector
127
+ // is NULL, then that means there was never a wrapping selector and it is printable (think of a top level media block with
128
+ // a declaration in it).
129
+ }
130
+ else if (typeid(*stm) == typeid(Declaration) || typeid(*stm) == typeid(At_Rule)) {
131
+ hasDeclarations = true;
132
+ }
133
+ else if (dynamic_cast<Has_Block*>(stm)) {
134
+ Block* pChildBlock = ((Has_Block*)stm)->block();
135
+ if (isPrintable(pChildBlock)) {
136
+ hasPrintableChildBlocks = true;
137
+ }
138
+ }
139
+
140
+ if (hasDeclarations || hasPrintableChildBlocks) {
141
+ return true;
142
+ }
143
+ }
144
+
145
+ return false;
146
+ }
147
+
148
+ bool isPrintable(Block* b) {
149
+ if (b == NULL) {
150
+ return false;
151
+ }
152
+
153
+ for (size_t i = 0, L = b->length(); i < L; ++i) {
154
+ Statement* stm = (*b)[i];
155
+ if (typeid(*stm) == typeid(Declaration) || typeid(*stm) == typeid(At_Rule)) {
156
+ return true;
157
+ }
158
+ else if (typeid(*stm) == typeid(Ruleset)) {
159
+ Ruleset* r = (Ruleset*) stm;
160
+ if (isPrintable(r)) {
161
+ return true;
162
+ }
163
+ }
164
+ else if (typeid(*stm) == typeid(Feature_Block)) {
165
+ Feature_Block* f = (Feature_Block*) stm;
166
+ if (isPrintable(f)) {
167
+ return true;
168
+ }
169
+ }
170
+ else if (typeid(*stm) == typeid(Media_Block)) {
171
+ Media_Block* m = (Media_Block*) stm;
172
+ if (isPrintable(m)) {
173
+ return true;
174
+ }
175
+ }
176
+ else if (dynamic_cast<Has_Block*>(stm) && isPrintable(((Has_Block*)stm)->block())) {
177
+ return true;
178
+ }
179
+ }
180
+
181
+ return false;
182
+ }
183
+
184
+ bool isAscii(int ch) {
185
+ return ch >= 0 && ch < 128;
186
+ }
187
+
188
+ }
189
+ }
@@ -0,0 +1,26 @@
1
+ #ifndef SASS_UTIL
2
+ #define SASS_UTIL
3
+
4
+ #ifndef SASS_AST
5
+ #include "ast.hpp"
6
+ #endif
7
+
8
+ #include <string>
9
+ namespace Sass {
10
+ namespace Util {
11
+
12
+ std::string normalize_underscores(const std::string& str);
13
+ std::string normalize_decimals(const std::string& str);
14
+ std::string normalize_sixtuplet(const std::string& col);
15
+
16
+ bool containsAnyPrintableStatements(Block* b);
17
+
18
+ bool isPrintable(Ruleset* r);
19
+ bool isPrintable(Feature_Block* r);
20
+ bool isPrintable(Media_Block* r);
21
+ bool isPrintable(Block* b);
22
+ bool isAscii(int ch);
23
+
24
+ }
25
+ }
26
+ #endif
@@ -0,0 +1,291 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3
+ <ItemGroup>
4
+ <Filter Include="Source Files">
5
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
6
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
7
+ </Filter>
8
+ <Filter Include="Header Files">
9
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
10
+ <Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
11
+ </Filter>
12
+ <Filter Include="Resource Files">
13
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
14
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
15
+ </Filter>
16
+ </ItemGroup>
17
+ <ItemGroup>
18
+ <ClCompile Include="..\sassc\sassc.c">
19
+ <Filter>Source Files</Filter>
20
+ </ClCompile>
21
+ <ClCompile Include="..\posix\getopt.c">
22
+ <Filter>Source Files</Filter>
23
+ </ClCompile>
24
+ <ClCompile Include="..\ast.cpp">
25
+ <Filter>Source Files</Filter>
26
+ </ClCompile>
27
+ <ClCompile Include="..\base64vlq.cpp">
28
+ <Filter>Source Files</Filter>
29
+ </ClCompile>
30
+ <ClCompile Include="..\bind.cpp">
31
+ <Filter>Source Files</Filter>
32
+ </ClCompile>
33
+ <ClCompile Include="..\constants.cpp">
34
+ <Filter>Source Files</Filter>
35
+ </ClCompile>
36
+ <ClCompile Include="..\context.cpp">
37
+ <Filter>Source Files</Filter>
38
+ </ClCompile>
39
+ <ClCompile Include="..\contextualize.cpp">
40
+ <Filter>Source Files</Filter>
41
+ </ClCompile>
42
+ <ClCompile Include="..\copy_c_str.cpp">
43
+ <Filter>Source Files</Filter>
44
+ </ClCompile>
45
+ <ClCompile Include="..\error_handling.cpp">
46
+ <Filter>Source Files</Filter>
47
+ </ClCompile>
48
+ <ClCompile Include="..\eval.cpp">
49
+ <Filter>Source Files</Filter>
50
+ </ClCompile>
51
+ <ClCompile Include="..\expand.cpp">
52
+ <Filter>Source Files</Filter>
53
+ </ClCompile>
54
+ <ClCompile Include="..\extend.cpp">
55
+ <Filter>Source Files</Filter>
56
+ </ClCompile>
57
+ <ClCompile Include="..\file.cpp">
58
+ <Filter>Source Files</Filter>
59
+ </ClCompile>
60
+ <ClCompile Include="..\functions.cpp">
61
+ <Filter>Source Files</Filter>
62
+ </ClCompile>
63
+ <ClCompile Include="..\inspect.cpp">
64
+ <Filter>Source Files</Filter>
65
+ </ClCompile>
66
+ <ClCompile Include="..\node.cpp">
67
+ <Filter>Source Files</Filter>
68
+ </ClCompile>
69
+ <ClCompile Include="..\output_compressed.cpp">
70
+ <Filter>Source Files</Filter>
71
+ </ClCompile>
72
+ <ClCompile Include="..\output_nested.cpp">
73
+ <Filter>Source Files</Filter>
74
+ </ClCompile>
75
+ <ClCompile Include="..\parser.cpp">
76
+ <Filter>Source Files</Filter>
77
+ </ClCompile>
78
+ <ClCompile Include="..\prelexer.cpp">
79
+ <Filter>Source Files</Filter>
80
+ </ClCompile>
81
+ <ClCompile Include="..\remove_placeholders.cpp">
82
+ <Filter>Source Files</Filter>
83
+ </ClCompile>
84
+ <ClCompile Include="..\sass.cpp">
85
+ <Filter>Source Files</Filter>
86
+ </ClCompile>
87
+ <ClCompile Include="..\sass_interface.cpp">
88
+ <Filter>Source Files</Filter>
89
+ </ClCompile>
90
+ <ClCompile Include="..\sass_util.cpp">
91
+ <Filter>Source Files</Filter>
92
+ </ClCompile>
93
+ <ClCompile Include="..\sass2scss.cpp">
94
+ <Filter>Source Files</Filter>
95
+ </ClCompile>
96
+ <ClCompile Include="..\source_map.cpp">
97
+ <Filter>Source Files</Filter>
98
+ </ClCompile>
99
+ <ClCompile Include="..\to_c.cpp">
100
+ <Filter>Source Files</Filter>
101
+ </ClCompile>
102
+ <ClCompile Include="..\to_string.cpp">
103
+ <Filter>Source Files</Filter>
104
+ </ClCompile>
105
+ <ClCompile Include="..\units.cpp">
106
+ <Filter>Source Files</Filter>
107
+ </ClCompile>
108
+ <ClCompile Include="..\utf8_string.cpp">
109
+ <Filter>Source Files</Filter>
110
+ </ClCompile>
111
+ <ClCompile Include="..\util.cpp">
112
+ <Filter>Source Files</Filter>
113
+ </ClCompile>
114
+ <ClCompile Include="..\cencode.c">
115
+ <Filter>Source Files</Filter>
116
+ </ClCompile>
117
+ <ClCompile Include="..\json.cpp">
118
+ <Filter>Source Files</Filter>
119
+ </ClCompile>
120
+ <ClCompile Include="..\sass_context.cpp">
121
+ <Filter>Source Files</Filter>
122
+ </ClCompile>
123
+ <ClCompile Include="..\sass_functions.cpp">
124
+ <Filter>Source Files</Filter>
125
+ </ClCompile>
126
+ <ClCompile Include="..\sass_values.cpp">
127
+ <Filter>Source Files</Filter>
128
+ </ClCompile>
129
+ </ItemGroup>
130
+ <ItemGroup>
131
+ <ClInclude Include="..\utf8\checked.h">
132
+ <Filter>Header Files</Filter>
133
+ </ClInclude>
134
+ <ClInclude Include="..\utf8\core.h">
135
+ <Filter>Header Files</Filter>
136
+ </ClInclude>
137
+ <ClInclude Include="..\utf8\unchecked.h">
138
+ <Filter>Header Files</Filter>
139
+ </ClInclude>
140
+ <ClInclude Include="..\ast.hpp">
141
+ <Filter>Header Files</Filter>
142
+ </ClInclude>
143
+ <ClInclude Include="..\ast_def_macros.hpp">
144
+ <Filter>Header Files</Filter>
145
+ </ClInclude>
146
+ <ClInclude Include="..\ast_factory.hpp">
147
+ <Filter>Header Files</Filter>
148
+ </ClInclude>
149
+ <ClInclude Include="..\ast_fwd_decl.hpp">
150
+ <Filter>Header Files</Filter>
151
+ </ClInclude>
152
+ <ClInclude Include="..\backtrace.hpp">
153
+ <Filter>Header Files</Filter>
154
+ </ClInclude>
155
+ <ClInclude Include="..\base64vlq.hpp">
156
+ <Filter>Header Files</Filter>
157
+ </ClInclude>
158
+ <ClInclude Include="..\bind.hpp">
159
+ <Filter>Header Files</Filter>
160
+ </ClInclude>
161
+ <ClInclude Include="..\color_names.hpp">
162
+ <Filter>Header Files</Filter>
163
+ </ClInclude>
164
+ <ClInclude Include="..\constants.hpp">
165
+ <Filter>Header Files</Filter>
166
+ </ClInclude>
167
+ <ClInclude Include="..\context.hpp">
168
+ <Filter>Header Files</Filter>
169
+ </ClInclude>
170
+ <ClInclude Include="..\contextualize.hpp">
171
+ <Filter>Header Files</Filter>
172
+ </ClInclude>
173
+ <ClInclude Include="..\copy_c_str.hpp">
174
+ <Filter>Header Files</Filter>
175
+ </ClInclude>
176
+ <ClInclude Include="..\debug.hpp">
177
+ <Filter>Header Files</Filter>
178
+ </ClInclude>
179
+ <ClInclude Include="..\environment.hpp">
180
+ <Filter>Header Files</Filter>
181
+ </ClInclude>
182
+ <ClInclude Include="..\error_handling.hpp">
183
+ <Filter>Header Files</Filter>
184
+ </ClInclude>
185
+ <ClInclude Include="..\eval.hpp">
186
+ <Filter>Header Files</Filter>
187
+ </ClInclude>
188
+ <ClInclude Include="..\expand.hpp">
189
+ <Filter>Header Files</Filter>
190
+ </ClInclude>
191
+ <ClInclude Include="..\extend.hpp">
192
+ <Filter>Header Files</Filter>
193
+ </ClInclude>
194
+ <ClInclude Include="..\file.hpp">
195
+ <Filter>Header Files</Filter>
196
+ </ClInclude>
197
+ <ClInclude Include="..\functions.hpp">
198
+ <Filter>Header Files</Filter>
199
+ </ClInclude>
200
+ <ClInclude Include="..\inspect.hpp">
201
+ <Filter>Header Files</Filter>
202
+ </ClInclude>
203
+ <ClInclude Include="..\kwd_arg_macros.hpp">
204
+ <Filter>Header Files</Filter>
205
+ </ClInclude>
206
+ <ClInclude Include="..\mapping.hpp">
207
+ <Filter>Header Files</Filter>
208
+ </ClInclude>
209
+ <ClInclude Include="..\memory_manager.hpp">
210
+ <Filter>Header Files</Filter>
211
+ </ClInclude>
212
+ <ClInclude Include="..\node.hpp">
213
+ <Filter>Header Files</Filter>
214
+ </ClInclude>
215
+ <ClInclude Include="..\operation.hpp">
216
+ <Filter>Header Files</Filter>
217
+ </ClInclude>
218
+ <ClInclude Include="..\output_compressed.hpp">
219
+ <Filter>Header Files</Filter>
220
+ </ClInclude>
221
+ <ClInclude Include="..\output_nested.hpp">
222
+ <Filter>Header Files</Filter>
223
+ </ClInclude>
224
+ <ClInclude Include="..\parser.hpp">
225
+ <Filter>Header Files</Filter>
226
+ </ClInclude>
227
+ <ClInclude Include="..\paths.hpp">
228
+ <Filter>Header Files</Filter>
229
+ </ClInclude>
230
+ <ClInclude Include="..\position.hpp">
231
+ <Filter>Header Files</Filter>
232
+ </ClInclude>
233
+ <ClInclude Include="..\prelexer.hpp">
234
+ <Filter>Header Files</Filter>
235
+ </ClInclude>
236
+ <ClInclude Include="..\remove_placeholders.hpp">
237
+ <Filter>Header Files</Filter>
238
+ </ClInclude>
239
+ <ClInclude Include="..\sass.h">
240
+ <Filter>Header Files</Filter>
241
+ </ClInclude>
242
+ <ClInclude Include="..\sass_interface.h">
243
+ <Filter>Header Files</Filter>
244
+ </ClInclude>
245
+ <ClInclude Include="..\sass_util.hpp">
246
+ <Filter>Header Files</Filter>
247
+ </ClInclude>
248
+ <ClInclude Include="..\sass2scss.h">
249
+ <Filter>Header Files</Filter>
250
+ </ClInclude>
251
+ <ClInclude Include="..\source_map.hpp">
252
+ <Filter>Header Files</Filter>
253
+ </ClInclude>
254
+ <ClInclude Include="..\subset_map.hpp">
255
+ <Filter>Header Files</Filter>
256
+ </ClInclude>
257
+ <ClInclude Include="..\to_c.hpp">
258
+ <Filter>Header Files</Filter>
259
+ </ClInclude>
260
+ <ClInclude Include="..\to_string.hpp">
261
+ <Filter>Header Files</Filter>
262
+ </ClInclude>
263
+ <ClInclude Include="..\token.hpp">
264
+ <Filter>Header Files</Filter>
265
+ </ClInclude>
266
+ <ClInclude Include="..\units.hpp">
267
+ <Filter>Header Files</Filter>
268
+ </ClInclude>
269
+ <ClInclude Include="..\utf8.h">
270
+ <Filter>Header Files</Filter>
271
+ </ClInclude>
272
+ <ClInclude Include="..\utf8_string.hpp">
273
+ <Filter>Header Files</Filter>
274
+ </ClInclude>
275
+ <ClInclude Include="..\util.hpp">
276
+ <Filter>Header Files</Filter>
277
+ </ClInclude>
278
+ <ClInclude Include="..\json.hpp">
279
+ <Filter>Header Files</Filter>
280
+ </ClInclude>
281
+ <ClInclude Include="..\sass_context.h">
282
+ <Filter>Header Files</Filter>
283
+ </ClInclude>
284
+ <ClInclude Include="..\sass_functions.h">
285
+ <Filter>Header Files</Filter>
286
+ </ClInclude>
287
+ <ClInclude Include="..\sass_values.h">
288
+ <Filter>Header Files</Filter>
289
+ </ClInclude>
290
+ </ItemGroup>
291
+ </Project>