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,3 +1,6 @@
1
+ #ifndef SASS_AST_DEF_MACROS_H
2
+ #define SASS_AST_DEF_MACROS_H
3
+
1
4
  #define ATTACH_OPERATIONS()\
2
5
  virtual void perform(Operation<void>* op) { (*op)(this); }\
3
6
  virtual AST_Node* perform(Operation<AST_Node*>* op) { return (*op)(this); }\
@@ -14,3 +17,5 @@ public:\
14
17
  type name() const { return name##_; }\
15
18
  type name(type name##__) { return name##_ = name##__; }\
16
19
  private:
20
+
21
+ #endif
@@ -1,10 +1,9 @@
1
- #define SASS_AST_FACTORY
1
+ #ifndef SASS_AST_FACTORY_H
2
+ #define SASS_AST_FACTORY_H
2
3
 
3
4
  #include <vector>
4
5
 
5
- #ifndef SASS_AST
6
6
  #include "ast.hpp"
7
- #endif
8
7
 
9
8
  namespace Sass {
10
9
  using namespace std;
@@ -18,7 +17,9 @@ namespace Sass {
18
17
  Propset* new_Propset(string p, size_t l, String* pf, Block* b);
19
18
  Feature_Query* new_Feature_Query(string p, size_t l, Feature_Query* f, Block* b);
20
19
  Media_Query* new_Media_Query(string p, size_t l, List* q, Block* b);
20
+ At_Root_Block* new_At_Root_Block(string p, size_t l, Selector* sel, Block* b);
21
21
  At_Rule* new_At_Rule(string p, size_t l, string kwd, Selector* sel, Block* b);
22
+ Keyframe_Rule* new_Keyframe_Rule(string p, size_t l, Block* b);
22
23
  Declaration* new_Declaration(string p, size_t l, String* prop, List* vals);
23
24
  Assignment* new_Assignment(string p, size_t l, string var, Expression* val, bool guarded = false);
24
25
  Import<Function_Call*>* new_CSS_Import(string p, size_t l, Function_Call* loc);
@@ -85,3 +86,5 @@ namespace Sass {
85
86
  Selector_List* new_Selector_List(string p, size_t l, size_t s = 0);
86
87
  };
87
88
  }
89
+
90
+ #endif
@@ -1,17 +1,25 @@
1
+ #ifndef SASS_AST_FWD_DECL_H
2
+ #define SASS_AST_FWD_DECL_H
3
+
1
4
  /////////////////////////////////////////////
2
5
  // Forward declarations for the AST visitors.
3
6
  /////////////////////////////////////////////
4
7
  namespace Sass {
5
8
 
9
+ enum Output_Style { NESTED, EXPANDED, COMPACT, COMPRESSED, FORMATTED };
10
+
6
11
  class AST_Node;
7
12
  // statements
8
13
  class Statement;
9
14
  class Block;
10
15
  class Ruleset;
11
16
  class Propset;
17
+ class Bubble;
12
18
  class Media_Block;
13
19
  class Feature_Block;
14
20
  class At_Rule;
21
+ class Keyframe_Rule;
22
+ class At_Root_Block;
15
23
  class Declaration;
16
24
  class Assignment;
17
25
  class Import;
@@ -45,10 +53,12 @@ namespace Sass {
45
53
  class String_Schema;
46
54
  class String;
47
55
  class String_Constant;
56
+ class String_Quoted;
48
57
  class Media_Query;
49
58
  class Media_Query_Expression;
50
59
  class Feature_Query;
51
60
  class Feature_Query_Condition;
61
+ class At_Root_Expression;
52
62
  class Null;
53
63
  // parameters and arguments
54
64
  class Parameter;
@@ -70,3 +80,5 @@ namespace Sass {
70
80
  class Selector_List;
71
81
 
72
82
  }
83
+
84
+ #endif
@@ -12,7 +12,7 @@ For details, see http://sourceforge.net/projects/libb64
12
12
 
13
13
  namespace base64
14
14
  {
15
- extern "C"
15
+ extern "C"
16
16
  {
17
17
  #include "cencode.h"
18
18
  }
@@ -54,7 +54,7 @@ namespace base64
54
54
  do
55
55
  {
56
56
  istream_in.read(plaintext, N);
57
- plainlength = istream_in.gcount();
57
+ plainlength = static_cast<int>(istream_in.gcount());
58
58
  //
59
59
  codelength = encode(plaintext, plainlength, code);
60
60
  ostream_in.write(code, codelength);
@@ -1,14 +1,10 @@
1
- #define SASS_BACKTRACE
1
+ #ifndef SASS_BACKTRACE_H
2
+ #define SASS_BACKTRACE_H
2
3
 
3
4
  #include <sstream>
4
5
 
5
- #ifndef SASS_POSITION
6
- #include "position.hpp"
7
- #endif
8
-
9
- #ifndef SASS_FILE
10
6
  #include "file.hpp"
11
- #endif
7
+ #include "position.hpp"
12
8
 
13
9
  namespace Sass {
14
10
 
@@ -16,15 +12,13 @@ namespace Sass {
16
12
 
17
13
  struct Backtrace {
18
14
 
19
- Backtrace* parent;
20
- string path;
21
- Position position;
22
- string caller;
15
+ Backtrace* parent;
16
+ ParserState pstate;
17
+ string caller;
23
18
 
24
- Backtrace(Backtrace* prn, string pth, Position position, string c)
19
+ Backtrace(Backtrace* prn, ParserState pstate, string c)
25
20
  : parent(prn),
26
- path(pth),
27
- position(position),
21
+ pstate(pstate),
28
22
  caller(c)
29
23
  { }
30
24
 
@@ -40,14 +34,14 @@ namespace Sass {
40
34
  while (this_point->parent) {
41
35
 
42
36
  // make path relative to the current directory
43
- string rel_path(Sass::File::resolve_relative_path(this_point->path, cwd, cwd));
37
+ string rel_path(Sass::File::resolve_relative_path(this_point->pstate.path, cwd, cwd));
44
38
 
45
39
  if (warning) {
46
40
  ss << endl
47
41
  << "\t"
48
42
  << (++i == 0 ? "on" : "from")
49
43
  << " line "
50
- << this_point->position.line
44
+ << this_point->pstate.line
51
45
  << " of "
52
46
  << rel_path;
53
47
  } else {
@@ -55,7 +49,7 @@ namespace Sass {
55
49
  << "\t"
56
50
  << rel_path
57
51
  << ":"
58
- << this_point->position.line
52
+ << this_point->pstate.line
59
53
  << this_point->parent->caller;
60
54
  }
61
55
 
@@ -79,3 +73,5 @@ namespace Sass {
79
73
  };
80
74
 
81
75
  }
76
+
77
+ #endif
@@ -1,4 +1,5 @@
1
- #define SASS_BASE64VLQ
1
+ #ifndef SASS_BASE64VLQ_H
2
+ #define SASS_BASE64VLQ_H
2
3
 
3
4
  #include <string>
4
5
 
@@ -26,3 +27,5 @@ namespace Sass {
26
27
  };
27
28
 
28
29
  }
30
+
31
+ #endif
@@ -32,7 +32,7 @@ namespace Sass {
32
32
  stringstream msg;
33
33
  msg << callee << " only takes " << LP << " arguments; "
34
34
  << "given " << LA;
35
- error(msg.str(), as->path(), as->position());
35
+ error(msg.str(), as->pstate());
36
36
  }
37
37
  Parameter* p = (*ps)[ip];
38
38
  Argument* a = (*as)[ia];
@@ -51,16 +51,14 @@ namespace Sass {
51
51
  } else {
52
52
 
53
53
  // copy all remaining arguments into the rest parameter, preserving names
54
- List* arglist = new (ctx.mem) List(p->path(),
55
- p->position(),
54
+ List* arglist = new (ctx.mem) List(p->pstate(),
56
55
  0,
57
56
  List::COMMA,
58
57
  true);
59
58
  env->current_frame()[p->name()] = arglist;
60
59
  while (ia < LA) {
61
60
  a = (*as)[ia];
62
- (*arglist) << new (ctx.mem) Argument(a->path(),
63
- a->position(),
61
+ (*arglist) << new (ctx.mem) Argument(a->pstate(),
64
62
  a->value(),
65
63
  a->name(),
66
64
  false);
@@ -84,7 +82,7 @@ namespace Sass {
84
82
  a = static_cast<Argument*>((*arglist)[0]);
85
83
  } else {
86
84
  Expression* a_to_convert = (*arglist)[0];
87
- a = new (ctx.mem) Argument(a_to_convert->path(), a_to_convert->position(), a_to_convert, "", false);
85
+ a = new (ctx.mem) Argument(a_to_convert->pstate(), a_to_convert, "", false);
88
86
  }
89
87
  arglist->elements().erase(arglist->elements().begin());
90
88
  if (!arglist->length() || (!arglist->is_arglist() && ip + 1 == LP)) {
@@ -99,7 +97,7 @@ namespace Sass {
99
97
  if (!param_map.count(name)) {
100
98
  stringstream msg;
101
99
  msg << callee << " has no parameter named " << name;
102
- error(msg.str(), a->path(), a->position());
100
+ error(msg.str(), a->pstate());
103
101
  }
104
102
  env->current_frame()[name] = argmap->at(key);
105
103
  }
@@ -114,7 +112,7 @@ namespace Sass {
114
112
  stringstream msg;
115
113
  msg << "parameter " << p->name()
116
114
  << " provided more than once in call to " << callee;
117
- error(msg.str(), a->path(), a->position());
115
+ error(msg.str(), a->pstate());
118
116
  }
119
117
  // ordinal arg -- bind it to the next param
120
118
  env->current_frame()[p->name()] = a->value();
@@ -125,19 +123,19 @@ namespace Sass {
125
123
  if (!param_map.count(a->name())) {
126
124
  stringstream msg;
127
125
  msg << callee << " has no parameter named " << a->name();
128
- error(msg.str(), a->path(), a->position());
126
+ error(msg.str(), a->pstate());
129
127
  }
130
128
  if (param_map[a->name()]->is_rest_parameter()) {
131
129
  stringstream msg;
132
130
  msg << "argument " << a->name() << " of " << callee
133
131
  << "cannot be used as named argument";
134
- error(msg.str(), a->path(), a->position());
132
+ error(msg.str(), a->pstate());
135
133
  }
136
134
  if (env->current_frame_has(a->name())) {
137
135
  stringstream msg;
138
136
  msg << "parameter " << p->name()
139
137
  << "provided more than once in call to " << callee;
140
- error(msg.str(), a->path(), a->position());
138
+ error(msg.str(), a->pstate());
141
139
  }
142
140
  env->current_frame()[a->name()] = a->value();
143
141
  }
@@ -147,15 +145,14 @@ namespace Sass {
147
145
  // That's only okay if they have default values, or were already bound by
148
146
  // named arguments, or if it's a single rest-param.
149
147
  for (size_t i = ip; i < LP; ++i) {
150
- To_String to_string;
148
+ To_String to_string(&ctx);
151
149
  Parameter* leftover = (*ps)[i];
152
150
  // cerr << "env for default params:" << endl;
153
151
  // env->print();
154
152
  // cerr << "********" << endl;
155
153
  if (!env->current_frame_has(leftover->name())) {
156
154
  if (leftover->is_rest_parameter()) {
157
- env->current_frame()[leftover->name()] = new (ctx.mem) List(leftover->path(),
158
- leftover->position(),
155
+ env->current_frame()[leftover->name()] = new (ctx.mem) List(leftover->pstate(),
159
156
  0,
160
157
  List::COMMA,
161
158
  true);
@@ -175,7 +172,7 @@ namespace Sass {
175
172
  stringstream msg;
176
173
  msg << "required parameter " << leftover->name()
177
174
  << " is missing in call to " << callee;
178
- error(msg.str(), as->path(), as->position());
175
+ error(msg.str(), as->pstate());
179
176
  }
180
177
  }
181
178
  }
@@ -1,18 +1,18 @@
1
- #define SASS_BIND
2
-
3
- #ifndef SASS_ENVIRONMENT
4
- #include "environment.hpp"
5
- #endif
1
+ #ifndef SASS_BIND_H
2
+ #define SASS_BIND_H
6
3
 
7
4
  #include <string>
5
+ #include "environment.hpp"
8
6
 
9
7
  namespace Sass {
10
8
  class AST_Node;
11
9
  class Parameters;
12
10
  class Arguments;
13
- struct Context;
11
+ class Context;
14
12
  class Eval;
15
13
  typedef Environment<AST_Node*> Env;
16
14
 
17
15
  void bind(string caller, Parameters*, Arguments*, Context&, Env*, Eval*);
18
16
  }
17
+
18
+ #endif
@@ -1,4 +1,5 @@
1
- #define SASS_COLOR_NAMES
1
+ #ifndef SASS_COLOR_NAMES_H
2
+ #define SASS_COLOR_NAMES_H
2
3
 
3
4
  namespace Sass {
4
5
 
@@ -322,3 +323,5 @@ namespace Sass {
322
323
  };
323
324
 
324
325
  }
326
+
327
+ #endif
@@ -2,7 +2,8 @@
2
2
  # Process this file with autoconf to produce a configure script.
3
3
 
4
4
  AC_PREREQ([2.61])
5
- AC_INIT([libsass], [3.0.3], [support@moovweb.com])
5
+
6
+ AC_INIT([libsass], m4_esyscmd_s([./version.sh]), [support@moovweb.com])
6
7
  AC_CONFIG_SRCDIR([ast.hpp])
7
8
  AC_CONFIG_MACRO_DIR([m4])
8
9
  AC_CONFIG_HEADERS([config.h])
@@ -62,7 +63,7 @@ the --with-sass-spec-dir=<dir> argument.
62
63
  # Automake doesn't like its tests in an absolute path, so we make it relative.
63
64
  case $sass_spec_dir in
64
65
  /*)
65
- SASS_SPEC_PATH=`$RUBY -e "require 'pathname';puts Pathname.new('$sass_spec_dir').relative_path_from(Pathname.new('$PWD')).to_s"`
66
+ SASS_SPEC_PATH=`$RUBY -e "require 'pathname'; puts Pathname.new('$sass_spec_dir').relative_path_from(Pathname.new('$PWD')).to_s"`
66
67
  ;;
67
68
  *)
68
69
  SASS_SPEC_PATH="$sass_spec_dir"
@@ -106,25 +107,10 @@ fi
106
107
 
107
108
  AM_CONDITIONAL(ENABLE_COVERAGE, test "x$enable_cov" = "xyes")
108
109
 
109
- AC_ARG_VAR(LIBSASS_VERSION, libsass version)
110
- if test "x$LIBSASS_VERSION" = "x"; then
111
- AC_CHECK_PROG(GIT, git, git)
112
- if test "x$GIT" = "x"; then
113
- LIBSASS_VERSION=$VERSION
114
- else
115
- AC_CHECK_FILE(.git/config, [
116
- LIBSASS_VERSION=`$GIT describe --abbrev=4 --dirty --always --tags`
117
- ], [
118
- LIBSASS_VERSION=$VERSION
119
- ])
120
- fi
121
- if test "x$LIBSASS_VERSION" = "x"; then
122
- AC_MSG_ERROR([LIBSASS_VERSION not defined.
123
- You can solve this by setting LIBSASS_VERSION:
124
- # export LIBSASS_VERSION="x.y.z"
125
- ])
126
- fi
127
- fi
110
+ AS_CASE([$host], [*-*-mingw32], [is_mingw32=yes], [is_mingw32=no])
111
+ AM_CONDITIONAL(COMPILER_IS_MINGW32, test "x$is_mingw32" = "xyes")
112
+
113
+ AC_MSG_NOTICE([Building libsass ($VERSION)])
128
114
 
129
115
  AC_CONFIG_FILES([Makefile support/libsass.pc])
130
116
  AC_OUTPUT
@@ -4,10 +4,8 @@ namespace Sass {
4
4
  namespace Constants {
5
5
  extern const int SPECIFICITY_BASE = 1000;
6
6
 
7
- // hidden variable name for the image path (for the image-url built-in)
8
- extern const char image_path_var[] = "$[image path]";
9
-
10
7
  // sass keywords
8
+ extern const char at_root_kwd[] = "@at-root";
11
9
  extern const char import_kwd[] = "@import";
12
10
  extern const char mixin_kwd[] = "@mixin";
13
11
  extern const char function_kwd[] = "@function";
@@ -32,6 +30,10 @@ namespace Sass {
32
30
  extern const char global_kwd[] = "global";
33
31
  extern const char null_kwd[] = "null";
34
32
  extern const char optional_kwd[] = "optional";
33
+ extern const char with_kwd[] = "with";
34
+ extern const char without_kwd[] = "without";
35
+ extern const char all_kwd[] = "all";
36
+ extern const char rule_kwd[] = "rule";
35
37
 
36
38
  // css standard units
37
39
  extern const char em_kwd[] = "em";
@@ -65,7 +67,6 @@ namespace Sass {
65
67
  extern const char only_kwd[] = "only";
66
68
  extern const char rgb_kwd[] = "rgb(";
67
69
  extern const char url_kwd[] = "url(";
68
- extern const char image_url_kwd[] = "image-url(";
69
70
  extern const char important_kwd[] = "important";
70
71
  extern const char pseudo_not_kwd[] = ":not(";
71
72
  extern const char even_kwd[] = "even";
@@ -75,6 +76,7 @@ namespace Sass {
75
76
  extern const char calc_kwd[] = "calc(";
76
77
  extern const char moz_calc_kwd[] = "-moz-calc(";
77
78
  extern const char webkit_calc_kwd[] = "-webkit-calc(";
79
+ extern const char ms_calc_kwd[] = "-ms-calc(";
78
80
 
79
81
  // css attribute-matching operators
80
82
  extern const char tilde_equal[] = "~=";
@@ -1,13 +1,12 @@
1
- #define SASS_CONSTANTS
1
+ #ifndef SASS_CONSTANTS_H
2
+ #define SASS_CONSTANTS_H
2
3
 
3
4
  namespace Sass {
4
5
  namespace Constants {
5
6
  extern const int SPECIFICITY_BASE;
6
7
 
7
- // hidden variable name for the image path (for the image-url built-in)
8
- extern const char image_path_var[];
9
-
10
8
  // sass keywords
9
+ extern const char at_root_kwd[];
11
10
  extern const char import_kwd[];
12
11
  extern const char mixin_kwd[];
13
12
  extern const char function_kwd[];
@@ -32,6 +31,10 @@ namespace Sass {
32
31
  extern const char global_kwd[];
33
32
  extern const char null_kwd[];
34
33
  extern const char optional_kwd[];
34
+ extern const char with_kwd[];
35
+ extern const char without_kwd[];
36
+ extern const char all_kwd[];
37
+ extern const char rule_kwd[];
35
38
 
36
39
  // css standard units
37
40
  extern const char em_kwd[];
@@ -75,6 +78,7 @@ namespace Sass {
75
78
  extern const char calc_kwd[];
76
79
  extern const char moz_calc_kwd[];
77
80
  extern const char webkit_calc_kwd[];
81
+ extern const char ms_calc_kwd[];
78
82
 
79
83
  // css attribute-matching operators
80
84
  extern const char tilde_equal[];
@@ -143,3 +147,5 @@ namespace Sass {
143
147
 
144
148
  }
145
149
  }
150
+
151
+ #endif