zuora_connect_ui 0.8.2 → 0.8.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (449) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/zuora_connect_ui.js +1 -0
  3. data/app/assets/javascripts/zuora_connect_ui/util.js +51 -0
  4. data/app/assets/stylesheets/_zuora_connect_ui.scss +4 -6
  5. data/app/assets/stylesheets/zuora_connect_ui/datatables.scss +3 -3
  6. data/app/helpers/zuora_connect_ui/application_helper.rb +28 -4
  7. data/app/views/partials/_table.html.erb +16 -7
  8. data/lib/zuora_connect_ui/version.rb +1 -1
  9. data/vendor/ruby/2.6.0/cache/autoprefixer-rails-9.6.1.1.gem +0 -0
  10. data/vendor/ruby/2.6.0/cache/parser-2.6.4.1.gem +0 -0
  11. data/vendor/ruby/2.6.0/cache/sassc-2.2.0.gem +0 -0
  12. data/vendor/ruby/2.6.0/cache/zeitwerk-2.1.10.gem +0 -0
  13. data/vendor/ruby/2.6.0/extensions/x86_64-linux/2.6.0/sassc-2.2.0/gem.build_complete +0 -0
  14. data/vendor/ruby/2.6.0/extensions/x86_64-linux/2.6.0/sassc-2.2.0/gem_make.out +75 -0
  15. data/vendor/ruby/2.6.0/extensions/x86_64-linux/2.6.0/sassc-2.2.0/sassc/libsass.so +0 -0
  16. data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/CHANGELOG.md +1085 -0
  17. data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/Gemfile +10 -0
  18. data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/LICENSE +20 -0
  19. data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/README.md +237 -0
  20. data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/Rakefile +53 -0
  21. data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/autoprefixer-rails.gemspec +32 -0
  22. data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/lib/autoprefixer-rails.rb +41 -0
  23. data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/lib/autoprefixer-rails/processor.rb +194 -0
  24. data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/lib/autoprefixer-rails/railtie.rb +50 -0
  25. data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/lib/autoprefixer-rails/result.rb +24 -0
  26. data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/lib/autoprefixer-rails/sprockets.rb +62 -0
  27. data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/lib/autoprefixer-rails/version.rb +3 -0
  28. data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/lib/rake/autoprefixer_tasks.rb +28 -0
  29. data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/spec/app/Rakefile +2 -0
  30. data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/spec/app/app/assets/config/manifest.js +0 -0
  31. data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/spec/app/app/assets/stylesheets/evaluate.css.erb +1 -0
  32. data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/spec/app/app/assets/stylesheets/loaded.sass +2 -0
  33. data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/spec/app/app/assets/stylesheets/sass.sass +1 -0
  34. data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/spec/app/app/assets/stylesheets/test.css +3 -0
  35. data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/spec/app/app/assets/stylesheets/wrong.css +2 -0
  36. data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/spec/app/app/controllers/application_controller.rb +2 -0
  37. data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/spec/app/app/controllers/css_controller.rb +6 -0
  38. data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/spec/app/config.ru +2 -0
  39. data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/spec/app/config/application.rb +16 -0
  40. data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/spec/app/config/autoprefixer.yml +2 -0
  41. data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/spec/app/config/boot.rb +2 -0
  42. data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/spec/app/config/environment.rb +3 -0
  43. data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/spec/app/config/environments/test.rb +9 -0
  44. data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/spec/app/config/initializers/secret_token.rb +1 -0
  45. data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/spec/app/config/routes.rb +3 -0
  46. data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/spec/autoprefixer_spec.rb +121 -0
  47. data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/spec/processor_spec.rb +25 -0
  48. data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/spec/rails_spec.rb +40 -0
  49. data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/spec/railtie_spec.rb +29 -0
  50. data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/spec/spec_helper.rb +16 -0
  51. data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/vendor/autoprefixer.js +67195 -0
  52. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/CHANGELOG.md +909 -0
  53. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/CONTRIBUTING.md +17 -0
  54. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/Gemfile +10 -0
  55. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/LICENSE.txt +25 -0
  56. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/README.md +301 -0
  57. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/Rakefile +166 -0
  58. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/bin/ruby-parse +7 -0
  59. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/bin/ruby-rewrite +7 -0
  60. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/ci/run_rubocop_specs +14 -0
  61. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/doc/AST_FORMAT.md +1816 -0
  62. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/doc/CUSTOMIZATION.md +37 -0
  63. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/doc/INTERNALS.md +21 -0
  64. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/doc/css/common.css +68 -0
  65. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/gauntlet_parser.rb +123 -0
  66. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser.rb +82 -0
  67. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/all.rb +12 -0
  68. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/ast/node.rb +40 -0
  69. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/ast/processor.rb +264 -0
  70. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/base.rb +270 -0
  71. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/builders/default.rb +1741 -0
  72. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/clobbering_error.rb +13 -0
  73. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/color.rb +32 -0
  74. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/context.rb +59 -0
  75. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/current.rb +92 -0
  76. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/deprecation.rb +13 -0
  77. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/diagnostic.rb +163 -0
  78. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/diagnostic/engine.rb +105 -0
  79. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/lexer.rb +23546 -0
  80. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/lexer.rl +2503 -0
  81. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/lexer/dedenter.rb +79 -0
  82. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/lexer/explanation.rb +55 -0
  83. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/lexer/literal.rb +269 -0
  84. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/lexer/max_numparam_stack.rb +42 -0
  85. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/lexer/stack_state.rb +49 -0
  86. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/macruby.rb +6124 -0
  87. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/macruby.y +2198 -0
  88. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/messages.rb +90 -0
  89. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/meta.rb +33 -0
  90. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/rewriter.rb +105 -0
  91. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/ruby18.rb +5661 -0
  92. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/ruby18.y +1934 -0
  93. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/ruby19.rb +6084 -0
  94. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/ruby19.y +2175 -0
  95. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/ruby20.rb +6511 -0
  96. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/ruby20.y +2353 -0
  97. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/ruby21.rb +6570 -0
  98. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/ruby21.y +2357 -0
  99. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/ruby22.rb +6605 -0
  100. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/ruby22.y +2364 -0
  101. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/ruby23.rb +6624 -0
  102. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/ruby23.y +2370 -0
  103. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/ruby24.rb +6689 -0
  104. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/ruby24.y +2408 -0
  105. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/ruby25.rb +6656 -0
  106. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/ruby25.y +2405 -0
  107. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/ruby26.rb +6670 -0
  108. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/ruby26.y +2413 -0
  109. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/ruby27.rb +6893 -0
  110. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/ruby27.y +2470 -0
  111. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/rubymotion.rb +6078 -0
  112. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/rubymotion.y +2182 -0
  113. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/runner.rb +253 -0
  114. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/runner/ruby_parse.rb +157 -0
  115. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/runner/ruby_rewrite.rb +101 -0
  116. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/source/buffer.rb +330 -0
  117. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/source/comment.rb +121 -0
  118. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/source/comment/associator.rb +210 -0
  119. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/source/map.rb +186 -0
  120. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/source/map/collection.rb +18 -0
  121. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/source/map/condition.rb +21 -0
  122. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/source/map/constant.rb +32 -0
  123. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/source/map/definition.rb +23 -0
  124. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/source/map/for.rb +19 -0
  125. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/source/map/heredoc.rb +19 -0
  126. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/source/map/index.rb +33 -0
  127. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/source/map/keyword.rb +20 -0
  128. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/source/map/objc_kwarg.rb +19 -0
  129. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/source/map/operator.rb +17 -0
  130. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/source/map/rescue_body.rb +21 -0
  131. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/source/map/send.rb +36 -0
  132. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/source/map/ternary.rb +18 -0
  133. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/source/map/variable.rb +31 -0
  134. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/source/range.rb +310 -0
  135. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/source/rewriter.rb +513 -0
  136. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/source/rewriter/action.rb +44 -0
  137. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/source/tree_rewriter.rb +301 -0
  138. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/source/tree_rewriter/action.rb +133 -0
  139. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/static_environment.rb +46 -0
  140. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/syntax_error.rb +21 -0
  141. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/tree_rewriter.rb +134 -0
  142. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/version.rb +5 -0
  143. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/parser.gemspec +51 -0
  144. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/test/bug_163/fixtures/input.rb +5 -0
  145. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/test/bug_163/fixtures/output.rb +5 -0
  146. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/test/bug_163/rewriter.rb +20 -0
  147. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/test/helper.rb +59 -0
  148. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/test/parse_helper.rb +316 -0
  149. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/test/racc_coverage_helper.rb +133 -0
  150. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/test/test_base.rb +31 -0
  151. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/test/test_current.rb +29 -0
  152. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/test/test_diagnostic.rb +96 -0
  153. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/test/test_diagnostic_engine.rb +62 -0
  154. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/test/test_encoding.rb +99 -0
  155. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/test/test_lexer.rb +3659 -0
  156. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/test/test_lexer_stack_state.rb +78 -0
  157. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/test/test_parse_helper.rb +80 -0
  158. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/test/test_parser.rb +7579 -0
  159. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/test/test_runner_parse.rb +35 -0
  160. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/test/test_runner_rewrite.rb +47 -0
  161. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/test/test_source_buffer.rb +162 -0
  162. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/test/test_source_comment.rb +36 -0
  163. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/test/test_source_comment_associator.rb +367 -0
  164. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/test/test_source_map.rb +15 -0
  165. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/test/test_source_range.rb +172 -0
  166. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/test/test_source_rewriter.rb +541 -0
  167. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/test/test_source_rewriter_action.rb +46 -0
  168. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/test/test_source_tree_rewriter.rb +173 -0
  169. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/test/test_static_environment.rb +45 -0
  170. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/test/using_tree_rewriter/fixtures/input.rb +3 -0
  171. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/test/using_tree_rewriter/fixtures/output.rb +3 -0
  172. data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/test/using_tree_rewriter/using_tree_rewriter.rb +9 -0
  173. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/CHANGELOG.md +77 -0
  174. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/CODE_OF_CONDUCT.md +10 -0
  175. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/Gemfile +2 -0
  176. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/LICENSE.txt +22 -0
  177. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/README.md +68 -0
  178. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/Rakefile +53 -0
  179. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/Makefile +271 -0
  180. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/SharedPtr.o +0 -0
  181. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/ast.o +0 -0
  182. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/ast2c.o +0 -0
  183. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/ast_fwd_decl.o +0 -0
  184. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/ast_sel_cmp.o +0 -0
  185. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/ast_sel_unify.o +0 -0
  186. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/ast_selectors.o +0 -0
  187. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/ast_supports.o +0 -0
  188. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/ast_values.o +0 -0
  189. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/backtrace.o +0 -0
  190. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/base64vlq.o +0 -0
  191. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/bind.o +0 -0
  192. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/c2ast.o +0 -0
  193. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/c99func.o +0 -0
  194. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/cencode.o +0 -0
  195. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/check_nesting.o +0 -0
  196. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/color_maps.o +0 -0
  197. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/constants.o +0 -0
  198. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/context.o +0 -0
  199. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/cssize.o +0 -0
  200. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/depend +4 -0
  201. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/emitter.o +0 -0
  202. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/environment.o +0 -0
  203. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/error_handling.o +0 -0
  204. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/eval.o +0 -0
  205. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/expand.o +0 -0
  206. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/extconf.rb +84 -0
  207. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/extend.o +0 -0
  208. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/file.o +0 -0
  209. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/fn_colors.o +0 -0
  210. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/fn_lists.o +0 -0
  211. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/fn_maps.o +0 -0
  212. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/fn_miscs.o +0 -0
  213. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/fn_numbers.o +0 -0
  214. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/fn_selectors.o +0 -0
  215. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/fn_strings.o +0 -0
  216. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/fn_utils.o +0 -0
  217. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/inspect.o +0 -0
  218. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/json.o +0 -0
  219. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/lexer.o +0 -0
  220. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass.so +0 -0
  221. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/VERSION +1 -0
  222. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/contrib/plugin.cpp +60 -0
  223. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/include/sass.h +15 -0
  224. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/include/sass/base.h +96 -0
  225. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/include/sass/context.h +170 -0
  226. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/include/sass/functions.h +139 -0
  227. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/include/sass/values.h +145 -0
  228. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/include/sass/version.h +12 -0
  229. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/include/sass2scss.h +120 -0
  230. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/ast.cpp +963 -0
  231. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/ast.hpp +905 -0
  232. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/ast2c.cpp +80 -0
  233. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/ast2c.hpp +39 -0
  234. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/ast_def_macros.hpp +132 -0
  235. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/ast_fwd_decl.cpp +30 -0
  236. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/ast_fwd_decl.hpp +341 -0
  237. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/ast_sel_cmp.cpp +909 -0
  238. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/ast_sel_unify.cpp +280 -0
  239. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/ast_selectors.cpp +1475 -0
  240. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/ast_selectors.hpp +568 -0
  241. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/ast_supports.cpp +130 -0
  242. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/ast_supports.hpp +121 -0
  243. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/ast_values.cpp +967 -0
  244. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/ast_values.hpp +489 -0
  245. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/b64/cencode.h +32 -0
  246. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/b64/encode.h +79 -0
  247. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/backtrace.cpp +50 -0
  248. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/backtrace.hpp +29 -0
  249. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/base64vlq.cpp +47 -0
  250. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/base64vlq.hpp +30 -0
  251. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/bind.cpp +312 -0
  252. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/bind.hpp +15 -0
  253. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/c2ast.cpp +64 -0
  254. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/c2ast.hpp +14 -0
  255. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/c99func.c +54 -0
  256. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/cencode.c +108 -0
  257. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/check_nesting.cpp +394 -0
  258. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/check_nesting.hpp +66 -0
  259. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/color_maps.cpp +651 -0
  260. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/color_maps.hpp +331 -0
  261. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/constants.cpp +194 -0
  262. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/constants.hpp +194 -0
  263. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/context.cpp +890 -0
  264. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/context.hpp +152 -0
  265. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/cssize.cpp +604 -0
  266. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/cssize.hpp +77 -0
  267. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/debug.hpp +43 -0
  268. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/debugger.hpp +807 -0
  269. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/emitter.cpp +298 -0
  270. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/emitter.hpp +103 -0
  271. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/environment.cpp +260 -0
  272. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/environment.hpp +119 -0
  273. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/error_handling.cpp +212 -0
  274. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/error_handling.hpp +229 -0
  275. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/eval.cpp +1657 -0
  276. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/eval.hpp +112 -0
  277. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/expand.cpp +822 -0
  278. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/expand.hpp +78 -0
  279. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/extend.cpp +2132 -0
  280. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/extend.hpp +86 -0
  281. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/file.cpp +522 -0
  282. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/file.hpp +133 -0
  283. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/fn_colors.cpp +594 -0
  284. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/fn_colors.hpp +85 -0
  285. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/fn_lists.cpp +284 -0
  286. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/fn_lists.hpp +34 -0
  287. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/fn_maps.cpp +94 -0
  288. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/fn_maps.hpp +30 -0
  289. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/fn_miscs.cpp +256 -0
  290. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/fn_miscs.hpp +40 -0
  291. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/fn_numbers.cpp +220 -0
  292. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/fn_numbers.hpp +45 -0
  293. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/fn_selectors.cpp +235 -0
  294. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/fn_selectors.hpp +35 -0
  295. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/fn_strings.cpp +254 -0
  296. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/fn_strings.hpp +34 -0
  297. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/fn_utils.cpp +156 -0
  298. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/fn_utils.hpp +56 -0
  299. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/inspect.cpp +1087 -0
  300. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/inspect.hpp +99 -0
  301. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/json.cpp +1436 -0
  302. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/json.hpp +117 -0
  303. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/kwd_arg_macros.hpp +28 -0
  304. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/lexer.cpp +184 -0
  305. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/lexer.hpp +315 -0
  306. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/listize.cpp +84 -0
  307. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/listize.hpp +38 -0
  308. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/mapping.hpp +18 -0
  309. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/memory/SharedPtr.cpp +33 -0
  310. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/memory/SharedPtr.hpp +286 -0
  311. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/node.cpp +322 -0
  312. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/node.hpp +118 -0
  313. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/operation.hpp +213 -0
  314. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/operators.cpp +266 -0
  315. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/operators.hpp +30 -0
  316. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/output.cpp +339 -0
  317. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/output.hpp +47 -0
  318. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/parser.cpp +3153 -0
  319. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/parser.hpp +402 -0
  320. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/paths.hpp +71 -0
  321. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/plugins.cpp +188 -0
  322. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/plugins.hpp +57 -0
  323. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/position.cpp +184 -0
  324. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/position.hpp +124 -0
  325. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/prelexer.cpp +1780 -0
  326. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/prelexer.hpp +484 -0
  327. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/remove_placeholders.cpp +87 -0
  328. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/remove_placeholders.hpp +34 -0
  329. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/sass.cpp +155 -0
  330. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/sass.hpp +142 -0
  331. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/sass2scss.cpp +895 -0
  332. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/sass_context.cpp +772 -0
  333. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/sass_context.hpp +129 -0
  334. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/sass_functions.cpp +210 -0
  335. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/sass_functions.hpp +50 -0
  336. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/sass_util.cpp +152 -0
  337. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/sass_util.hpp +256 -0
  338. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/sass_values.cpp +365 -0
  339. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/sass_values.hpp +82 -0
  340. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/source_map.cpp +198 -0
  341. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/source_map.hpp +62 -0
  342. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/subset_map.cpp +58 -0
  343. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/subset_map.hpp +76 -0
  344. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/to_value.cpp +114 -0
  345. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/to_value.hpp +46 -0
  346. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/units.cpp +505 -0
  347. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/units.hpp +110 -0
  348. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/utf8.h +34 -0
  349. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/utf8/checked.h +336 -0
  350. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/utf8/core.h +332 -0
  351. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/utf8/unchecked.h +235 -0
  352. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/utf8_string.cpp +105 -0
  353. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/utf8_string.hpp +37 -0
  354. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/util.cpp +725 -0
  355. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/util.hpp +106 -0
  356. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/util_string.cpp +75 -0
  357. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/util_string.hpp +19 -0
  358. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/values.cpp +140 -0
  359. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/values.hpp +12 -0
  360. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/listize.o +0 -0
  361. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/node.o +0 -0
  362. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/operators.o +0 -0
  363. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/output.o +0 -0
  364. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/parser.o +0 -0
  365. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/plugins.o +0 -0
  366. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/position.o +0 -0
  367. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/prelexer.o +0 -0
  368. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/remove_placeholders.o +0 -0
  369. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/sass.o +0 -0
  370. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/sass2scss.o +0 -0
  371. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/sass_context.o +0 -0
  372. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/sass_functions.o +0 -0
  373. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/sass_util.o +0 -0
  374. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/sass_values.o +0 -0
  375. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/source_map.o +0 -0
  376. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/subset_map.o +0 -0
  377. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/to_value.o +0 -0
  378. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/units.o +0 -0
  379. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/utf8_string.o +0 -0
  380. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/util.o +0 -0
  381. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/util_string.o +0 -0
  382. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/values.o +0 -0
  383. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc.rb +57 -0
  384. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/dependency.rb +17 -0
  385. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/engine.rb +139 -0
  386. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/error.rb +37 -0
  387. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/functions_handler.rb +73 -0
  388. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/import_handler.rb +50 -0
  389. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/importer.rb +31 -0
  390. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/libsass.so +0 -0
  391. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/native.rb +62 -0
  392. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/native/lib_c.rb +21 -0
  393. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/native/native_context_api.rb +147 -0
  394. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/native/native_functions_api.rb +159 -0
  395. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/native/sass2scss_api.rb +10 -0
  396. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/native/sass_input_style.rb +13 -0
  397. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/native/sass_output_style.rb +12 -0
  398. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/native/sass_value.rb +97 -0
  399. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/native/string_list.rb +10 -0
  400. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/sass_2_scss.rb +9 -0
  401. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/script.rb +17 -0
  402. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/script/functions.rb +8 -0
  403. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/script/value.rb +137 -0
  404. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/script/value/bool.rb +32 -0
  405. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/script/value/color.rb +95 -0
  406. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/script/value/list.rb +136 -0
  407. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/script/value/map.rb +69 -0
  408. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/script/value/number.rb +389 -0
  409. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/script/value/string.rb +96 -0
  410. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/script/value_conversion.rb +69 -0
  411. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/script/value_conversion/base.rb +13 -0
  412. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/script/value_conversion/bool.rb +13 -0
  413. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/script/value_conversion/color.rb +18 -0
  414. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/script/value_conversion/list.rb +25 -0
  415. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/script/value_conversion/map.rb +21 -0
  416. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/script/value_conversion/number.rb +13 -0
  417. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/script/value_conversion/string.rb +17 -0
  418. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/util.rb +231 -0
  419. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/util/normalized_map.rb +117 -0
  420. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/version.rb +5 -0
  421. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/sassc.gemspec +69 -0
  422. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/test/custom_importer_test.rb +127 -0
  423. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/test/engine_test.rb +314 -0
  424. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/test/error_test.rb +29 -0
  425. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/test/fixtures/paths.scss +10 -0
  426. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/test/functions_test.rb +323 -0
  427. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/test/native_test.rb +213 -0
  428. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/test/output_style_test.rb +107 -0
  429. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/test/sass_2_scss_test.rb +14 -0
  430. data/vendor/ruby/2.6.0/gems/sassc-2.2.0/test/test_helper.rb +45 -0
  431. data/vendor/ruby/2.6.0/gems/zeitwerk-2.1.10/README.md +533 -0
  432. data/vendor/ruby/2.6.0/gems/zeitwerk-2.1.10/lib/zeitwerk.rb +12 -0
  433. data/vendor/ruby/2.6.0/gems/zeitwerk-2.1.10/lib/zeitwerk/error.rb +10 -0
  434. data/vendor/ruby/2.6.0/gems/zeitwerk-2.1.10/lib/zeitwerk/explicit_namespace.rb +80 -0
  435. data/vendor/ruby/2.6.0/gems/zeitwerk-2.1.10/lib/zeitwerk/gem_inflector.rb +19 -0
  436. data/vendor/ruby/2.6.0/gems/zeitwerk-2.1.10/lib/zeitwerk/inflector.rb +19 -0
  437. data/vendor/ruby/2.6.0/gems/zeitwerk-2.1.10/lib/zeitwerk/kernel.rb +33 -0
  438. data/vendor/ruby/2.6.0/gems/zeitwerk-2.1.10/lib/zeitwerk/loader.rb +759 -0
  439. data/vendor/ruby/2.6.0/gems/zeitwerk-2.1.10/lib/zeitwerk/loader/callbacks.rb +71 -0
  440. data/vendor/ruby/2.6.0/gems/zeitwerk-2.1.10/lib/zeitwerk/real_mod_name.rb +15 -0
  441. data/vendor/ruby/2.6.0/gems/zeitwerk-2.1.10/lib/zeitwerk/registry.rb +147 -0
  442. data/vendor/ruby/2.6.0/gems/zeitwerk-2.1.10/lib/zeitwerk/version.rb +5 -0
  443. data/vendor/ruby/2.6.0/specifications/autoprefixer-rails-9.6.1.1.gemspec +47 -0
  444. data/vendor/ruby/2.6.0/specifications/parser-2.6.4.1.gemspec +62 -0
  445. data/vendor/ruby/2.6.0/specifications/sassc-2.2.0.gemspec +60 -0
  446. data/vendor/ruby/2.6.0/specifications/zeitwerk-2.1.10.gemspec +21 -0
  447. metadata +441 -4
  448. data/vendor/assets/anjuna/css/anjuna-application.css +0 -2
  449. data/vendor/assets/anjuna/css/anjuna-theme.css +0 -2
