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++
44namespace 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
94extern "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

source code of gtk/subprojects/libsass/include/sass2scss.h