sassc4 2.4.0
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.
- checksums.yaml +7 -0
- data/.gitignore +18 -0
- data/.gitmodules +3 -0
- data/.travis.yml +16 -0
- data/CHANGELOG.md +97 -0
- data/CODE_OF_CONDUCT.md +10 -0
- data/Gemfile +2 -0
- data/LICENSE.txt +22 -0
- data/README.md +80 -0
- data/Rakefile +51 -0
- data/ext/depend +4 -0
- data/ext/extconf.rb +92 -0
- data/ext/libsass/VERSION +1 -0
- data/ext/libsass/contrib/plugin.cpp +60 -0
- data/ext/libsass/include/sass/base.h +97 -0
- data/ext/libsass/include/sass/context.h +174 -0
- data/ext/libsass/include/sass/functions.h +139 -0
- data/ext/libsass/include/sass/values.h +145 -0
- data/ext/libsass/include/sass/version.h +12 -0
- data/ext/libsass/include/sass.h +15 -0
- data/ext/libsass/include/sass2scss.h +120 -0
- data/ext/libsass/src/MurmurHash2.hpp +91 -0
- data/ext/libsass/src/ast.cpp +953 -0
- data/ext/libsass/src/ast.hpp +1064 -0
- data/ext/libsass/src/ast2c.cpp +80 -0
- data/ext/libsass/src/ast2c.hpp +39 -0
- data/ext/libsass/src/ast_def_macros.hpp +140 -0
- data/ext/libsass/src/ast_fwd_decl.cpp +31 -0
- data/ext/libsass/src/ast_fwd_decl.hpp +274 -0
- data/ext/libsass/src/ast_helpers.hpp +316 -0
- data/ext/libsass/src/ast_sel_cmp.cpp +396 -0
- data/ext/libsass/src/ast_sel_super.cpp +539 -0
- data/ext/libsass/src/ast_sel_unify.cpp +275 -0
- data/ext/libsass/src/ast_sel_weave.cpp +616 -0
- data/ext/libsass/src/ast_selectors.cpp +1070 -0
- data/ext/libsass/src/ast_selectors.hpp +523 -0
- data/ext/libsass/src/ast_supports.cpp +114 -0
- data/ext/libsass/src/ast_supports.hpp +121 -0
- data/ext/libsass/src/ast_values.cpp +1154 -0
- data/ext/libsass/src/ast_values.hpp +498 -0
- data/ext/libsass/src/b64/cencode.h +32 -0
- data/ext/libsass/src/b64/encode.h +79 -0
- data/ext/libsass/src/backtrace.cpp +50 -0
- data/ext/libsass/src/backtrace.hpp +29 -0
- data/ext/libsass/src/base64vlq.cpp +47 -0
- data/ext/libsass/src/base64vlq.hpp +30 -0
- data/ext/libsass/src/bind.cpp +312 -0
- data/ext/libsass/src/bind.hpp +15 -0
- data/ext/libsass/src/c2ast.cpp +64 -0
- data/ext/libsass/src/c2ast.hpp +14 -0
- data/ext/libsass/src/c99func.c +54 -0
- data/ext/libsass/src/cencode.c +106 -0
- data/ext/libsass/src/check_nesting.cpp +393 -0
- data/ext/libsass/src/check_nesting.hpp +70 -0
- data/ext/libsass/src/color_maps.cpp +652 -0
- data/ext/libsass/src/color_maps.hpp +323 -0
- data/ext/libsass/src/color_spaces.cpp +241 -0
- data/ext/libsass/src/color_spaces.hpp +227 -0
- data/ext/libsass/src/constants.cpp +199 -0
- data/ext/libsass/src/constants.hpp +200 -0
- data/ext/libsass/src/context.cpp +870 -0
- data/ext/libsass/src/context.hpp +140 -0
- data/ext/libsass/src/cssize.cpp +521 -0
- data/ext/libsass/src/cssize.hpp +71 -0
- data/ext/libsass/src/dart_helpers.hpp +199 -0
- data/ext/libsass/src/debug.hpp +43 -0
- data/ext/libsass/src/debugger.hpp +964 -0
- data/ext/libsass/src/emitter.cpp +297 -0
- data/ext/libsass/src/emitter.hpp +101 -0
- data/ext/libsass/src/environment.cpp +260 -0
- data/ext/libsass/src/environment.hpp +124 -0
- data/ext/libsass/src/error_handling.cpp +239 -0
- data/ext/libsass/src/error_handling.hpp +248 -0
- data/ext/libsass/src/eval.cpp +1543 -0
- data/ext/libsass/src/eval.hpp +110 -0
- data/ext/libsass/src/eval_selectors.cpp +75 -0
- data/ext/libsass/src/expand.cpp +875 -0
- data/ext/libsass/src/expand.hpp +98 -0
- data/ext/libsass/src/extender.cpp +1226 -0
- data/ext/libsass/src/extender.hpp +399 -0
- data/ext/libsass/src/extension.cpp +43 -0
- data/ext/libsass/src/extension.hpp +89 -0
- data/ext/libsass/src/file.cpp +531 -0
- data/ext/libsass/src/file.hpp +124 -0
- data/ext/libsass/src/fn_colors.cpp +836 -0
- data/ext/libsass/src/fn_colors.hpp +99 -0
- data/ext/libsass/src/fn_lists.cpp +285 -0
- data/ext/libsass/src/fn_lists.hpp +34 -0
- data/ext/libsass/src/fn_maps.cpp +94 -0
- data/ext/libsass/src/fn_maps.hpp +30 -0
- data/ext/libsass/src/fn_miscs.cpp +248 -0
- data/ext/libsass/src/fn_miscs.hpp +40 -0
- data/ext/libsass/src/fn_numbers.cpp +246 -0
- data/ext/libsass/src/fn_numbers.hpp +45 -0
- data/ext/libsass/src/fn_selectors.cpp +205 -0
- data/ext/libsass/src/fn_selectors.hpp +35 -0
- data/ext/libsass/src/fn_strings.cpp +268 -0
- data/ext/libsass/src/fn_strings.hpp +34 -0
- data/ext/libsass/src/fn_utils.cpp +159 -0
- data/ext/libsass/src/fn_utils.hpp +62 -0
- data/ext/libsass/src/inspect.cpp +1126 -0
- data/ext/libsass/src/inspect.hpp +101 -0
- data/ext/libsass/src/json.cpp +1436 -0
- data/ext/libsass/src/json.hpp +117 -0
- data/ext/libsass/src/kwd_arg_macros.hpp +28 -0
- data/ext/libsass/src/lexer.cpp +122 -0
- data/ext/libsass/src/lexer.hpp +304 -0
- data/ext/libsass/src/listize.cpp +70 -0
- data/ext/libsass/src/listize.hpp +37 -0
- data/ext/libsass/src/mapping.hpp +19 -0
- data/ext/libsass/src/memory/allocator.cpp +48 -0
- data/ext/libsass/src/memory/allocator.hpp +138 -0
- data/ext/libsass/src/memory/config.hpp +20 -0
- data/ext/libsass/src/memory/memory_pool.hpp +186 -0
- data/ext/libsass/src/memory/shared_ptr.cpp +33 -0
- data/ext/libsass/src/memory/shared_ptr.hpp +332 -0
- data/ext/libsass/src/memory.hpp +12 -0
- data/ext/libsass/src/operation.hpp +223 -0
- data/ext/libsass/src/operators.cpp +267 -0
- data/ext/libsass/src/operators.hpp +30 -0
- data/ext/libsass/src/ordered_map.hpp +112 -0
- data/ext/libsass/src/output.cpp +320 -0
- data/ext/libsass/src/output.hpp +47 -0
- data/ext/libsass/src/parser.cpp +3059 -0
- data/ext/libsass/src/parser.hpp +395 -0
- data/ext/libsass/src/parser_selectors.cpp +189 -0
- data/ext/libsass/src/permutate.hpp +164 -0
- data/ext/libsass/src/plugins.cpp +188 -0
- data/ext/libsass/src/plugins.hpp +57 -0
- data/ext/libsass/src/position.cpp +163 -0
- data/ext/libsass/src/position.hpp +147 -0
- data/ext/libsass/src/prelexer.cpp +1780 -0
- data/ext/libsass/src/prelexer.hpp +484 -0
- data/ext/libsass/src/remove_placeholders.cpp +86 -0
- data/ext/libsass/src/remove_placeholders.hpp +37 -0
- data/ext/libsass/src/sass.cpp +156 -0
- data/ext/libsass/src/sass.hpp +147 -0
- data/ext/libsass/src/sass2scss.cpp +895 -0
- data/ext/libsass/src/sass_context.cpp +742 -0
- data/ext/libsass/src/sass_context.hpp +129 -0
- data/ext/libsass/src/sass_functions.cpp +210 -0
- data/ext/libsass/src/sass_functions.hpp +50 -0
- data/ext/libsass/src/sass_values.cpp +362 -0
- data/ext/libsass/src/sass_values.hpp +82 -0
- data/ext/libsass/src/settings.hpp +19 -0
- data/ext/libsass/src/source.cpp +69 -0
- data/ext/libsass/src/source.hpp +95 -0
- data/ext/libsass/src/source_data.hpp +32 -0
- data/ext/libsass/src/source_map.cpp +202 -0
- data/ext/libsass/src/source_map.hpp +65 -0
- data/ext/libsass/src/stylesheet.cpp +22 -0
- data/ext/libsass/src/stylesheet.hpp +57 -0
- data/ext/libsass/src/to_value.cpp +114 -0
- data/ext/libsass/src/to_value.hpp +46 -0
- data/ext/libsass/src/units.cpp +507 -0
- data/ext/libsass/src/units.hpp +110 -0
- data/ext/libsass/src/utf8/checked.h +336 -0
- data/ext/libsass/src/utf8/core.h +332 -0
- data/ext/libsass/src/utf8/unchecked.h +235 -0
- data/ext/libsass/src/utf8.h +34 -0
- data/ext/libsass/src/utf8_string.cpp +104 -0
- data/ext/libsass/src/utf8_string.hpp +38 -0
- data/ext/libsass/src/util.cpp +723 -0
- data/ext/libsass/src/util.hpp +105 -0
- data/ext/libsass/src/util_string.cpp +125 -0
- data/ext/libsass/src/util_string.hpp +73 -0
- data/ext/libsass/src/values.cpp +140 -0
- data/ext/libsass/src/values.hpp +12 -0
- data/lib/sassc/dependency.rb +17 -0
- data/lib/sassc/engine.rb +141 -0
- data/lib/sassc/error.rb +37 -0
- data/lib/sassc/functions_handler.rb +73 -0
- data/lib/sassc/import_handler.rb +50 -0
- data/lib/sassc/importer.rb +31 -0
- data/lib/sassc/native/native_context_api.rb +147 -0
- data/lib/sassc/native/native_functions_api.rb +159 -0
- data/lib/sassc/native/sass2scss_api.rb +10 -0
- data/lib/sassc/native/sass_input_style.rb +13 -0
- data/lib/sassc/native/sass_output_style.rb +12 -0
- data/lib/sassc/native/sass_value.rb +97 -0
- data/lib/sassc/native/string_list.rb +10 -0
- data/lib/sassc/native.rb +64 -0
- data/lib/sassc/sass_2_scss.rb +9 -0
- data/lib/sassc/script/functions.rb +8 -0
- data/lib/sassc/script/value/bool.rb +32 -0
- data/lib/sassc/script/value/color.rb +95 -0
- data/lib/sassc/script/value/list.rb +136 -0
- data/lib/sassc/script/value/map.rb +69 -0
- data/lib/sassc/script/value/number.rb +389 -0
- data/lib/sassc/script/value/string.rb +96 -0
- data/lib/sassc/script/value.rb +137 -0
- data/lib/sassc/script/value_conversion/base.rb +13 -0
- data/lib/sassc/script/value_conversion/bool.rb +13 -0
- data/lib/sassc/script/value_conversion/color.rb +18 -0
- data/lib/sassc/script/value_conversion/list.rb +25 -0
- data/lib/sassc/script/value_conversion/map.rb +21 -0
- data/lib/sassc/script/value_conversion/number.rb +13 -0
- data/lib/sassc/script/value_conversion/string.rb +17 -0
- data/lib/sassc/script/value_conversion.rb +69 -0
- data/lib/sassc/script.rb +17 -0
- data/lib/sassc/util/normalized_map.rb +117 -0
- data/lib/sassc/util.rb +231 -0
- data/lib/sassc/version.rb +5 -0
- data/lib/sassc.rb +57 -0
- data/sassc.gemspec +69 -0
- data/test/css_color_level4_test.rb +168 -0
- data/test/custom_importer_test.rb +127 -0
- data/test/engine_test.rb +314 -0
- data/test/error_test.rb +29 -0
- data/test/fixtures/paths.scss +10 -0
- data/test/functions_test.rb +340 -0
- data/test/native_test.rb +213 -0
- data/test/output_style_test.rb +107 -0
- data/test/sass_2_scss_test.rb +14 -0
- data/test/test_helper.rb +45 -0
- metadata +396 -0
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
#ifndef SASS_C_CONTEXT_H
|
|
2
|
+
#define SASS_C_CONTEXT_H
|
|
3
|
+
|
|
4
|
+
#include <stddef.h>
|
|
5
|
+
#include <stdbool.h>
|
|
6
|
+
#include <sass/base.h>
|
|
7
|
+
#include <sass/values.h>
|
|
8
|
+
#include <sass/functions.h>
|
|
9
|
+
|
|
10
|
+
#ifdef __cplusplus
|
|
11
|
+
extern "C" {
|
|
12
|
+
#endif
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
// Forward declaration
|
|
16
|
+
struct Sass_Compiler;
|
|
17
|
+
|
|
18
|
+
// Forward declaration
|
|
19
|
+
struct Sass_Options; // base struct
|
|
20
|
+
struct Sass_Context; // : Sass_Options
|
|
21
|
+
struct Sass_File_Context; // : Sass_Context
|
|
22
|
+
struct Sass_Data_Context; // : Sass_Context
|
|
23
|
+
|
|
24
|
+
// Compiler states
|
|
25
|
+
enum Sass_Compiler_State {
|
|
26
|
+
SASS_COMPILER_CREATED,
|
|
27
|
+
SASS_COMPILER_PARSED,
|
|
28
|
+
SASS_COMPILER_EXECUTED
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
// Create and initialize an option struct
|
|
32
|
+
ADDAPI struct Sass_Options* ADDCALL sass_make_options (void);
|
|
33
|
+
// Create and initialize a specific context
|
|
34
|
+
ADDAPI struct Sass_File_Context* ADDCALL sass_make_file_context (const char* input_path);
|
|
35
|
+
ADDAPI struct Sass_Data_Context* ADDCALL sass_make_data_context (char* source_string);
|
|
36
|
+
|
|
37
|
+
// Call the compilation step for the specific context
|
|
38
|
+
ADDAPI int ADDCALL sass_compile_file_context (struct Sass_File_Context* ctx);
|
|
39
|
+
ADDAPI int ADDCALL sass_compile_data_context (struct Sass_Data_Context* ctx);
|
|
40
|
+
|
|
41
|
+
// Create a sass compiler instance for more control
|
|
42
|
+
ADDAPI struct Sass_Compiler* ADDCALL sass_make_file_compiler (struct Sass_File_Context* file_ctx);
|
|
43
|
+
ADDAPI struct Sass_Compiler* ADDCALL sass_make_data_compiler (struct Sass_Data_Context* data_ctx);
|
|
44
|
+
|
|
45
|
+
// Execute the different compilation steps individually
|
|
46
|
+
// Useful if you only want to query the included files
|
|
47
|
+
ADDAPI int ADDCALL sass_compiler_parse(struct Sass_Compiler* compiler);
|
|
48
|
+
ADDAPI int ADDCALL sass_compiler_execute(struct Sass_Compiler* compiler);
|
|
49
|
+
|
|
50
|
+
// Release all memory allocated with the compiler
|
|
51
|
+
// This does _not_ include any contexts or options
|
|
52
|
+
ADDAPI void ADDCALL sass_delete_compiler(struct Sass_Compiler* compiler);
|
|
53
|
+
ADDAPI void ADDCALL sass_delete_options(struct Sass_Options* options);
|
|
54
|
+
|
|
55
|
+
// Release all memory allocated and also ourself
|
|
56
|
+
ADDAPI void ADDCALL sass_delete_file_context (struct Sass_File_Context* ctx);
|
|
57
|
+
ADDAPI void ADDCALL sass_delete_data_context (struct Sass_Data_Context* ctx);
|
|
58
|
+
|
|
59
|
+
// Getters for context from specific implementation
|
|
60
|
+
ADDAPI struct Sass_Context* ADDCALL sass_file_context_get_context (struct Sass_File_Context* file_ctx);
|
|
61
|
+
ADDAPI struct Sass_Context* ADDCALL sass_data_context_get_context (struct Sass_Data_Context* data_ctx);
|
|
62
|
+
|
|
63
|
+
// Getters for Context_Options from Sass_Context
|
|
64
|
+
ADDAPI struct Sass_Options* ADDCALL sass_context_get_options (struct Sass_Context* ctx);
|
|
65
|
+
ADDAPI struct Sass_Options* ADDCALL sass_file_context_get_options (struct Sass_File_Context* file_ctx);
|
|
66
|
+
ADDAPI struct Sass_Options* ADDCALL sass_data_context_get_options (struct Sass_Data_Context* data_ctx);
|
|
67
|
+
ADDAPI void ADDCALL sass_file_context_set_options (struct Sass_File_Context* file_ctx, struct Sass_Options* opt);
|
|
68
|
+
ADDAPI void ADDCALL sass_data_context_set_options (struct Sass_Data_Context* data_ctx, struct Sass_Options* opt);
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
// Getters for Context_Option values
|
|
72
|
+
ADDAPI int ADDCALL sass_option_get_precision (struct Sass_Options* options);
|
|
73
|
+
ADDAPI enum Sass_Output_Style ADDCALL sass_option_get_output_style (struct Sass_Options* options);
|
|
74
|
+
ADDAPI bool ADDCALL sass_option_get_source_comments (struct Sass_Options* options);
|
|
75
|
+
ADDAPI bool ADDCALL sass_option_get_source_map_embed (struct Sass_Options* options);
|
|
76
|
+
ADDAPI bool ADDCALL sass_option_get_source_map_contents (struct Sass_Options* options);
|
|
77
|
+
ADDAPI bool ADDCALL sass_option_get_source_map_file_urls (struct Sass_Options* options);
|
|
78
|
+
ADDAPI bool ADDCALL sass_option_get_omit_source_map_url (struct Sass_Options* options);
|
|
79
|
+
ADDAPI bool ADDCALL sass_option_get_is_indented_syntax_src (struct Sass_Options* options);
|
|
80
|
+
ADDAPI const char* ADDCALL sass_option_get_indent (struct Sass_Options* options);
|
|
81
|
+
ADDAPI const char* ADDCALL sass_option_get_linefeed (struct Sass_Options* options);
|
|
82
|
+
ADDAPI const char* ADDCALL sass_option_get_input_path (struct Sass_Options* options);
|
|
83
|
+
ADDAPI const char* ADDCALL sass_option_get_output_path (struct Sass_Options* options);
|
|
84
|
+
ADDAPI const char* ADDCALL sass_option_get_source_map_file (struct Sass_Options* options);
|
|
85
|
+
ADDAPI const char* ADDCALL sass_option_get_source_map_root (struct Sass_Options* options);
|
|
86
|
+
ADDAPI Sass_Importer_List ADDCALL sass_option_get_c_headers (struct Sass_Options* options);
|
|
87
|
+
ADDAPI Sass_Importer_List ADDCALL sass_option_get_c_importers (struct Sass_Options* options);
|
|
88
|
+
ADDAPI Sass_Function_List ADDCALL sass_option_get_c_functions (struct Sass_Options* options);
|
|
89
|
+
|
|
90
|
+
// Setters for Context_Option values
|
|
91
|
+
ADDAPI void ADDCALL sass_option_set_precision (struct Sass_Options* options, int precision);
|
|
92
|
+
ADDAPI void ADDCALL sass_option_set_output_style (struct Sass_Options* options, enum Sass_Output_Style output_style);
|
|
93
|
+
ADDAPI void ADDCALL sass_option_set_source_comments (struct Sass_Options* options, bool source_comments);
|
|
94
|
+
ADDAPI void ADDCALL sass_option_set_source_map_embed (struct Sass_Options* options, bool source_map_embed);
|
|
95
|
+
ADDAPI void ADDCALL sass_option_set_source_map_contents (struct Sass_Options* options, bool source_map_contents);
|
|
96
|
+
ADDAPI void ADDCALL sass_option_set_source_map_file_urls (struct Sass_Options* options, bool source_map_file_urls);
|
|
97
|
+
ADDAPI void ADDCALL sass_option_set_omit_source_map_url (struct Sass_Options* options, bool omit_source_map_url);
|
|
98
|
+
ADDAPI void ADDCALL sass_option_set_is_indented_syntax_src (struct Sass_Options* options, bool is_indented_syntax_src);
|
|
99
|
+
ADDAPI void ADDCALL sass_option_set_indent (struct Sass_Options* options, const char* indent);
|
|
100
|
+
ADDAPI void ADDCALL sass_option_set_linefeed (struct Sass_Options* options, const char* linefeed);
|
|
101
|
+
ADDAPI void ADDCALL sass_option_set_input_path (struct Sass_Options* options, const char* input_path);
|
|
102
|
+
ADDAPI void ADDCALL sass_option_set_output_path (struct Sass_Options* options, const char* output_path);
|
|
103
|
+
ADDAPI void ADDCALL sass_option_set_plugin_path (struct Sass_Options* options, const char* plugin_path);
|
|
104
|
+
ADDAPI void ADDCALL sass_option_set_include_path (struct Sass_Options* options, const char* include_path);
|
|
105
|
+
ADDAPI void ADDCALL sass_option_set_source_map_file (struct Sass_Options* options, const char* source_map_file);
|
|
106
|
+
ADDAPI void ADDCALL sass_option_set_source_map_root (struct Sass_Options* options, const char* source_map_root);
|
|
107
|
+
ADDAPI void ADDCALL sass_option_set_c_headers (struct Sass_Options* options, Sass_Importer_List c_headers);
|
|
108
|
+
ADDAPI void ADDCALL sass_option_set_c_importers (struct Sass_Options* options, Sass_Importer_List c_importers);
|
|
109
|
+
ADDAPI void ADDCALL sass_option_set_c_functions (struct Sass_Options* options, Sass_Function_List c_functions);
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
// Getters for Sass_Context values
|
|
113
|
+
ADDAPI const char* ADDCALL sass_context_get_output_string (struct Sass_Context* ctx);
|
|
114
|
+
ADDAPI int ADDCALL sass_context_get_error_status (struct Sass_Context* ctx);
|
|
115
|
+
ADDAPI const char* ADDCALL sass_context_get_error_json (struct Sass_Context* ctx);
|
|
116
|
+
ADDAPI const char* ADDCALL sass_context_get_error_text (struct Sass_Context* ctx);
|
|
117
|
+
ADDAPI const char* ADDCALL sass_context_get_error_message (struct Sass_Context* ctx);
|
|
118
|
+
ADDAPI const char* ADDCALL sass_context_get_error_file (struct Sass_Context* ctx);
|
|
119
|
+
ADDAPI const char* ADDCALL sass_context_get_error_src (struct Sass_Context* ctx);
|
|
120
|
+
ADDAPI size_t ADDCALL sass_context_get_error_line (struct Sass_Context* ctx);
|
|
121
|
+
ADDAPI size_t ADDCALL sass_context_get_error_column (struct Sass_Context* ctx);
|
|
122
|
+
ADDAPI const char* ADDCALL sass_context_get_source_map_string (struct Sass_Context* ctx);
|
|
123
|
+
ADDAPI char** ADDCALL sass_context_get_included_files (struct Sass_Context* ctx);
|
|
124
|
+
|
|
125
|
+
// Getters for options include path array
|
|
126
|
+
ADDAPI size_t ADDCALL sass_option_get_include_path_size(struct Sass_Options* options);
|
|
127
|
+
ADDAPI const char* ADDCALL sass_option_get_include_path(struct Sass_Options* options, size_t i);
|
|
128
|
+
// Plugin paths to load dynamic libraries work the same
|
|
129
|
+
ADDAPI size_t ADDCALL sass_option_get_plugin_path_size(struct Sass_Options* options);
|
|
130
|
+
ADDAPI const char* ADDCALL sass_option_get_plugin_path(struct Sass_Options* options, size_t i);
|
|
131
|
+
|
|
132
|
+
// Calculate the size of the stored null terminated array
|
|
133
|
+
ADDAPI size_t ADDCALL sass_context_get_included_files_size (struct Sass_Context* ctx);
|
|
134
|
+
|
|
135
|
+
// Take ownership of memory (value on context is set to 0)
|
|
136
|
+
ADDAPI char* ADDCALL sass_context_take_error_json (struct Sass_Context* ctx);
|
|
137
|
+
ADDAPI char* ADDCALL sass_context_take_error_text (struct Sass_Context* ctx);
|
|
138
|
+
ADDAPI char* ADDCALL sass_context_take_error_message (struct Sass_Context* ctx);
|
|
139
|
+
ADDAPI char* ADDCALL sass_context_take_error_file (struct Sass_Context* ctx);
|
|
140
|
+
ADDAPI char* ADDCALL sass_context_take_error_src (struct Sass_Context* ctx);
|
|
141
|
+
ADDAPI char* ADDCALL sass_context_take_output_string (struct Sass_Context* ctx);
|
|
142
|
+
ADDAPI char* ADDCALL sass_context_take_source_map_string (struct Sass_Context* ctx);
|
|
143
|
+
ADDAPI char** ADDCALL sass_context_take_included_files (struct Sass_Context* ctx);
|
|
144
|
+
|
|
145
|
+
// Getters for Sass_Compiler options
|
|
146
|
+
ADDAPI enum Sass_Compiler_State ADDCALL sass_compiler_get_state(struct Sass_Compiler* compiler);
|
|
147
|
+
ADDAPI struct Sass_Context* ADDCALL sass_compiler_get_context(struct Sass_Compiler* compiler);
|
|
148
|
+
ADDAPI struct Sass_Options* ADDCALL sass_compiler_get_options(struct Sass_Compiler* compiler);
|
|
149
|
+
ADDAPI size_t ADDCALL sass_compiler_get_import_stack_size(struct Sass_Compiler* compiler);
|
|
150
|
+
ADDAPI Sass_Import_Entry ADDCALL sass_compiler_get_last_import(struct Sass_Compiler* compiler);
|
|
151
|
+
ADDAPI Sass_Import_Entry ADDCALL sass_compiler_get_import_entry(struct Sass_Compiler* compiler, size_t idx);
|
|
152
|
+
ADDAPI size_t ADDCALL sass_compiler_get_callee_stack_size(struct Sass_Compiler* compiler);
|
|
153
|
+
ADDAPI Sass_Callee_Entry ADDCALL sass_compiler_get_last_callee(struct Sass_Compiler* compiler);
|
|
154
|
+
ADDAPI Sass_Callee_Entry ADDCALL sass_compiler_get_callee_entry(struct Sass_Compiler* compiler, size_t idx);
|
|
155
|
+
|
|
156
|
+
// Push function for paths (no manipulation support for now)
|
|
157
|
+
ADDAPI void ADDCALL sass_option_push_plugin_path (struct Sass_Options* options, const char* path);
|
|
158
|
+
ADDAPI void ADDCALL sass_option_push_include_path (struct Sass_Options* options, const char* path);
|
|
159
|
+
|
|
160
|
+
// Resolve a file via the given include paths in the sass option struct
|
|
161
|
+
// find_file looks for the exact file name while find_include does a regular sass include
|
|
162
|
+
ADDAPI char* ADDCALL sass_find_file (const char* path, struct Sass_Options* opt);
|
|
163
|
+
ADDAPI char* ADDCALL sass_find_include (const char* path, struct Sass_Options* opt);
|
|
164
|
+
|
|
165
|
+
// Resolve a file relative to last import or include paths in the sass option struct
|
|
166
|
+
// find_file looks for the exact file name while find_include does a regular sass include
|
|
167
|
+
ADDAPI char* ADDCALL sass_compiler_find_file (const char* path, struct Sass_Compiler* compiler);
|
|
168
|
+
ADDAPI char* ADDCALL sass_compiler_find_include (const char* path, struct Sass_Compiler* compiler);
|
|
169
|
+
|
|
170
|
+
#ifdef __cplusplus
|
|
171
|
+
} // __cplusplus defined.
|
|
172
|
+
#endif
|
|
173
|
+
|
|
174
|
+
#endif
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
#ifndef SASS_C_FUNCTIONS_H
|
|
2
|
+
#define SASS_C_FUNCTIONS_H
|
|
3
|
+
|
|
4
|
+
#include <stddef.h>
|
|
5
|
+
#include <stdbool.h>
|
|
6
|
+
#include <sass/base.h>
|
|
7
|
+
|
|
8
|
+
#ifdef __cplusplus
|
|
9
|
+
extern "C" {
|
|
10
|
+
#endif
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
// Forward declaration
|
|
14
|
+
struct Sass_Env;
|
|
15
|
+
struct Sass_Callee;
|
|
16
|
+
struct Sass_Import;
|
|
17
|
+
struct Sass_Options;
|
|
18
|
+
struct Sass_Compiler;
|
|
19
|
+
struct Sass_Importer;
|
|
20
|
+
struct Sass_Function;
|
|
21
|
+
|
|
22
|
+
// Typedef helpers for callee lists
|
|
23
|
+
typedef struct Sass_Env (*Sass_Env_Frame);
|
|
24
|
+
// Typedef helpers for callee lists
|
|
25
|
+
typedef struct Sass_Callee (*Sass_Callee_Entry);
|
|
26
|
+
// Typedef helpers for import lists
|
|
27
|
+
typedef struct Sass_Import (*Sass_Import_Entry);
|
|
28
|
+
typedef struct Sass_Import* (*Sass_Import_List);
|
|
29
|
+
// Typedef helpers for custom importer lists
|
|
30
|
+
typedef struct Sass_Importer (*Sass_Importer_Entry);
|
|
31
|
+
typedef struct Sass_Importer* (*Sass_Importer_List);
|
|
32
|
+
// Typedef defining importer signature and return type
|
|
33
|
+
typedef Sass_Import_List (*Sass_Importer_Fn)
|
|
34
|
+
(const char* url, Sass_Importer_Entry cb, struct Sass_Compiler* compiler);
|
|
35
|
+
|
|
36
|
+
// Typedef helpers for custom functions lists
|
|
37
|
+
typedef struct Sass_Function (*Sass_Function_Entry);
|
|
38
|
+
typedef struct Sass_Function* (*Sass_Function_List);
|
|
39
|
+
// Typedef defining function signature and return type
|
|
40
|
+
typedef union Sass_Value* (*Sass_Function_Fn)
|
|
41
|
+
(const union Sass_Value*, Sass_Function_Entry cb, struct Sass_Compiler* compiler);
|
|
42
|
+
|
|
43
|
+
// Type of function calls
|
|
44
|
+
enum Sass_Callee_Type {
|
|
45
|
+
SASS_CALLEE_MIXIN,
|
|
46
|
+
SASS_CALLEE_FUNCTION,
|
|
47
|
+
SASS_CALLEE_C_FUNCTION,
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
// Creator for sass custom importer return argument list
|
|
51
|
+
ADDAPI Sass_Importer_List ADDCALL sass_make_importer_list (size_t length);
|
|
52
|
+
ADDAPI Sass_Importer_Entry ADDCALL sass_importer_get_list_entry (Sass_Importer_List list, size_t idx);
|
|
53
|
+
ADDAPI void ADDCALL sass_importer_set_list_entry (Sass_Importer_List list, size_t idx, Sass_Importer_Entry entry);
|
|
54
|
+
ADDAPI void ADDCALL sass_delete_importer_list (Sass_Importer_List list);
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
// Creators for custom importer callback (with some additional pointer)
|
|
58
|
+
// The pointer is mostly used to store the callback into the actual binding
|
|
59
|
+
ADDAPI Sass_Importer_Entry ADDCALL sass_make_importer (Sass_Importer_Fn importer, double priority, void* cookie);
|
|
60
|
+
|
|
61
|
+
// Getters for import function descriptors
|
|
62
|
+
ADDAPI Sass_Importer_Fn ADDCALL sass_importer_get_function (Sass_Importer_Entry cb);
|
|
63
|
+
ADDAPI double ADDCALL sass_importer_get_priority (Sass_Importer_Entry cb);
|
|
64
|
+
ADDAPI void* ADDCALL sass_importer_get_cookie (Sass_Importer_Entry cb);
|
|
65
|
+
|
|
66
|
+
// Deallocator for associated memory
|
|
67
|
+
ADDAPI void ADDCALL sass_delete_importer (Sass_Importer_Entry cb);
|
|
68
|
+
|
|
69
|
+
// Creator for sass custom importer return argument list
|
|
70
|
+
ADDAPI Sass_Import_List ADDCALL sass_make_import_list (size_t length);
|
|
71
|
+
// Creator for a single import entry returned by the custom importer inside the list
|
|
72
|
+
ADDAPI Sass_Import_Entry ADDCALL sass_make_import_entry (const char* path, char* source, char* srcmap);
|
|
73
|
+
ADDAPI Sass_Import_Entry ADDCALL sass_make_import (const char* imp_path, const char* abs_base, char* source, char* srcmap);
|
|
74
|
+
// set error message to abort import and to print out a message (path from existing object is used in output)
|
|
75
|
+
ADDAPI Sass_Import_Entry ADDCALL sass_import_set_error(Sass_Import_Entry import, const char* message, size_t line, size_t col);
|
|
76
|
+
|
|
77
|
+
// Setters to insert an entry into the import list (you may also use [] access directly)
|
|
78
|
+
// Since we are dealing with pointers they should have a guaranteed and fixed size
|
|
79
|
+
ADDAPI void ADDCALL sass_import_set_list_entry (Sass_Import_List list, size_t idx, Sass_Import_Entry entry);
|
|
80
|
+
ADDAPI Sass_Import_Entry ADDCALL sass_import_get_list_entry (Sass_Import_List list, size_t idx);
|
|
81
|
+
|
|
82
|
+
// Getters for callee entry
|
|
83
|
+
ADDAPI const char* ADDCALL sass_callee_get_name (Sass_Callee_Entry);
|
|
84
|
+
ADDAPI const char* ADDCALL sass_callee_get_path (Sass_Callee_Entry);
|
|
85
|
+
ADDAPI size_t ADDCALL sass_callee_get_line (Sass_Callee_Entry);
|
|
86
|
+
ADDAPI size_t ADDCALL sass_callee_get_column (Sass_Callee_Entry);
|
|
87
|
+
ADDAPI enum Sass_Callee_Type ADDCALL sass_callee_get_type (Sass_Callee_Entry);
|
|
88
|
+
ADDAPI Sass_Env_Frame ADDCALL sass_callee_get_env (Sass_Callee_Entry);
|
|
89
|
+
|
|
90
|
+
// Getters and Setters for environments (lexical, local and global)
|
|
91
|
+
ADDAPI union Sass_Value* ADDCALL sass_env_get_lexical (Sass_Env_Frame, const char*);
|
|
92
|
+
ADDAPI void ADDCALL sass_env_set_lexical (Sass_Env_Frame, const char*, union Sass_Value*);
|
|
93
|
+
ADDAPI union Sass_Value* ADDCALL sass_env_get_local (Sass_Env_Frame, const char*);
|
|
94
|
+
ADDAPI void ADDCALL sass_env_set_local (Sass_Env_Frame, const char*, union Sass_Value*);
|
|
95
|
+
ADDAPI union Sass_Value* ADDCALL sass_env_get_global (Sass_Env_Frame, const char*);
|
|
96
|
+
ADDAPI void ADDCALL sass_env_set_global (Sass_Env_Frame, const char*, union Sass_Value*);
|
|
97
|
+
|
|
98
|
+
// Getters for import entry
|
|
99
|
+
ADDAPI const char* ADDCALL sass_import_get_imp_path (Sass_Import_Entry);
|
|
100
|
+
ADDAPI const char* ADDCALL sass_import_get_abs_path (Sass_Import_Entry);
|
|
101
|
+
ADDAPI const char* ADDCALL sass_import_get_source (Sass_Import_Entry);
|
|
102
|
+
ADDAPI const char* ADDCALL sass_import_get_srcmap (Sass_Import_Entry);
|
|
103
|
+
// Explicit functions to take ownership of these items
|
|
104
|
+
// The property on our struct will be reset to NULL
|
|
105
|
+
ADDAPI char* ADDCALL sass_import_take_source (Sass_Import_Entry);
|
|
106
|
+
ADDAPI char* ADDCALL sass_import_take_srcmap (Sass_Import_Entry);
|
|
107
|
+
// Getters from import error entry
|
|
108
|
+
ADDAPI size_t ADDCALL sass_import_get_error_line (Sass_Import_Entry);
|
|
109
|
+
ADDAPI size_t ADDCALL sass_import_get_error_column (Sass_Import_Entry);
|
|
110
|
+
ADDAPI const char* ADDCALL sass_import_get_error_message (Sass_Import_Entry);
|
|
111
|
+
|
|
112
|
+
// Deallocator for associated memory (incl. entries)
|
|
113
|
+
ADDAPI void ADDCALL sass_delete_import_list (Sass_Import_List);
|
|
114
|
+
// Just in case we have some stray import structs
|
|
115
|
+
ADDAPI void ADDCALL sass_delete_import (Sass_Import_Entry);
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
// Creators for sass function list and function descriptors
|
|
120
|
+
ADDAPI Sass_Function_List ADDCALL sass_make_function_list (size_t length);
|
|
121
|
+
ADDAPI Sass_Function_Entry ADDCALL sass_make_function (const char* signature, Sass_Function_Fn cb, void* cookie);
|
|
122
|
+
ADDAPI void ADDCALL sass_delete_function (Sass_Function_Entry entry);
|
|
123
|
+
ADDAPI void ADDCALL sass_delete_function_list (Sass_Function_List list);
|
|
124
|
+
|
|
125
|
+
// Setters and getters for callbacks on function lists
|
|
126
|
+
ADDAPI Sass_Function_Entry ADDCALL sass_function_get_list_entry(Sass_Function_List list, size_t pos);
|
|
127
|
+
ADDAPI void ADDCALL sass_function_set_list_entry(Sass_Function_List list, size_t pos, Sass_Function_Entry cb);
|
|
128
|
+
|
|
129
|
+
// Getters for custom function descriptors
|
|
130
|
+
ADDAPI const char* ADDCALL sass_function_get_signature (Sass_Function_Entry cb);
|
|
131
|
+
ADDAPI Sass_Function_Fn ADDCALL sass_function_get_function (Sass_Function_Entry cb);
|
|
132
|
+
ADDAPI void* ADDCALL sass_function_get_cookie (Sass_Function_Entry cb);
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
#ifdef __cplusplus
|
|
136
|
+
} // __cplusplus defined.
|
|
137
|
+
#endif
|
|
138
|
+
|
|
139
|
+
#endif
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
#ifndef SASS_C_VALUES_H
|
|
2
|
+
#define SASS_C_VALUES_H
|
|
3
|
+
|
|
4
|
+
#include <stddef.h>
|
|
5
|
+
#include <stdbool.h>
|
|
6
|
+
#include <sass/base.h>
|
|
7
|
+
|
|
8
|
+
#ifdef __cplusplus
|
|
9
|
+
extern "C" {
|
|
10
|
+
#endif
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
// Forward declaration
|
|
14
|
+
union Sass_Value;
|
|
15
|
+
|
|
16
|
+
// Type for Sass values
|
|
17
|
+
enum Sass_Tag {
|
|
18
|
+
SASS_BOOLEAN,
|
|
19
|
+
SASS_NUMBER,
|
|
20
|
+
SASS_COLOR,
|
|
21
|
+
SASS_STRING,
|
|
22
|
+
SASS_LIST,
|
|
23
|
+
SASS_MAP,
|
|
24
|
+
SASS_NULL,
|
|
25
|
+
SASS_ERROR,
|
|
26
|
+
SASS_WARNING
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
// Tags for denoting Sass list separators
|
|
30
|
+
enum Sass_Separator {
|
|
31
|
+
SASS_COMMA,
|
|
32
|
+
SASS_SPACE,
|
|
33
|
+
// only used internally to represent a hash map before evaluation
|
|
34
|
+
// otherwise we would be too early to check for duplicate keys
|
|
35
|
+
SASS_HASH
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
// Value Operators
|
|
39
|
+
enum Sass_OP {
|
|
40
|
+
AND, OR, // logical connectives
|
|
41
|
+
EQ, NEQ, GT, GTE, LT, LTE, // arithmetic relations
|
|
42
|
+
ADD, SUB, MUL, DIV, MOD, // arithmetic functions
|
|
43
|
+
NUM_OPS // so we know how big to make the op table
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
// Creator functions for all value types
|
|
47
|
+
ADDAPI union Sass_Value* ADDCALL sass_make_null (void);
|
|
48
|
+
ADDAPI union Sass_Value* ADDCALL sass_make_boolean (bool val);
|
|
49
|
+
ADDAPI union Sass_Value* ADDCALL sass_make_string (const char* val);
|
|
50
|
+
ADDAPI union Sass_Value* ADDCALL sass_make_qstring (const char* val);
|
|
51
|
+
ADDAPI union Sass_Value* ADDCALL sass_make_number (double val, const char* unit);
|
|
52
|
+
ADDAPI union Sass_Value* ADDCALL sass_make_color (double r, double g, double b, double a);
|
|
53
|
+
ADDAPI union Sass_Value* ADDCALL sass_make_list (size_t len, enum Sass_Separator sep, bool is_bracketed);
|
|
54
|
+
ADDAPI union Sass_Value* ADDCALL sass_make_map (size_t len);
|
|
55
|
+
ADDAPI union Sass_Value* ADDCALL sass_make_error (const char* msg);
|
|
56
|
+
ADDAPI union Sass_Value* ADDCALL sass_make_warning (const char* msg);
|
|
57
|
+
|
|
58
|
+
// Generic destructor function for all types
|
|
59
|
+
// Will release memory of all associated Sass_Values
|
|
60
|
+
// Means we will delete recursively for lists and maps
|
|
61
|
+
ADDAPI void ADDCALL sass_delete_value (union Sass_Value* val);
|
|
62
|
+
|
|
63
|
+
// Make a deep cloned copy of the given sass value
|
|
64
|
+
ADDAPI union Sass_Value* ADDCALL sass_clone_value (const union Sass_Value* val);
|
|
65
|
+
|
|
66
|
+
// Execute an operation for two Sass_Values and return the result as a Sass_Value too
|
|
67
|
+
ADDAPI union Sass_Value* ADDCALL sass_value_op (enum Sass_OP op, const union Sass_Value* a, const union Sass_Value* b);
|
|
68
|
+
|
|
69
|
+
// Stringify a Sass_Values and also return the result as a Sass_Value (of type STRING)
|
|
70
|
+
ADDAPI union Sass_Value* ADDCALL sass_value_stringify (const union Sass_Value* a, bool compressed, int precision);
|
|
71
|
+
|
|
72
|
+
// Return the sass tag for a generic sass value
|
|
73
|
+
// Check is needed before accessing specific values!
|
|
74
|
+
ADDAPI enum Sass_Tag ADDCALL sass_value_get_tag (const union Sass_Value* v);
|
|
75
|
+
|
|
76
|
+
// Check value to be of a specific type
|
|
77
|
+
// Can also be used before accessing properties!
|
|
78
|
+
ADDAPI bool ADDCALL sass_value_is_null (const union Sass_Value* v);
|
|
79
|
+
ADDAPI bool ADDCALL sass_value_is_number (const union Sass_Value* v);
|
|
80
|
+
ADDAPI bool ADDCALL sass_value_is_string (const union Sass_Value* v);
|
|
81
|
+
ADDAPI bool ADDCALL sass_value_is_boolean (const union Sass_Value* v);
|
|
82
|
+
ADDAPI bool ADDCALL sass_value_is_color (const union Sass_Value* v);
|
|
83
|
+
ADDAPI bool ADDCALL sass_value_is_list (const union Sass_Value* v);
|
|
84
|
+
ADDAPI bool ADDCALL sass_value_is_map (const union Sass_Value* v);
|
|
85
|
+
ADDAPI bool ADDCALL sass_value_is_error (const union Sass_Value* v);
|
|
86
|
+
ADDAPI bool ADDCALL sass_value_is_warning (const union Sass_Value* v);
|
|
87
|
+
|
|
88
|
+
// Getters and setters for Sass_Number
|
|
89
|
+
ADDAPI double ADDCALL sass_number_get_value (const union Sass_Value* v);
|
|
90
|
+
ADDAPI void ADDCALL sass_number_set_value (union Sass_Value* v, double value);
|
|
91
|
+
ADDAPI const char* ADDCALL sass_number_get_unit (const union Sass_Value* v);
|
|
92
|
+
ADDAPI void ADDCALL sass_number_set_unit (union Sass_Value* v, char* unit);
|
|
93
|
+
|
|
94
|
+
// Getters and setters for Sass_String
|
|
95
|
+
ADDAPI const char* ADDCALL sass_string_get_value (const union Sass_Value* v);
|
|
96
|
+
ADDAPI void ADDCALL sass_string_set_value (union Sass_Value* v, char* value);
|
|
97
|
+
ADDAPI bool ADDCALL sass_string_is_quoted(const union Sass_Value* v);
|
|
98
|
+
ADDAPI void ADDCALL sass_string_set_quoted(union Sass_Value* v, bool quoted);
|
|
99
|
+
|
|
100
|
+
// Getters and setters for Sass_Boolean
|
|
101
|
+
ADDAPI bool ADDCALL sass_boolean_get_value (const union Sass_Value* v);
|
|
102
|
+
ADDAPI void ADDCALL sass_boolean_set_value (union Sass_Value* v, bool value);
|
|
103
|
+
|
|
104
|
+
// Getters and setters for Sass_Color
|
|
105
|
+
ADDAPI double ADDCALL sass_color_get_r (const union Sass_Value* v);
|
|
106
|
+
ADDAPI void ADDCALL sass_color_set_r (union Sass_Value* v, double r);
|
|
107
|
+
ADDAPI double ADDCALL sass_color_get_g (const union Sass_Value* v);
|
|
108
|
+
ADDAPI void ADDCALL sass_color_set_g (union Sass_Value* v, double g);
|
|
109
|
+
ADDAPI double ADDCALL sass_color_get_b (const union Sass_Value* v);
|
|
110
|
+
ADDAPI void ADDCALL sass_color_set_b (union Sass_Value* v, double b);
|
|
111
|
+
ADDAPI double ADDCALL sass_color_get_a (const union Sass_Value* v);
|
|
112
|
+
ADDAPI void ADDCALL sass_color_set_a (union Sass_Value* v, double a);
|
|
113
|
+
|
|
114
|
+
// Getter for the number of items in list
|
|
115
|
+
ADDAPI size_t ADDCALL sass_list_get_length (const union Sass_Value* v);
|
|
116
|
+
// Getters and setters for Sass_List
|
|
117
|
+
ADDAPI enum Sass_Separator ADDCALL sass_list_get_separator (const union Sass_Value* v);
|
|
118
|
+
ADDAPI void ADDCALL sass_list_set_separator (union Sass_Value* v, enum Sass_Separator value);
|
|
119
|
+
ADDAPI bool ADDCALL sass_list_get_is_bracketed (const union Sass_Value* v);
|
|
120
|
+
ADDAPI void ADDCALL sass_list_set_is_bracketed (union Sass_Value* v, bool value);
|
|
121
|
+
// Getters and setters for Sass_List values
|
|
122
|
+
ADDAPI union Sass_Value* ADDCALL sass_list_get_value (const union Sass_Value* v, size_t i);
|
|
123
|
+
ADDAPI void ADDCALL sass_list_set_value (union Sass_Value* v, size_t i, union Sass_Value* value);
|
|
124
|
+
|
|
125
|
+
// Getter for the number of items in map
|
|
126
|
+
ADDAPI size_t ADDCALL sass_map_get_length (const union Sass_Value* v);
|
|
127
|
+
// Getters and setters for Sass_Map keys and values
|
|
128
|
+
ADDAPI union Sass_Value* ADDCALL sass_map_get_key (const union Sass_Value* v, size_t i);
|
|
129
|
+
ADDAPI void ADDCALL sass_map_set_key (union Sass_Value* v, size_t i, union Sass_Value*);
|
|
130
|
+
ADDAPI union Sass_Value* ADDCALL sass_map_get_value (const union Sass_Value* v, size_t i);
|
|
131
|
+
ADDAPI void ADDCALL sass_map_set_value (union Sass_Value* v, size_t i, union Sass_Value*);
|
|
132
|
+
|
|
133
|
+
// Getters and setters for Sass_Error
|
|
134
|
+
ADDAPI char* ADDCALL sass_error_get_message (const union Sass_Value* v);
|
|
135
|
+
ADDAPI void ADDCALL sass_error_set_message (union Sass_Value* v, char* msg);
|
|
136
|
+
|
|
137
|
+
// Getters and setters for Sass_Warning
|
|
138
|
+
ADDAPI char* ADDCALL sass_warning_get_message (const union Sass_Value* v);
|
|
139
|
+
ADDAPI void ADDCALL sass_warning_set_message (union Sass_Value* v, char* msg);
|
|
140
|
+
|
|
141
|
+
#ifdef __cplusplus
|
|
142
|
+
} // __cplusplus defined.
|
|
143
|
+
#endif
|
|
144
|
+
|
|
145
|
+
#endif
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
#ifndef SASS_H
|
|
2
|
+
#define SASS_H
|
|
3
|
+
|
|
4
|
+
// #define DEBUG 1
|
|
5
|
+
|
|
6
|
+
// include API headers
|
|
7
|
+
#include <sass/base.h>
|
|
8
|
+
#include <sass/version.h>
|
|
9
|
+
#include <sass/values.h>
|
|
10
|
+
#include <sass/functions.h>
|
|
11
|
+
#include <sass/context.h>
|
|
12
|
+
#include <sass2scss.h>
|
|
13
|
+
|
|
14
|
+
#endif
|
|
15
|
+
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* sass2scss
|
|
3
|
+
* Licensed under the MIT License
|
|
4
|
+
* Copyright (c) Marcel Greter
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
#ifndef SASS2SCSS_H
|
|
8
|
+
#define SASS2SCSS_H
|
|
9
|
+
|
|
10
|
+
#ifdef _WIN32
|
|
11
|
+
|
|
12
|
+
/* You should define ADD_EXPORTS *only* when building the DLL. */
|
|
13
|
+
#ifdef ADD_EXPORTS
|
|
14
|
+
#define ADDAPI __declspec(dllexport)
|
|
15
|
+
#define ADDCALL __cdecl
|
|
16
|
+
#else
|
|
17
|
+
#define ADDAPI
|
|
18
|
+
#define ADDCALL
|
|
19
|
+
#endif
|
|
20
|
+
|
|
21
|
+
#else /* _WIN32 not defined. */
|
|
22
|
+
|
|
23
|
+
/* Define with no value on non-Windows OSes. */
|
|
24
|
+
#define ADDAPI
|
|
25
|
+
#define ADDCALL
|
|
26
|
+
|
|
27
|
+
#endif
|
|
28
|
+
|
|
29
|
+
#ifdef __cplusplus
|
|
30
|
+
|
|
31
|
+
#include <stack>
|
|
32
|
+
#include <string>
|
|
33
|
+
#include <cstring>
|
|
34
|
+
#include <sstream>
|
|
35
|
+
#include <iostream>
|
|
36
|
+
|
|
37
|
+
#ifndef SASS2SCSS_VERSION
|
|
38
|
+
// Hardcode once the file is copied from
|
|
39
|
+
// https://github.com/mgreter/sass2scss
|
|
40
|
+
#define SASS2SCSS_VERSION "1.1.1"
|
|
41
|
+
#endif
|
|
42
|
+
|
|
43
|
+
// add namespace for c++
|
|
44
|
+
namespace Sass
|
|
45
|
+
{
|
|
46
|
+
|
|
47
|
+
// pretty print options
|
|
48
|
+
const int SASS2SCSS_PRETTIFY_0 = 0;
|
|
49
|
+
const int SASS2SCSS_PRETTIFY_1 = 1;
|
|
50
|
+
const int SASS2SCSS_PRETTIFY_2 = 2;
|
|
51
|
+
const int SASS2SCSS_PRETTIFY_3 = 3;
|
|
52
|
+
|
|
53
|
+
// remove one-line comment
|
|
54
|
+
const int SASS2SCSS_KEEP_COMMENT = 32;
|
|
55
|
+
// remove multi-line comments
|
|
56
|
+
const int SASS2SCSS_STRIP_COMMENT = 64;
|
|
57
|
+
// convert one-line to multi-line
|
|
58
|
+
const int SASS2SCSS_CONVERT_COMMENT = 128;
|
|
59
|
+
|
|
60
|
+
// String for finding something interesting
|
|
61
|
+
const std::string SASS2SCSS_FIND_WHITESPACE = " \t\n\v\f\r";
|
|
62
|
+
|
|
63
|
+
// converter struct
|
|
64
|
+
// holding all states
|
|
65
|
+
struct converter
|
|
66
|
+
{
|
|
67
|
+
// bit options
|
|
68
|
+
int options;
|
|
69
|
+
// is selector
|
|
70
|
+
bool selector;
|
|
71
|
+
// concat lists
|
|
72
|
+
bool comma;
|
|
73
|
+
// has property
|
|
74
|
+
bool property;
|
|
75
|
+
// has semicolon
|
|
76
|
+
bool semicolon;
|
|
77
|
+
// comment context
|
|
78
|
+
std::string comment;
|
|
79
|
+
// flag end of file
|
|
80
|
+
bool end_of_file;
|
|
81
|
+
// whitespace buffer
|
|
82
|
+
std::string whitespace;
|
|
83
|
+
// context/block stack
|
|
84
|
+
std::stack<std::string> indents;
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
// function only available in c++ code
|
|
88
|
+
char* sass2scss (const std::string& sass, const int options);
|
|
89
|
+
|
|
90
|
+
}
|
|
91
|
+
// EO namespace
|
|
92
|
+
|
|
93
|
+
// declare for c
|
|
94
|
+
extern "C" {
|
|
95
|
+
#endif
|
|
96
|
+
|
|
97
|
+
// prettyfy print options
|
|
98
|
+
#define SASS2SCSS_PRETTIFY_0 0
|
|
99
|
+
#define SASS2SCSS_PRETTIFY_1 1
|
|
100
|
+
#define SASS2SCSS_PRETTIFY_2 2
|
|
101
|
+
#define SASS2SCSS_PRETTIFY_3 3
|
|
102
|
+
|
|
103
|
+
// keep one-line comments
|
|
104
|
+
#define SASS2SCSS_KEEP_COMMENT 32
|
|
105
|
+
// remove multi-line comments
|
|
106
|
+
#define SASS2SCSS_STRIP_COMMENT 64
|
|
107
|
+
// convert one-line to multi-line
|
|
108
|
+
#define SASS2SCSS_CONVERT_COMMENT 128
|
|
109
|
+
|
|
110
|
+
// available to c and c++ code
|
|
111
|
+
ADDAPI char* ADDCALL sass2scss (const char* sass, const int options);
|
|
112
|
+
|
|
113
|
+
// Get compiled sass2scss version
|
|
114
|
+
ADDAPI const char* ADDCALL sass2scss_version(void);
|
|
115
|
+
|
|
116
|
+
#ifdef __cplusplus
|
|
117
|
+
} // __cplusplus defined.
|
|
118
|
+
#endif
|
|
119
|
+
|
|
120
|
+
#endif
|