sassc 0.0.9 → 0.0.10

Sign up to get free protection for your applications and to get access to all the features.
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