sassc 0.0.9 → 0.0.10

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 (111) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +1 -1
  3. data/ext/libsass/.gitignore +13 -6
  4. data/ext/libsass/Makefile +42 -26
  5. data/ext/libsass/Makefile.am +43 -30
  6. data/ext/libsass/Readme.md +4 -2
  7. data/ext/libsass/appveyor.yml +10 -14
  8. data/ext/libsass/ast.cpp +54 -44
  9. data/ext/libsass/ast.hpp +404 -236
  10. data/ext/libsass/ast_def_macros.hpp +5 -0
  11. data/ext/libsass/ast_factory.hpp +6 -3
  12. data/ext/libsass/ast_fwd_decl.hpp +12 -0
  13. data/ext/libsass/b64/encode.h +2 -2
  14. data/ext/libsass/backtrace.hpp +13 -17
  15. data/ext/libsass/base64vlq.hpp +4 -1
  16. data/ext/libsass/bind.cpp +12 -15
  17. data/ext/libsass/bind.hpp +6 -6
  18. data/ext/libsass/color_names.hpp +4 -1
  19. data/ext/libsass/configure.ac +7 -21
  20. data/ext/libsass/constants.cpp +6 -4
  21. data/ext/libsass/constants.hpp +10 -4
  22. data/ext/libsass/context.cpp +89 -58
  23. data/ext/libsass/context.hpp +28 -35
  24. data/ext/libsass/contextualize.cpp +20 -10
  25. data/ext/libsass/contextualize.hpp +8 -23
  26. data/ext/libsass/contrib/libsass.spec +66 -0
  27. data/ext/libsass/cssize.cpp +547 -0
  28. data/ext/libsass/cssize.hpp +82 -0
  29. data/ext/libsass/debug.hpp +3 -3
  30. data/ext/libsass/debugger.hpp +358 -0
  31. data/ext/libsass/emitter.cpp +255 -0
  32. data/ext/libsass/emitter.hpp +83 -0
  33. data/ext/libsass/environment.hpp +7 -3
  34. data/ext/libsass/error_handling.cpp +11 -14
  35. data/ext/libsass/error_handling.hpp +9 -7
  36. data/ext/libsass/eval.cpp +253 -161
  37. data/ext/libsass/eval.hpp +13 -13
  38. data/ext/libsass/expand.cpp +135 -64
  39. data/ext/libsass/expand.hpp +11 -13
  40. data/ext/libsass/extend.cpp +66 -20
  41. data/ext/libsass/extend.hpp +6 -11
  42. data/ext/libsass/file.cpp +31 -26
  43. data/ext/libsass/file.hpp +6 -1
  44. data/ext/libsass/functions.cpp +270 -287
  45. data/ext/libsass/functions.hpp +8 -11
  46. data/ext/libsass/inspect.cpp +385 -255
  47. data/ext/libsass/inspect.hpp +15 -26
  48. data/ext/libsass/kwd_arg_macros.hpp +5 -0
  49. data/ext/libsass/mapping.hpp +4 -3
  50. data/ext/libsass/memory_manager.hpp +5 -2
  51. data/ext/libsass/node.cpp +50 -50
  52. data/ext/libsass/node.hpp +26 -27
  53. data/ext/libsass/operation.hpp +15 -4
  54. data/ext/libsass/output.cpp +401 -0
  55. data/ext/libsass/output.hpp +56 -0
  56. data/ext/libsass/parser.cpp +573 -399
  57. data/ext/libsass/parser.hpp +122 -88
  58. data/ext/libsass/paths.hpp +7 -2
  59. data/ext/libsass/plugins.cpp +155 -0
  60. data/ext/libsass/plugins.hpp +56 -0
  61. data/ext/libsass/position.cpp +128 -0
  62. data/ext/libsass/position.hpp +108 -11
  63. data/ext/libsass/prelexer.cpp +184 -110
  64. data/ext/libsass/prelexer.hpp +131 -24
  65. data/ext/libsass/remove_placeholders.cpp +1 -1
  66. data/ext/libsass/remove_placeholders.hpp +6 -6
  67. data/ext/libsass/sass.cpp +3 -3
  68. data/ext/libsass/sass.h +12 -4
  69. data/ext/libsass/sass2scss.cpp +3 -2
  70. data/ext/libsass/sass2scss.h +5 -0
  71. data/ext/libsass/sass_context.cpp +136 -37
  72. data/ext/libsass/sass_context.h +19 -10
  73. data/ext/libsass/sass_functions.cpp +29 -2
  74. data/ext/libsass/sass_functions.h +8 -2
  75. data/ext/libsass/sass_interface.cpp +32 -23
  76. data/ext/libsass/sass_interface.h +9 -4
  77. data/ext/libsass/sass_util.cpp +19 -23
  78. data/ext/libsass/sass_util.hpp +28 -27
  79. data/ext/libsass/sass_values.cpp +6 -4
  80. data/ext/libsass/sass_values.h +3 -3
  81. data/ext/libsass/script/ci-build-libsass +13 -1
  82. data/ext/libsass/script/ci-report-coverage +2 -1
  83. data/ext/libsass/source_map.cpp +79 -28
  84. data/ext/libsass/source_map.hpp +35 -16
  85. data/ext/libsass/subset_map.hpp +6 -4
  86. data/ext/libsass/to_c.hpp +4 -4
  87. data/ext/libsass/to_string.cpp +13 -8
  88. data/ext/libsass/to_string.hpp +6 -4
  89. data/ext/libsass/units.cpp +2 -1
  90. data/ext/libsass/units.hpp +6 -1
  91. data/ext/libsass/utf8_string.cpp +0 -5
  92. data/ext/libsass/utf8_string.hpp +3 -2
  93. data/ext/libsass/util.cpp +461 -49
  94. data/ext/libsass/util.hpp +34 -13
  95. data/ext/libsass/version.sh +10 -0
  96. data/ext/libsass/win/libsass.filters +20 -11
  97. data/ext/libsass/win/libsass.vcxproj +11 -8
  98. data/lib/sassc/importer.rb +1 -8
  99. data/lib/sassc/native.rb +7 -0
  100. data/lib/sassc/native/native_context_api.rb +5 -5
  101. data/lib/sassc/version.rb +1 -1
  102. data/test/native_test.rb +1 -1
  103. metadata +14 -10
  104. data/ext/libsass/copy_c_str.cpp +0 -13
  105. data/ext/libsass/copy_c_str.hpp +0 -5
  106. data/ext/libsass/output_compressed.cpp +0 -401
  107. data/ext/libsass/output_compressed.hpp +0 -95
  108. data/ext/libsass/output_nested.cpp +0 -364
  109. data/ext/libsass/output_nested.hpp +0 -108
  110. data/ext/libsass/test-driver +0 -127
  111. data/ext/libsass/token.hpp +0 -32