@@ -0,0 +1,145 @@
1
+ #ifndef SASS_C_VALUES_H
2
+ #define SASS_C_VALUES_H
3
+
4
+ #include <stddef.h>
5
+ #include <stdbool.h>
6
+ #include <sass/base.h>
7
+
8
+ #ifdef __cplusplus
9
+ extern "C" {
10
+ #endif
11
+
12
+
13
+ // Forward declaration
14
+ union Sass_Value;
15
+
16
+ // Type for Sass values
17
+ enum Sass_Tag {
18
+ SASS_BOOLEAN,
19
+ SASS_NUMBER,
20
+ SASS_COLOR,
21
+ SASS_STRING,
22
+ SASS_LIST,
23
+ SASS_MAP,
24
+ SASS_NULL,
25
+ SASS_ERROR,
26
+ SASS_WARNING
27
+ };
28
+
29
+ // Tags for denoting Sass list separators
30
+ enum Sass_Separator {
31
+ SASS_COMMA,
32
+ SASS_SPACE,
33
+ // only used internally to represent a hash map before evaluation
34
+ // otherwise we would be too early to check for duplicate keys
35
+ SASS_HASH
36
+ };
37
+
38
+ // Value Operators
39
+ enum Sass_OP {
40
+ AND, OR, // logical connectives
41
+ EQ, NEQ, GT, GTE, LT, LTE, // arithmetic relations
42
+ ADD, SUB, MUL, DIV, MOD, // arithmetic functions
43
+ NUM_OPS // so we know how big to make the op table
44
+ };
45
+
46
+ // Creator functions for all value types
47
+ ADDAPI union Sass_Value* ADDCALL sass_make_null (void);
48
+ ADDAPI union Sass_Value* ADDCALL sass_make_boolean (bool val);
49
+ ADDAPI union Sass_Value* ADDCALL sass_make_string (const char* val);
50
+ ADDAPI union Sass_Value* ADDCALL sass_make_qstring (const char* val);
51
+ ADDAPI union Sass_Value* ADDCALL sass_make_number (double val, const char* unit);
52
+ ADDAPI union Sass_Value* ADDCALL sass_make_color (double r, double g, double b, double a);
53
+ ADDAPI union Sass_Value* ADDCALL sass_make_list (size_t len, enum Sass_Separator sep, bool is_bracketed);
54
+ ADDAPI union Sass_Value* ADDCALL sass_make_map (size_t len);
55
+ ADDAPI union Sass_Value* ADDCALL sass_make_error (const char* msg);
56
+ ADDAPI union Sass_Value* ADDCALL sass_make_warning (const char* msg);
57
+
58
+ // Generic destructor function for all types
59
+ // Will release memory of all associated Sass_Values
60
+ // Means we will delete recursively for lists and maps
61
+ ADDAPI void ADDCALL sass_delete_value (union Sass_Value* val);
62
+
63
+ // Make a deep cloned copy of the given sass value
64
+ ADDAPI union Sass_Value* ADDCALL sass_clone_value (const union Sass_Value* val);
65
+
66
+ // Execute an operation for two Sass_Values and return the result as a Sass_Value too
67
+ ADDAPI union Sass_Value* ADDCALL sass_value_op (enum Sass_OP op, const union Sass_Value* a, const union Sass_Value* b);
68
+
69
+ // Stringify a Sass_Values and also return the result as a Sass_Value (of type STRING)
70
+ ADDAPI union Sass_Value* ADDCALL sass_value_stringify (const union Sass_Value* a, bool compressed, int precision);
71
+
72
+ // Return the sass tag for a generic sass value
73
+ // Check is needed before accessing specific values!
74
+ ADDAPI enum Sass_Tag ADDCALL sass_value_get_tag (const union Sass_Value* v);
75
+
76
+ // Check value to be of a specific type
77
+ // Can also be used before accessing properties!
78
+ ADDAPI bool ADDCALL sass_value_is_null (const union Sass_Value* v);
79
+ ADDAPI bool ADDCALL sass_value_is_number (const union Sass_Value* v);
80
+ ADDAPI bool ADDCALL sass_value_is_string (const union Sass_Value* v);
81
+ ADDAPI bool ADDCALL sass_value_is_boolean (const union Sass_Value* v);
82
+ ADDAPI bool ADDCALL sass_value_is_color (const union Sass_Value* v);
83
+ ADDAPI bool ADDCALL sass_value_is_list (const union Sass_Value* v);
84
+ ADDAPI bool ADDCALL sass_value_is_map (const union Sass_Value* v);
85
+ ADDAPI bool ADDCALL sass_value_is_error (const union Sass_Value* v);
86
+ ADDAPI bool ADDCALL sass_value_is_warning (const union Sass_Value* v);
87
+
88
+ // Getters and setters for Sass_Number
89
+ ADDAPI double ADDCALL sass_number_get_value (const union Sass_Value* v);
90
+ ADDAPI void ADDCALL sass_number_set_value (union Sass_Value* v, double value);
91
+ ADDAPI const char* ADDCALL sass_number_get_unit (const union Sass_Value* v);
92
+ ADDAPI void ADDCALL sass_number_set_unit (union Sass_Value* v, char* unit);
93
+
94
+ // Getters and setters for Sass_String
95
+ ADDAPI const char* ADDCALL sass_string_get_value (const union Sass_Value* v);
96
+ ADDAPI void ADDCALL sass_string_set_value (union Sass_Value* v, char* value);
97
+ ADDAPI bool ADDCALL sass_string_is_quoted(const union Sass_Value* v);
98
+ ADDAPI void ADDCALL sass_string_set_quoted(union Sass_Value* v, bool quoted);
99
+
100
+ // Getters and setters for Sass_Boolean
101
+ ADDAPI bool ADDCALL sass_boolean_get_value (const union Sass_Value* v);
102
+ ADDAPI void ADDCALL sass_boolean_set_value (union Sass_Value* v, bool value);
103
+
104
+ // Getters and setters for Sass_Color
105
+ ADDAPI double ADDCALL sass_color_get_r (const union Sass_Value* v);
106
+ ADDAPI void ADDCALL sass_color_set_r (union Sass_Value* v, double r);
107
+ ADDAPI double ADDCALL sass_color_get_g (const union Sass_Value* v);
108
+ ADDAPI void ADDCALL sass_color_set_g (union Sass_Value* v, double g);
109
+ ADDAPI double ADDCALL sass_color_get_b (const union Sass_Value* v);
110
+ ADDAPI void ADDCALL sass_color_set_b (union Sass_Value* v, double b);
111
+ ADDAPI double ADDCALL sass_color_get_a (const union Sass_Value* v);
112
+ ADDAPI void ADDCALL sass_color_set_a (union Sass_Value* v, double a);
113
+
114
+ // Getter for the number of items in list
115
+ ADDAPI size_t ADDCALL sass_list_get_length (const union Sass_Value* v);
116
+ // Getters and setters for Sass_List
117
+ ADDAPI enum Sass_Separator ADDCALL sass_list_get_separator (const union Sass_Value* v);
118
+ ADDAPI void ADDCALL sass_list_set_separator (union Sass_Value* v, enum Sass_Separator value);
119
+ ADDAPI bool ADDCALL sass_list_get_is_bracketed (const union Sass_Value* v);
120
+ ADDAPI void ADDCALL sass_list_set_is_bracketed (union Sass_Value* v, bool value);
121
+ // Getters and setters for Sass_List values
122
+ ADDAPI union Sass_Value* ADDCALL sass_list_get_value (const union Sass_Value* v, size_t i);
123
+ ADDAPI void ADDCALL sass_list_set_value (union Sass_Value* v, size_t i, union Sass_Value* value);
124
+
125
+ // Getter for the number of items in map
126
+ ADDAPI size_t ADDCALL sass_map_get_length (const union Sass_Value* v);
127
+ // Getters and setters for Sass_Map keys and values
128
+ ADDAPI union Sass_Value* ADDCALL sass_map_get_key (const union Sass_Value* v, size_t i);
129
+ ADDAPI void ADDCALL sass_map_set_key (union Sass_Value* v, size_t i, union Sass_Value*);
130
+ ADDAPI union Sass_Value* ADDCALL sass_map_get_value (const union Sass_Value* v, size_t i);
131
+ ADDAPI void ADDCALL sass_map_set_value (union Sass_Value* v, size_t i, union Sass_Value*);
132
+
133
+ // Getters and setters for Sass_Error
134
+ ADDAPI char* ADDCALL sass_error_get_message (const union Sass_Value* v);
135
+ ADDAPI void ADDCALL sass_error_set_message (union Sass_Value* v, char* msg);
136
+
137
+ // Getters and setters for Sass_Warning
138
+ ADDAPI char* ADDCALL sass_warning_get_message (const union Sass_Value* v);
139
+ ADDAPI void ADDCALL sass_warning_set_message (union Sass_Value* v, char* msg);
140
+
141
+ #ifdef __cplusplus
142
+ } // __cplusplus defined.
143
+ #endif
144
+
145
+ #endif
@@ -0,0 +1,12 @@
1
+ #ifndef SASS_VERSION_H
2
+ #define SASS_VERSION_H
3
+
4
+ #ifndef LIBSASS_VERSION
5
+ #define LIBSASS_VERSION "[NA]"
6
+ #endif
7
+
8
+ #ifndef LIBSASS_LANGUAGE_VERSION
9
+ #define LIBSASS_LANGUAGE_VERSION "3.5"
10
+ #endif
11
+
12
+ #endif
@@ -0,0 +1,120 @@
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++
44
+ namespace 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
94
+ extern "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
@@ -0,0 +1,963 @@
1
+ #include "sass.hpp"
2
+ #include "ast.hpp"
3
+ #include "context.hpp"
4
+ #include "node.hpp"
5
+ #include "eval.hpp"
6
+ #include "extend.hpp"
7
+ #include "emitter.hpp"
8
+ #include "color_maps.hpp"
9
+ #include "ast_fwd_decl.hpp"
10
+ #include <set>
11
+ #include <iomanip>
12
+ #include <iostream>
13
+ #include <algorithm>
14
+ #include <functional>
15
+ #include <cctype>
16
+ #include <locale>
17
+
18
+ namespace Sass {
19
+
20
+ static Null sass_null(ParserState("null"));
21
+
22
+ const char* sass_op_to_name(enum Sass_OP op) {
23
+ switch (op) {
24
+ case AND: return "and";
25
+ case OR: return "or";
26
+ case EQ: return "eq";
27
+ case NEQ: return "neq";
28
+ case GT: return "gt";
29
+ case GTE: return "gte";
30
+ case LT: return "lt";
31
+ case LTE: return "lte";
32
+ case ADD: return "plus";
33
+ case SUB: return "minus";
34
+ case MUL: return "times";
35
+ case DIV: return "div";
36
+ case MOD: return "mod";
37
+ // this is only used internally!
38
+ case NUM_OPS: return "[OPS]";
39
+ default: return "invalid";
40
+ }
41
+ }
42
+
43
+ const char* sass_op_separator(enum Sass_OP op) {
44
+ switch (op) {
45
+ case AND: return "&&";
46
+ case OR: return "||";
47
+ case EQ: return "==";
48
+ case NEQ: return "!=";
49
+ case GT: return ">";
50
+ case GTE: return ">=";
51
+ case LT: return "<";
52
+ case LTE: return "<=";
53
+ case ADD: return "+";
54
+ case SUB: return "-";
55
+ case MUL: return "*";
56
+ case DIV: return "/";
57
+ case MOD: return "%";
58
+ // this is only used internally!
59
+ case NUM_OPS: return "[OPS]";
60
+ default: return "invalid";
61
+ }
62
+ }
63
+
64
+ /////////////////////////////////////////////////////////////////////////
65
+ /////////////////////////////////////////////////////////////////////////
66
+
67
+ void AST_Node::update_pstate(const ParserState& pstate)
68
+ {
69
+ pstate_.offset += pstate - pstate_ + pstate.offset;
70
+ }
71
+
72
+ const std::string AST_Node::to_string(Sass_Inspect_Options opt) const
73
+ {
74
+ Sass_Output_Options out(opt);
75
+ Emitter emitter(out);
76
+ Inspect i(emitter);
77
+ i.in_declaration = true;
78
+ // ToDo: inspect should be const
79
+ const_cast<AST_Node*>(this)->perform(&i);
80
+ return i.get_buffer();
81
+ }
82
+
83
+ const std::string AST_Node::to_string() const
84
+ {
85
+ return to_string({ NESTED, 5 });
86
+ }
87
+
88
+ /////////////////////////////////////////////////////////////////////////
89
+ /////////////////////////////////////////////////////////////////////////
90
+
91
+ Expression_Obj Hashed::at(Expression_Obj k) const
92
+ {
93
+ if (elements_.count(k))
94
+ { return elements_.at(k); }
95
+ else { return {}; }
96
+ }
97
+
98
+ /////////////////////////////////////////////////////////////////////////
99
+ /////////////////////////////////////////////////////////////////////////
100
+
101
+ Statement::Statement(ParserState pstate, Type st, size_t t)
102
+ : AST_Node(pstate), statement_type_(st), tabs_(t), group_end_(false)
103
+ { }
104
+ Statement::Statement(const Statement* ptr)
105
+ : AST_Node(ptr),
106
+ statement_type_(ptr->statement_type_),
107
+ tabs_(ptr->tabs_),
108
+ group_end_(ptr->group_end_)
109
+ { }
110
+
111
+ bool Statement::bubbles()
112
+ {
113
+ return false;
114
+ }
115
+
116
+ bool Statement::has_content()
117
+ {
118
+ return statement_type_ == CONTENT;
119
+ }
120
+
121
+ bool Statement::is_invisible() const
122
+ {
123
+ return false;
124
+ }
125
+
126
+ /////////////////////////////////////////////////////////////////////////
127
+ /////////////////////////////////////////////////////////////////////////
128
+
129
+ Block::Block(ParserState pstate, size_t s, bool r)
130
+ : Statement(pstate),
131
+ Vectorized<Statement_Obj>(s),
132
+ is_root_(r)
133
+ { }
134
+ Block::Block(const Block* ptr)
135
+ : Statement(ptr),
136
+ Vectorized<Statement_Obj>(*ptr),
137
+ is_root_(ptr->is_root_)
138
+ { }
139
+
140
+ bool Block::has_content()
141
+ {
142
+ for (size_t i = 0, L = elements().size(); i < L; ++i) {
143
+ if (elements()[i]->has_content()) return true;
144
+ }
145
+ return Statement::has_content();
146
+ }
147
+
148
+ /////////////////////////////////////////////////////////////////////////
149
+ /////////////////////////////////////////////////////////////////////////
150
+
151
+ Has_Block::Has_Block(ParserState pstate, Block_Obj b)
152
+ : Statement(pstate), block_(b)
153
+ { }
154
+ Has_Block::Has_Block(const Has_Block* ptr)
155
+ : Statement(ptr), block_(ptr->block_)
156
+ { }
157
+
158
+ bool Has_Block::has_content()
159
+ {
160
+ return (block_ && block_->has_content()) || Statement::has_content();
161
+ }
162
+
163
+ /////////////////////////////////////////////////////////////////////////
164
+ /////////////////////////////////////////////////////////////////////////
165
+
166
+ Ruleset::Ruleset(ParserState pstate, Selector_List_Obj s, Block_Obj b)
167
+ : Has_Block(pstate, b), selector_(s), is_root_(false)
168
+ { statement_type(RULESET); }
169
+ Ruleset::Ruleset(const Ruleset* ptr)
170
+ : Has_Block(ptr),
171
+ selector_(ptr->selector_),
172
+ is_root_(ptr->is_root_)
173
+ { statement_type(RULESET); }
174
+
175
+ bool Ruleset::is_invisible() const {
176
+ if (Selector_List* sl = Cast<Selector_List>(selector())) {
177
+ for (size_t i = 0, L = sl->length(); i < L; ++i)
178
+ if (!(*sl)[i]->has_placeholder()) return false;
179
+ }
180
+ return true;
181
+ }
182
+
183
+ /////////////////////////////////////////////////////////////////////////
184
+ /////////////////////////////////////////////////////////////////////////
185
+
186
+ Bubble::Bubble(ParserState pstate, Statement_Obj n, Statement_Obj g, size_t t)
187
+ : Statement(pstate, Statement::BUBBLE, t), node_(n), group_end_(g == nullptr)
188
+ { }
189
+ Bubble::Bubble(const Bubble* ptr)
190
+ : Statement(ptr),
191
+ node_(ptr->node_),
192
+ group_end_(ptr->group_end_)
193
+ { }
194
+
195
+ bool Bubble::bubbles()
196
+ {
197
+ return true;
198
+ }
199
+
200
+ /////////////////////////////////////////////////////////////////////////
201
+ /////////////////////////////////////////////////////////////////////////
202
+
203
+ Trace::Trace(ParserState pstate, std::string n, Block_Obj b, char type)
204
+ : Has_Block(pstate, b), type_(type), name_(n)
205
+ { }
206
+ Trace::Trace(const Trace* ptr)
207
+ : Has_Block(ptr),
208
+ type_(ptr->type_),
209
+ name_(ptr->name_)
210
+ { }
211
+
212
+ /////////////////////////////////////////////////////////////////////////
213
+ /////////////////////////////////////////////////////////////////////////
214
+
215
+ Media_Block::Media_Block(ParserState pstate, List_Obj mqs, Block_Obj b)
216
+ : Has_Block(pstate, b), media_queries_(mqs)
217
+ { statement_type(MEDIA); }
218
+ Media_Block::Media_Block(const Media_Block* ptr)
219
+ : Has_Block(ptr), media_queries_(ptr->media_queries_)
220
+ { statement_type(MEDIA); }
221
+
222
+ bool Media_Block::is_invisible() const {
223
+ for (size_t i = 0, L = block()->length(); i < L; ++i) {
224
+ Statement_Obj stm = block()->at(i);
225
+ if (!stm->is_invisible()) return false;
226
+ }
227
+ return true;
228
+ }
229
+
230
+ bool Media_Block::bubbles()
231
+ {
232
+ return true;
233
+ }
234
+
235
+ /////////////////////////////////////////////////////////////////////////
236
+ /////////////////////////////////////////////////////////////////////////
237
+
238
+ Directive::Directive(ParserState pstate, std::string kwd, Selector_List_Obj sel, Block_Obj b, Expression_Obj val)
239
+ : Has_Block(pstate, b), keyword_(kwd), selector_(sel), value_(val) // set value manually if needed
240
+ { statement_type(DIRECTIVE); }
241
+ Directive::Directive(const Directive* ptr)
242
+ : Has_Block(ptr),
243
+ keyword_(ptr->keyword_),
244
+ selector_(ptr->selector_),
245
+ value_(ptr->value_) // set value manually if needed
246
+ { statement_type(DIRECTIVE); }
247
+
248
+ bool Directive::bubbles() { return is_keyframes() || is_media(); }
249
+
250
+ bool Directive::is_media() {
251
+ return keyword_.compare("@-webkit-media") == 0 ||
252
+ keyword_.compare("@-moz-media") == 0 ||
253
+ keyword_.compare("@-o-media") == 0 ||
254
+ keyword_.compare("@media") == 0;
255
+ }
256
+ bool Directive::is_keyframes() {
257
+ return keyword_.compare("@-webkit-keyframes") == 0 ||
258
+ keyword_.compare("@-moz-keyframes") == 0 ||
259
+ keyword_.compare("@-o-keyframes") == 0 ||
260
+ keyword_.compare("@keyframes") == 0;
261
+ }
262
+
263
+ /////////////////////////////////////////////////////////////////////////
264
+ /////////////////////////////////////////////////////////////////////////
265
+
266
+ Keyframe_Rule::Keyframe_Rule(ParserState pstate, Block_Obj b)
267
+ : Has_Block(pstate, b), name_()
268
+ { statement_type(KEYFRAMERULE); }
269
+ Keyframe_Rule::Keyframe_Rule(const Keyframe_Rule* ptr)
270
+ : Has_Block(ptr), name_(ptr->name_)
271
+ { statement_type(KEYFRAMERULE); }
272
+
273
+ /////////////////////////////////////////////////////////////////////////
274
+ /////////////////////////////////////////////////////////////////////////
275
+
276
+ Declaration::Declaration(ParserState pstate, String_Obj prop, Expression_Obj val, bool i, bool c, Block_Obj b)
277
+ : Has_Block(pstate, b), property_(prop), value_(val), is_important_(i), is_custom_property_(c), is_indented_(false)
278
+ { statement_type(DECLARATION); }
279
+ Declaration::Declaration(const Declaration* ptr)
280
+ : Has_Block(ptr),
281
+ property_(ptr->property_),
282
+ value_(ptr->value_),
283
+ is_important_(ptr->is_important_),
284
+ is_custom_property_(ptr->is_custom_property_),
285
+ is_indented_(ptr->is_indented_)
286
+ { statement_type(DECLARATION); }
287
+
288
+ bool Declaration::is_invisible() const
289
+ {
290
+ if (is_custom_property()) return false;
291
+ return !(value_ && !Cast<Null>(value_));
292
+ }
293
+
294
+ /////////////////////////////////////////////////////////////////////////
295
+ /////////////////////////////////////////////////////////////////////////
296
+
297
+ Assignment::Assignment(ParserState pstate, std::string var, Expression_Obj val, bool is_default, bool is_global)
298
+ : Statement(pstate), variable_(var), value_(val), is_default_(is_default), is_global_(is_global)
299
+ { statement_type(ASSIGNMENT); }
300
+ Assignment::Assignment(const Assignment* ptr)
301
+ : Statement(ptr),
302
+ variable_(ptr->variable_),
303
+ value_(ptr->value_),
304
+ is_default_(ptr->is_default_),
305
+ is_global_(ptr->is_global_)
306
+ { statement_type(ASSIGNMENT); }
307
+
308
+ /////////////////////////////////////////////////////////////////////////
309
+ /////////////////////////////////////////////////////////////////////////
310
+
311
+ Import::Import(ParserState pstate)
312
+ : Statement(pstate),
313
+ urls_(std::vector<Expression_Obj>()),
314
+ incs_(std::vector<Include>()),
315
+ import_queries_()
316
+ { statement_type(IMPORT); }
317
+ Import::Import(const Import* ptr)
318
+ : Statement(ptr),
319
+ urls_(ptr->urls_),
320
+ incs_(ptr->incs_),
321
+ import_queries_(ptr->import_queries_)
322
+ { statement_type(IMPORT); }
323
+
324
+ std::vector<Include>& Import::incs() { return incs_; }
325
+ std::vector<Expression_Obj>& Import::urls() { return urls_; }
326
+
327
+ /////////////////////////////////////////////////////////////////////////
328
+ /////////////////////////////////////////////////////////////////////////
329
+
330
+ Import_Stub::Import_Stub(ParserState pstate, Include res)
331
+ : Statement(pstate), resource_(res)
332
+ { statement_type(IMPORT_STUB); }
333
+ Import_Stub::Import_Stub(const Import_Stub* ptr)
334
+ : Statement(ptr), resource_(ptr->resource_)
335
+ { statement_type(IMPORT_STUB); }
336
+ Include Import_Stub::resource() { return resource_; };
337
+ std::string Import_Stub::imp_path() { return resource_.imp_path; };
338
+ std::string Import_Stub::abs_path() { return resource_.abs_path; };
339
+
340
+ /////////////////////////////////////////////////////////////////////////
341
+ /////////////////////////////////////////////////////////////////////////
342
+
343
+ Warning::Warning(ParserState pstate, Expression_Obj msg)
344
+ : Statement(pstate), message_(msg)
345
+ { statement_type(WARNING); }
346
+ Warning::Warning(const Warning* ptr)
347
+ : Statement(ptr), message_(ptr->message_)
348
+ { statement_type(WARNING); }
349
+
350
+ /////////////////////////////////////////////////////////////////////////
351
+ /////////////////////////////////////////////////////////////////////////
352
+
353
+ Error::Error(ParserState pstate, Expression_Obj msg)
354
+ : Statement(pstate), message_(msg)
355
+ { statement_type(ERROR); }
356
+ Error::Error(const Error* ptr)
357
+ : Statement(ptr), message_(ptr->message_)
358
+ { statement_type(ERROR); }
359
+
360
+ /////////////////////////////////////////////////////////////////////////
361
+ /////////////////////////////////////////////////////////////////////////
362
+
363
+ Debug::Debug(ParserState pstate, Expression_Obj val)
364
+ : Statement(pstate), value_(val)
365
+ { statement_type(DEBUGSTMT); }
366
+ Debug::Debug(const Debug* ptr)
367
+ : Statement(ptr), value_(ptr->value_)
368
+ { statement_type(DEBUGSTMT); }
369
+
370
+ /////////////////////////////////////////////////////////////////////////
371
+ /////////////////////////////////////////////////////////////////////////
372
+
373
+ Comment::Comment(ParserState pstate, String_Obj txt, bool is_important)
374
+ : Statement(pstate), text_(txt), is_important_(is_important)
375
+ { statement_type(COMMENT); }
376
+ Comment::Comment(const Comment* ptr)
377
+ : Statement(ptr),
378
+ text_(ptr->text_),
379
+ is_important_(ptr->is_important_)
380
+ { statement_type(COMMENT); }
381
+
382
+ bool Comment::is_invisible() const
383
+ {
384
+ return false;
385
+ }
386
+
387
+ /////////////////////////////////////////////////////////////////////////
388
+ /////////////////////////////////////////////////////////////////////////
389
+
390
+ If::If(ParserState pstate, Expression_Obj pred, Block_Obj con, Block_Obj alt)
391
+ : Has_Block(pstate, con), predicate_(pred), alternative_(alt)
392
+ { statement_type(IF); }
393
+ If::If(const If* ptr)
394
+ : Has_Block(ptr),
395
+ predicate_(ptr->predicate_),
396
+ alternative_(ptr->alternative_)
397
+ { statement_type(IF); }
398
+
399
+ bool If::has_content()
400
+ {
401
+ return Has_Block::has_content() || (alternative_ && alternative_->has_content());
402
+ }
403
+
404
+ /////////////////////////////////////////////////////////////////////////
405
+ /////////////////////////////////////////////////////////////////////////
406
+
407
+ For::For(ParserState pstate,
408
+ std::string var, Expression_Obj lo, Expression_Obj hi, Block_Obj b, bool inc)
409
+ : Has_Block(pstate, b),
410
+ variable_(var), lower_bound_(lo), upper_bound_(hi), is_inclusive_(inc)
411
+ { statement_type(FOR); }
412
+ For::For(const For* ptr)
413
+ : Has_Block(ptr),
414
+ variable_(ptr->variable_),
415
+ lower_bound_(ptr->lower_bound_),
416
+ upper_bound_(ptr->upper_bound_),
417
+ is_inclusive_(ptr->is_inclusive_)
418
+ { statement_type(FOR); }
419
+
420
+ /////////////////////////////////////////////////////////////////////////
421
+ /////////////////////////////////////////////////////////////////////////
422
+
423
+ Each::Each(ParserState pstate, std::vector<std::string> vars, Expression_Obj lst, Block_Obj b)
424
+ : Has_Block(pstate, b), variables_(vars), list_(lst)
425
+ { statement_type(EACH); }
426
+ Each::Each(const Each* ptr)
427
+ : Has_Block(ptr), variables_(ptr->variables_), list_(ptr->list_)
428
+ { statement_type(EACH); }
429
+
430
+ /////////////////////////////////////////////////////////////////////////
431
+ /////////////////////////////////////////////////////////////////////////
432
+
433
+ While::While(ParserState pstate, Expression_Obj pred, Block_Obj b)
434
+ : Has_Block(pstate, b), predicate_(pred)
435
+ { statement_type(WHILE); }
436
+ While::While(const While* ptr)
437
+ : Has_Block(ptr), predicate_(ptr->predicate_)
438
+ { statement_type(WHILE); }
439
+
440
+ /////////////////////////////////////////////////////////////////////////
441
+ /////////////////////////////////////////////////////////////////////////
442
+
443
+ Return::Return(ParserState pstate, Expression_Obj val)
444
+ : Statement(pstate), value_(val)
445
+ { statement_type(RETURN); }
446
+ Return::Return(const Return* ptr)
447
+ : Statement(ptr), value_(ptr->value_)
448
+ { statement_type(RETURN); }
449
+
450
+ /////////////////////////////////////////////////////////////////////////
451
+ /////////////////////////////////////////////////////////////////////////
452
+
453
+ Extension::Extension(ParserState pstate, Selector_List_Obj s)
454
+ : Statement(pstate), selector_(s)
455
+ { statement_type(EXTEND); }
456
+ Extension::Extension(const Extension* ptr)
457
+ : Statement(ptr), selector_(ptr->selector_)
458
+ { statement_type(EXTEND); }
459
+
460
+ /////////////////////////////////////////////////////////////////////////
461
+ /////////////////////////////////////////////////////////////////////////
462
+
463
+ Definition::Definition(const Definition* ptr)
464
+ : Has_Block(ptr),
465
+ name_(ptr->name_),
466
+ parameters_(ptr->parameters_),
467
+ environment_(ptr->environment_),
468
+ type_(ptr->type_),
469
+ native_function_(ptr->native_function_),
470
+ c_function_(ptr->c_function_),
471
+ cookie_(ptr->cookie_),
472
+ is_overload_stub_(ptr->is_overload_stub_),
473
+ signature_(ptr->signature_)
474
+ { }
475
+
476
+ Definition::Definition(ParserState pstate,
477
+ std::string n,
478
+ Parameters_Obj params,
479
+ Block_Obj b,
480
+ Type t)
481
+ : Has_Block(pstate, b),
482
+ name_(n),
483
+ parameters_(params),
484
+ environment_(0),
485
+ type_(t),
486
+ native_function_(0),
487
+ c_function_(0),
488
+ cookie_(0),
489
+ is_overload_stub_(false),
490
+ signature_(0)
491
+ { }
492
+
493
+ Definition::Definition(ParserState pstate,
494
+ Signature sig,
495
+ std::string n,
496
+ Parameters_Obj params,
497
+ Native_Function func_ptr,
498
+ bool overload_stub)
499
+ : Has_Block(pstate, {}),
500
+ name_(n),
501
+ parameters_(params),
502
+ environment_(0),
503
+ type_(FUNCTION),
504
+ native_function_(func_ptr),
505
+ c_function_(0),
506
+ cookie_(0),
507
+ is_overload_stub_(overload_stub),
508
+ signature_(sig)
509
+ { }
510
+
511
+ Definition::Definition(ParserState pstate,
512
+ Signature sig,
513
+ std::string n,
514
+ Parameters_Obj params,
515
+ Sass_Function_Entry c_func)
516
+ : Has_Block(pstate, {}),
517
+ name_(n),
518
+ parameters_(params),
519
+ environment_(0),
520
+ type_(FUNCTION),
521
+ native_function_(0),
522
+ c_function_(c_func),
523
+ cookie_(sass_function_get_cookie(c_func)),
524
+ is_overload_stub_(false),
525
+ signature_(sig)
526
+ { }
527
+
528
+ /////////////////////////////////////////////////////////////////////////
529
+ /////////////////////////////////////////////////////////////////////////
530
+
531
+ Mixin_Call::Mixin_Call(ParserState pstate, std::string n, Arguments_Obj args, Parameters_Obj b_params, Block_Obj b)
532
+ : Has_Block(pstate, b), name_(n), arguments_(args), block_parameters_(b_params)
533
+ { }
534
+ Mixin_Call::Mixin_Call(const Mixin_Call* ptr)
535
+ : Has_Block(ptr),
536
+ name_(ptr->name_),
537
+ arguments_(ptr->arguments_),
538
+ block_parameters_(ptr->block_parameters_)
539
+ { }
540
+
541
+ /////////////////////////////////////////////////////////////////////////
542
+ /////////////////////////////////////////////////////////////////////////
543
+
544
+ Content::Content(ParserState pstate, Arguments_Obj args)
545
+ : Statement(pstate),
546
+ arguments_(args)
547
+ { statement_type(CONTENT); }
548
+ Content::Content(const Content* ptr)
549
+ : Statement(ptr),
550
+ arguments_(ptr->arguments_)
551
+ { statement_type(CONTENT); }
552
+
553
+ /////////////////////////////////////////////////////////////////////////
554
+ /////////////////////////////////////////////////////////////////////////
555
+
556
+ Expression::Expression(ParserState pstate, bool d, bool e, bool i, Type ct)
557
+ : AST_Node(pstate),
558
+ is_delayed_(d),
559
+ is_expanded_(e),
560
+ is_interpolant_(i),
561
+ concrete_type_(ct)
562
+ { }
563
+
564
+ Expression::Expression(const Expression* ptr)
565
+ : AST_Node(ptr),
566
+ is_delayed_(ptr->is_delayed_),
567
+ is_expanded_(ptr->is_expanded_),
568
+ is_interpolant_(ptr->is_interpolant_),
569
+ concrete_type_(ptr->concrete_type_)
570
+ { }
571
+
572
+ /////////////////////////////////////////////////////////////////////////
573
+ /////////////////////////////////////////////////////////////////////////
574
+
575
+ Unary_Expression::Unary_Expression(ParserState pstate, Type t, Expression_Obj o)
576
+ : Expression(pstate), optype_(t), operand_(o), hash_(0)
577
+ { }
578
+ Unary_Expression::Unary_Expression(const Unary_Expression* ptr)
579
+ : Expression(ptr),
580
+ optype_(ptr->optype_),
581
+ operand_(ptr->operand_),
582
+ hash_(ptr->hash_)
583
+ { }
584
+ const std::string Unary_Expression::type_name() {
585
+ switch (optype_) {
586
+ case PLUS: return "plus";
587
+ case MINUS: return "minus";
588
+ case SLASH: return "slash";
589
+ case NOT: return "not";
590
+ default: return "invalid";
591
+ }
592
+ }
593
+ bool Unary_Expression::operator==(const Expression& rhs) const
594
+ {
595
+ try
596
+ {
597
+ const Unary_Expression* m = Cast<Unary_Expression>(&rhs);
598
+ if (m == 0) return false;
599
+ return type() == m->type() &&
600
+ *operand() == *m->operand();
601
+ }
602
+ catch (std::bad_cast&)
603
+ {
604
+ return false;
605
+ }
606
+ catch (...) { throw; }
607
+ }
608
+ size_t Unary_Expression::hash() const
609
+ {
610
+ if (hash_ == 0) {
611
+ hash_ = std::hash<size_t>()(optype_);
612
+ hash_combine(hash_, operand()->hash());
613
+ };
614
+ return hash_;
615
+ }
616
+
617
+ /////////////////////////////////////////////////////////////////////////
618
+ /////////////////////////////////////////////////////////////////////////
619
+
620
+ Argument::Argument(ParserState pstate, Expression_Obj val, std::string n, bool rest, bool keyword)
621
+ : Expression(pstate), value_(val), name_(n), is_rest_argument_(rest), is_keyword_argument_(keyword), hash_(0)
622
+ {
623
+ if (!name_.empty() && is_rest_argument_) {
624
+ coreError("variable-length argument may not be passed by name", pstate_);
625
+ }
626
+ }
627
+ Argument::Argument(const Argument* ptr)
628
+ : Expression(ptr),
629
+ value_(ptr->value_),
630
+ name_(ptr->name_),
631
+ is_rest_argument_(ptr->is_rest_argument_),
632
+ is_keyword_argument_(ptr->is_keyword_argument_),
633
+ hash_(ptr->hash_)
634
+ {
635
+ if (!name_.empty() && is_rest_argument_) {
636
+ coreError("variable-length argument may not be passed by name", pstate_);
637
+ }
638
+ }
639
+
640
+ void Argument::set_delayed(bool delayed)
641
+ {
642
+ if (value_) value_->set_delayed(delayed);
643
+ is_delayed(delayed);
644
+ }
645
+
646
+ bool Argument::operator==(const Expression& rhs) const
647
+ {
648
+ try
649
+ {
650
+ const Argument* m = Cast<Argument>(&rhs);
651
+ if (!(m && name() == m->name())) return false;
652
+ return *value() == *m->value();
653
+ }
654
+ catch (std::bad_cast&)
655
+ {
656
+ return false;
657
+ }
658
+ catch (...) { throw; }
659
+ }
660
+
661
+ size_t Argument::hash() const
662
+ {
663
+ if (hash_ == 0) {
664
+ hash_ = std::hash<std::string>()(name());
665
+ hash_combine(hash_, value()->hash());
666
+ }
667
+ return hash_;
668
+ }
669
+
670
+ /////////////////////////////////////////////////////////////////////////
671
+ /////////////////////////////////////////////////////////////////////////
672
+
673
+ Arguments::Arguments(ParserState pstate)
674
+ : Expression(pstate),
675
+ Vectorized<Argument_Obj>(),
676
+ has_named_arguments_(false),
677
+ has_rest_argument_(false),
678
+ has_keyword_argument_(false)
679
+ { }
680
+ Arguments::Arguments(const Arguments* ptr)
681
+ : Expression(ptr),
682
+ Vectorized<Argument_Obj>(*ptr),
683
+ has_named_arguments_(ptr->has_named_arguments_),
684
+ has_rest_argument_(ptr->has_rest_argument_),
685
+ has_keyword_argument_(ptr->has_keyword_argument_)
686
+ { }
687
+
688
+ void Arguments::set_delayed(bool delayed)
689
+ {
690
+ for (Argument_Obj arg : elements()) {
691
+ if (arg) arg->set_delayed(delayed);
692
+ }
693
+ is_delayed(delayed);
694
+ }
695
+
696
+ Argument_Obj Arguments::get_rest_argument()
697
+ {
698
+ if (this->has_rest_argument()) {
699
+ for (Argument_Obj arg : this->elements()) {
700
+ if (arg->is_rest_argument()) {
701
+ return arg;
702
+ }
703
+ }
704
+ }
705
+ return {};
706
+ }
707
+
708
+ Argument_Obj Arguments::get_keyword_argument()
709
+ {
710
+ if (this->has_keyword_argument()) {
711
+ for (Argument_Obj arg : this->elements()) {
712
+ if (arg->is_keyword_argument()) {
713
+ return arg;
714
+ }
715
+ }
716
+ }
717
+ return {};
718
+ }
719
+
720
+ void Arguments::adjust_after_pushing(Argument_Obj a)
721
+ {
722
+ if (!a->name().empty()) {
723
+ if (has_keyword_argument()) {
724
+ coreError("named arguments must precede variable-length argument", a->pstate());
725
+ }
726
+ has_named_arguments(true);
727
+ }
728
+ else if (a->is_rest_argument()) {
729
+ if (has_rest_argument()) {
730
+ coreError("functions and mixins may only be called with one variable-length argument", a->pstate());
731
+ }
732
+ if (has_keyword_argument_) {
733
+ coreError("only keyword arguments may follow variable arguments", a->pstate());
734
+ }
735
+ has_rest_argument(true);
736
+ }
737
+ else if (a->is_keyword_argument()) {
738
+ if (has_keyword_argument()) {
739
+ coreError("functions and mixins may only be called with one keyword argument", a->pstate());
740
+ }
741
+ has_keyword_argument(true);
742
+ }
743
+ else {
744
+ if (has_rest_argument()) {
745
+ coreError("ordinal arguments must precede variable-length arguments", a->pstate());
746
+ }
747
+ if (has_named_arguments()) {
748
+ coreError("ordinal arguments must precede named arguments", a->pstate());
749
+ }
750
+ }
751
+ }
752
+
753
+ /////////////////////////////////////////////////////////////////////////
754
+ /////////////////////////////////////////////////////////////////////////
755
+
756
+ Media_Query::Media_Query(ParserState pstate, String_Obj t, size_t s, bool n, bool r)
757
+ : Expression(pstate), Vectorized<Media_Query_Expression_Obj>(s),
758
+ media_type_(t), is_negated_(n), is_restricted_(r)
759
+ { }
760
+ Media_Query::Media_Query(const Media_Query* ptr)
761
+ : Expression(ptr),
762
+ Vectorized<Media_Query_Expression_Obj>(*ptr),
763
+ media_type_(ptr->media_type_),
764
+ is_negated_(ptr->is_negated_),
765
+ is_restricted_(ptr->is_restricted_)
766
+ { }
767
+
768
+ /////////////////////////////////////////////////////////////////////////
769
+ /////////////////////////////////////////////////////////////////////////
770
+
771
+ Media_Query_Expression::Media_Query_Expression(ParserState pstate,
772
+ Expression_Obj f, Expression_Obj v, bool i)
773
+ : Expression(pstate), feature_(f), value_(v), is_interpolated_(i)
774
+ { }
775
+ Media_Query_Expression::Media_Query_Expression(const Media_Query_Expression* ptr)
776
+ : Expression(ptr),
777
+ feature_(ptr->feature_),
778
+ value_(ptr->value_),
779
+ is_interpolated_(ptr->is_interpolated_)
780
+ { }
781
+
782
+ /////////////////////////////////////////////////////////////////////////
783
+ /////////////////////////////////////////////////////////////////////////
784
+
785
+ At_Root_Query::At_Root_Query(ParserState pstate, Expression_Obj f, Expression_Obj v, bool i)
786
+ : Expression(pstate), feature_(f), value_(v)
787
+ { }
788
+ At_Root_Query::At_Root_Query(const At_Root_Query* ptr)
789
+ : Expression(ptr),
790
+ feature_(ptr->feature_),
791
+ value_(ptr->value_)
792
+ { }
793
+
794
+ bool At_Root_Query::exclude(std::string str)
795
+ {
796
+ bool with = feature() && unquote(feature()->to_string()).compare("with") == 0;
797
+ List* l = static_cast<List*>(value().ptr());
798
+ std::string v;
799
+
800
+ if (with)
801
+ {
802
+ if (!l || l->length() == 0) return str.compare("rule") != 0;
803
+ for (size_t i = 0, L = l->length(); i < L; ++i)
804
+ {
805
+ v = unquote((*l)[i]->to_string());
806
+ if (v.compare("all") == 0 || v == str) return false;
807
+ }
808
+ return true;
809
+ }
810
+ else
811
+ {
812
+ if (!l || !l->length()) return str.compare("rule") == 0;
813
+ for (size_t i = 0, L = l->length(); i < L; ++i)
814
+ {
815
+ v = unquote((*l)[i]->to_string());
816
+ if (v.compare("all") == 0 || v == str) return true;
817
+ }
818
+ return false;
819
+ }
820
+ }
821
+
822
+ /////////////////////////////////////////////////////////////////////////
823
+ /////////////////////////////////////////////////////////////////////////
824
+
825
+ At_Root_Block::At_Root_Block(ParserState pstate, Block_Obj b, At_Root_Query_Obj e)
826
+ : Has_Block(pstate, b), expression_(e)
827
+ { statement_type(ATROOT); }
828
+ At_Root_Block::At_Root_Block(const At_Root_Block* ptr)
829
+ : Has_Block(ptr), expression_(ptr->expression_)
830
+ { statement_type(ATROOT); }
831
+
832
+ bool At_Root_Block::bubbles() {
833
+ return true;
834
+ }
835
+
836
+ bool At_Root_Block::exclude_node(Statement_Obj s) {
837
+ if (expression() == nullptr)
838
+ {
839
+ return s->statement_type() == Statement::RULESET;
840
+ }
841
+
842
+ if (s->statement_type() == Statement::DIRECTIVE)
843
+ {
844
+ if (Directive_Obj dir = Cast<Directive>(s))
845
+ {
846
+ std::string keyword(dir->keyword());
847
+ if (keyword.length() > 0) keyword.erase(0, 1);
848
+ return expression()->exclude(keyword);
849
+ }
850
+ }
851
+ if (s->statement_type() == Statement::MEDIA)
852
+ {
853
+ return expression()->exclude("media");
854
+ }
855
+ if (s->statement_type() == Statement::RULESET)
856
+ {
857
+ return expression()->exclude("rule");
858
+ }
859
+ if (s->statement_type() == Statement::SUPPORTS)
860
+ {
861
+ return expression()->exclude("supports");
862
+ }
863
+ if (Directive_Obj dir = Cast<Directive>(s))
864
+ {
865
+ if (dir->is_keyframes()) return expression()->exclude("keyframes");
866
+ }
867
+ return false;
868
+ }
869
+
870
+ /////////////////////////////////////////////////////////////////////////
871
+ /////////////////////////////////////////////////////////////////////////
872
+
873
+ Parameter::Parameter(ParserState pstate, std::string n, Expression_Obj def, bool rest)
874
+ : AST_Node(pstate), name_(n), default_value_(def), is_rest_parameter_(rest)
875
+ { }
876
+ Parameter::Parameter(const Parameter* ptr)
877
+ : AST_Node(ptr),
878
+ name_(ptr->name_),
879
+ default_value_(ptr->default_value_),
880
+ is_rest_parameter_(ptr->is_rest_parameter_)
881
+ { }
882
+
883
+ /////////////////////////////////////////////////////////////////////////
884
+ /////////////////////////////////////////////////////////////////////////
885
+
886
+ Parameters::Parameters(ParserState pstate)
887
+ : AST_Node(pstate),
888
+ Vectorized<Parameter_Obj>(),
889
+ has_optional_parameters_(false),
890
+ has_rest_parameter_(false)
891
+ { }
892
+ Parameters::Parameters(const Parameters* ptr)
893
+ : AST_Node(ptr),
894
+ Vectorized<Parameter_Obj>(*ptr),
895
+ has_optional_parameters_(ptr->has_optional_parameters_),
896
+ has_rest_parameter_(ptr->has_rest_parameter_)
897
+ { }
898
+
899
+ void Parameters::adjust_after_pushing(Parameter_Obj p)
900
+ {
901
+ if (p->default_value()) {
902
+ if (has_rest_parameter()) {
903
+ coreError("optional parameters may not be combined with variable-length parameters", p->pstate());
904
+ }
905
+ has_optional_parameters(true);
906
+ }
907
+ else if (p->is_rest_parameter()) {
908
+ if (has_rest_parameter()) {
909
+ coreError("functions and mixins cannot have more than one variable-length parameter", p->pstate());
910
+ }
911
+ has_rest_parameter(true);
912
+ }
913
+ else {
914
+ if (has_rest_parameter()) {
915
+ coreError("required parameters must precede variable-length parameters", p->pstate());
916
+ }
917
+ if (has_optional_parameters()) {
918
+ coreError("required parameters must precede optional parameters", p->pstate());
919
+ }
920
+ }
921
+ }
922
+
923
+ /////////////////////////////////////////////////////////////////////////
924
+ /////////////////////////////////////////////////////////////////////////
925
+
926
+ IMPLEMENT_AST_OPERATORS(Ruleset);
927
+ IMPLEMENT_AST_OPERATORS(Media_Block);
928
+ IMPLEMENT_AST_OPERATORS(Import);
929
+ IMPLEMENT_AST_OPERATORS(Import_Stub);
930
+ IMPLEMENT_AST_OPERATORS(Directive);
931
+ IMPLEMENT_AST_OPERATORS(At_Root_Block);
932
+ IMPLEMENT_AST_OPERATORS(While);
933
+ IMPLEMENT_AST_OPERATORS(Each);
934
+ IMPLEMENT_AST_OPERATORS(For);
935
+ IMPLEMENT_AST_OPERATORS(If);
936
+ IMPLEMENT_AST_OPERATORS(Mixin_Call);
937
+ IMPLEMENT_AST_OPERATORS(Extension);
938
+ IMPLEMENT_AST_OPERATORS(Media_Query);
939
+ IMPLEMENT_AST_OPERATORS(Media_Query_Expression);
940
+ IMPLEMENT_AST_OPERATORS(Debug);
941
+ IMPLEMENT_AST_OPERATORS(Error);
942
+ IMPLEMENT_AST_OPERATORS(Warning);
943
+ IMPLEMENT_AST_OPERATORS(Assignment);
944
+ IMPLEMENT_AST_OPERATORS(Return);
945
+ IMPLEMENT_AST_OPERATORS(At_Root_Query);
946
+ IMPLEMENT_AST_OPERATORS(Comment);
947
+ IMPLEMENT_AST_OPERATORS(Parameters);
948
+ IMPLEMENT_AST_OPERATORS(Parameter);
949
+ IMPLEMENT_AST_OPERATORS(Arguments);
950
+ IMPLEMENT_AST_OPERATORS(Argument);
951
+ IMPLEMENT_AST_OPERATORS(Unary_Expression);
952
+ IMPLEMENT_AST_OPERATORS(Block);
953
+ IMPLEMENT_AST_OPERATORS(Content);
954
+ IMPLEMENT_AST_OPERATORS(Trace);
955
+ IMPLEMENT_AST_OPERATORS(Keyframe_Rule);
956
+ IMPLEMENT_AST_OPERATORS(Bubble);
957
+ IMPLEMENT_AST_OPERATORS(Definition);
958
+ IMPLEMENT_AST_OPERATORS(Declaration);
959
+
960
+ /////////////////////////////////////////////////////////////////////////
961
+ /////////////////////////////////////////////////////////////////////////
962
+
963
+ }