sassc 0.0.1

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 (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,28 @@
1
+ 
2
+ Microsoft Visual Studio Solution File, Format Version 12.00
3
+ # Visual Studio 2013
4
+ VisualStudioVersion = 12.0.30723.0
5
+ MinimumVisualStudioVersion = 10.0.40219.1
6
+ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libsass", "libsass.vcxproj", "{E4030474-AFC9-4CC6-BEB6-D846F631502B}"
7
+ EndProject
8
+ Global
9
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
10
+ Debug|Win32 = Debug|Win32
11
+ Debug|Win64 = Debug|Win64
12
+ Release|Win32 = Release|Win32
13
+ Release|Win64 = Release|Win64
14
+ EndGlobalSection
15
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
16
+ {E4030474-AFC9-4CC6-BEB6-D846F631502B}.Debug|Win32.ActiveCfg = Debug|Win32
17
+ {E4030474-AFC9-4CC6-BEB6-D846F631502B}.Debug|Win32.Build.0 = Debug|Win32
18
+ {E4030474-AFC9-4CC6-BEB6-D846F631502B}.Debug|Win64.ActiveCfg = Debug|x64
19
+ {E4030474-AFC9-4CC6-BEB6-D846F631502B}.Debug|Win64.Build.0 = Debug|x64
20
+ {E4030474-AFC9-4CC6-BEB6-D846F631502B}.Release|Win32.ActiveCfg = Release|Win32
21
+ {E4030474-AFC9-4CC6-BEB6-D846F631502B}.Release|Win32.Build.0 = Release|Win32
22
+ {E4030474-AFC9-4CC6-BEB6-D846F631502B}.Release|Win64.ActiveCfg = Release|x64
23
+ {E4030474-AFC9-4CC6-BEB6-D846F631502B}.Release|Win64.Build.0 = Release|x64
24
+ EndGlobalSection
25
+ GlobalSection(SolutionProperties) = preSolution
26
+ HideSolutionNode = FALSE
27
+ EndGlobalSection
28
+ EndGlobal
@@ -0,0 +1,255 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3
+ <ItemGroup Label="ProjectConfigurations">
4
+ <ProjectConfiguration Include="Debug|Win32">
5
+ <Configuration>Debug</Configuration>
6
+ <Platform>Win32</Platform>
7
+ </ProjectConfiguration>
8
+ <ProjectConfiguration Include="Debug|x64">
9
+ <Configuration>Debug</Configuration>
10
+ <Platform>x64</Platform>
11
+ </ProjectConfiguration>
12
+ <ProjectConfiguration Include="Release|Win32">
13
+ <Configuration>Release</Configuration>
14
+ <Platform>Win32</Platform>
15
+ </ProjectConfiguration>
16
+ <ProjectConfiguration Include="Release|x64">
17
+ <Configuration>Release</Configuration>
18
+ <Platform>x64</Platform>
19
+ </ProjectConfiguration>
20
+ </ItemGroup>
21
+ <PropertyGroup Label="Globals">
22
+ <ProjectGuid>{E4030474-AFC9-4CC6-BEB6-D846F631502B}</ProjectGuid>
23
+ <Keyword>Win32Proj</Keyword>
24
+ <RootNamespace>libsass</RootNamespace>
25
+ </PropertyGroup>
26
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
27
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
28
+ <ConfigurationType>Application</ConfigurationType>
29
+ <UseDebugLibraries>true</UseDebugLibraries>
30
+ <PlatformToolset>v120</PlatformToolset>
31
+ <CharacterSet>Unicode</CharacterSet>
32
+ </PropertyGroup>
33
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
34
+ <ConfigurationType>Application</ConfigurationType>
35
+ <UseDebugLibraries>true</UseDebugLibraries>
36
+ <PlatformToolset>v120</PlatformToolset>
37
+ <CharacterSet>Unicode</CharacterSet>
38
+ </PropertyGroup>
39
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
40
+ <ConfigurationType>Application</ConfigurationType>
41
+ <UseDebugLibraries>false</UseDebugLibraries>
42
+ <PlatformToolset>v120</PlatformToolset>
43
+ <WholeProgramOptimization>true</WholeProgramOptimization>
44
+ <CharacterSet>Unicode</CharacterSet>
45
+ </PropertyGroup>
46
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
47
+ <ConfigurationType>Application</ConfigurationType>
48
+ <UseDebugLibraries>false</UseDebugLibraries>
49
+ <PlatformToolset>v120</PlatformToolset>
50
+ <WholeProgramOptimization>true</WholeProgramOptimization>
51
+ <CharacterSet>Unicode</CharacterSet>
52
+ </PropertyGroup>
53
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
54
+ <ImportGroup Label="ExtensionSettings">
55
+ </ImportGroup>
56
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
57
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
58
+ </ImportGroup>
59
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
60
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
61
+ </ImportGroup>
62
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
63
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
64
+ </ImportGroup>
65
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
66
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
67
+ </ImportGroup>
68
+ <PropertyGroup Label="UserMacros" />
69
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
70
+ <LinkIncremental>true</LinkIncremental>
71
+ <TargetName>sassc</TargetName>
72
+ <OutDir>$(SolutionDir)bin\Debug\</OutDir>
73
+ <IntDir>$(SolutionDir)bin\Debug\obj\</IntDir>
74
+ </PropertyGroup>
75
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
76
+ <LinkIncremental>true</LinkIncremental>
77
+ <TargetName>sassc</TargetName>
78
+ <OutDir>$(SolutionDir)bin\Debug\</OutDir>
79
+ <IntDir>$(SolutionDir)bin\Debug\obj\</IntDir>
80
+ </PropertyGroup>
81
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
82
+ <LinkIncremental>false</LinkIncremental>
83
+ <TargetName>sassc</TargetName>
84
+ <OutDir>$(SolutionDir)bin\</OutDir>
85
+ <IntDir>$(SolutionDir)bin\obj</IntDir>
86
+ </PropertyGroup>
87
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
88
+ <LinkIncremental>false</LinkIncremental>
89
+ <TargetName>sassc</TargetName>
90
+ <OutDir>$(SolutionDir)bin\</OutDir>
91
+ <IntDir>$(SolutionDir)bin\obj\</IntDir>
92
+ </PropertyGroup>
93
+ <ItemDefinitionGroup>
94
+ <ClCompile>
95
+ <AdditionalIncludeDirectories>..;..\posix;..\sassc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
96
+ </ClCompile>
97
+ </ItemDefinitionGroup>
98
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
99
+ <ClCompile>
100
+ <PrecompiledHeader>
101
+ </PrecompiledHeader>
102
+ <WarningLevel>Level3</WarningLevel>
103
+ <Optimization>Disabled</Optimization>
104
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
105
+ </ClCompile>
106
+ <Link>
107
+ <SubSystem>Console</SubSystem>
108
+ <GenerateDebugInformation>true</GenerateDebugInformation>
109
+ </Link>
110
+ </ItemDefinitionGroup>
111
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
112
+ <ClCompile>
113
+ <PrecompiledHeader>
114
+ </PrecompiledHeader>
115
+ <WarningLevel>Level3</WarningLevel>
116
+ <Optimization>Disabled</Optimization>
117
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
118
+ </ClCompile>
119
+ <Link>
120
+ <SubSystem>Console</SubSystem>
121
+ <GenerateDebugInformation>true</GenerateDebugInformation>
122
+ </Link>
123
+ </ItemDefinitionGroup>
124
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
125
+ <ClCompile>
126
+ <WarningLevel>Level3</WarningLevel>
127
+ <PrecompiledHeader>
128
+ </PrecompiledHeader>
129
+ <Optimization>MaxSpeed</Optimization>
130
+ <FunctionLevelLinking>true</FunctionLevelLinking>
131
+ <IntrinsicFunctions>true</IntrinsicFunctions>
132
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
133
+ </ClCompile>
134
+ <Link>
135
+ <SubSystem>Console</SubSystem>
136
+ <GenerateDebugInformation>true</GenerateDebugInformation>
137
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
138
+ <OptimizeReferences>true</OptimizeReferences>
139
+ </Link>
140
+ </ItemDefinitionGroup>
141
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
142
+ <ClCompile>
143
+ <WarningLevel>Level3</WarningLevel>
144
+ <PrecompiledHeader>
145
+ </PrecompiledHeader>
146
+ <Optimization>MaxSpeed</Optimization>
147
+ <FunctionLevelLinking>true</FunctionLevelLinking>
148
+ <IntrinsicFunctions>true</IntrinsicFunctions>
149
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
150
+ </ClCompile>
151
+ <Link>
152
+ <SubSystem>Console</SubSystem>
153
+ <GenerateDebugInformation>true</GenerateDebugInformation>
154
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
155
+ <OptimizeReferences>true</OptimizeReferences>
156
+ </Link>
157
+ </ItemDefinitionGroup>
158
+ <ItemGroup>
159
+ <ClCompile Include="..\posix\getopt.c" />
160
+ <ClCompile Include="..\ast.cpp" />
161
+ <ClCompile Include="..\base64vlq.cpp" />
162
+ <ClCompile Include="..\bind.cpp" />
163
+ <ClCompile Include="..\cencode.c" />
164
+ <ClCompile Include="..\constants.cpp" />
165
+ <ClCompile Include="..\context.cpp" />
166
+ <ClCompile Include="..\contextualize.cpp" />
167
+ <ClCompile Include="..\copy_c_str.cpp" />
168
+ <ClCompile Include="..\error_handling.cpp" />
169
+ <ClCompile Include="..\eval.cpp" />
170
+ <ClCompile Include="..\expand.cpp" />
171
+ <ClCompile Include="..\extend.cpp" />
172
+ <ClCompile Include="..\file.cpp" />
173
+ <ClCompile Include="..\functions.cpp" />
174
+ <ClCompile Include="..\inspect.cpp" />
175
+ <ClCompile Include="..\json.cpp" />
176
+ <ClCompile Include="..\node.cpp" />
177
+ <ClCompile Include="..\output_compressed.cpp" />
178
+ <ClCompile Include="..\output_nested.cpp" />
179
+ <ClCompile Include="..\parser.cpp" />
180
+ <ClCompile Include="..\prelexer.cpp" />
181
+ <ClCompile Include="..\remove_placeholders.cpp" />
182
+ <ClCompile Include="..\sass.cpp" />
183
+ <ClCompile Include="..\sass2scss.cpp" />
184
+ <ClCompile Include="..\sass_interface.cpp" />
185
+ <ClCompile Include="..\sass_context.cpp" />
186
+ <ClCompile Include="..\sass_functions.cpp" />
187
+ <ClCompile Include="..\sass_values.cpp" />
188
+ <ClCompile Include="..\sass_util.cpp" />
189
+ <ClCompile Include="..\source_map.cpp" />
190
+ <ClCompile Include="..\to_c.cpp" />
191
+ <ClCompile Include="..\to_string.cpp" />
192
+ <ClCompile Include="..\units.cpp" />
193
+ <ClCompile Include="..\utf8_string.cpp" />
194
+ <ClCompile Include="..\util.cpp" />
195
+ <ClCompile Include="..\sassc\sassc.c" />
196
+ </ItemGroup>
197
+ <ItemGroup>
198
+ <ClInclude Include="..\ast.hpp" />
199
+ <ClInclude Include="..\ast_def_macros.hpp" />
200
+ <ClInclude Include="..\ast_factory.hpp" />
201
+ <ClInclude Include="..\ast_fwd_decl.hpp" />
202
+ <ClInclude Include="..\backtrace.hpp" />
203
+ <ClInclude Include="..\base64vlq.hpp" />
204
+ <ClInclude Include="..\bind.hpp" />
205
+ <ClInclude Include="..\color_names.hpp" />
206
+ <ClInclude Include="..\constants.hpp" />
207
+ <ClInclude Include="..\context.hpp" />
208
+ <ClInclude Include="..\contextualize.hpp" />
209
+ <ClInclude Include="..\copy_c_str.hpp" />
210
+ <ClInclude Include="..\debug.hpp" />
211
+ <ClInclude Include="..\environment.hpp" />
212
+ <ClInclude Include="..\error_handling.hpp" />
213
+ <ClInclude Include="..\eval.hpp" />
214
+ <ClInclude Include="..\expand.hpp" />
215
+ <ClInclude Include="..\extend.hpp" />
216
+ <ClInclude Include="..\file.hpp" />
217
+ <ClInclude Include="..\functions.hpp" />
218
+ <ClInclude Include="..\inspect.hpp" />
219
+ <ClInclude Include="..\json.hpp" />
220
+ <ClInclude Include="..\kwd_arg_macros.hpp" />
221
+ <ClInclude Include="..\mapping.hpp" />
222
+ <ClInclude Include="..\memory_manager.hpp" />
223
+ <ClInclude Include="..\node.hpp" />
224
+ <ClInclude Include="..\operation.hpp" />
225
+ <ClInclude Include="..\output_compressed.hpp" />
226
+ <ClInclude Include="..\output_nested.hpp" />
227
+ <ClInclude Include="..\parser.hpp" />
228
+ <ClInclude Include="..\paths.hpp" />
229
+ <ClInclude Include="..\position.hpp" />
230
+ <ClInclude Include="..\prelexer.hpp" />
231
+ <ClInclude Include="..\remove_placeholders.hpp" />
232
+ <ClInclude Include="..\sass.h" />
233
+ <ClInclude Include="..\sass2scss.h" />
234
+ <ClInclude Include="..\sass_context.h" />
235
+ <ClInclude Include="..\sass_functions.h" />
236
+ <ClInclude Include="..\sass_interface.h" />
237
+ <ClInclude Include="..\sass_values.h" />
238
+ <ClInclude Include="..\sass_util.hpp" />
239
+ <ClInclude Include="..\source_map.hpp" />
240
+ <ClInclude Include="..\subset_map.hpp" />
241
+ <ClInclude Include="..\token.hpp" />
242
+ <ClInclude Include="..\to_c.hpp" />
243
+ <ClInclude Include="..\to_string.hpp" />
244
+ <ClInclude Include="..\units.hpp" />
245
+ <ClInclude Include="..\utf8.h" />
246
+ <ClInclude Include="..\utf8\checked.h" />
247
+ <ClInclude Include="..\utf8\core.h" />
248
+ <ClInclude Include="..\utf8\unchecked.h" />
249
+ <ClInclude Include="..\utf8_string.hpp" />
250
+ <ClInclude Include="..\util.hpp" />
251
+ </ItemGroup>
252
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
253
+ <ImportGroup Label="ExtensionTargets">
254
+ </ImportGroup>
255
+ </Project>
@@ -0,0 +1,6 @@
1
+ module SassC
2
+ end
3
+
4
+ require_relative "sassc/version"
5
+ require_relative "sassc/native"
6
+ require_relative "sassc/engine"
@@ -0,0 +1,13 @@
1
+ module SassC
2
+ class Engine
3
+ def initialize(template, options = {})
4
+ #@options = self.class.normalize_options(options)
5
+ @template = template
6
+ end
7
+
8
+ def render
9
+ return _to_tree.render unless @options[:quiet]
10
+ Sass::Util.silence_sass_warnings {_to_tree.render}
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,44 @@
1
+ require "ffi"
2
+
3
+ module SassC
4
+ module Native
5
+ extend FFI::Library
6
+ ffi_lib 'ext/libsass/lib/libsass.so'
7
+
8
+ require_relative "native/sass_value"
9
+
10
+ typedef :pointer, :sass_options_ptr
11
+ typedef :pointer, :sass_context_ptr
12
+ typedef :pointer, :sass_file_context_ptr
13
+ typedef :pointer, :sass_data_context_ptr
14
+
15
+ typedef :pointer, :sass_c_function_list_ptr
16
+ typedef :pointer, :sass_c_function_callback_ptr
17
+ typedef :pointer, :sass_value_ptr
18
+
19
+ callback :sass_c_function, [:pointer, :pointer], :pointer
20
+
21
+ require_relative "native/sass_input_style"
22
+ require_relative "native/sass_output_style"
23
+ require_relative "native/string_list"
24
+
25
+ # Remove the redundant "sass_" from the beginning of every method name
26
+ def self.attach_function(*args)
27
+ super if args.size != 3
28
+
29
+ if args[0] =~ /^sass_/
30
+ args.unshift args[0].to_s.sub(/^sass_/, "")
31
+ end
32
+
33
+ super(*args)
34
+ end
35
+
36
+ # https://github.com/ffi/ffi/wiki/Examples#array-of-strings
37
+ def self.return_string_array(ptr)
38
+ ptr.read_pointer.null? ? [] : ptr.get_array_of_string(0).compact
39
+ end
40
+
41
+ require_relative "native/native_context_api"
42
+ require_relative "native/native_functions_api"
43
+ end
44
+ end
@@ -0,0 +1,140 @@
1
+ module SassC
2
+ module Native
3
+ attach_function :version, :libsass_version, [], :string
4
+
5
+ # Create and initialize an option struct
6
+ # ADDAPI struct Sass_Options* ADDCALL sass_make_options (void);
7
+ attach_function :sass_make_options, [], :sass_options_ptr
8
+
9
+ # Create and initialize a specific context
10
+ # ADDAPI struct Sass_File_Context* ADDCALL sass_make_file_context (const char* input_path);
11
+ # ADDAPI struct Sass_Data_Context* ADDCALL sass_make_data_context (char* source_string);
12
+ attach_function :sass_make_file_context, [:string], :sass_file_context_ptr
13
+ attach_function :sass_make_data_context, [:string], :sass_data_context_ptr
14
+
15
+ # Call the compilation step for the specific context
16
+ # ADDAPI int ADDCALL sass_compile_file_context (struct Sass_File_Context* ctx);
17
+ # ADDAPI int ADDCALL sass_compile_data_context (struct Sass_Data_Context* ctx);
18
+ attach_function :sass_compile_file_context, [:sass_file_context_ptr], :int
19
+ attach_function :sass_compile_data_context, [:sass_data_context_ptr], :int
20
+
21
+ # Create a sass compiler instance for more control
22
+ # ADDAPI struct Sass_Compiler* ADDCALL sass_make_file_compiler (struct Sass_File_Context* file_ctx);
23
+ # ADDAPI struct Sass_Compiler* ADDCALL sass_make_data_compiler (struct Sass_Data_Context* data_ctx);
24
+
25
+ # Execute the different compilation steps individually
26
+ # Usefull if you only want to query the included files
27
+ # ADDAPI int ADDCALL sass_compiler_parse(struct Sass_Compiler* compiler);
28
+ # ADDAPI int ADDCALL sass_compiler_execute(struct Sass_Compiler* compiler);
29
+
30
+ # Release all memory allocated with the compiler
31
+ # This does _not_ include any contexts or options
32
+ # ADDAPI void ADDCALL sass_delete_compiler(struct Sass_Compiler* compiler);
33
+
34
+ # Release all memory allocated and also ourself
35
+ # ADDAPI void ADDCALL sass_delete_file_context (struct Sass_File_Context* ctx);
36
+ # ADDAPI void ADDCALL sass_delete_data_context (struct Sass_Data_Context* ctx);
37
+ attach_function :sass_delete_file_context, [:sass_file_context_ptr], :void
38
+ attach_function :sass_delete_data_context, [:sass_data_context_ptr], :void
39
+
40
+ # Getters for context from specific implementation
41
+ # ADDAPI struct Sass_Context* ADDCALL sass_file_context_get_context (struct Sass_File_Context* file_ctx);
42
+ # ADDAPI struct Sass_Context* ADDCALL sass_data_context_get_context (struct Sass_Data_Context* data_ctx);
43
+ attach_function :sass_file_context_get_context, [:sass_file_context_ptr], :sass_context_ptr
44
+ attach_function :sass_data_context_get_context, [:sass_data_context_ptr], :sass_context_ptr
45
+
46
+ # Getters for context options from Sass_Context
47
+ # ADDAPI struct Sass_Options* ADDCALL sass_context_get_options (struct Sass_Context* ctx);
48
+ # ADDAPI struct Sass_Options* ADDCALL sass_file_context_get_options (struct Sass_File_Context* file_ctx);
49
+ # ADDAPI struct Sass_Options* ADDCALL sass_data_context_get_options (struct Sass_Data_Context* data_ctx);
50
+ # ADDAPI void ADDCALL sass_file_context_set_options (struct Sass_File_Context* file_ctx, struct Sass_Options* opt);
51
+ # ADDAPI void ADDCALL sass_data_context_set_options (struct Sass_Data_Context* data_ctx, struct Sass_Options* opt);
52
+ attach_function :sass_context_get_options, [:sass_context_ptr], :sass_options_ptr
53
+ attach_function :sass_file_context_get_options, [:sass_file_context_ptr], :sass_options_ptr
54
+ attach_function :sass_data_context_get_options, [:sass_data_context_ptr], :sass_options_ptr
55
+ attach_function :sass_file_context_set_options, [:sass_file_context_ptr, :sass_options_ptr], :void
56
+ attach_function :sass_data_context_set_options, [:sass_data_context_ptr, :sass_options_ptr], :void
57
+
58
+ # Getters for options
59
+ # ADDAPI int ADDCALL sass_option_get_precision (struct Sass_Options* options);
60
+ # ADDAPI enum Sass_Output_Style ADDCALL sass_option_get_output_style (struct Sass_Options* options);
61
+ # ADDAPI bool ADDCALL sass_option_get_source_comments (struct Sass_Options* options);
62
+ # ADDAPI bool ADDCALL sass_option_get_source_map_embed (struct Sass_Options* options);
63
+ # ADDAPI bool ADDCALL sass_option_get_source_map_contents (struct Sass_Options* options);
64
+ # ADDAPI bool ADDCALL sass_option_get_omit_source_map_url (struct Sass_Options* options);
65
+ # ADDAPI bool ADDCALL sass_option_get_is_indented_syntax_src (struct Sass_Options* options);
66
+ # ADDAPI const char* ADDCALL sass_option_get_input_path (struct Sass_Options* options);
67
+ # ADDAPI const char* ADDCALL sass_option_get_output_path (struct Sass_Options* options);
68
+ # ADDAPI const char* ADDCALL sass_option_get_image_path (struct Sass_Options* options);
69
+ # ADDAPI const char* ADDCALL sass_option_get_include_path (struct Sass_Options* options);
70
+ # ADDAPI const char* ADDCALL sass_option_get_source_map_file (struct Sass_Options* options);
71
+ # ADDAPI Sass_C_Function_List ADDCALL sass_option_get_c_functions (struct Sass_Options* options);
72
+ attach_function :sass_option_get_precision, [:sass_options_ptr], :int
73
+ attach_function :sass_option_get_output_style, [:sass_options_ptr], SassOutputStyle
74
+ attach_function :sass_option_get_source_comments, [:sass_options_ptr], :bool
75
+ attach_function :sass_option_get_source_map_embed, [:sass_options_ptr], :bool
76
+ attach_function :sass_option_get_source_map_contents, [:sass_options_ptr], :bool
77
+ attach_function :sass_option_get_omit_source_map_url, [:sass_options_ptr], :bool
78
+ attach_function :sass_option_get_is_indented_syntax_src, [:sass_options_ptr], :bool
79
+ attach_function :sass_option_get_input_path, [:sass_options_ptr], :string
80
+ attach_function :sass_option_get_output_path, [:sass_options_ptr], :string
81
+ attach_function :sass_option_get_image_path, [:sass_options_ptr], :string
82
+ attach_function :sass_option_get_include_path, [:sass_options_ptr], :string
83
+ attach_function :sass_option_get_source_map_file, [:sass_options_ptr], :string
84
+ attach_function :sass_option_get_c_functions, [:sass_options_ptr], :sass_c_function_list_ptr
85
+ # ADDAPI Sass_C_Import_Callback ADDCALL sass_option_get_importer (struct Sass_Options* options);
86
+
87
+ # Setters for options
88
+ # ADDAPI void ADDCALL sass_option_set_precision (struct Sass_Options* options, int precision);
89
+ # ADDAPI void ADDCALL sass_option_set_output_style (struct Sass_Options* options, enum Sass_Output_Style output_style);
90
+ # ADDAPI void ADDCALL sass_option_set_source_comments (struct Sass_Options* options, bool source_comments);
91
+ # ADDAPI void ADDCALL sass_option_set_source_map_embed (struct Sass_Options* options, bool source_map_embed);
92
+ # ADDAPI void ADDCALL sass_option_set_source_map_contents (struct Sass_Options* options, bool source_map_contents);
93
+ # ADDAPI void ADDCALL sass_option_set_omit_source_map_url (struct Sass_Options* options, bool omit_source_map_url);
94
+ # ADDAPI void ADDCALL sass_option_set_is_indented_syntax_src (struct Sass_Options* options, bool is_indented_syntax_src);
95
+ # ADDAPI void ADDCALL sass_option_set_input_path (struct Sass_Options* options, const char* input_path);
96
+ # ADDAPI void ADDCALL sass_option_set_output_path (struct Sass_Options* options, const char* output_path);
97
+ # ADDAPI void ADDCALL sass_option_set_image_path (struct Sass_Options* options, const char* image_path);
98
+ # ADDAPI void ADDCALL sass_option_set_include_path (struct Sass_Options* options, const char* include_path);
99
+ # ADDAPI void ADDCALL sass_option_set_source_map_file (struct Sass_Options* options, const char* source_map_file);
100
+ # ADDAPI void ADDCALL sass_option_set_c_functions (struct Sass_Options* options, Sass_C_Function_List c_functions);
101
+ attach_function :sass_option_set_precision, [:sass_options_ptr, :int], :void
102
+ attach_function :sass_option_set_output_style, [:sass_options_ptr, SassOutputStyle], :void
103
+ attach_function :sass_option_set_source_comments, [:sass_options_ptr, :bool], :void
104
+ attach_function :sass_option_set_source_map_embed, [:sass_options_ptr, :bool], :void
105
+ attach_function :sass_option_set_source_map_contents, [:sass_options_ptr, :bool], :void
106
+ attach_function :sass_option_set_omit_source_map_url, [:sass_options_ptr, :bool], :void
107
+ attach_function :sass_option_set_is_indented_syntax_src, [:sass_options_ptr, :bool], :void
108
+ attach_function :sass_option_set_input_path, [:sass_options_ptr, :string], :void
109
+ attach_function :sass_option_set_output_path, [:sass_options_ptr, :string], :void
110
+ attach_function :sass_option_set_image_path, [:sass_options_ptr, :string], :void
111
+ attach_function :sass_option_set_include_path, [:sass_options_ptr, :string], :void
112
+ attach_function :sass_option_set_source_map_file, [:sass_options_ptr, :string], :void
113
+ attach_function :sass_option_set_c_functions, [:sass_options_ptr, :pointer], :void
114
+ # ADDAPI void ADDCALL sass_option_set_importer (struct Sass_Options* options, Sass_C_Import_Callback importer);
115
+
116
+ # Getter for context
117
+ # ADDAPI const char* ADDCALL sass_context_get_output_string (struct Sass_Context* ctx);
118
+ # ADDAPI int ADDCALL sass_context_get_error_status (struct Sass_Context* ctx);
119
+ # ADDAPI const char* ADDCALL sass_context_get_error_json (struct Sass_Context* ctx);
120
+ # ADDAPI const char* ADDCALL sass_context_get_error_message (struct Sass_Context* ctx);
121
+ # ADDAPI const char* ADDCALL sass_context_get_error_file (struct Sass_Context* ctx);
122
+ # ADDAPI size_t ADDCALL sass_context_get_error_line (struct Sass_Context* ctx);
123
+ # ADDAPI size_t ADDCALL sass_context_get_error_column (struct Sass_Context* ctx);
124
+ # ADDAPI const char* ADDCALL sass_context_get_source_map_string (struct Sass_Context* ctx);
125
+ # ADDAPI char** ADDCALL sass_context_get_included_files (struct Sass_Context* ctx);
126
+ attach_function :sass_context_get_output_string, [:sass_context_ptr], :string
127
+ attach_function :sass_context_get_error_status, [:sass_context_ptr], :int
128
+ attach_function :sass_context_get_error_json, [:sass_context_ptr], :string
129
+ attach_function :sass_context_get_error_message, [:sass_context_ptr], :string
130
+ attach_function :sass_context_get_error_file, [:sass_context_ptr], :string
131
+ attach_function :sass_context_get_error_line, [:sass_context_ptr], :size_t
132
+ attach_function :sass_context_get_error_column, [:sass_context_ptr], :size_t
133
+ attach_function :sass_context_get_source_map_string, [:sass_context_ptr], :string
134
+ attach_function :_context_get_included_files, :sass_context_get_included_files, [:sass_context_ptr], :pointer
135
+
136
+ def self.context_get_included_files(*args)
137
+ return_string_array _context_get_included_files(*args)
138
+ end
139
+ end
140
+ end