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