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,2470 @@
1
+ class Parser::Ruby27
2
+
3
+ token kCLASS kMODULE kDEF kUNDEF kBEGIN kRESCUE kENSURE kEND kIF kUNLESS
4
+ kTHEN kELSIF kELSE kCASE kWHEN kWHILE kUNTIL kFOR kBREAK kNEXT
5
+ kREDO kRETRY kIN kDO kDO_COND kDO_BLOCK kDO_LAMBDA kRETURN kYIELD kSUPER
6
+ kSELF kNIL kTRUE kFALSE kAND kOR kNOT kIF_MOD kUNLESS_MOD kWHILE_MOD
7
+ kUNTIL_MOD kRESCUE_MOD kALIAS kDEFINED klBEGIN klEND k__LINE__
8
+ k__FILE__ k__ENCODING__ tIDENTIFIER tFID tGVAR tIVAR tCONSTANT
9
+ tLABEL tCVAR tNTH_REF tBACK_REF tSTRING_CONTENT tINTEGER tFLOAT
10
+ tUPLUS tUMINUS tUNARY_NUM tPOW tCMP tEQ tEQQ tNEQ
11
+ tGEQ tLEQ tANDOP tOROP tMATCH tNMATCH tDOT tDOT2 tDOT3 tAREF
12
+ tASET tLSHFT tRSHFT tCOLON2 tCOLON3 tOP_ASGN tASSOC tLPAREN
13
+ tLPAREN2 tRPAREN tLPAREN_ARG tLBRACK tLBRACK2 tRBRACK tLBRACE
14
+ tLBRACE_ARG tSTAR tSTAR2 tAMPER tAMPER2 tTILDE tPERCENT tDIVIDE
15
+ tDSTAR tPLUS tMINUS tLT tGT tPIPE tBANG tCARET tLCURLY tRCURLY
16
+ tBACK_REF2 tSYMBEG tSTRING_BEG tXSTRING_BEG tREGEXP_BEG tREGEXP_OPT
17
+ tWORDS_BEG tQWORDS_BEG tSYMBOLS_BEG tQSYMBOLS_BEG tSTRING_DBEG
18
+ tSTRING_DVAR tSTRING_END tSTRING_DEND tSTRING tSYMBOL
19
+ tNL tEH tCOLON tCOMMA tSPACE tSEMI tLAMBDA tLAMBEG tCHARACTER
20
+ tRATIONAL tIMAGINARY tLABEL_END tANDDOT tMETHREF tBDOT2 tBDOT3 tNUMPARAM
21
+
22
+ prechigh
23
+ right tBANG tTILDE tUPLUS
24
+ right tPOW
25
+ right tUNARY_NUM tUMINUS
26
+ left tSTAR2 tDIVIDE tPERCENT
27
+ left tPLUS tMINUS
28
+ left tLSHFT tRSHFT
29
+ left tAMPER2
30
+ left tPIPE tCARET
31
+ left tGT tGEQ tLT tLEQ
32
+ nonassoc tCMP tEQ tEQQ tNEQ tMATCH tNMATCH
33
+ left tANDOP
34
+ left tOROP
35
+ nonassoc tDOT2 tDOT3 tBDOT2 tBDOT3
36
+ right tEH tCOLON
37
+ left kRESCUE_MOD
38
+ right tEQL tOP_ASGN
39
+ nonassoc kDEFINED
40
+ right kNOT
41
+ left kOR kAND
42
+ nonassoc kIF_MOD kUNLESS_MOD kWHILE_MOD kUNTIL_MOD
43
+ nonassoc tLBRACE_ARG
44
+ nonassoc tLOWEST
45
+ preclow
46
+
47
+ rule
48
+
49
+ program: top_compstmt
50
+
51
+ top_compstmt: top_stmts opt_terms
52
+ {
53
+ result = @builder.compstmt(val[0])
54
+ }
55
+
56
+ top_stmts: # nothing
57
+ {
58
+ result = []
59
+ }
60
+ | top_stmt
61
+ {
62
+ result = [ val[0] ]
63
+ }
64
+ | top_stmts terms top_stmt
65
+ {
66
+ result = val[0] << val[2]
67
+ }
68
+ | error top_stmt
69
+ {
70
+ result = [ val[1] ]
71
+ }
72
+
73
+ top_stmt: stmt
74
+ | klBEGIN begin_block
75
+ {
76
+ result = @builder.preexe(val[0], *val[1])
77
+ }
78
+
79
+ begin_block: tLCURLY top_compstmt tRCURLY
80
+ {
81
+ result = val
82
+ }
83
+
84
+ bodystmt: compstmt opt_rescue opt_else opt_ensure
85
+ {
86
+ rescue_bodies = val[1]
87
+ else_t, else_ = val[2]
88
+ ensure_t, ensure_ = val[3]
89
+
90
+ if rescue_bodies.empty? && !else_.nil?
91
+ diagnostic :error, :useless_else, nil, else_t
92
+ end
93
+
94
+ result = @builder.begin_body(val[0],
95
+ rescue_bodies,
96
+ else_t, else_,
97
+ ensure_t, ensure_)
98
+ }
99
+
100
+ compstmt: stmts opt_terms
101
+ {
102
+ result = @builder.compstmt(val[0])
103
+ }
104
+
105
+ stmts: # nothing
106
+ {
107
+ result = []
108
+ }
109
+ | stmt_or_begin
110
+ {
111
+ result = [ val[0] ]
112
+ }
113
+ | stmts terms stmt_or_begin
114
+ {
115
+ result = val[0] << val[2]
116
+ }
117
+ | error stmt
118
+ {
119
+ result = [ val[1] ]
120
+ }
121
+
122
+ stmt_or_begin: stmt
123
+ | klBEGIN begin_block
124
+ {
125
+ diagnostic :error, :begin_in_method, nil, val[0]
126
+ }
127
+
128
+ stmt: kALIAS fitem
129
+ {
130
+ @lexer.state = :expr_fname
131
+ }
132
+ fitem
133
+ {
134
+ result = @builder.alias(val[0], val[1], val[3])
135
+ }
136
+ | kALIAS tGVAR tGVAR
137
+ {
138
+ result = @builder.alias(val[0],
139
+ @builder.gvar(val[1]),
140
+ @builder.gvar(val[2]))
141
+ }
142
+ | kALIAS tGVAR tBACK_REF
143
+ {
144
+ result = @builder.alias(val[0],
145
+ @builder.gvar(val[1]),
146
+ @builder.back_ref(val[2]))
147
+ }
148
+ | kALIAS tGVAR tNTH_REF
149
+ {
150
+ diagnostic :error, :nth_ref_alias, nil, val[2]
151
+ }
152
+ | kUNDEF undef_list
153
+ {
154
+ result = @builder.undef_method(val[0], val[1])
155
+ }
156
+ | stmt kIF_MOD expr_value
157
+ {
158
+ result = @builder.condition_mod(val[0], nil,
159
+ val[1], val[2])
160
+ }
161
+ | stmt kUNLESS_MOD expr_value
162
+ {
163
+ result = @builder.condition_mod(nil, val[0],
164
+ val[1], val[2])
165
+ }
166
+ | stmt kWHILE_MOD expr_value
167
+ {
168
+ result = @builder.loop_mod(:while, val[0], val[1], val[2])
169
+ }
170
+ | stmt kUNTIL_MOD expr_value
171
+ {
172
+ result = @builder.loop_mod(:until, val[0], val[1], val[2])
173
+ }
174
+ | stmt kRESCUE_MOD stmt
175
+ {
176
+ rescue_body = @builder.rescue_body(val[1],
177
+ nil, nil, nil,
178
+ nil, val[2])
179
+
180
+ result = @builder.begin_body(val[0], [ rescue_body ])
181
+ }
182
+ | klEND tLCURLY compstmt tRCURLY
183
+ {
184
+ result = @builder.postexe(val[0], val[1], val[2], val[3])
185
+ }
186
+ | command_asgn
187
+ | mlhs tEQL command_call
188
+ {
189
+ result = @builder.multi_assign(val[0], val[1], val[2])
190
+ }
191
+ | lhs tEQL mrhs
192
+ {
193
+ result = @builder.assign(val[0], val[1],
194
+ @builder.array(nil, val[2], nil))
195
+ }
196
+ | mlhs tEQL mrhs_arg kRESCUE_MOD stmt
197
+ {
198
+ rescue_body = @builder.rescue_body(val[3],
199
+ nil, nil, nil,
200
+ nil, val[4])
201
+ begin_body = @builder.begin_body(val[2], [ rescue_body ])
202
+
203
+ result = @builder.multi_assign(val[0], val[1], begin_body)
204
+ }
205
+ | mlhs tEQL mrhs_arg
206
+ {
207
+ result = @builder.multi_assign(val[0], val[1], val[2])
208
+ }
209
+ | expr
210
+
211
+ command_asgn: lhs tEQL command_rhs
212
+ {
213
+ result = @builder.assign(val[0], val[1], val[2])
214
+ }
215
+ | var_lhs tOP_ASGN command_rhs
216
+ {
217
+ result = @builder.op_assign(val[0], val[1], val[2])
218
+ }
219
+ | primary_value tLBRACK2 opt_call_args rbracket tOP_ASGN command_rhs
220
+ {
221
+ result = @builder.op_assign(
222
+ @builder.index(
223
+ val[0], val[1], val[2], val[3]),
224
+ val[4], val[5])
225
+ }
226
+ | primary_value call_op tIDENTIFIER tOP_ASGN command_rhs
227
+ {
228
+ result = @builder.op_assign(
229
+ @builder.call_method(
230
+ val[0], val[1], val[2]),
231
+ val[3], val[4])
232
+ }
233
+ | primary_value call_op tCONSTANT tOP_ASGN command_rhs
234
+ {
235
+ result = @builder.op_assign(
236
+ @builder.call_method(
237
+ val[0], val[1], val[2]),
238
+ val[3], val[4])
239
+ }
240
+ | primary_value tCOLON2 tCONSTANT tOP_ASGN command_rhs
241
+ {
242
+ const = @builder.const_op_assignable(
243
+ @builder.const_fetch(val[0], val[1], val[2]))
244
+ result = @builder.op_assign(const, val[3], val[4])
245
+ }
246
+ | primary_value tCOLON2 tIDENTIFIER tOP_ASGN command_rhs
247
+ {
248
+ result = @builder.op_assign(
249
+ @builder.call_method(
250
+ val[0], val[1], val[2]),
251
+ val[3], val[4])
252
+ }
253
+ | backref tOP_ASGN command_rhs
254
+ {
255
+ @builder.op_assign(val[0], val[1], val[2])
256
+ }
257
+
258
+ command_rhs: command_call =tOP_ASGN
259
+ | command_call kRESCUE_MOD stmt
260
+ {
261
+ rescue_body = @builder.rescue_body(val[1],
262
+ nil, nil, nil,
263
+ nil, val[2])
264
+
265
+ result = @builder.begin_body(val[0], [ rescue_body ])
266
+ }
267
+ | command_asgn
268
+
269
+ expr: command_call
270
+ | expr kAND expr
271
+ {
272
+ result = @builder.logical_op(:and, val[0], val[1], val[2])
273
+ }
274
+ | expr kOR expr
275
+ {
276
+ result = @builder.logical_op(:or, val[0], val[1], val[2])
277
+ }
278
+ | kNOT opt_nl expr
279
+ {
280
+ result = @builder.not_op(val[0], nil, val[2], nil)
281
+ }
282
+ | tBANG command_call
283
+ {
284
+ result = @builder.not_op(val[0], nil, val[1], nil)
285
+ }
286
+ | arg
287
+
288
+ expr_value: expr
289
+
290
+ expr_value_do: {
291
+ @lexer.cond.push(true)
292
+ }
293
+ expr_value do
294
+ {
295
+ @lexer.cond.pop
296
+ result = [ val[1], val[2] ]
297
+ }
298
+
299
+ command_call: command
300
+ | block_command
301
+
302
+ block_command: block_call
303
+ | block_call dot_or_colon operation2 command_args
304
+ {
305
+ result = @builder.call_method(val[0], val[1], val[2],
306
+ nil, val[3], nil)
307
+ }
308
+
309
+ cmd_brace_block: tLBRACE_ARG
310
+ {
311
+ @context.push(:block)
312
+ }
313
+ brace_body tRCURLY
314
+ {
315
+ result = [ val[0], *val[2], val[3] ]
316
+ @context.pop
317
+ }
318
+
319
+ fcall: operation
320
+
321
+ command: fcall command_args =tLOWEST
322
+ {
323
+ result = @builder.call_method(nil, nil, val[0],
324
+ nil, val[1], nil)
325
+ }
326
+ | fcall command_args cmd_brace_block
327
+ {
328
+ method_call = @builder.call_method(nil, nil, val[0],
329
+ nil, val[1], nil)
330
+
331
+ begin_t, args, body, end_t = val[2]
332
+ result = @builder.block(method_call,
333
+ begin_t, args, body, end_t)
334
+ }
335
+ | primary_value call_op operation2 command_args =tLOWEST
336
+ {
337
+ result = @builder.call_method(val[0], val[1], val[2],
338
+ nil, val[3], nil)
339
+ }
340
+ | primary_value call_op operation2 command_args cmd_brace_block
341
+ {
342
+ method_call = @builder.call_method(val[0], val[1], val[2],
343
+ nil, val[3], nil)
344
+
345
+ begin_t, args, body, end_t = val[4]
346
+ result = @builder.block(method_call,
347
+ begin_t, args, body, end_t)
348
+ }
349
+ | primary_value tCOLON2 operation2 command_args =tLOWEST
350
+ {
351
+ result = @builder.call_method(val[0], val[1], val[2],
352
+ nil, val[3], nil)
353
+ }
354
+ | primary_value tCOLON2 operation2 command_args cmd_brace_block
355
+ {
356
+ method_call = @builder.call_method(val[0], val[1], val[2],
357
+ nil, val[3], nil)
358
+
359
+ begin_t, args, body, end_t = val[4]
360
+ result = @builder.block(method_call,
361
+ begin_t, args, body, end_t)
362
+ }
363
+ | kSUPER command_args
364
+ {
365
+ result = @builder.keyword_cmd(:super, val[0],
366
+ nil, val[1], nil)
367
+ }
368
+ | kYIELD command_args
369
+ {
370
+ result = @builder.keyword_cmd(:yield, val[0],
371
+ nil, val[1], nil)
372
+ }
373
+ | k_return call_args
374
+ {
375
+ result = @builder.keyword_cmd(:return, val[0],
376
+ nil, val[1], nil)
377
+ }
378
+ | kBREAK call_args
379
+ {
380
+ result = @builder.keyword_cmd(:break, val[0],
381
+ nil, val[1], nil)
382
+ }
383
+ | kNEXT call_args
384
+ {
385
+ result = @builder.keyword_cmd(:next, val[0],
386
+ nil, val[1], nil)
387
+ }
388
+
389
+ mlhs: mlhs_basic
390
+ {
391
+ result = @builder.multi_lhs(nil, val[0], nil)
392
+ }
393
+ | tLPAREN mlhs_inner rparen
394
+ {
395
+ result = @builder.begin(val[0], val[1], val[2])
396
+ }
397
+
398
+ mlhs_inner: mlhs_basic
399
+ {
400
+ result = @builder.multi_lhs(nil, val[0], nil)
401
+ }
402
+ | tLPAREN mlhs_inner rparen
403
+ {
404
+ result = @builder.multi_lhs(val[0], val[1], val[2])
405
+ }
406
+
407
+ mlhs_basic: mlhs_head
408
+ | mlhs_head mlhs_item
409
+ {
410
+ result = val[0].
411
+ push(val[1])
412
+ }
413
+ | mlhs_head tSTAR mlhs_node
414
+ {
415
+ result = val[0].
416
+ push(@builder.splat(val[1], val[2]))
417
+ }
418
+ | mlhs_head tSTAR mlhs_node tCOMMA mlhs_post
419
+ {
420
+ result = val[0].
421
+ push(@builder.splat(val[1], val[2])).
422
+ concat(val[4])
423
+ }
424
+ | mlhs_head tSTAR
425
+ {
426
+ result = val[0].
427
+ push(@builder.splat(val[1]))
428
+ }
429
+ | mlhs_head tSTAR tCOMMA mlhs_post
430
+ {
431
+ result = val[0].
432
+ push(@builder.splat(val[1])).
433
+ concat(val[3])
434
+ }
435
+ | tSTAR mlhs_node
436
+ {
437
+ result = [ @builder.splat(val[0], val[1]) ]
438
+ }
439
+ | tSTAR mlhs_node tCOMMA mlhs_post
440
+ {
441
+ result = [ @builder.splat(val[0], val[1]),
442
+ *val[3] ]
443
+ }
444
+ | tSTAR
445
+ {
446
+ result = [ @builder.splat(val[0]) ]
447
+ }
448
+ | tSTAR tCOMMA mlhs_post
449
+ {
450
+ result = [ @builder.splat(val[0]),
451
+ *val[2] ]
452
+ }
453
+
454
+ mlhs_item: mlhs_node
455
+ | tLPAREN mlhs_inner rparen
456
+ {
457
+ result = @builder.begin(val[0], val[1], val[2])
458
+ }
459
+
460
+ mlhs_head: mlhs_item tCOMMA
461
+ {
462
+ result = [ val[0] ]
463
+ }
464
+ | mlhs_head mlhs_item tCOMMA
465
+ {
466
+ result = val[0] << val[1]
467
+ }
468
+
469
+ mlhs_post: mlhs_item
470
+ {
471
+ result = [ val[0] ]
472
+ }
473
+ | mlhs_post tCOMMA mlhs_item
474
+ {
475
+ result = val[0] << val[2]
476
+ }
477
+
478
+ mlhs_node: user_variable
479
+ {
480
+ result = @builder.assignable(val[0])
481
+ }
482
+ | keyword_variable
483
+ {
484
+ result = @builder.assignable(val[0])
485
+ }
486
+ | primary_value tLBRACK2 opt_call_args rbracket
487
+ {
488
+ result = @builder.index_asgn(val[0], val[1], val[2], val[3])
489
+ }
490
+ | primary_value call_op tIDENTIFIER
491
+ {
492
+ if (val[1][0] == :anddot)
493
+ diagnostic :error, :csend_in_lhs_of_masgn, nil, val[1]
494
+ end
495
+
496
+ result = @builder.attr_asgn(val[0], val[1], val[2])
497
+ }
498
+ | primary_value tCOLON2 tIDENTIFIER
499
+ {
500
+ result = @builder.attr_asgn(val[0], val[1], val[2])
501
+ }
502
+ | primary_value call_op tCONSTANT
503
+ {
504
+ if (val[1][0] == :anddot)
505
+ diagnostic :error, :csend_in_lhs_of_masgn, nil, val[1]
506
+ end
507
+
508
+ result = @builder.attr_asgn(val[0], val[1], val[2])
509
+ }
510
+ | primary_value tCOLON2 tCONSTANT
511
+ {
512
+ result = @builder.assignable(
513
+ @builder.const_fetch(val[0], val[1], val[2]))
514
+ }
515
+ | tCOLON3 tCONSTANT
516
+ {
517
+ result = @builder.assignable(
518
+ @builder.const_global(val[0], val[1]))
519
+ }
520
+ | backref
521
+ {
522
+ result = @builder.assignable(val[0])
523
+ }
524
+
525
+ lhs: user_variable
526
+ {
527
+ result = @builder.assignable(val[0])
528
+ }
529
+ | keyword_variable
530
+ {
531
+ result = @builder.assignable(val[0])
532
+ }
533
+ | primary_value tLBRACK2 opt_call_args rbracket
534
+ {
535
+ result = @builder.index_asgn(val[0], val[1], val[2], val[3])
536
+ }
537
+ | primary_value call_op tIDENTIFIER
538
+ {
539
+ result = @builder.attr_asgn(val[0], val[1], val[2])
540
+ }
541
+ | primary_value tCOLON2 tIDENTIFIER
542
+ {
543
+ result = @builder.attr_asgn(val[0], val[1], val[2])
544
+ }
545
+ | primary_value call_op tCONSTANT
546
+ {
547
+ result = @builder.attr_asgn(val[0], val[1], val[2])
548
+ }
549
+ | primary_value tCOLON2 tCONSTANT
550
+ {
551
+ result = @builder.assignable(
552
+ @builder.const_fetch(val[0], val[1], val[2]))
553
+ }
554
+ | tCOLON3 tCONSTANT
555
+ {
556
+ result = @builder.assignable(
557
+ @builder.const_global(val[0], val[1]))
558
+ }
559
+ | backref
560
+ {
561
+ result = @builder.assignable(val[0])
562
+ }
563
+
564
+ cname: tIDENTIFIER
565
+ {
566
+ diagnostic :error, :module_name_const, nil, val[0]
567
+ }
568
+ | tCONSTANT
569
+
570
+ cpath: tCOLON3 cname
571
+ {
572
+ result = @builder.const_global(val[0], val[1])
573
+ }
574
+ | cname
575
+ {
576
+ result = @builder.const(val[0])
577
+ }
578
+ | primary_value tCOLON2 cname
579
+ {
580
+ result = @builder.const_fetch(val[0], val[1], val[2])
581
+ }
582
+
583
+ fname: tIDENTIFIER | tCONSTANT | tFID
584
+ | op
585
+ | reswords
586
+
587
+ fitem: fname
588
+ {
589
+ result = @builder.symbol(val[0])
590
+ }
591
+ | symbol
592
+
593
+ undef_list: fitem
594
+ {
595
+ result = [ val[0] ]
596
+ }
597
+ | undef_list tCOMMA
598
+ {
599
+ @lexer.state = :expr_fname
600
+ }
601
+ fitem
602
+ {
603
+ result = val[0] << val[3]
604
+ }
605
+
606
+ op: tPIPE | tCARET | tAMPER2 | tCMP | tEQ | tEQQ
607
+ | tMATCH | tNMATCH | tGT | tGEQ | tLT | tLEQ
608
+ | tNEQ | tLSHFT | tRSHFT | tPLUS | tMINUS | tSTAR2
609
+ | tSTAR | tDIVIDE | tPERCENT | tPOW | tBANG | tTILDE
610
+ | tUPLUS | tUMINUS | tAREF | tASET | tDSTAR | tBACK_REF2
611
+
612
+ reswords: k__LINE__ | k__FILE__ | k__ENCODING__ | klBEGIN | klEND
613
+ | kALIAS | kAND | kBEGIN | kBREAK | kCASE
614
+ | kCLASS | kDEF | kDEFINED | kDO | kELSE
615
+ | kELSIF | kEND | kENSURE | kFALSE | kFOR
616
+ | kIN | kMODULE | kNEXT | kNIL | kNOT
617
+ | kOR | kREDO | kRESCUE | kRETRY | kRETURN
618
+ | kSELF | kSUPER | kTHEN | kTRUE | kUNDEF
619
+ | kWHEN | kYIELD | kIF | kUNLESS | kWHILE
620
+ | kUNTIL
621
+
622
+ arg: lhs tEQL arg_rhs
623
+ {
624
+ result = @builder.assign(val[0], val[1], val[2])
625
+ }
626
+ | var_lhs tOP_ASGN arg_rhs
627
+ {
628
+ result = @builder.op_assign(val[0], val[1], val[2])
629
+ }
630
+ | primary_value tLBRACK2 opt_call_args rbracket tOP_ASGN arg_rhs
631
+ {
632
+ result = @builder.op_assign(
633
+ @builder.index(
634
+ val[0], val[1], val[2], val[3]),
635
+ val[4], val[5])
636
+ }
637
+ | primary_value call_op tIDENTIFIER tOP_ASGN arg_rhs
638
+ {
639
+ result = @builder.op_assign(
640
+ @builder.call_method(
641
+ val[0], val[1], val[2]),
642
+ val[3], val[4])
643
+ }
644
+ | primary_value call_op tCONSTANT tOP_ASGN arg_rhs
645
+ {
646
+ result = @builder.op_assign(
647
+ @builder.call_method(
648
+ val[0], val[1], val[2]),
649
+ val[3], val[4])
650
+ }
651
+ | primary_value tCOLON2 tIDENTIFIER tOP_ASGN arg_rhs
652
+ {
653
+ result = @builder.op_assign(
654
+ @builder.call_method(
655
+ val[0], val[1], val[2]),
656
+ val[3], val[4])
657
+ }
658
+ | primary_value tCOLON2 tCONSTANT tOP_ASGN arg_rhs
659
+ {
660
+ const = @builder.const_op_assignable(
661
+ @builder.const_fetch(val[0], val[1], val[2]))
662
+ result = @builder.op_assign(const, val[3], val[4])
663
+ }
664
+ | tCOLON3 tCONSTANT tOP_ASGN arg_rhs
665
+ {
666
+ const = @builder.const_op_assignable(
667
+ @builder.const_global(val[0], val[1]))
668
+ result = @builder.op_assign(const, val[2], val[3])
669
+ }
670
+ | backref tOP_ASGN arg_rhs
671
+ {
672
+ result = @builder.op_assign(val[0], val[1], val[2])
673
+ }
674
+ | arg tDOT2 arg
675
+ {
676
+ result = @builder.range_inclusive(val[0], val[1], val[2])
677
+ }
678
+ | arg tDOT3 arg
679
+ {
680
+ result = @builder.range_exclusive(val[0], val[1], val[2])
681
+ }
682
+ | arg tDOT2
683
+ {
684
+ result = @builder.range_inclusive(val[0], val[1], nil)
685
+ }
686
+ | arg tDOT3
687
+ {
688
+ result = @builder.range_exclusive(val[0], val[1], nil)
689
+ }
690
+ | tBDOT2 arg
691
+ {
692
+ result = @builder.range_inclusive(nil, val[0], val[1])
693
+ }
694
+ | tBDOT3 arg
695
+ {
696
+ result = @builder.range_exclusive(nil, val[0], val[1])
697
+ }
698
+ | arg tPLUS arg
699
+ {
700
+ result = @builder.binary_op(val[0], val[1], val[2])
701
+ }
702
+ | arg tMINUS arg
703
+ {
704
+ result = @builder.binary_op(val[0], val[1], val[2])
705
+ }
706
+ | arg tSTAR2 arg
707
+ {
708
+ result = @builder.binary_op(val[0], val[1], val[2])
709
+ }
710
+ | arg tDIVIDE arg
711
+ {
712
+ result = @builder.binary_op(val[0], val[1], val[2])
713
+ }
714
+ | arg tPERCENT arg
715
+ {
716
+ result = @builder.binary_op(val[0], val[1], val[2])
717
+ }
718
+ | arg tPOW arg
719
+ {
720
+ result = @builder.binary_op(val[0], val[1], val[2])
721
+ }
722
+ | tUNARY_NUM simple_numeric tPOW arg
723
+ {
724
+ result = @builder.unary_op(val[0],
725
+ @builder.binary_op(
726
+ val[1], val[2], val[3]))
727
+ }
728
+ | tUPLUS arg
729
+ {
730
+ result = @builder.unary_op(val[0], val[1])
731
+ }
732
+ | tUMINUS arg
733
+ {
734
+ result = @builder.unary_op(val[0], val[1])
735
+ }
736
+ | arg tPIPE arg
737
+ {
738
+ result = @builder.binary_op(val[0], val[1], val[2])
739
+ }
740
+ | arg tCARET arg
741
+ {
742
+ result = @builder.binary_op(val[0], val[1], val[2])
743
+ }
744
+ | arg tAMPER2 arg
745
+ {
746
+ result = @builder.binary_op(val[0], val[1], val[2])
747
+ }
748
+ | arg tCMP arg
749
+ {
750
+ result = @builder.binary_op(val[0], val[1], val[2])
751
+ }
752
+ | rel_expr =tCMP
753
+ | arg tEQ arg
754
+ {
755
+ result = @builder.binary_op(val[0], val[1], val[2])
756
+ }
757
+ | arg tEQQ arg
758
+ {
759
+ result = @builder.binary_op(val[0], val[1], val[2])
760
+ }
761
+ | arg tNEQ arg
762
+ {
763
+ result = @builder.binary_op(val[0], val[1], val[2])
764
+ }
765
+ | arg tMATCH arg
766
+ {
767
+ result = @builder.match_op(val[0], val[1], val[2])
768
+ }
769
+ | arg tNMATCH arg
770
+ {
771
+ result = @builder.binary_op(val[0], val[1], val[2])
772
+ }
773
+ | tBANG arg
774
+ {
775
+ result = @builder.not_op(val[0], nil, val[1], nil)
776
+ }
777
+ | tTILDE arg
778
+ {
779
+ result = @builder.unary_op(val[0], val[1])
780
+ }
781
+ | arg tLSHFT arg
782
+ {
783
+ result = @builder.binary_op(val[0], val[1], val[2])
784
+ }
785
+ | arg tRSHFT arg
786
+ {
787
+ result = @builder.binary_op(val[0], val[1], val[2])
788
+ }
789
+ | arg tANDOP arg
790
+ {
791
+ result = @builder.logical_op(:and, val[0], val[1], val[2])
792
+ }
793
+ | arg tOROP arg
794
+ {
795
+ result = @builder.logical_op(:or, val[0], val[1], val[2])
796
+ }
797
+ | kDEFINED opt_nl arg
798
+ {
799
+ result = @builder.keyword_cmd(:defined?, val[0], nil, [ val[2] ], nil)
800
+ }
801
+ | arg tEH arg opt_nl tCOLON arg
802
+ {
803
+ result = @builder.ternary(val[0], val[1],
804
+ val[2], val[4], val[5])
805
+ }
806
+ | primary
807
+
808
+ relop: tGT | tLT | tGEQ | tLEQ
809
+
810
+ rel_expr: arg relop arg =tGT
811
+ {
812
+ result = @builder.binary_op(val[0], val[1], val[2])
813
+ }
814
+ | rel_expr relop arg =tGT
815
+ {
816
+ result = @builder.binary_op(val[0], val[1], val[2])
817
+ }
818
+
819
+ arg_value: arg
820
+
821
+ aref_args: none
822
+ | args trailer
823
+ | args tCOMMA assocs trailer
824
+ {
825
+ result = val[0] << @builder.associate(nil, val[2], nil)
826
+ }
827
+ | assocs trailer
828
+ {
829
+ result = [ @builder.associate(nil, val[0], nil) ]
830
+ }
831
+
832
+ arg_rhs: arg =tOP_ASGN
833
+ | arg kRESCUE_MOD arg
834
+ {
835
+ rescue_body = @builder.rescue_body(val[1],
836
+ nil, nil, nil,
837
+ nil, val[2])
838
+
839
+ result = @builder.begin_body(val[0], [ rescue_body ])
840
+ }
841
+
842
+ paren_args: tLPAREN2 opt_call_args rparen
843
+ {
844
+ result = val
845
+ }
846
+
847
+ opt_paren_args: # nothing
848
+ {
849
+ result = [ nil, [], nil ]
850
+ }
851
+ | paren_args
852
+
853
+ opt_call_args: # nothing
854
+ {
855
+ result = []
856
+ }
857
+ | call_args
858
+ | args tCOMMA
859
+ | args tCOMMA assocs tCOMMA
860
+ {
861
+ result = val[0] << @builder.associate(nil, val[2], nil)
862
+ }
863
+ | assocs tCOMMA
864
+ {
865
+ result = [ @builder.associate(nil, val[0], nil) ]
866
+ }
867
+
868
+ call_args: command
869
+ {
870
+ result = [ val[0] ]
871
+ }
872
+ | args opt_block_arg
873
+ {
874
+ result = val[0].concat(val[1])
875
+ }
876
+ | assocs opt_block_arg
877
+ {
878
+ result = [ @builder.associate(nil, val[0], nil) ]
879
+ result.concat(val[1])
880
+ }
881
+ | args tCOMMA assocs opt_block_arg
882
+ {
883
+ assocs = @builder.associate(nil, val[2], nil)
884
+ result = val[0] << assocs
885
+ result.concat(val[3])
886
+ }
887
+ | block_arg
888
+ {
889
+ result = [ val[0] ]
890
+ }
891
+
892
+ command_args: {
893
+ # When branch gets invoked by RACC's lookahead
894
+ # and command args start with '[' or '('
895
+ # we need to put `true` to the cmdarg stack
896
+ # **before** `false` pushed by lexer
897
+ # m [], n
898
+ # ^
899
+ # Right here we have cmdarg [...0] because
900
+ # lexer pushed it on '['
901
+ # We need to modify cmdarg stack to [...10]
902
+ #
903
+ # For all other cases (like `m n` or `m n, []`) we simply put 1 to the stack
904
+ # and later lexer pushes corresponding bits on top of it.
905
+ last_token = @last_token[0]
906
+ lookahead = last_token == :tLBRACK || last_token == :tLPAREN_ARG
907
+
908
+ if lookahead
909
+ top = @lexer.cmdarg.pop
910
+ @lexer.cmdarg.push(true)
911
+ @lexer.cmdarg.push(top)
912
+ else
913
+ @lexer.cmdarg.push(true)
914
+ end
915
+ }
916
+ call_args
917
+ {
918
+ # call_args can be followed by tLBRACE_ARG (that does cmdarg.push(0) in the lexer)
919
+ # but the push must be done after cmdarg.pop() in the parser.
920
+ # So this code does cmdarg.pop() to pop 0 pushed by tLBRACE_ARG,
921
+ # cmdarg.pop() to pop 1 pushed by command_args,
922
+ # and cmdarg.push(0) to restore back the flag set by tLBRACE_ARG.
923
+ last_token = @last_token[0]
924
+ lookahead = last_token == :tLBRACE_ARG
925
+ if lookahead
926
+ top = @lexer.cmdarg.pop
927
+ @lexer.cmdarg.pop
928
+ @lexer.cmdarg.push(top)
929
+ else
930
+ @lexer.cmdarg.pop
931
+ end
932
+
933
+ result = val[1]
934
+ }
935
+
936
+ block_arg: tAMPER arg_value
937
+ {
938
+ result = @builder.block_pass(val[0], val[1])
939
+ }
940
+
941
+ opt_block_arg: tCOMMA block_arg
942
+ {
943
+ result = [ val[1] ]
944
+ }
945
+ | # nothing
946
+ {
947
+ result = []
948
+ }
949
+
950
+ args: arg_value
951
+ {
952
+ result = [ val[0] ]
953
+ }
954
+ | tSTAR arg_value
955
+ {
956
+ result = [ @builder.splat(val[0], val[1]) ]
957
+ }
958
+ | args tCOMMA arg_value
959
+ {
960
+ result = val[0] << val[2]
961
+ }
962
+ | args tCOMMA tSTAR arg_value
963
+ {
964
+ result = val[0] << @builder.splat(val[2], val[3])
965
+ }
966
+
967
+ mrhs_arg: mrhs
968
+ {
969
+ result = @builder.array(nil, val[0], nil)
970
+ }
971
+ | arg_value
972
+
973
+ mrhs: args tCOMMA arg_value
974
+ {
975
+ result = val[0] << val[2]
976
+ }
977
+ | args tCOMMA tSTAR arg_value
978
+ {
979
+ result = val[0] << @builder.splat(val[2], val[3])
980
+ }
981
+ | tSTAR arg_value
982
+ {
983
+ result = [ @builder.splat(val[0], val[1]) ]
984
+ }
985
+
986
+ primary: literal
987
+ | strings
988
+ | xstring
989
+ | regexp
990
+ | words
991
+ | qwords
992
+ | symbols
993
+ | qsymbols
994
+ | var_ref
995
+ | backref
996
+ | tFID
997
+ {
998
+ result = @builder.call_method(nil, nil, val[0])
999
+ }
1000
+ | kBEGIN
1001
+ {
1002
+ @lexer.cmdarg.push(false)
1003
+ }
1004
+ bodystmt kEND
1005
+ {
1006
+ @lexer.cmdarg.pop
1007
+
1008
+ result = @builder.begin_keyword(val[0], val[2], val[3])
1009
+ }
1010
+ | tLPAREN_ARG stmt
1011
+ {
1012
+ @lexer.state = :expr_endarg
1013
+ }
1014
+ rparen
1015
+ {
1016
+ result = @builder.begin(val[0], val[1], val[3])
1017
+ }
1018
+ | tLPAREN_ARG
1019
+ {
1020
+ @lexer.state = :expr_endarg
1021
+ }
1022
+ opt_nl tRPAREN
1023
+ {
1024
+ result = @builder.begin(val[0], nil, val[3])
1025
+ }
1026
+ | tLPAREN compstmt tRPAREN
1027
+ {
1028
+ result = @builder.begin(val[0], val[1], val[2])
1029
+ }
1030
+ | primary_value tCOLON2 tCONSTANT
1031
+ {
1032
+ result = @builder.const_fetch(val[0], val[1], val[2])
1033
+ }
1034
+ | tCOLON3 tCONSTANT
1035
+ {
1036
+ result = @builder.const_global(val[0], val[1])
1037
+ }
1038
+ | tLBRACK aref_args tRBRACK
1039
+ {
1040
+ result = @builder.array(val[0], val[1], val[2])
1041
+ }
1042
+ | tLBRACE assoc_list tRCURLY
1043
+ {
1044
+ result = @builder.associate(val[0], val[1], val[2])
1045
+ }
1046
+ | k_return
1047
+ {
1048
+ result = @builder.keyword_cmd(:return, val[0])
1049
+ }
1050
+ | kYIELD tLPAREN2 call_args rparen
1051
+ {
1052
+ result = @builder.keyword_cmd(:yield, val[0], val[1], val[2], val[3])
1053
+ }
1054
+ | kYIELD tLPAREN2 rparen
1055
+ {
1056
+ result = @builder.keyword_cmd(:yield, val[0], val[1], [], val[2])
1057
+ }
1058
+ | kYIELD
1059
+ {
1060
+ result = @builder.keyword_cmd(:yield, val[0])
1061
+ }
1062
+ | kDEFINED opt_nl tLPAREN2 expr rparen
1063
+ {
1064
+ result = @builder.keyword_cmd(:defined?, val[0],
1065
+ val[2], [ val[3] ], val[4])
1066
+ }
1067
+ | kNOT tLPAREN2 expr rparen
1068
+ {
1069
+ result = @builder.not_op(val[0], val[1], val[2], val[3])
1070
+ }
1071
+ | kNOT tLPAREN2 rparen
1072
+ {
1073
+ result = @builder.not_op(val[0], val[1], nil, val[2])
1074
+ }
1075
+ | fcall brace_block
1076
+ {
1077
+ method_call = @builder.call_method(nil, nil, val[0])
1078
+
1079
+ begin_t, args, body, end_t = val[1]
1080
+ result = @builder.block(method_call,
1081
+ begin_t, args, body, end_t)
1082
+ }
1083
+ | method_call
1084
+ | method_call brace_block
1085
+ {
1086
+ begin_t, args, body, end_t = val[1]
1087
+ result = @builder.block(val[0],
1088
+ begin_t, args, body, end_t)
1089
+ }
1090
+ | tLAMBDA lambda
1091
+ {
1092
+ lambda_call = @builder.call_lambda(val[0])
1093
+
1094
+ args, (begin_t, body, end_t) = val[1]
1095
+ result = @builder.block(lambda_call,
1096
+ begin_t, args, body, end_t)
1097
+ }
1098
+ | kIF expr_value then compstmt if_tail kEND
1099
+ {
1100
+ else_t, else_ = val[4]
1101
+ result = @builder.condition(val[0], val[1], val[2],
1102
+ val[3], else_t,
1103
+ else_, val[5])
1104
+ }
1105
+ | kUNLESS expr_value then compstmt opt_else kEND
1106
+ {
1107
+ else_t, else_ = val[4]
1108
+ result = @builder.condition(val[0], val[1], val[2],
1109
+ else_, else_t,
1110
+ val[3], val[5])
1111
+ }
1112
+ | kWHILE expr_value_do compstmt kEND
1113
+ {
1114
+ result = @builder.loop(:while, val[0], *val[1], val[2], val[3])
1115
+ }
1116
+ | kUNTIL expr_value_do compstmt kEND
1117
+ {
1118
+ result = @builder.loop(:until, val[0], *val[1], val[2], val[3])
1119
+ }
1120
+ | kCASE expr_value opt_terms case_body kEND
1121
+ {
1122
+ *when_bodies, (else_t, else_body) = *val[3]
1123
+
1124
+ result = @builder.case(val[0], val[1],
1125
+ when_bodies, else_t, else_body,
1126
+ val[4])
1127
+ }
1128
+ | kCASE opt_terms case_body kEND
1129
+ {
1130
+ *when_bodies, (else_t, else_body) = *val[2]
1131
+
1132
+ result = @builder.case(val[0], nil,
1133
+ when_bodies, else_t, else_body,
1134
+ val[3])
1135
+ }
1136
+ | kFOR for_var kIN expr_value_do compstmt kEND
1137
+ {
1138
+ result = @builder.for(val[0], val[1], val[2], *val[3], val[4], val[5])
1139
+ }
1140
+ | kCLASS cpath superclass
1141
+ {
1142
+ @static_env.extend_static
1143
+ @lexer.cmdarg.push(false)
1144
+ @lexer.cond.push(false)
1145
+ @context.push(:class)
1146
+ }
1147
+ bodystmt kEND
1148
+ {
1149
+ unless @context.class_definition_allowed?
1150
+ diagnostic :error, :class_in_def, nil, val[0]
1151
+ end
1152
+
1153
+ lt_t, superclass = val[2]
1154
+ result = @builder.def_class(val[0], val[1],
1155
+ lt_t, superclass,
1156
+ val[4], val[5])
1157
+
1158
+ @lexer.cmdarg.pop
1159
+ @lexer.cond.pop
1160
+ @static_env.unextend
1161
+ @context.pop
1162
+ }
1163
+ | kCLASS tLSHFT expr term
1164
+ {
1165
+ @static_env.extend_static
1166
+ @lexer.cmdarg.push(false)
1167
+ @lexer.cond.push(false)
1168
+ @context.push(:sclass)
1169
+ }
1170
+ bodystmt kEND
1171
+ {
1172
+ result = @builder.def_sclass(val[0], val[1], val[2],
1173
+ val[5], val[6])
1174
+
1175
+ @lexer.cmdarg.pop
1176
+ @lexer.cond.pop
1177
+ @static_env.unextend
1178
+ @context.pop
1179
+ }
1180
+ | kMODULE cpath
1181
+ {
1182
+ @static_env.extend_static
1183
+ @lexer.cmdarg.push(false)
1184
+ }
1185
+ bodystmt kEND
1186
+ {
1187
+ unless @context.module_definition_allowed?
1188
+ diagnostic :error, :module_in_def, nil, val[0]
1189
+ end
1190
+
1191
+ result = @builder.def_module(val[0], val[1],
1192
+ val[3], val[4])
1193
+
1194
+ @lexer.cmdarg.pop
1195
+ @static_env.unextend
1196
+ }
1197
+ | kDEF fname
1198
+ {
1199
+ @static_env.extend_static
1200
+ @lexer.cmdarg.push(false)
1201
+ @lexer.cond.push(false)
1202
+ @context.push(:def)
1203
+ }
1204
+ f_arglist bodystmt kEND
1205
+ {
1206
+ result = @builder.def_method(val[0], val[1],
1207
+ val[3], val[4], val[5])
1208
+
1209
+ @lexer.cmdarg.pop
1210
+ @lexer.cond.pop
1211
+ @static_env.unextend
1212
+ @context.pop
1213
+ }
1214
+ | kDEF singleton dot_or_colon
1215
+ {
1216
+ @lexer.state = :expr_fname
1217
+ }
1218
+ fname
1219
+ {
1220
+ @static_env.extend_static
1221
+ @lexer.cmdarg.push(false)
1222
+ @lexer.cond.push(false)
1223
+ @context.push(:defs)
1224
+ }
1225
+ f_arglist bodystmt kEND
1226
+ {
1227
+ result = @builder.def_singleton(val[0], val[1], val[2],
1228
+ val[4], val[6], val[7], val[8])
1229
+
1230
+ @lexer.cmdarg.pop
1231
+ @lexer.cond.pop
1232
+ @static_env.unextend
1233
+ @context.pop
1234
+ }
1235
+ | kBREAK
1236
+ {
1237
+ result = @builder.keyword_cmd(:break, val[0])
1238
+ }
1239
+ | kNEXT
1240
+ {
1241
+ result = @builder.keyword_cmd(:next, val[0])
1242
+ }
1243
+ | kREDO
1244
+ {
1245
+ result = @builder.keyword_cmd(:redo, val[0])
1246
+ }
1247
+ | kRETRY
1248
+ {
1249
+ result = @builder.keyword_cmd(:retry, val[0])
1250
+ }
1251
+ | primary_value tMETHREF operation2
1252
+ {
1253
+ result = @builder.method_ref(val[0], val[1], val[2])
1254
+ }
1255
+
1256
+ primary_value: primary
1257
+
1258
+ k_return: kRETURN
1259
+ {
1260
+ if @context.in_class?
1261
+ diagnostic :error, :invalid_return, nil, val[0]
1262
+ end
1263
+ }
1264
+
1265
+ then: term
1266
+ | kTHEN
1267
+ | term kTHEN
1268
+ {
1269
+ result = val[1]
1270
+ }
1271
+
1272
+ do: term
1273
+ | kDO_COND
1274
+
1275
+ if_tail: opt_else
1276
+ | kELSIF expr_value then compstmt if_tail
1277
+ {
1278
+ else_t, else_ = val[4]
1279
+ result = [ val[0],
1280
+ @builder.condition(val[0], val[1], val[2],
1281
+ val[3], else_t,
1282
+ else_, nil),
1283
+ ]
1284
+ }
1285
+
1286
+ opt_else: none
1287
+ | kELSE compstmt
1288
+ {
1289
+ result = val
1290
+ }
1291
+
1292
+ for_var: lhs
1293
+ | mlhs
1294
+
1295
+ f_marg: f_norm_arg
1296
+ {
1297
+ result = @builder.arg(val[0])
1298
+ }
1299
+ | tLPAREN f_margs rparen
1300
+ {
1301
+ result = @builder.multi_lhs(val[0], val[1], val[2])
1302
+ }
1303
+
1304
+ f_marg_list: f_marg
1305
+ {
1306
+ result = [ val[0] ]
1307
+ }
1308
+ | f_marg_list tCOMMA f_marg
1309
+ {
1310
+ result = val[0] << val[2]
1311
+ }
1312
+
1313
+ f_margs: f_marg_list
1314
+ | f_marg_list tCOMMA f_rest_marg
1315
+ {
1316
+ result = val[0].
1317
+ push(val[2])
1318
+ }
1319
+ | f_marg_list tCOMMA f_rest_marg tCOMMA f_marg_list
1320
+ {
1321
+ result = val[0].
1322
+ push(val[2]).
1323
+ concat(val[4])
1324
+ }
1325
+ | f_rest_marg
1326
+ {
1327
+ result = [ val[0] ]
1328
+ }
1329
+ | f_rest_marg tCOMMA f_marg_list
1330
+ {
1331
+ result = [ val[0], *val[2] ]
1332
+ }
1333
+
1334
+ f_rest_marg: tSTAR f_norm_arg
1335
+ {
1336
+ result = @builder.restarg(val[0], val[1])
1337
+ }
1338
+ | tSTAR
1339
+ {
1340
+ result = @builder.restarg(val[0])
1341
+ }
1342
+
1343
+ block_args_tail: f_block_kwarg tCOMMA f_kwrest opt_f_block_arg
1344
+ {
1345
+ result = val[0].concat(val[2]).concat(val[3])
1346
+ }
1347
+ | f_block_kwarg opt_f_block_arg
1348
+ {
1349
+ result = val[0].concat(val[1])
1350
+ }
1351
+ | f_kwrest opt_f_block_arg
1352
+ {
1353
+ result = val[0].concat(val[1])
1354
+ }
1355
+ | f_no_kwarg opt_f_block_arg
1356
+ {
1357
+ result = val[0].concat(val[1])
1358
+ }
1359
+ | f_block_arg
1360
+ {
1361
+ result = [ val[0] ]
1362
+ }
1363
+
1364
+ opt_block_args_tail:
1365
+ tCOMMA block_args_tail
1366
+ {
1367
+ result = val[1]
1368
+ }
1369
+ | # nothing
1370
+ {
1371
+ result = []
1372
+ }
1373
+
1374
+ block_param: f_arg tCOMMA f_block_optarg tCOMMA f_rest_arg opt_block_args_tail
1375
+ {
1376
+ result = val[0].
1377
+ concat(val[2]).
1378
+ concat(val[4]).
1379
+ concat(val[5])
1380
+ }
1381
+ | f_arg tCOMMA f_block_optarg tCOMMA f_rest_arg tCOMMA f_arg opt_block_args_tail
1382
+ {
1383
+ result = val[0].
1384
+ concat(val[2]).
1385
+ concat(val[4]).
1386
+ concat(val[6]).
1387
+ concat(val[7])
1388
+ }
1389
+ | f_arg tCOMMA f_block_optarg opt_block_args_tail
1390
+ {
1391
+ result = val[0].
1392
+ concat(val[2]).
1393
+ concat(val[3])
1394
+ }
1395
+ | f_arg tCOMMA f_block_optarg tCOMMA f_arg opt_block_args_tail
1396
+ {
1397
+ result = val[0].
1398
+ concat(val[2]).
1399
+ concat(val[4]).
1400
+ concat(val[5])
1401
+ }
1402
+ | f_arg tCOMMA f_rest_arg opt_block_args_tail
1403
+ {
1404
+ result = val[0].
1405
+ concat(val[2]).
1406
+ concat(val[3])
1407
+ }
1408
+ | f_arg tCOMMA
1409
+ | f_arg tCOMMA f_rest_arg tCOMMA f_arg opt_block_args_tail
1410
+ {
1411
+ result = val[0].
1412
+ concat(val[2]).
1413
+ concat(val[4]).
1414
+ concat(val[5])
1415
+ }
1416
+ | f_arg opt_block_args_tail
1417
+ {
1418
+ if val[1].empty? && val[0].size == 1
1419
+ result = [@builder.procarg0(val[0][0])]
1420
+ else
1421
+ result = val[0].concat(val[1])
1422
+ end
1423
+ }
1424
+ | f_block_optarg tCOMMA f_rest_arg opt_block_args_tail
1425
+ {
1426
+ result = val[0].
1427
+ concat(val[2]).
1428
+ concat(val[3])
1429
+ }
1430
+ | f_block_optarg tCOMMA f_rest_arg tCOMMA f_arg opt_block_args_tail
1431
+ {
1432
+ result = val[0].
1433
+ concat(val[2]).
1434
+ concat(val[4]).
1435
+ concat(val[5])
1436
+ }
1437
+ | f_block_optarg opt_block_args_tail
1438
+ {
1439
+ result = val[0].
1440
+ concat(val[1])
1441
+ }
1442
+ | f_block_optarg tCOMMA f_arg opt_block_args_tail
1443
+ {
1444
+ result = val[0].
1445
+ concat(val[2]).
1446
+ concat(val[3])
1447
+ }
1448
+ | f_rest_arg opt_block_args_tail
1449
+ {
1450
+ result = val[0].
1451
+ concat(val[1])
1452
+ }
1453
+ | f_rest_arg tCOMMA f_arg opt_block_args_tail
1454
+ {
1455
+ result = val[0].
1456
+ concat(val[2]).
1457
+ concat(val[3])
1458
+ }
1459
+ | block_args_tail
1460
+
1461
+ opt_block_param: # nothing
1462
+ {
1463
+ result = @builder.args(nil, [], nil)
1464
+ }
1465
+ | block_param_def
1466
+ {
1467
+ @lexer.state = :expr_value
1468
+ }
1469
+
1470
+ block_param_def: tPIPE opt_bv_decl tPIPE
1471
+ {
1472
+ @lexer.max_numparam_stack.cant_have_numparams!
1473
+ result = @builder.args(val[0], val[1], val[2])
1474
+ }
1475
+ | tOROP
1476
+ {
1477
+ @lexer.max_numparam_stack.cant_have_numparams!
1478
+ result = @builder.args(val[0], [], val[0])
1479
+ }
1480
+ | tPIPE block_param opt_bv_decl tPIPE
1481
+ {
1482
+ @lexer.max_numparam_stack.cant_have_numparams!
1483
+ result = @builder.args(val[0], val[1].concat(val[2]), val[3])
1484
+ }
1485
+
1486
+ opt_bv_decl: opt_nl
1487
+ {
1488
+ result = []
1489
+ }
1490
+ | opt_nl tSEMI bv_decls opt_nl
1491
+ {
1492
+ result = val[2]
1493
+ }
1494
+
1495
+ bv_decls: bvar
1496
+ {
1497
+ result = [ val[0] ]
1498
+ }
1499
+ | bv_decls tCOMMA bvar
1500
+ {
1501
+ result = val[0] << val[2]
1502
+ }
1503
+
1504
+ bvar: tIDENTIFIER
1505
+ {
1506
+ @static_env.declare val[0][0]
1507
+ result = @builder.shadowarg(val[0])
1508
+ }
1509
+ | f_bad_arg
1510
+
1511
+ lambda: {
1512
+ @static_env.extend_dynamic
1513
+ @lexer.max_numparam_stack.push
1514
+ @context.push(:lambda)
1515
+ }
1516
+ f_larglist
1517
+ {
1518
+ @context.pop
1519
+ @lexer.cmdarg.push(false)
1520
+ }
1521
+ lambda_body
1522
+ {
1523
+ args = @lexer.max_numparam > 0 ? @builder.numargs(@lexer.max_numparam) : val[1]
1524
+ result = [ args, val[3] ]
1525
+
1526
+ @lexer.max_numparam_stack.pop
1527
+ @static_env.unextend
1528
+ @lexer.cmdarg.pop
1529
+ }
1530
+
1531
+ f_larglist: tLPAREN2 f_args opt_bv_decl tRPAREN
1532
+ {
1533
+ @lexer.max_numparam_stack.cant_have_numparams!
1534
+ result = @builder.args(val[0], val[1].concat(val[2]), val[3])
1535
+ }
1536
+ | f_args
1537
+ {
1538
+ if val[0].any?
1539
+ @lexer.max_numparam_stack.cant_have_numparams!
1540
+ end
1541
+ result = @builder.args(nil, val[0], nil)
1542
+ }
1543
+
1544
+ lambda_body: tLAMBEG
1545
+ {
1546
+ @context.push(:lambda)
1547
+ }
1548
+ compstmt tRCURLY
1549
+ {
1550
+ result = [ val[0], val[2], val[3] ]
1551
+ @context.pop
1552
+ }
1553
+ | kDO_LAMBDA
1554
+ {
1555
+ @context.push(:lambda)
1556
+ }
1557
+ bodystmt kEND
1558
+ {
1559
+ result = [ val[0], val[2], val[3] ]
1560
+ @context.pop
1561
+ }
1562
+
1563
+ do_block: kDO_BLOCK
1564
+ {
1565
+ @context.push(:block)
1566
+ }
1567
+ do_body kEND
1568
+ {
1569
+ result = [ val[0], *val[2], val[3] ]
1570
+ @context.pop
1571
+ }
1572
+
1573
+ block_call: command do_block
1574
+ {
1575
+ begin_t, block_args, body, end_t = val[1]
1576
+ result = @builder.block(val[0],
1577
+ begin_t, block_args, body, end_t)
1578
+ }
1579
+ | block_call dot_or_colon operation2 opt_paren_args
1580
+ {
1581
+ lparen_t, args, rparen_t = val[3]
1582
+ result = @builder.call_method(val[0], val[1], val[2],
1583
+ lparen_t, args, rparen_t)
1584
+ }
1585
+ | block_call dot_or_colon operation2 opt_paren_args brace_block
1586
+ {
1587
+ lparen_t, args, rparen_t = val[3]
1588
+ method_call = @builder.call_method(val[0], val[1], val[2],
1589
+ lparen_t, args, rparen_t)
1590
+
1591
+ begin_t, args, body, end_t = val[4]
1592
+ result = @builder.block(method_call,
1593
+ begin_t, args, body, end_t)
1594
+ }
1595
+ | block_call dot_or_colon operation2 command_args do_block
1596
+ {
1597
+ method_call = @builder.call_method(val[0], val[1], val[2],
1598
+ nil, val[3], nil)
1599
+
1600
+ begin_t, args, body, end_t = val[4]
1601
+ result = @builder.block(method_call,
1602
+ begin_t, args, body, end_t)
1603
+ }
1604
+
1605
+ method_call: fcall paren_args
1606
+ {
1607
+ lparen_t, args, rparen_t = val[1]
1608
+ result = @builder.call_method(nil, nil, val[0],
1609
+ lparen_t, args, rparen_t)
1610
+ }
1611
+ | primary_value call_op operation2 opt_paren_args
1612
+ {
1613
+ lparen_t, args, rparen_t = val[3]
1614
+ result = @builder.call_method(val[0], val[1], val[2],
1615
+ lparen_t, args, rparen_t)
1616
+ }
1617
+ | primary_value tCOLON2 operation2 paren_args
1618
+ {
1619
+ lparen_t, args, rparen_t = val[3]
1620
+ result = @builder.call_method(val[0], val[1], val[2],
1621
+ lparen_t, args, rparen_t)
1622
+ }
1623
+ | primary_value tCOLON2 operation3
1624
+ {
1625
+ result = @builder.call_method(val[0], val[1], val[2])
1626
+ }
1627
+ | primary_value call_op paren_args
1628
+ {
1629
+ lparen_t, args, rparen_t = val[2]
1630
+ result = @builder.call_method(val[0], val[1], nil,
1631
+ lparen_t, args, rparen_t)
1632
+ }
1633
+ | primary_value tCOLON2 paren_args
1634
+ {
1635
+ lparen_t, args, rparen_t = val[2]
1636
+ result = @builder.call_method(val[0], val[1], nil,
1637
+ lparen_t, args, rparen_t)
1638
+ }
1639
+ | kSUPER paren_args
1640
+ {
1641
+ lparen_t, args, rparen_t = val[1]
1642
+ result = @builder.keyword_cmd(:super, val[0],
1643
+ lparen_t, args, rparen_t)
1644
+ }
1645
+ | kSUPER
1646
+ {
1647
+ result = @builder.keyword_cmd(:zsuper, val[0])
1648
+ }
1649
+ | primary_value tLBRACK2 opt_call_args rbracket
1650
+ {
1651
+ result = @builder.index(val[0], val[1], val[2], val[3])
1652
+ }
1653
+
1654
+ brace_block: tLCURLY
1655
+ {
1656
+ @context.push(:block)
1657
+ }
1658
+ brace_body tRCURLY
1659
+ {
1660
+ result = [ val[0], *val[2], val[3] ]
1661
+ @context.pop
1662
+ }
1663
+ | kDO
1664
+ {
1665
+ @context.push(:block)
1666
+ }
1667
+ do_body kEND
1668
+ {
1669
+ result = [ val[0], *val[2], val[3] ]
1670
+ @context.pop
1671
+ }
1672
+
1673
+ brace_body: {
1674
+ @static_env.extend_dynamic
1675
+ @lexer.max_numparam_stack.push
1676
+ }
1677
+ opt_block_param compstmt
1678
+ {
1679
+ args = @lexer.max_numparam > 0 ? @builder.numargs(@lexer.max_numparam) : val[1]
1680
+ result = [ args, val[2] ]
1681
+
1682
+ @lexer.max_numparam_stack.pop
1683
+ @static_env.unextend
1684
+ }
1685
+
1686
+ do_body: {
1687
+ @static_env.extend_dynamic
1688
+ @lexer.max_numparam_stack.push
1689
+ }
1690
+ {
1691
+ @lexer.cmdarg.push(false)
1692
+ }
1693
+ opt_block_param bodystmt
1694
+ {
1695
+ args = @lexer.max_numparam > 0 ? @builder.numargs(@lexer.max_numparam) : val[2]
1696
+ result = [ args, val[3] ]
1697
+
1698
+ @lexer.max_numparam_stack.pop
1699
+ @static_env.unextend
1700
+ @lexer.cmdarg.pop
1701
+ }
1702
+
1703
+ case_body: kWHEN args then compstmt cases
1704
+ {
1705
+ result = [ @builder.when(val[0], val[1], val[2], val[3]),
1706
+ *val[4] ]
1707
+ }
1708
+
1709
+ cases: opt_else
1710
+ {
1711
+ result = [ val[0] ]
1712
+ }
1713
+ | case_body
1714
+
1715
+ opt_rescue: kRESCUE exc_list exc_var then compstmt opt_rescue
1716
+ {
1717
+ assoc_t, exc_var = val[2]
1718
+
1719
+ if val[1]
1720
+ exc_list = @builder.array(nil, val[1], nil)
1721
+ end
1722
+
1723
+ result = [ @builder.rescue_body(val[0],
1724
+ exc_list, assoc_t, exc_var,
1725
+ val[3], val[4]),
1726
+ *val[5] ]
1727
+ }
1728
+ |
1729
+ {
1730
+ result = []
1731
+ }
1732
+
1733
+ exc_list: arg_value
1734
+ {
1735
+ result = [ val[0] ]
1736
+ }
1737
+ | mrhs
1738
+ | none
1739
+
1740
+ exc_var: tASSOC lhs
1741
+ {
1742
+ result = [ val[0], val[1] ]
1743
+ }
1744
+ | none
1745
+
1746
+ opt_ensure: kENSURE compstmt
1747
+ {
1748
+ result = [ val[0], val[1] ]
1749
+ }
1750
+ | none
1751
+
1752
+ literal: numeric
1753
+ | symbol
1754
+
1755
+ strings: string
1756
+ {
1757
+ result = @builder.string_compose(nil, val[0], nil)
1758
+ }
1759
+
1760
+ string: string1
1761
+ {
1762
+ result = [ val[0] ]
1763
+ }
1764
+ | string string1
1765
+ {
1766
+ result = val[0] << val[1]
1767
+ }
1768
+
1769
+ string1: tSTRING_BEG string_contents tSTRING_END
1770
+ {
1771
+ string = @builder.string_compose(val[0], val[1], val[2])
1772
+ result = @builder.dedent_string(string, @lexer.dedent_level)
1773
+ }
1774
+ | tSTRING
1775
+ {
1776
+ string = @builder.string(val[0])
1777
+ result = @builder.dedent_string(string, @lexer.dedent_level)
1778
+ }
1779
+ | tCHARACTER
1780
+ {
1781
+ result = @builder.character(val[0])
1782
+ }
1783
+
1784
+ xstring: tXSTRING_BEG xstring_contents tSTRING_END
1785
+ {
1786
+ string = @builder.xstring_compose(val[0], val[1], val[2])
1787
+ result = @builder.dedent_string(string, @lexer.dedent_level)
1788
+ }
1789
+
1790
+ regexp: tREGEXP_BEG regexp_contents tSTRING_END tREGEXP_OPT
1791
+ {
1792
+ opts = @builder.regexp_options(val[3])
1793
+ result = @builder.regexp_compose(val[0], val[1], val[2], opts)
1794
+ }
1795
+
1796
+ words: tWORDS_BEG word_list tSTRING_END
1797
+ {
1798
+ result = @builder.words_compose(val[0], val[1], val[2])
1799
+ }
1800
+
1801
+ word_list: # nothing
1802
+ {
1803
+ result = []
1804
+ }
1805
+ | word_list word tSPACE
1806
+ {
1807
+ result = val[0] << @builder.word(val[1])
1808
+ }
1809
+
1810
+ word: string_content
1811
+ {
1812
+ result = [ val[0] ]
1813
+ }
1814
+ | word string_content
1815
+ {
1816
+ result = val[0] << val[1]
1817
+ }
1818
+
1819
+ symbols: tSYMBOLS_BEG symbol_list tSTRING_END
1820
+ {
1821
+ result = @builder.symbols_compose(val[0], val[1], val[2])
1822
+ }
1823
+
1824
+ symbol_list: # nothing
1825
+ {
1826
+ result = []
1827
+ }
1828
+ | symbol_list word tSPACE
1829
+ {
1830
+ result = val[0] << @builder.word(val[1])
1831
+ }
1832
+
1833
+ qwords: tQWORDS_BEG qword_list tSTRING_END
1834
+ {
1835
+ result = @builder.words_compose(val[0], val[1], val[2])
1836
+ }
1837
+
1838
+ qsymbols: tQSYMBOLS_BEG qsym_list tSTRING_END
1839
+ {
1840
+ result = @builder.symbols_compose(val[0], val[1], val[2])
1841
+ }
1842
+
1843
+ qword_list: # nothing
1844
+ {
1845
+ result = []
1846
+ }
1847
+ | qword_list tSTRING_CONTENT tSPACE
1848
+ {
1849
+ result = val[0] << @builder.string_internal(val[1])
1850
+ }
1851
+
1852
+ qsym_list: # nothing
1853
+ {
1854
+ result = []
1855
+ }
1856
+ | qsym_list tSTRING_CONTENT tSPACE
1857
+ {
1858
+ result = val[0] << @builder.symbol_internal(val[1])
1859
+ }
1860
+
1861
+ string_contents: # nothing
1862
+ {
1863
+ result = []
1864
+ }
1865
+ | string_contents string_content
1866
+ {
1867
+ result = val[0] << val[1]
1868
+ }
1869
+
1870
+ xstring_contents: # nothing
1871
+ {
1872
+ result = []
1873
+ }
1874
+ | xstring_contents string_content
1875
+ {
1876
+ result = val[0] << val[1]
1877
+ }
1878
+
1879
+ regexp_contents: # nothing
1880
+ {
1881
+ result = []
1882
+ }
1883
+ | regexp_contents string_content
1884
+ {
1885
+ result = val[0] << val[1]
1886
+ }
1887
+
1888
+ string_content: tSTRING_CONTENT
1889
+ {
1890
+ result = @builder.string_internal(val[0])
1891
+ }
1892
+ | tSTRING_DVAR string_dvar
1893
+ {
1894
+ result = val[1]
1895
+ }
1896
+ | tSTRING_DBEG
1897
+ {
1898
+ @lexer.cmdarg.push(false)
1899
+ @lexer.cond.push(false)
1900
+ }
1901
+ compstmt tSTRING_DEND
1902
+ {
1903
+ @lexer.cmdarg.pop
1904
+ @lexer.cond.pop
1905
+
1906
+ result = @builder.begin(val[0], val[2], val[3])
1907
+ }
1908
+
1909
+ string_dvar: tGVAR
1910
+ {
1911
+ result = @builder.gvar(val[0])
1912
+ }
1913
+ | tIVAR
1914
+ {
1915
+ result = @builder.ivar(val[0])
1916
+ }
1917
+ | tCVAR
1918
+ {
1919
+ result = @builder.cvar(val[0])
1920
+ }
1921
+ | tNUMPARAM
1922
+ {
1923
+ result = @builder.numparam(val[0])
1924
+ }
1925
+ | backref
1926
+
1927
+ symbol: ssym
1928
+ | dsym
1929
+
1930
+ ssym: tSYMBOL
1931
+ {
1932
+ @lexer.state = :expr_end
1933
+ result = @builder.symbol(val[0])
1934
+ }
1935
+
1936
+ dsym: tSYMBEG string_contents tSTRING_END
1937
+ {
1938
+ @lexer.state = :expr_end
1939
+ result = @builder.symbol_compose(val[0], val[1], val[2])
1940
+ }
1941
+
1942
+ numeric: simple_numeric
1943
+ {
1944
+ result = val[0]
1945
+ }
1946
+ | tUNARY_NUM simple_numeric =tLOWEST
1947
+ {
1948
+ if @builder.respond_to? :negate
1949
+ # AST builder interface compatibility
1950
+ result = @builder.negate(val[0], val[1])
1951
+ else
1952
+ result = @builder.unary_num(val[0], val[1])
1953
+ end
1954
+ }
1955
+
1956
+ simple_numeric: tINTEGER
1957
+ {
1958
+ @lexer.state = :expr_end
1959
+ result = @builder.integer(val[0])
1960
+ }
1961
+ | tFLOAT
1962
+ {
1963
+ @lexer.state = :expr_end
1964
+ result = @builder.float(val[0])
1965
+ }
1966
+ | tRATIONAL
1967
+ {
1968
+ @lexer.state = :expr_end
1969
+ result = @builder.rational(val[0])
1970
+ }
1971
+ | tIMAGINARY
1972
+ {
1973
+ @lexer.state = :expr_end
1974
+ result = @builder.complex(val[0])
1975
+ }
1976
+
1977
+ user_variable: tIDENTIFIER
1978
+ {
1979
+ result = @builder.ident(val[0])
1980
+ }
1981
+ | tIVAR
1982
+ {
1983
+ result = @builder.ivar(val[0])
1984
+ }
1985
+ | tGVAR
1986
+ {
1987
+ result = @builder.gvar(val[0])
1988
+ }
1989
+ | tCONSTANT
1990
+ {
1991
+ result = @builder.const(val[0])
1992
+ }
1993
+ | tCVAR
1994
+ {
1995
+ result = @builder.cvar(val[0])
1996
+ }
1997
+ | tNUMPARAM
1998
+ {
1999
+ result = @builder.numparam(val[0])
2000
+ }
2001
+
2002
+ keyword_variable: kNIL
2003
+ {
2004
+ result = @builder.nil(val[0])
2005
+ }
2006
+ | kSELF
2007
+ {
2008
+ result = @builder.self(val[0])
2009
+ }
2010
+ | kTRUE
2011
+ {
2012
+ result = @builder.true(val[0])
2013
+ }
2014
+ | kFALSE
2015
+ {
2016
+ result = @builder.false(val[0])
2017
+ }
2018
+ | k__FILE__
2019
+ {
2020
+ result = @builder.__FILE__(val[0])
2021
+ }
2022
+ | k__LINE__
2023
+ {
2024
+ result = @builder.__LINE__(val[0])
2025
+ }
2026
+ | k__ENCODING__
2027
+ {
2028
+ result = @builder.__ENCODING__(val[0])
2029
+ }
2030
+
2031
+ var_ref: user_variable
2032
+ {
2033
+ result = @builder.accessible(val[0])
2034
+ }
2035
+ | keyword_variable
2036
+ {
2037
+ result = @builder.accessible(val[0])
2038
+ }
2039
+
2040
+ var_lhs: user_variable
2041
+ {
2042
+ result = @builder.assignable(val[0])
2043
+ }
2044
+ | keyword_variable
2045
+ {
2046
+ result = @builder.assignable(val[0])
2047
+ }
2048
+
2049
+ backref: tNTH_REF
2050
+ {
2051
+ result = @builder.nth_ref(val[0])
2052
+ }
2053
+ | tBACK_REF
2054
+ {
2055
+ result = @builder.back_ref(val[0])
2056
+ }
2057
+
2058
+ superclass: tLT
2059
+ {
2060
+ @lexer.state = :expr_value
2061
+ }
2062
+ expr_value term
2063
+ {
2064
+ result = [ val[0], val[2] ]
2065
+ }
2066
+ | # nothing
2067
+ {
2068
+ result = nil
2069
+ }
2070
+
2071
+ f_arglist: tLPAREN2 f_args rparen
2072
+ {
2073
+ result = @builder.args(val[0], val[1], val[2])
2074
+
2075
+ @lexer.state = :expr_value
2076
+ }
2077
+ | {
2078
+ result = @lexer.in_kwarg
2079
+ @lexer.in_kwarg = true
2080
+ }
2081
+ f_args term
2082
+ {
2083
+ @lexer.in_kwarg = val[0]
2084
+ result = @builder.args(nil, val[1], nil)
2085
+ }
2086
+
2087
+ args_tail: f_kwarg tCOMMA f_kwrest opt_f_block_arg
2088
+ {
2089
+ result = val[0].concat(val[2]).concat(val[3])
2090
+ }
2091
+ | f_kwarg opt_f_block_arg
2092
+ {
2093
+ result = val[0].concat(val[1])
2094
+ }
2095
+ | f_kwrest opt_f_block_arg
2096
+ {
2097
+ result = val[0].concat(val[1])
2098
+ }
2099
+ | f_no_kwarg opt_f_block_arg
2100
+ {
2101
+ result = val[0].concat(val[1])
2102
+ }
2103
+ | f_block_arg
2104
+ {
2105
+ result = [ val[0] ]
2106
+ }
2107
+
2108
+ opt_args_tail: tCOMMA args_tail
2109
+ {
2110
+ result = val[1]
2111
+ }
2112
+ | # nothing
2113
+ {
2114
+ result = []
2115
+ }
2116
+
2117
+ f_args: f_arg tCOMMA f_optarg tCOMMA f_rest_arg opt_args_tail
2118
+ {
2119
+ result = val[0].
2120
+ concat(val[2]).
2121
+ concat(val[4]).
2122
+ concat(val[5])
2123
+ }
2124
+ | f_arg tCOMMA f_optarg tCOMMA f_rest_arg tCOMMA f_arg opt_args_tail
2125
+ {
2126
+ result = val[0].
2127
+ concat(val[2]).
2128
+ concat(val[4]).
2129
+ concat(val[6]).
2130
+ concat(val[7])
2131
+ }
2132
+ | f_arg tCOMMA f_optarg opt_args_tail
2133
+ {
2134
+ result = val[0].
2135
+ concat(val[2]).
2136
+ concat(val[3])
2137
+ }
2138
+ | f_arg tCOMMA f_optarg tCOMMA f_arg opt_args_tail
2139
+ {
2140
+ result = val[0].
2141
+ concat(val[2]).
2142
+ concat(val[4]).
2143
+ concat(val[5])
2144
+ }
2145
+ | f_arg tCOMMA f_rest_arg opt_args_tail
2146
+ {
2147
+ result = val[0].
2148
+ concat(val[2]).
2149
+ concat(val[3])
2150
+ }
2151
+ | f_arg tCOMMA f_rest_arg tCOMMA f_arg opt_args_tail
2152
+ {
2153
+ result = val[0].
2154
+ concat(val[2]).
2155
+ concat(val[4]).
2156
+ concat(val[5])
2157
+ }
2158
+ | f_arg opt_args_tail
2159
+ {
2160
+ result = val[0].
2161
+ concat(val[1])
2162
+ }
2163
+ | f_optarg tCOMMA f_rest_arg opt_args_tail
2164
+ {
2165
+ result = val[0].
2166
+ concat(val[2]).
2167
+ concat(val[3])
2168
+ }
2169
+ | f_optarg tCOMMA f_rest_arg tCOMMA f_arg opt_args_tail
2170
+ {
2171
+ result = val[0].
2172
+ concat(val[2]).
2173
+ concat(val[4]).
2174
+ concat(val[5])
2175
+ }
2176
+ | f_optarg opt_args_tail
2177
+ {
2178
+ result = val[0].
2179
+ concat(val[1])
2180
+ }
2181
+ | f_optarg tCOMMA f_arg opt_args_tail
2182
+ {
2183
+ result = val[0].
2184
+ concat(val[2]).
2185
+ concat(val[3])
2186
+ }
2187
+ | f_rest_arg opt_args_tail
2188
+ {
2189
+ result = val[0].
2190
+ concat(val[1])
2191
+ }
2192
+ | f_rest_arg tCOMMA f_arg opt_args_tail
2193
+ {
2194
+ result = val[0].
2195
+ concat(val[2]).
2196
+ concat(val[3])
2197
+ }
2198
+ | args_tail
2199
+ {
2200
+ result = val[0]
2201
+ }
2202
+ | # nothing
2203
+ {
2204
+ result = []
2205
+ }
2206
+
2207
+ f_bad_arg: tCONSTANT
2208
+ {
2209
+ diagnostic :error, :argument_const, nil, val[0]
2210
+ }
2211
+ | tIVAR
2212
+ {
2213
+ diagnostic :error, :argument_ivar, nil, val[0]
2214
+ }
2215
+ | tGVAR
2216
+ {
2217
+ diagnostic :error, :argument_gvar, nil, val[0]
2218
+ }
2219
+ | tCVAR
2220
+ {
2221
+ diagnostic :error, :argument_cvar, nil, val[0]
2222
+ }
2223
+
2224
+ f_norm_arg: f_bad_arg
2225
+ | tIDENTIFIER
2226
+ {
2227
+ @static_env.declare val[0][0]
2228
+
2229
+ @lexer.max_numparam_stack.cant_have_numparams!
2230
+
2231
+ result = val[0]
2232
+ }
2233
+
2234
+ f_arg_asgn: f_norm_arg
2235
+ {
2236
+ result = val[0]
2237
+ }
2238
+
2239
+ f_arg_item: f_arg_asgn
2240
+ {
2241
+ result = @builder.arg(val[0])
2242
+ }
2243
+ | tLPAREN f_margs rparen
2244
+ {
2245
+ result = @builder.multi_lhs(val[0], val[1], val[2])
2246
+ }
2247
+
2248
+ f_arg: f_arg_item
2249
+ {
2250
+ result = [ val[0] ]
2251
+ }
2252
+ | f_arg tCOMMA f_arg_item
2253
+ {
2254
+ result = val[0] << val[2]
2255
+ }
2256
+
2257
+ f_label: tLABEL
2258
+ {
2259
+ check_kwarg_name(val[0])
2260
+
2261
+ @static_env.declare val[0][0]
2262
+
2263
+ @lexer.max_numparam_stack.cant_have_numparams!
2264
+
2265
+ result = val[0]
2266
+ }
2267
+
2268
+ f_kw: f_label arg_value
2269
+ {
2270
+ result = @builder.kwoptarg(val[0], val[1])
2271
+ }
2272
+ | f_label
2273
+ {
2274
+ result = @builder.kwarg(val[0])
2275
+ }
2276
+
2277
+ f_block_kw: f_label primary_value
2278
+ {
2279
+ result = @builder.kwoptarg(val[0], val[1])
2280
+ }
2281
+ | f_label
2282
+ {
2283
+ result = @builder.kwarg(val[0])
2284
+ }
2285
+
2286
+ f_block_kwarg: f_block_kw
2287
+ {
2288
+ result = [ val[0] ]
2289
+ }
2290
+ | f_block_kwarg tCOMMA f_block_kw
2291
+ {
2292
+ result = val[0] << val[2]
2293
+ }
2294
+
2295
+ f_kwarg: f_kw
2296
+ {
2297
+ result = [ val[0] ]
2298
+ }
2299
+ | f_kwarg tCOMMA f_kw
2300
+ {
2301
+ result = val[0] << val[2]
2302
+ }
2303
+
2304
+ kwrest_mark: tPOW | tDSTAR
2305
+
2306
+ f_no_kwarg: kwrest_mark kNIL
2307
+ {
2308
+ result = [ @builder.kwnilarg(val[0], val[1]) ]
2309
+ }
2310
+
2311
+ f_kwrest: kwrest_mark tIDENTIFIER
2312
+ {
2313
+ @static_env.declare val[1][0]
2314
+
2315
+ result = [ @builder.kwrestarg(val[0], val[1]) ]
2316
+ }
2317
+ | kwrest_mark
2318
+ {
2319
+ result = [ @builder.kwrestarg(val[0]) ]
2320
+ }
2321
+
2322
+ f_opt: f_arg_asgn tEQL arg_value
2323
+ {
2324
+ result = @builder.optarg(val[0], val[1], val[2])
2325
+ }
2326
+
2327
+ f_block_opt: f_arg_asgn tEQL primary_value
2328
+ {
2329
+ result = @builder.optarg(val[0], val[1], val[2])
2330
+ }
2331
+
2332
+ f_block_optarg: f_block_opt
2333
+ {
2334
+ result = [ val[0] ]
2335
+ }
2336
+ | f_block_optarg tCOMMA f_block_opt
2337
+ {
2338
+ result = val[0] << val[2]
2339
+ }
2340
+
2341
+ f_optarg: f_opt
2342
+ {
2343
+ result = [ val[0] ]
2344
+ }
2345
+ | f_optarg tCOMMA f_opt
2346
+ {
2347
+ result = val[0] << val[2]
2348
+ }
2349
+
2350
+ restarg_mark: tSTAR2 | tSTAR
2351
+
2352
+ f_rest_arg: restarg_mark tIDENTIFIER
2353
+ {
2354
+ @static_env.declare val[1][0]
2355
+
2356
+ result = [ @builder.restarg(val[0], val[1]) ]
2357
+ }
2358
+ | restarg_mark
2359
+ {
2360
+ result = [ @builder.restarg(val[0]) ]
2361
+ }
2362
+
2363
+ blkarg_mark: tAMPER2 | tAMPER
2364
+
2365
+ f_block_arg: blkarg_mark tIDENTIFIER
2366
+ {
2367
+ @static_env.declare val[1][0]
2368
+
2369
+ result = @builder.blockarg(val[0], val[1])
2370
+ }
2371
+
2372
+ opt_f_block_arg: tCOMMA f_block_arg
2373
+ {
2374
+ result = [ val[1] ]
2375
+ }
2376
+ |
2377
+ {
2378
+ result = []
2379
+ }
2380
+
2381
+ singleton: var_ref
2382
+ | tLPAREN2 expr rparen
2383
+ {
2384
+ result = val[1]
2385
+ }
2386
+
2387
+ assoc_list: # nothing
2388
+ {
2389
+ result = []
2390
+ }
2391
+ | assocs trailer
2392
+
2393
+ assocs: assoc
2394
+ {
2395
+ result = [ val[0] ]
2396
+ }
2397
+ | assocs tCOMMA assoc
2398
+ {
2399
+ result = val[0] << val[2]
2400
+ }
2401
+
2402
+ assoc: arg_value tASSOC arg_value
2403
+ {
2404
+ result = @builder.pair(val[0], val[1], val[2])
2405
+ }
2406
+ | tLABEL arg_value
2407
+ {
2408
+ result = @builder.pair_keyword(val[0], val[1])
2409
+ }
2410
+ | tSTRING_BEG string_contents tLABEL_END arg_value
2411
+ {
2412
+ result = @builder.pair_quoted(val[0], val[1], val[2], val[3])
2413
+ }
2414
+ | tDSTAR arg_value
2415
+ {
2416
+ result = @builder.kwsplat(val[0], val[1])
2417
+ }
2418
+
2419
+ operation: tIDENTIFIER | tCONSTANT | tFID
2420
+ operation2: tIDENTIFIER | tCONSTANT | tFID | op
2421
+ operation3: tIDENTIFIER | tFID | op
2422
+ dot_or_colon: call_op | tCOLON2
2423
+ call_op: tDOT
2424
+ {
2425
+ result = [:dot, val[0][1]]
2426
+ }
2427
+ | tANDDOT
2428
+ {
2429
+ result = [:anddot, val[0][1]]
2430
+ }
2431
+ opt_terms: | terms
2432
+ opt_nl: | tNL
2433
+ rparen: opt_nl tRPAREN
2434
+ {
2435
+ result = val[1]
2436
+ }
2437
+ rbracket: opt_nl tRBRACK
2438
+ {
2439
+ result = val[1]
2440
+ }
2441
+ trailer: | tNL | tCOMMA
2442
+
2443
+ term: tSEMI
2444
+ {
2445
+ yyerrok
2446
+ }
2447
+ | tNL
2448
+
2449
+ terms: term
2450
+ | terms tSEMI
2451
+
2452
+ none: # nothing
2453
+ {
2454
+ result = nil
2455
+ }
2456
+ end
2457
+
2458
+ ---- header
2459
+
2460
+ require 'parser'
2461
+
2462
+ ---- inner
2463
+
2464
+ def version
2465
+ 27
2466
+ end
2467
+
2468
+ def default_encoding
2469
+ Encoding::UTF_8
2470
+ end