You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
163 lines
3.4 KiB
163 lines
3.4 KiB
```C |
|
// Input behaviours |
|
enum Sass_Input_Style { |
|
SASS_CONTEXT_NULL, |
|
SASS_CONTEXT_FILE, |
|
SASS_CONTEXT_DATA, |
|
SASS_CONTEXT_FOLDER |
|
}; |
|
|
|
// sass config options structure |
|
struct Sass_Inspect_Options { |
|
|
|
// Output style for the generated css code |
|
// A value from above SASS_STYLE_* constants |
|
enum Sass_Output_Style output_style; |
|
|
|
// Precision for fractional numbers |
|
int precision; |
|
|
|
}; |
|
|
|
// sass config options structure |
|
struct Sass_Output_Options : Sass_Inspect_Options { |
|
|
|
// String to be used for indentation |
|
const char* indent; |
|
// String to be used to for line feeds |
|
const char* linefeed; |
|
|
|
// Emit comments in the generated CSS indicating |
|
// the corresponding source line. |
|
bool source_comments; |
|
|
|
}; |
|
|
|
// sass config options structure |
|
struct Sass_Options : Sass_Output_Options { |
|
|
|
// embed sourceMappingUrl as data uri |
|
bool source_map_embed; |
|
|
|
// embed include contents in maps |
|
bool source_map_contents; |
|
|
|
// create file urls for sources |
|
bool source_map_file_urls; |
|
|
|
// Disable sourceMappingUrl in css output |
|
bool omit_source_map_url; |
|
|
|
// Treat source_string as sass (as opposed to scss) |
|
bool is_indented_syntax_src; |
|
|
|
// The input path is used for source map |
|
// generation. It can be used to define |
|
// something with string compilation or to |
|
// overload the input file path. It is |
|
// set to "stdin" for data contexts and |
|
// to the input file on file contexts. |
|
char* input_path; |
|
|
|
// The output path is used for source map |
|
// generation. LibSass will not write to |
|
// this file, it is just used to create |
|
// information in source-maps etc. |
|
char* output_path; |
|
|
|
// Colon-separated list of paths |
|
// Semicolon-separated on Windows |
|
// Maybe use array interface instead? |
|
char* include_path; |
|
char* plugin_path; |
|
|
|
// Include paths (linked string list) |
|
struct string_list* include_paths; |
|
// Plugin paths (linked string list) |
|
struct string_list* plugin_paths; |
|
|
|
// Path to source map file |
|
// Enables source map generation |
|
// Used to create sourceMappingUrl |
|
char* source_map_file; |
|
|
|
// Directly inserted in source maps |
|
char* source_map_root; |
|
|
|
// Custom functions that can be called from sccs code |
|
Sass_Function_List c_functions; |
|
|
|
// Callback to overload imports |
|
Sass_Importer_List c_importers; |
|
|
|
// List of custom headers |
|
Sass_Importer_List c_headers; |
|
|
|
}; |
|
|
|
// base for all contexts |
|
struct Sass_Context : Sass_Options |
|
{ |
|
|
|
// store context type info |
|
enum Sass_Input_Style type; |
|
|
|
// generated output data |
|
char* output_string; |
|
|
|
// generated source map json |
|
char* source_map_string; |
|
|
|
// error status |
|
int error_status; |
|
char* error_json; |
|
char* error_text; |
|
char* error_message; |
|
// error position |
|
char* error_file; |
|
size_t error_line; |
|
size_t error_column; |
|
const char* error_src; |
|
|
|
// report imported files |
|
char** included_files; |
|
|
|
}; |
|
|
|
// struct for file compilation |
|
struct Sass_File_Context : Sass_Context { |
|
|
|
// no additional fields required |
|
// input_path is already on options |
|
|
|
}; |
|
|
|
// struct for data compilation |
|
struct Sass_Data_Context : Sass_Context { |
|
|
|
// provided source string |
|
char* source_string; |
|
char* srcmap_string; |
|
|
|
}; |
|
|
|
// Compiler states |
|
enum Sass_Compiler_State { |
|
SASS_COMPILER_CREATED, |
|
SASS_COMPILER_PARSED, |
|
SASS_COMPILER_EXECUTED |
|
}; |
|
|
|
// link c and cpp context |
|
struct Sass_Compiler { |
|
// progress status |
|
Sass_Compiler_State state; |
|
// original c context |
|
Sass_Context* c_ctx; |
|
// Sass::Context |
|
Sass::Context* cpp_ctx; |
|
// Sass::Block |
|
Sass::Block_Obj root; |
|
}; |
|
``` |
|
|
|
|