@@ -1,108 +0,0 @@
1
- #include <string>
2
-
3
- #ifndef SASS_OPERATION
4
- #include "operation.hpp"
5
- #endif
6
-
7
- // #ifndef SASS_TO_STRING
8
- // #include "to_string.hpp"
9
- // #endif
10
-
11
- namespace Sass {
12
- using namespace std;
13
- struct Context;
14
-
15
- class Output_Nested : public Operation_CRTP<void, Output_Nested> {
16
- // import all the class-specific methods and override as desired
17
- using Operation_CRTP<void, Output_Nested>::operator();
18
-
19
- string buffer;
20
- string rendered_imports;
21
- size_t indentation;
22
- bool source_comments;
23
- Context* ctx;
24
- bool seen_utf8;
25
- void indent();
26
-
27
- void fallback_impl(AST_Node* n);
28
-
29
- void append_to_buffer(const string& text);
30
-
31
- public:
32
-
33
- Output_Nested(bool source_comments = false, Context* ctx = 0);
34
- virtual ~Output_Nested();
35
-
36
- string get_buffer() {
37
- if (!rendered_imports.empty() && !buffer.empty()) {
38
- rendered_imports += "\n";
39
- }
40
- return (seen_utf8 ? "@charset \"UTF-8\";\n" : "")
41
- + rendered_imports + buffer;
42
- }
43
-
44
- // statements
45
- virtual void operator()(Block*);
46
- virtual void operator()(Ruleset*);
47
- // virtual void operator()(Propset*);
48
- virtual void operator()(Feature_Block*);
49
- virtual void operator()(Media_Block*);
50
- virtual void operator()(At_Rule*);
51
- // virtual void operator()(Declaration*);
52
- // virtual void operator()(Assignment*);
53
- virtual void operator()(Import*);
54
- // virtual void operator()(Import_Stub*);
55
- // virtual void operator()(Warning*);
56
- // virtual void operator()(Error*);
57
- // virtual void operator()(Debug*);
58
- // virtual void operator()(Comment*);
59
- // virtual void operator()(If*);
60
- // virtual void operator()(For*);
61
- // virtual void operator()(Each*);
62
- // virtual void operator()(While*);
63
- // virtual void operator()(Return*);
64
- // virtual void operator()(Extension*);
65
- // virtual void operator()(Definition*);
66
- // virtual void operator()(Mixin_Call*);
67
- // virtual void operator()(Content*);
68
- // // expressions
69
- // virtual void operator()(List*);
70
- // virtual void operator()(Binary_Expression*);
71
- // virtual void operator()(Unary_Expression*);
72
- // virtual void operator()(Function_Call*);
73
- // virtual void operator()(Function_Call_Schema*);
74
- // virtual void operator()(Variable*);
75
- // virtual void operator()(Textual*);
76
- // virtual void operator()(Number*);
77
- // virtual void operator()(Color*);
78
- // virtual void operator()(Boolean*);
79
- // virtual void operator()(String_Schema*);
80
- // virtual void operator()(String_Constant* x);
81
- // virtual void operator()(Media_Query*);
82
- // virtual void operator()(Media_Query_Expression*);
83
- // // parameters and arguments
84
- // virtual void operator()(Parameter*);
85
- // virtual void operator()(Parameters*);
86
- // virtual void operator()(Argument*);
87
- // virtual void operator()(Arguments*);
88
- // // selectors
89
- // virtual void operator()(Selector_Schema*);
90
- // virtual void operator()(Selector_Reference*);
91
- // virtual void operator()(Selector_Placeholder*);
92
- // virtual void operator()(Type_Selector*);
93
- // virtual void operator()(Selector_Qualifier*);
94
- // virtual void operator()(Attribute_Selector*);
95
- // virtual void operator()(Pseudo_Selector*);
96
- // virtual void operator()(Wrapped_Selector*);
97
- // virtual void operator()(Compound_Selector*);
98
- // virtual void operator()(Complex_Selector*);
99
- // virtual void operator()(Selector_List*);
100
-
101
- template <typename U>
102
- void fallback(U x) { fallback_impl(x); }
103
- };
104
-
105
- string unquote(const string&);
106
- string quote(const string&, char);
107
-
108
- }
@@ -1,127 +0,0 @@
1
- #! /bin/sh
2
- # test-driver - basic testsuite driver script.
3
-
4
- scriptversion=2012-06-27.10; # UTC
5
-
6
- # Copyright (C) 2011-2013 Free Software Foundation, Inc.
7
- #
8
- # This program is free software; you can redistribute it and/or modify
9
- # it under the terms of the GNU General Public License as published by
10
- # the Free Software Foundation; either version 2, or (at your option)
11
- # any later version.
12
- #
13
- # This program is distributed in the hope that it will be useful,
14
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
15
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
- # GNU General Public License for more details.
17
- #
18
- # You should have received a copy of the GNU General Public License
19
- # along with this program. If not, see <http://www.gnu.org/licenses/>.
20
-
21
- # As a special exception to the GNU General Public License, if you
22
- # distribute this file as part of a program that contains a
23
- # configuration script generated by Autoconf, you may include it under
24
- # the same distribution terms that you use for the rest of that program.
25
-
26
- # This file is maintained in Automake, please report
27
- # bugs to <bug-automake@gnu.org> or send patches to
28
- # <automake-patches@gnu.org>.
29
-
30
- # Make unconditional expansion of undefined variables an error. This
31
- # helps a lot in preventing typo-related bugs.
32
- set -u
33
-
34
- usage_error ()
35
- {
36
- echo "$0: $*" >&2
37
- print_usage >&2
38
- exit 2
39
- }
40
-
41
- print_usage ()
42
- {
43
- cat <<END
44
- Usage:
45
- test-driver --test-name=NAME --log-file=PATH --trs-file=PATH
46
- [--expect-failure={yes|no}] [--color-tests={yes|no}]
47
- [--enable-hard-errors={yes|no}] [--] TEST-SCRIPT
48
- The '--test-name', '--log-file' and '--trs-file' options are mandatory.
49
- END
50
- }
51
-
52
- # TODO: better error handling in option parsing (in particular, ensure
53
- # TODO: $log_file, $trs_file and $test_name are defined).
54
- test_name= # Used for reporting.
55
- log_file= # Where to save the output of the test script.
56
- trs_file= # Where to save the metadata of the test run.
57
- expect_failure=no
58
- color_tests=no
59
- enable_hard_errors=yes
60
- while test $# -gt 0; do
61
- case $1 in
62
- --help) print_usage; exit $?;;
63
- --version) echo "test-driver $scriptversion"; exit $?;;
64
- --test-name) test_name=$2; shift;;
65
- --log-file) log_file=$2; shift;;
66
- --trs-file) trs_file=$2; shift;;
67
- --color-tests) color_tests=$2; shift;;
68
- --expect-failure) expect_failure=$2; shift;;
69
- --enable-hard-errors) enable_hard_errors=$2; shift;;
70
- --) shift; break;;
71
- -*) usage_error "invalid option: '$1'";;
72
- esac
73
- shift
74
- done
75
-
76
- if test $color_tests = yes; then
77
- # Keep this in sync with 'lib/am/check.am:$(am__tty_colors)'.
78
- red='' # Red.
79
- grn='' # Green.
80
- lgn='' # Light green.
81
- blu='' # Blue.
82
- mgn='' # Magenta.
83
- std='' # No color.
84
- else
85
- red= grn= lgn= blu= mgn= std=
86
- fi
87
-
88
- do_exit='rm -f $log_file $trs_file; (exit $st); exit $st'
89
- trap "st=129; $do_exit" 1
90
- trap "st=130; $do_exit" 2
91
- trap "st=141; $do_exit" 13
92
- trap "st=143; $do_exit" 15
93
-
94
- # Test script is run here.
95
- "$@" >$log_file 2>&1
96
- estatus=$?
97
- if test $enable_hard_errors = no && test $estatus -eq 99; then
98
- estatus=1
99
- fi
100
-
101
- case $estatus:$expect_failure in
102
- 0:yes) col=$red res=XPASS recheck=yes gcopy=yes;;
103
- 0:*) col=$grn res=PASS recheck=no gcopy=no;;
104
- 77:*) col=$blu res=SKIP recheck=no gcopy=yes;;
105
- 99:*) col=$mgn res=ERROR recheck=yes gcopy=yes;;
106
- *:yes) col=$lgn res=XFAIL recheck=no gcopy=yes;;
107
- *:*) col=$red res=FAIL recheck=yes gcopy=yes;;
108
- esac
109
-
110
- # Report outcome to console.
111
- echo "${col}${res}${std}: $test_name"
112
-
113
- # Register the test result, and other relevant metadata.
114
- echo ":test-result: $res" > $trs_file
115
- echo ":global-test-result: $res" >> $trs_file
116
- echo ":recheck: $recheck" >> $trs_file
117
- echo ":copy-in-global-log: $gcopy" >> $trs_file
118
-
119
- # Local Variables:
120
- # mode: shell-script
121
- # sh-indentation: 2
122
- # eval: (add-hook 'write-file-hooks 'time-stamp)
123
- # time-stamp-start: "scriptversion="
124
- # time-stamp-format: "%:y-%02m-%02d.%02H"
125
- # time-stamp-time-zone: "UTC"
126
- # time-stamp-end: "; # UTC"
127
- # End:
@@ -1,32 +0,0 @@
1
- #define SASS_TOKEN
2
-
3
- #include <cstring>
4
- #include <string>
5
- #include <sstream>
6
-
7
- namespace Sass {
8
- using namespace std;
9
-
10
- // Token type for representing lexed chunks of text
11
- struct Token {
12
-
13
- const char* begin;
14
- const char* end;
15
-
16
- Token() : begin(0), end(0) { }
17
- Token(const char* s) : begin(s), end(s + strlen(s)) { }
18
- Token(const char* b, const char* e) : begin(b), end(e) { }
19
-
20
- size_t length() const { return end - begin; }
21
- string to_string() const { return string(begin, end - begin); }
22
-
23
- string unquote() const;
24
- void unquote_to_stream(stringstream& buf) const;
25
-
26
- operator bool() { return begin && end && begin >= end; }
27
- operator string() { return to_string(); }
28
-
29
- bool operator==(Token t) { return to_string() == t.to_string(); }
30
- };
31
-
32
- }