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,147 @@
|
|
|
1
|
+
#ifndef SASS_POSITION_H
|
|
2
|
+
#define SASS_POSITION_H
|
|
3
|
+
|
|
4
|
+
#include <string>
|
|
5
|
+
#include <cstring>
|
|
6
|
+
#include "source_data.hpp"
|
|
7
|
+
#include "ast_fwd_decl.hpp"
|
|
8
|
+
|
|
9
|
+
namespace Sass {
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class Offset {
|
|
13
|
+
|
|
14
|
+
public: // c-tor
|
|
15
|
+
Offset(const char chr);
|
|
16
|
+
Offset(const char* string);
|
|
17
|
+
Offset(const sass::string& text);
|
|
18
|
+
Offset(const size_t line, const size_t column);
|
|
19
|
+
|
|
20
|
+
// return new position, incremented by the given string
|
|
21
|
+
Offset add(const char* begin, const char* end);
|
|
22
|
+
Offset inc(const char* begin, const char* end) const;
|
|
23
|
+
|
|
24
|
+
// init/create instance from const char substring
|
|
25
|
+
static Offset init(const char* beg, const char* end);
|
|
26
|
+
|
|
27
|
+
public: // overload operators for position
|
|
28
|
+
void operator+= (const Offset &pos);
|
|
29
|
+
bool operator== (const Offset &pos) const;
|
|
30
|
+
bool operator!= (const Offset &pos) const;
|
|
31
|
+
Offset operator+ (const Offset &off) const;
|
|
32
|
+
Offset operator- (const Offset &off) const;
|
|
33
|
+
|
|
34
|
+
public: // overload output stream operator
|
|
35
|
+
// friend std::ostream& operator<<(std::ostream& strm, const Offset& off);
|
|
36
|
+
|
|
37
|
+
public:
|
|
38
|
+
Offset off() { return *this; }
|
|
39
|
+
|
|
40
|
+
public:
|
|
41
|
+
size_t line;
|
|
42
|
+
size_t column;
|
|
43
|
+
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
class Position : public Offset {
|
|
47
|
+
|
|
48
|
+
public: // c-tor
|
|
49
|
+
Position(const size_t file); // line(0), column(0)
|
|
50
|
+
Position(const size_t file, const Offset& offset);
|
|
51
|
+
Position(const size_t line, const size_t column); // file(-1)
|
|
52
|
+
Position(const size_t file, const size_t line, const size_t column);
|
|
53
|
+
|
|
54
|
+
public: // overload operators for position
|
|
55
|
+
void operator+= (const Offset &off);
|
|
56
|
+
bool operator== (const Position &pos) const;
|
|
57
|
+
bool operator!= (const Position &pos) const;
|
|
58
|
+
const Position operator+ (const Offset &off) const;
|
|
59
|
+
const Offset operator- (const Offset &off) const;
|
|
60
|
+
// return new position, incremented by the given string
|
|
61
|
+
Position add(const char* begin, const char* end);
|
|
62
|
+
Position inc(const char* begin, const char* end) const;
|
|
63
|
+
|
|
64
|
+
public: // overload output stream operator
|
|
65
|
+
// friend std::ostream& operator<<(std::ostream& strm, const Position& pos);
|
|
66
|
+
|
|
67
|
+
public:
|
|
68
|
+
size_t file;
|
|
69
|
+
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
// Token type for representing lexed chunks of text
|
|
73
|
+
class Token {
|
|
74
|
+
public:
|
|
75
|
+
const char* prefix;
|
|
76
|
+
const char* begin;
|
|
77
|
+
const char* end;
|
|
78
|
+
|
|
79
|
+
Token()
|
|
80
|
+
: prefix(0), begin(0), end(0) { }
|
|
81
|
+
Token(const char* b, const char* e)
|
|
82
|
+
: prefix(b), begin(b), end(e) { }
|
|
83
|
+
Token(const char* str)
|
|
84
|
+
: prefix(str), begin(str), end(str + strlen(str)) { }
|
|
85
|
+
Token(const char* p, const char* b, const char* e)
|
|
86
|
+
: prefix(p), begin(b), end(e) { }
|
|
87
|
+
|
|
88
|
+
size_t length() const { return end - begin; }
|
|
89
|
+
sass::string ws_before() const { return sass::string(prefix, begin); }
|
|
90
|
+
sass::string to_string() const { return sass::string(begin, end); }
|
|
91
|
+
sass::string time_wspace() const {
|
|
92
|
+
sass::string str(to_string());
|
|
93
|
+
sass::string whitespaces(" \t\f\v\n\r");
|
|
94
|
+
return str.erase(str.find_last_not_of(whitespaces)+1);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
operator bool() { return begin && end && begin >= end; }
|
|
98
|
+
operator sass::string() { return to_string(); }
|
|
99
|
+
|
|
100
|
+
bool operator==(Token t) { return to_string() == t.to_string(); }
|
|
101
|
+
};
|
|
102
|
+
|
|
103
|
+
class SourceSpan {
|
|
104
|
+
|
|
105
|
+
public:
|
|
106
|
+
|
|
107
|
+
SourceSpan(const char* path);
|
|
108
|
+
|
|
109
|
+
SourceSpan(SourceDataObj source,
|
|
110
|
+
const Offset& position = Offset(0, 0),
|
|
111
|
+
const Offset& offset = Offset(0, 0));
|
|
112
|
+
|
|
113
|
+
const char* getPath() const {
|
|
114
|
+
return source->getPath();
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
const char* getRawData() const {
|
|
118
|
+
return source->getRawData();
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
Offset getPosition() const {
|
|
122
|
+
return position;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
size_t getLine() const {
|
|
126
|
+
return position.line + 1;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
size_t getColumn() const {
|
|
130
|
+
return position.column + 1;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
size_t getSrcId() const {
|
|
134
|
+
return source == nullptr
|
|
135
|
+
? std::string::npos
|
|
136
|
+
: source->getSrcId();
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
SourceDataObj source;
|
|
140
|
+
Offset position;
|
|
141
|
+
Offset offset;
|
|
142
|
+
|
|
143
|
+
};
|
|
144
|
+
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
#endif
|