brakeman 4.4.0 → 5.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (732) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES.md +271 -107
  3. data/README.md +19 -12
  4. data/bundle/load.rb +14 -14
  5. data/bundle/ruby/{2.5.0 → 2.7.0}/gems/erubis-2.7.0/CHANGES.txt +0 -0
  6. data/bundle/ruby/{2.5.0 → 2.7.0}/gems/erubis-2.7.0/MIT-LICENSE +0 -0
  7. data/bundle/ruby/{2.5.0 → 2.7.0}/gems/erubis-2.7.0/README.txt +0 -0
  8. data/bundle/ruby/{2.5.0 → 2.7.0}/gems/erubis-2.7.0/contrib/erubis +0 -0
  9. data/bundle/ruby/{2.5.0 → 2.7.0}/gems/erubis-2.7.0/contrib/erubis-run.rb +0 -0
  10. data/bundle/ruby/{2.5.0 → 2.7.0}/gems/erubis-2.7.0/contrib/inline-require +0 -0
  11. data/bundle/ruby/{2.5.0 → 2.7.0}/gems/erubis-2.7.0/lib/erubis.rb +0 -0
  12. data/bundle/ruby/{2.5.0 → 2.7.0}/gems/erubis-2.7.0/lib/erubis/context.rb +0 -0
  13. data/bundle/ruby/{2.5.0 → 2.7.0}/gems/erubis-2.7.0/lib/erubis/converter.rb +0 -0
  14. data/bundle/ruby/{2.5.0 → 2.7.0}/gems/erubis-2.7.0/lib/erubis/engine.rb +0 -0
  15. data/bundle/ruby/{2.5.0 → 2.7.0}/gems/erubis-2.7.0/lib/erubis/engine/ec.rb +0 -0
  16. data/bundle/ruby/{2.5.0 → 2.7.0}/gems/erubis-2.7.0/lib/erubis/engine/ecpp.rb +0 -0
  17. data/bundle/ruby/{2.5.0 → 2.7.0}/gems/erubis-2.7.0/lib/erubis/engine/ejava.rb +0 -0
  18. data/bundle/ruby/{2.5.0 → 2.7.0}/gems/erubis-2.7.0/lib/erubis/engine/ejavascript.rb +0 -0
  19. data/bundle/ruby/{2.5.0 → 2.7.0}/gems/erubis-2.7.0/lib/erubis/engine/enhanced.rb +0 -0
  20. data/bundle/ruby/{2.5.0 → 2.7.0}/gems/erubis-2.7.0/lib/erubis/engine/eperl.rb +0 -0
  21. data/bundle/ruby/{2.5.0 → 2.7.0}/gems/erubis-2.7.0/lib/erubis/engine/ephp.rb +0 -0
  22. data/bundle/ruby/{2.5.0 → 2.7.0}/gems/erubis-2.7.0/lib/erubis/engine/eruby.rb +0 -0
  23. data/bundle/ruby/{2.5.0 → 2.7.0}/gems/erubis-2.7.0/lib/erubis/engine/escheme.rb +0 -0
  24. data/bundle/ruby/{2.5.0 → 2.7.0}/gems/erubis-2.7.0/lib/erubis/engine/optimized.rb +0 -0
  25. data/bundle/ruby/{2.5.0 → 2.7.0}/gems/erubis-2.7.0/lib/erubis/enhancer.rb +0 -0
  26. data/bundle/ruby/{2.5.0 → 2.7.0}/gems/erubis-2.7.0/lib/erubis/error.rb +0 -0
  27. data/bundle/ruby/{2.5.0 → 2.7.0}/gems/erubis-2.7.0/lib/erubis/evaluator.rb +0 -0
  28. data/bundle/ruby/{2.5.0 → 2.7.0}/gems/erubis-2.7.0/lib/erubis/generator.rb +0 -0
  29. data/bundle/ruby/{2.5.0 → 2.7.0}/gems/erubis-2.7.0/lib/erubis/helper.rb +0 -0
  30. data/bundle/ruby/{2.5.0 → 2.7.0}/gems/erubis-2.7.0/lib/erubis/helpers/rails_form_helper.rb +0 -0
  31. data/bundle/ruby/{2.5.0 → 2.7.0}/gems/erubis-2.7.0/lib/erubis/helpers/rails_helper.rb +0 -0
  32. data/bundle/ruby/{2.5.0 → 2.7.0}/gems/erubis-2.7.0/lib/erubis/local-setting.rb +0 -0
  33. data/bundle/ruby/{2.5.0 → 2.7.0}/gems/erubis-2.7.0/lib/erubis/main.rb +0 -0
  34. data/bundle/ruby/{2.5.0 → 2.7.0}/gems/erubis-2.7.0/lib/erubis/preprocessing.rb +0 -0
  35. data/bundle/ruby/{2.5.0 → 2.7.0}/gems/erubis-2.7.0/lib/erubis/tiny.rb +0 -0
  36. data/bundle/ruby/{2.5.0 → 2.7.0}/gems/erubis-2.7.0/lib/erubis/util.rb +0 -0
  37. data/bundle/ruby/{2.5.0 → 2.7.0}/gems/erubis-2.7.0/setup.rb +0 -0
  38. data/bundle/ruby/{2.5.0/gems/haml-4.0.7 → 2.7.0/gems/haml-5.2.1}/CHANGELOG.md +138 -4
  39. data/bundle/ruby/{2.5.0/gems/haml-4.0.7 → 2.7.0/gems/haml-5.2.1}/FAQ.md +4 -14
  40. data/bundle/ruby/2.7.0/gems/haml-5.2.1/Gemfile +16 -0
  41. data/bundle/ruby/{2.5.0/gems/sass-3.4.25/vendor/listen/LICENSE → 2.7.0/gems/haml-5.2.1/MIT-LICENSE} +1 -1
  42. data/bundle/ruby/{2.5.0/gems/haml-4.0.7 → 2.7.0/gems/haml-5.2.1}/README.md +79 -42
  43. data/bundle/ruby/{2.5.0/gems/haml-4.0.7 → 2.7.0/gems/haml-5.2.1}/REFERENCE.md +150 -71
  44. data/bundle/ruby/2.7.0/gems/haml-5.2.1/TODO +24 -0
  45. data/bundle/ruby/2.7.0/gems/haml-5.2.1/haml.gemspec +45 -0
  46. data/bundle/ruby/{2.5.0/gems/haml-4.0.7 → 2.7.0/gems/haml-5.2.1}/lib/haml.rb +2 -0
  47. data/bundle/ruby/2.7.0/gems/haml-5.2.1/lib/haml/attribute_builder.rb +164 -0
  48. data/bundle/ruby/2.7.0/gems/haml-5.2.1/lib/haml/attribute_compiler.rb +235 -0
  49. data/bundle/ruby/2.7.0/gems/haml-5.2.1/lib/haml/attribute_parser.rb +150 -0
  50. data/bundle/ruby/{2.5.0/gems/haml-4.0.7 → 2.7.0/gems/haml-5.2.1}/lib/haml/buffer.rb +25 -132
  51. data/bundle/ruby/2.7.0/gems/haml-5.2.1/lib/haml/compiler.rb +330 -0
  52. data/bundle/ruby/{2.5.0/gems/haml-4.0.7 → 2.7.0/gems/haml-5.2.1}/lib/haml/engine.rb +34 -41
  53. data/bundle/ruby/2.7.0/gems/haml-5.2.1/lib/haml/error.rb +65 -0
  54. data/bundle/ruby/2.7.0/gems/haml-5.2.1/lib/haml/escapable.rb +77 -0
  55. data/bundle/ruby/{2.5.0/gems/haml-4.0.7 → 2.7.0/gems/haml-5.2.1}/lib/haml/exec.rb +38 -20
  56. data/bundle/ruby/{2.5.0/gems/haml-4.0.7 → 2.7.0/gems/haml-5.2.1}/lib/haml/filters.rb +22 -27
  57. data/bundle/ruby/2.7.0/gems/haml-5.2.1/lib/haml/generator.rb +42 -0
  58. data/bundle/ruby/{2.5.0/gems/haml-4.0.7 → 2.7.0/gems/haml-5.2.1}/lib/haml/helpers.rb +134 -89
  59. data/bundle/ruby/{2.5.0/gems/haml-4.0.7 → 2.7.0/gems/haml-5.2.1}/lib/haml/helpers/action_view_extensions.rb +4 -2
  60. data/bundle/ruby/{2.5.0/gems/haml-4.0.7 → 2.7.0/gems/haml-5.2.1}/lib/haml/helpers/action_view_mods.rb +45 -60
  61. data/bundle/ruby/{2.5.0/gems/haml-4.0.7 → 2.7.0/gems/haml-5.2.1}/lib/haml/helpers/action_view_xss_mods.rb +2 -0
  62. data/bundle/ruby/2.7.0/gems/haml-5.2.1/lib/haml/helpers/safe_erubi_template.rb +20 -0
  63. data/bundle/ruby/{2.5.0/gems/haml-4.0.7 → 2.7.0/gems/haml-5.2.1}/lib/haml/helpers/safe_erubis_template.rb +5 -1
  64. data/bundle/ruby/{2.5.0/gems/haml-4.0.7 → 2.7.0/gems/haml-5.2.1}/lib/haml/helpers/xss_mods.rb +23 -13
  65. data/bundle/ruby/{2.5.0/gems/haml-4.0.7 → 2.7.0/gems/haml-5.2.1}/lib/haml/options.rb +63 -69
  66. data/bundle/ruby/{2.5.0/gems/haml-4.0.7 → 2.7.0/gems/haml-5.2.1}/lib/haml/parser.rb +319 -227
  67. data/bundle/ruby/2.7.0/gems/haml-5.2.1/lib/haml/plugin.rb +37 -0
  68. data/bundle/ruby/2.7.0/gems/haml-5.2.1/lib/haml/railtie.rb +48 -0
  69. data/bundle/ruby/{2.5.0/gems/haml-4.0.7 → 2.7.0/gems/haml-5.2.1}/lib/haml/sass_rails_filter.rb +18 -4
  70. data/bundle/ruby/{2.5.0/gems/haml-4.0.7 → 2.7.0/gems/haml-5.2.1}/lib/haml/template.rb +13 -6
  71. data/bundle/ruby/{2.5.0/gems/haml-4.0.7 → 2.7.0/gems/haml-5.2.1}/lib/haml/template/options.rb +13 -2
  72. data/bundle/ruby/2.7.0/gems/haml-5.2.1/lib/haml/temple_engine.rb +123 -0
  73. data/bundle/ruby/2.7.0/gems/haml-5.2.1/lib/haml/temple_line_counter.rb +30 -0
  74. data/bundle/ruby/2.7.0/gems/haml-5.2.1/lib/haml/util.rb +258 -0
  75. data/bundle/ruby/2.7.0/gems/haml-5.2.1/lib/haml/version.rb +5 -0
  76. data/bundle/ruby/2.7.0/gems/haml-5.2.1/yard/default/fulldoc/html/css/common.sass +15 -0
  77. data/bundle/ruby/2.7.0/gems/haml-5.2.1/yard/default/layout/html/footer.erb +12 -0
  78. data/bundle/ruby/{2.5.0/gems/highline-1.7.10 → 2.7.0/gems/highline-2.0.3}/AUTHORS +0 -0
  79. data/bundle/ruby/{2.5.0/gems/highline-1.7.10 → 2.7.0/gems/highline-2.0.3}/COPYING +0 -0
  80. data/bundle/ruby/{2.5.0/gems/highline-1.7.10 → 2.7.0/gems/highline-2.0.3}/Changelog.md +214 -15
  81. data/bundle/ruby/2.7.0/gems/highline-2.0.3/Gemfile +22 -0
  82. data/bundle/ruby/{2.5.0/gems/highline-1.7.10 → 2.7.0/gems/highline-2.0.3}/LICENSE +0 -0
  83. data/bundle/ruby/2.7.0/gems/highline-2.0.3/README.md +202 -0
  84. data/bundle/ruby/{2.5.0/gems/highline-1.7.10 → 2.7.0/gems/highline-2.0.3}/TODO +0 -0
  85. data/bundle/ruby/2.7.0/gems/highline-2.0.3/appveyor.yml +37 -0
  86. data/bundle/ruby/2.7.0/gems/highline-2.0.3/highline.gemspec +35 -0
  87. data/bundle/ruby/2.7.0/gems/highline-2.0.3/lib/highline.rb +650 -0
  88. data/bundle/ruby/2.7.0/gems/highline-2.0.3/lib/highline/builtin_styles.rb +129 -0
  89. data/bundle/ruby/{2.5.0/gems/highline-1.7.10 → 2.7.0/gems/highline-2.0.3}/lib/highline/color_scheme.rb +49 -32
  90. data/bundle/ruby/2.7.0/gems/highline-2.0.3/lib/highline/compatibility.rb +23 -0
  91. data/bundle/ruby/2.7.0/gems/highline-2.0.3/lib/highline/custom_errors.rb +57 -0
  92. data/bundle/ruby/2.7.0/gems/highline-2.0.3/lib/highline/import.rb +48 -0
  93. data/bundle/ruby/2.7.0/gems/highline-2.0.3/lib/highline/io_console_compatible.rb +37 -0
  94. data/bundle/ruby/2.7.0/gems/highline-2.0.3/lib/highline/list.rb +177 -0
  95. data/bundle/ruby/2.7.0/gems/highline-2.0.3/lib/highline/list_renderer.rb +261 -0
  96. data/bundle/ruby/2.7.0/gems/highline-2.0.3/lib/highline/menu.rb +576 -0
  97. data/bundle/ruby/2.7.0/gems/highline-2.0.3/lib/highline/menu/item.rb +32 -0
  98. data/bundle/ruby/2.7.0/gems/highline-2.0.3/lib/highline/paginator.rb +52 -0
  99. data/bundle/ruby/{2.5.0/gems/highline-1.7.10 → 2.7.0/gems/highline-2.0.3}/lib/highline/question.rb +281 -131
  100. data/bundle/ruby/2.7.0/gems/highline-2.0.3/lib/highline/question/answer_converter.rb +103 -0
  101. data/bundle/ruby/2.7.0/gems/highline-2.0.3/lib/highline/question_asker.rb +150 -0
  102. data/bundle/ruby/2.7.0/gems/highline-2.0.3/lib/highline/simulate.rb +59 -0
  103. data/bundle/ruby/2.7.0/gems/highline-2.0.3/lib/highline/statement.rb +88 -0
  104. data/bundle/ruby/2.7.0/gems/highline-2.0.3/lib/highline/string.rb +36 -0
  105. data/bundle/ruby/2.7.0/gems/highline-2.0.3/lib/highline/string_extensions.rb +130 -0
  106. data/bundle/ruby/2.7.0/gems/highline-2.0.3/lib/highline/style.rb +325 -0
  107. data/bundle/ruby/2.7.0/gems/highline-2.0.3/lib/highline/template_renderer.rb +62 -0
  108. data/bundle/ruby/2.7.0/gems/highline-2.0.3/lib/highline/terminal.rb +190 -0
  109. data/bundle/ruby/2.7.0/gems/highline-2.0.3/lib/highline/terminal/io_console.rb +36 -0
  110. data/bundle/ruby/2.7.0/gems/highline-2.0.3/lib/highline/terminal/ncurses.rb +38 -0
  111. data/bundle/ruby/2.7.0/gems/highline-2.0.3/lib/highline/terminal/unix_stty.rb +51 -0
  112. data/bundle/ruby/{2.5.0/gems/highline-1.7.10 → 2.7.0/gems/highline-2.0.3}/lib/highline/version.rb +3 -1
  113. data/bundle/ruby/2.7.0/gems/highline-2.0.3/lib/highline/wrapper.rb +53 -0
  114. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/Gemfile +6 -0
  115. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/LICENSE.txt +22 -0
  116. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/NEWS.md +141 -0
  117. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/README.md +60 -0
  118. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/attlistdecl.rb +63 -0
  119. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/attribute.rb +205 -0
  120. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/cdata.rb +68 -0
  121. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/child.rb +97 -0
  122. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/comment.rb +80 -0
  123. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/doctype.rb +287 -0
  124. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/document.rb +291 -0
  125. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/dtd/attlistdecl.rb +11 -0
  126. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/dtd/dtd.rb +47 -0
  127. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/dtd/elementdecl.rb +18 -0
  128. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/dtd/entitydecl.rb +57 -0
  129. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/dtd/notationdecl.rb +40 -0
  130. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/element.rb +1269 -0
  131. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/encoding.rb +51 -0
  132. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/entity.rb +171 -0
  133. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/formatters/default.rb +116 -0
  134. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/formatters/pretty.rb +142 -0
  135. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/formatters/transitive.rb +58 -0
  136. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/functions.rb +447 -0
  137. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/instruction.rb +79 -0
  138. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/light/node.rb +196 -0
  139. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/namespace.rb +59 -0
  140. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/node.rb +76 -0
  141. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/output.rb +30 -0
  142. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/parent.rb +166 -0
  143. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/parseexception.rb +52 -0
  144. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/parsers/baseparser.rb +594 -0
  145. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/parsers/lightparser.rb +59 -0
  146. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/parsers/pullparser.rb +197 -0
  147. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/parsers/sax2parser.rb +273 -0
  148. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/parsers/streamparser.rb +61 -0
  149. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/parsers/treeparser.rb +101 -0
  150. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/parsers/ultralightparser.rb +57 -0
  151. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/parsers/xpathparser.rb +675 -0
  152. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/quickpath.rb +266 -0
  153. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/rexml.rb +32 -0
  154. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/sax2listener.rb +98 -0
  155. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/security.rb +28 -0
  156. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/source.rb +298 -0
  157. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/streamlistener.rb +93 -0
  158. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/text.rb +424 -0
  159. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/undefinednamespaceexception.rb +9 -0
  160. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/validation/relaxng.rb +539 -0
  161. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/validation/validation.rb +144 -0
  162. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/validation/validationexception.rb +10 -0
  163. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/xmldecl.rb +130 -0
  164. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/xmltokens.rb +85 -0
  165. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/xpath.rb +81 -0
  166. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/lib/rexml/xpath_parser.rb +968 -0
  167. data/bundle/ruby/2.7.0/gems/rexml-3.2.4/rexml.gemspec +84 -0
  168. data/bundle/ruby/{2.5.0/gems/ruby2ruby-2.4.1 → 2.7.0/gems/ruby2ruby-2.4.4}/History.rdoc +22 -0
  169. data/bundle/ruby/{2.5.0/gems/ruby2ruby-2.4.1 → 2.7.0/gems/ruby2ruby-2.4.4}/Manifest.txt +0 -0
  170. data/bundle/ruby/{2.5.0/gems/ruby2ruby-2.4.1 → 2.7.0/gems/ruby2ruby-2.4.4}/README.rdoc +0 -0
  171. data/bundle/ruby/{2.5.0/gems/ruby2ruby-2.4.1 → 2.7.0/gems/ruby2ruby-2.4.4}/lib/ruby2ruby.rb +118 -110
  172. data/bundle/ruby/{2.5.0/gems/ruby_parser-3.12.0 → 2.7.0/gems/ruby_parser-3.15.1}/History.rdoc +176 -0
  173. data/bundle/ruby/{2.5.0/gems/ruby_parser-3.12.0 → 2.7.0/gems/ruby_parser-3.15.1}/Manifest.txt +7 -4
  174. data/bundle/ruby/{2.5.0/gems/ruby_parser-3.12.0 → 2.7.0/gems/ruby_parser-3.15.1}/README.rdoc +3 -3
  175. data/bundle/ruby/{2.5.0/gems/ruby_parser-3.12.0 → 2.7.0/gems/ruby_parser-3.15.1}/compare/normalize.rb +69 -2
  176. data/bundle/ruby/2.7.0/gems/ruby_parser-3.15.1/debugging.md +57 -0
  177. data/bundle/ruby/{2.5.0/gems/ruby_parser-3.12.0 → 2.7.0/gems/ruby_parser-3.15.1}/lib/rp_extensions.rb +1 -8
  178. data/bundle/ruby/{2.5.0/gems/ruby_parser-3.12.0 → 2.7.0/gems/ruby_parser-3.15.1}/lib/rp_stringscanner.rb +0 -0
  179. data/bundle/ruby/2.7.0/gems/ruby_parser-3.15.1/lib/ruby20_parser.rb +7062 -0
  180. data/bundle/ruby/{2.5.0/gems/ruby_parser-3.12.0/lib/ruby_parser.yy → 2.7.0/gems/ruby_parser-3.15.1/lib/ruby20_parser.y} +728 -604
  181. data/bundle/ruby/2.7.0/gems/ruby_parser-3.15.1/lib/ruby21_parser.rb +7140 -0
  182. data/bundle/ruby/{2.5.0/gems/ruby_parser-3.12.0 → 2.7.0/gems/ruby_parser-3.15.1}/lib/ruby21_parser.y +734 -472
  183. data/bundle/ruby/2.7.0/gems/ruby_parser-3.15.1/lib/ruby22_parser.rb +7160 -0
  184. data/bundle/ruby/{2.5.0/gems/ruby_parser-3.12.0 → 2.7.0/gems/ruby_parser-3.15.1}/lib/ruby22_parser.y +735 -478
  185. data/bundle/ruby/2.7.0/gems/ruby_parser-3.15.1/lib/ruby23_parser.rb +7175 -0
  186. data/bundle/ruby/{2.5.0/gems/ruby_parser-3.12.0 → 2.7.0/gems/ruby_parser-3.15.1}/lib/ruby23_parser.y +736 -479
  187. data/bundle/ruby/2.7.0/gems/ruby_parser-3.15.1/lib/ruby24_parser.rb +7204 -0
  188. data/bundle/ruby/{2.5.0/gems/ruby_parser-3.12.0 → 2.7.0/gems/ruby_parser-3.15.1}/lib/ruby24_parser.y +742 -477
  189. data/bundle/ruby/2.7.0/gems/ruby_parser-3.15.1/lib/ruby25_parser.rb +7204 -0
  190. data/bundle/ruby/{2.5.0/gems/ruby_parser-3.12.0 → 2.7.0/gems/ruby_parser-3.15.1}/lib/ruby25_parser.y +742 -477
  191. data/bundle/ruby/2.7.0/gems/ruby_parser-3.15.1/lib/ruby26_parser.rb +7224 -0
  192. data/bundle/ruby/2.7.0/gems/ruby_parser-3.15.1/lib/ruby26_parser.y +2657 -0
  193. data/bundle/ruby/2.7.0/gems/ruby_parser-3.15.1/lib/ruby27_parser.rb +7224 -0
  194. data/bundle/ruby/2.7.0/gems/ruby_parser-3.15.1/lib/ruby27_parser.y +2657 -0
  195. data/bundle/ruby/2.7.0/gems/ruby_parser-3.15.1/lib/ruby_lexer.rb +1473 -0
  196. data/bundle/ruby/2.7.0/gems/ruby_parser-3.15.1/lib/ruby_lexer.rex +178 -0
  197. data/bundle/ruby/2.7.0/gems/ruby_parser-3.15.1/lib/ruby_lexer.rex.rb +363 -0
  198. data/bundle/ruby/{2.5.0/gems/ruby_parser-3.12.0 → 2.7.0/gems/ruby_parser-3.15.1}/lib/ruby_parser.rb +36 -34
  199. data/bundle/ruby/2.7.0/gems/ruby_parser-3.15.1/lib/ruby_parser.yy +2764 -0
  200. data/bundle/ruby/2.7.0/gems/ruby_parser-3.15.1/lib/ruby_parser_extras.rb +1631 -0
  201. data/bundle/ruby/2.7.0/gems/ruby_parser-3.15.1/tools/munge.rb +222 -0
  202. data/bundle/ruby/2.7.0/gems/ruby_parser-3.15.1/tools/ripper.rb +39 -0
  203. data/bundle/ruby/2.7.0/gems/ruby_parser-legacy-1.0.0/History.rdoc +6 -0
  204. data/bundle/ruby/2.7.0/gems/ruby_parser-legacy-1.0.0/Manifest.txt +19 -0
  205. data/bundle/ruby/2.7.0/gems/ruby_parser-legacy-1.0.0/README.rdoc +54 -0
  206. data/bundle/ruby/2.7.0/gems/ruby_parser-legacy-1.0.0/lib/ruby_parser/legacy.rb +5 -0
  207. data/bundle/ruby/{2.5.0/gems/ruby_parser-3.12.0/lib → 2.7.0/gems/ruby_parser-legacy-1.0.0/lib/ruby_parser/legacy}/ruby18_parser.rb +7 -6
  208. data/bundle/ruby/{2.5.0/gems/ruby_parser-3.12.0/lib → 2.7.0/gems/ruby_parser-legacy-1.0.0/lib/ruby_parser/legacy}/ruby18_parser.y +5 -4
  209. data/bundle/ruby/{2.5.0/gems/ruby_parser-3.12.0/lib → 2.7.0/gems/ruby_parser-legacy-1.0.0/lib/ruby_parser/legacy}/ruby19_parser.rb +7 -6
  210. data/bundle/ruby/{2.5.0/gems/ruby_parser-3.12.0/lib → 2.7.0/gems/ruby_parser-legacy-1.0.0/lib/ruby_parser/legacy}/ruby19_parser.y +5 -4
  211. data/bundle/ruby/{2.5.0/gems/ruby_parser-3.12.0/lib → 2.7.0/gems/ruby_parser-legacy-1.0.0/lib/ruby_parser/legacy}/ruby_lexer.rb +117 -64
  212. data/bundle/ruby/{2.5.0/gems/ruby_parser-3.12.0/lib → 2.7.0/gems/ruby_parser-legacy-1.0.0/lib/ruby_parser/legacy}/ruby_lexer.rex +11 -9
  213. data/bundle/ruby/{2.5.0/gems/ruby_parser-3.12.0/lib → 2.7.0/gems/ruby_parser-legacy-1.0.0/lib/ruby_parser/legacy}/ruby_lexer.rex.rb +10 -10
  214. data/bundle/ruby/2.7.0/gems/ruby_parser-legacy-1.0.0/lib/ruby_parser/legacy/ruby_parser.rb +30 -0
  215. data/bundle/ruby/{2.5.0/gems/ruby_parser-3.12.0/lib → 2.7.0/gems/ruby_parser-legacy-1.0.0/lib/ruby_parser/legacy}/ruby_parser_extras.rb +43 -33
  216. data/bundle/ruby/{2.5.0/gems/safe_yaml-1.0.4 → 2.7.0/gems/safe_yaml-1.0.5}/CHANGES.md +5 -0
  217. data/bundle/ruby/{2.5.0/gems/safe_yaml-1.0.4 → 2.7.0/gems/safe_yaml-1.0.5}/Gemfile +0 -0
  218. data/bundle/ruby/{2.5.0/gems/safe_yaml-1.0.4 → 2.7.0/gems/safe_yaml-1.0.5}/LICENSE.txt +0 -0
  219. data/bundle/ruby/{2.5.0/gems/safe_yaml-1.0.4 → 2.7.0/gems/safe_yaml-1.0.5}/README.md +0 -0
  220. data/bundle/ruby/{2.5.0/gems/safe_yaml-1.0.4 → 2.7.0/gems/safe_yaml-1.0.5}/bundle_install_all_ruby_versions.sh +0 -0
  221. data/bundle/ruby/{2.5.0/gems/safe_yaml-1.0.4 → 2.7.0/gems/safe_yaml-1.0.5}/lib/safe_yaml.rb +0 -0
  222. data/bundle/ruby/{2.5.0/gems/safe_yaml-1.0.4 → 2.7.0/gems/safe_yaml-1.0.5}/lib/safe_yaml/deep.rb +0 -0
  223. data/bundle/ruby/{2.5.0/gems/safe_yaml-1.0.4 → 2.7.0/gems/safe_yaml-1.0.5}/lib/safe_yaml/libyaml_checker.rb +0 -0
  224. data/bundle/ruby/{2.5.0/gems/safe_yaml-1.0.4 → 2.7.0/gems/safe_yaml-1.0.5}/lib/safe_yaml/load.rb +0 -0
  225. data/bundle/ruby/{2.5.0/gems/safe_yaml-1.0.4 → 2.7.0/gems/safe_yaml-1.0.5}/lib/safe_yaml/parse/date.rb +2 -0
  226. data/bundle/ruby/{2.5.0/gems/safe_yaml-1.0.4 → 2.7.0/gems/safe_yaml-1.0.5}/lib/safe_yaml/parse/hexadecimal.rb +0 -0
  227. data/bundle/ruby/{2.5.0/gems/safe_yaml-1.0.4 → 2.7.0/gems/safe_yaml-1.0.5}/lib/safe_yaml/parse/sexagesimal.rb +0 -0
  228. data/bundle/ruby/{2.5.0/gems/safe_yaml-1.0.4 → 2.7.0/gems/safe_yaml-1.0.5}/lib/safe_yaml/psych_handler.rb +0 -0
  229. data/bundle/ruby/{2.5.0/gems/safe_yaml-1.0.4 → 2.7.0/gems/safe_yaml-1.0.5}/lib/safe_yaml/psych_resolver.rb +0 -0
  230. data/bundle/ruby/{2.5.0/gems/safe_yaml-1.0.4 → 2.7.0/gems/safe_yaml-1.0.5}/lib/safe_yaml/resolver.rb +0 -0
  231. data/bundle/ruby/{2.5.0/gems/safe_yaml-1.0.4 → 2.7.0/gems/safe_yaml-1.0.5}/lib/safe_yaml/safe_to_ruby_visitor.rb +0 -0
  232. data/bundle/ruby/2.7.0/gems/safe_yaml-1.0.5/lib/safe_yaml/store.rb +39 -0
  233. data/bundle/ruby/{2.5.0/gems/safe_yaml-1.0.4 → 2.7.0/gems/safe_yaml-1.0.5}/lib/safe_yaml/syck_hack.rb +0 -0
  234. data/bundle/ruby/{2.5.0/gems/safe_yaml-1.0.4 → 2.7.0/gems/safe_yaml-1.0.5}/lib/safe_yaml/syck_node_monkeypatch.rb +0 -0
  235. data/bundle/ruby/{2.5.0/gems/safe_yaml-1.0.4 → 2.7.0/gems/safe_yaml-1.0.5}/lib/safe_yaml/syck_resolver.rb +0 -0
  236. data/bundle/ruby/{2.5.0/gems/safe_yaml-1.0.4 → 2.7.0/gems/safe_yaml-1.0.5}/lib/safe_yaml/transform.rb +0 -0
  237. data/bundle/ruby/{2.5.0/gems/safe_yaml-1.0.4 → 2.7.0/gems/safe_yaml-1.0.5}/lib/safe_yaml/transform/to_boolean.rb +0 -0
  238. data/bundle/ruby/{2.5.0/gems/safe_yaml-1.0.4 → 2.7.0/gems/safe_yaml-1.0.5}/lib/safe_yaml/transform/to_date.rb +0 -0
  239. data/bundle/ruby/{2.5.0/gems/safe_yaml-1.0.4 → 2.7.0/gems/safe_yaml-1.0.5}/lib/safe_yaml/transform/to_float.rb +0 -0
  240. data/bundle/ruby/{2.5.0/gems/safe_yaml-1.0.4 → 2.7.0/gems/safe_yaml-1.0.5}/lib/safe_yaml/transform/to_integer.rb +0 -0
  241. data/bundle/ruby/{2.5.0/gems/safe_yaml-1.0.4 → 2.7.0/gems/safe_yaml-1.0.5}/lib/safe_yaml/transform/to_nil.rb +0 -0
  242. data/bundle/ruby/{2.5.0/gems/safe_yaml-1.0.4 → 2.7.0/gems/safe_yaml-1.0.5}/lib/safe_yaml/transform/to_symbol.rb +0 -0
  243. data/bundle/ruby/{2.5.0/gems/safe_yaml-1.0.4 → 2.7.0/gems/safe_yaml-1.0.5}/lib/safe_yaml/transform/transformation_map.rb +0 -0
  244. data/bundle/ruby/{2.5.0/gems/safe_yaml-1.0.4 → 2.7.0/gems/safe_yaml-1.0.5}/lib/safe_yaml/version.rb +1 -1
  245. data/bundle/ruby/{2.5.0/gems/safe_yaml-1.0.4 → 2.7.0/gems/safe_yaml-1.0.5}/run_specs_all_ruby_versions.sh +0 -0
  246. data/bundle/ruby/{2.5.0/gems/safe_yaml-1.0.4 → 2.7.0/gems/safe_yaml-1.0.5}/safe_yaml.gemspec +0 -0
  247. data/bundle/ruby/{2.5.0/gems/sexp_processor-4.11.0 → 2.7.0/gems/sexp_processor-4.15.2}/History.rdoc +67 -0
  248. data/bundle/ruby/{2.5.0/gems/sexp_processor-4.11.0 → 2.7.0/gems/sexp_processor-4.15.2}/Manifest.txt +1 -0
  249. data/bundle/ruby/{2.5.0/gems/sexp_processor-4.11.0 → 2.7.0/gems/sexp_processor-4.15.2}/README.rdoc +0 -0
  250. data/bundle/ruby/{2.5.0/gems/sexp_processor-4.11.0 → 2.7.0/gems/sexp_processor-4.15.2}/lib/composite_sexp_processor.rb +0 -0
  251. data/bundle/ruby/{2.5.0/gems/sexp_processor-4.11.0 → 2.7.0/gems/sexp_processor-4.15.2}/lib/pt_testcase.rb +15 -17
  252. data/bundle/ruby/2.7.0/gems/sexp_processor-4.15.2/lib/sexp.rb +381 -0
  253. data/bundle/ruby/{2.5.0/gems/sexp_processor-4.11.0/lib/sexp.rb → 2.7.0/gems/sexp_processor-4.15.2/lib/sexp_matcher.rb} +67 -387
  254. data/bundle/ruby/{2.5.0/gems/sexp_processor-4.11.0 → 2.7.0/gems/sexp_processor-4.15.2}/lib/sexp_processor.rb +2 -2
  255. data/bundle/ruby/{2.5.0/gems/sexp_processor-4.11.0 → 2.7.0/gems/sexp_processor-4.15.2}/lib/strict_sexp.rb +3 -3
  256. data/bundle/ruby/{2.5.0/gems/sexp_processor-4.11.0 → 2.7.0/gems/sexp_processor-4.15.2}/lib/unique.rb +0 -0
  257. data/bundle/ruby/{2.5.0/gems/slim-4.0.1 → 2.7.0/gems/slim-4.1.0}/CHANGES +4 -0
  258. data/bundle/ruby/{2.5.0/gems/slim-4.0.1 → 2.7.0/gems/slim-4.1.0}/Gemfile +12 -13
  259. data/bundle/ruby/{2.5.0/gems/slim-4.0.1 → 2.7.0/gems/slim-4.1.0}/LICENSE +0 -0
  260. data/bundle/ruby/{2.5.0/gems/slim-4.0.1 → 2.7.0/gems/slim-4.1.0}/README.jp.md +0 -0
  261. data/bundle/ruby/{2.5.0/gems/slim-4.0.1 → 2.7.0/gems/slim-4.1.0}/README.md +0 -0
  262. data/bundle/ruby/{2.5.0/gems/slim-4.0.1 → 2.7.0/gems/slim-4.1.0}/lib/slim.rb +0 -0
  263. data/bundle/ruby/{2.5.0/gems/slim-4.0.1 → 2.7.0/gems/slim-4.1.0}/lib/slim/code_attributes.rb +0 -0
  264. data/bundle/ruby/{2.5.0/gems/slim-4.0.1 → 2.7.0/gems/slim-4.1.0}/lib/slim/command.rb +13 -13
  265. data/bundle/ruby/{2.5.0/gems/slim-4.0.1 → 2.7.0/gems/slim-4.1.0}/lib/slim/controls.rb +0 -0
  266. data/bundle/ruby/{2.5.0/gems/slim-4.0.1 → 2.7.0/gems/slim-4.1.0}/lib/slim/do_inserter.rb +0 -0
  267. data/bundle/ruby/{2.5.0/gems/slim-4.0.1 → 2.7.0/gems/slim-4.1.0}/lib/slim/embedded.rb +0 -0
  268. data/bundle/ruby/{2.5.0/gems/slim-4.0.1 → 2.7.0/gems/slim-4.1.0}/lib/slim/end_inserter.rb +0 -0
  269. data/bundle/ruby/{2.5.0/gems/slim-4.0.1 → 2.7.0/gems/slim-4.1.0}/lib/slim/engine.rb +0 -0
  270. data/bundle/ruby/{2.5.0/gems/slim-4.0.1 → 2.7.0/gems/slim-4.1.0}/lib/slim/erb_converter.rb +0 -0
  271. data/bundle/ruby/{2.5.0/gems/slim-4.0.1 → 2.7.0/gems/slim-4.1.0}/lib/slim/filter.rb +0 -0
  272. data/bundle/ruby/{2.5.0/gems/slim-4.0.1 → 2.7.0/gems/slim-4.1.0}/lib/slim/grammar.rb +0 -0
  273. data/bundle/ruby/{2.5.0/gems/slim-4.0.1 → 2.7.0/gems/slim-4.1.0}/lib/slim/include.rb +0 -0
  274. data/bundle/ruby/{2.5.0/gems/slim-4.0.1 → 2.7.0/gems/slim-4.1.0}/lib/slim/interpolation.rb +0 -0
  275. data/bundle/ruby/{2.5.0/gems/slim-4.0.1 → 2.7.0/gems/slim-4.1.0}/lib/slim/logic_less.rb +0 -0
  276. data/bundle/ruby/{2.5.0/gems/slim-4.0.1 → 2.7.0/gems/slim-4.1.0}/lib/slim/logic_less/context.rb +0 -0
  277. data/bundle/ruby/{2.5.0/gems/slim-4.0.1 → 2.7.0/gems/slim-4.1.0}/lib/slim/logic_less/filter.rb +0 -0
  278. data/bundle/ruby/{2.5.0/gems/slim-4.0.1 → 2.7.0/gems/slim-4.1.0}/lib/slim/parser.rb +1 -1
  279. data/bundle/ruby/{2.5.0/gems/slim-4.0.1 → 2.7.0/gems/slim-4.1.0}/lib/slim/smart.rb +0 -0
  280. data/bundle/ruby/{2.5.0/gems/slim-4.0.1 → 2.7.0/gems/slim-4.1.0}/lib/slim/smart/escaper.rb +0 -0
  281. data/bundle/ruby/{2.5.0/gems/slim-4.0.1 → 2.7.0/gems/slim-4.1.0}/lib/slim/smart/filter.rb +0 -0
  282. data/bundle/ruby/{2.5.0/gems/slim-4.0.1 → 2.7.0/gems/slim-4.1.0}/lib/slim/smart/parser.rb +0 -0
  283. data/bundle/ruby/{2.5.0/gems/slim-4.0.1 → 2.7.0/gems/slim-4.1.0}/lib/slim/splat/builder.rb +0 -0
  284. data/bundle/ruby/{2.5.0/gems/slim-4.0.1 → 2.7.0/gems/slim-4.1.0}/lib/slim/splat/filter.rb +0 -0
  285. data/bundle/ruby/{2.5.0/gems/slim-4.0.1 → 2.7.0/gems/slim-4.1.0}/lib/slim/template.rb +0 -0
  286. data/bundle/ruby/{2.5.0/gems/slim-4.0.1 → 2.7.0/gems/slim-4.1.0}/lib/slim/translator.rb +0 -0
  287. data/bundle/ruby/{2.5.0/gems/slim-4.0.1 → 2.7.0/gems/slim-4.1.0}/lib/slim/version.rb +1 -1
  288. data/bundle/ruby/{2.5.0/gems/slim-4.0.1 → 2.7.0/gems/slim-4.1.0}/slim.gemspec +0 -0
  289. data/bundle/ruby/{2.5.0/gems/temple-0.8.0 → 2.7.0/gems/temple-0.8.2}/CHANGES +11 -0
  290. data/bundle/ruby/{2.5.0/gems/temple-0.8.0 → 2.7.0/gems/temple-0.8.2}/EXPRESSIONS.md +1 -1
  291. data/bundle/ruby/{2.5.0/gems/temple-0.8.0 → 2.7.0/gems/temple-0.8.2}/Gemfile +0 -0
  292. data/bundle/ruby/{2.5.0/gems/temple-0.8.0 → 2.7.0/gems/temple-0.8.2}/LICENSE +0 -0
  293. data/bundle/ruby/{2.5.0/gems/temple-0.8.0 → 2.7.0/gems/temple-0.8.2}/README.md +1 -1
  294. data/bundle/ruby/{2.5.0/gems/temple-0.8.0 → 2.7.0/gems/temple-0.8.2}/lib/temple.rb +0 -0
  295. data/bundle/ruby/{2.5.0/gems/temple-0.8.0 → 2.7.0/gems/temple-0.8.2}/lib/temple/engine.rb +0 -0
  296. data/bundle/ruby/{2.5.0/gems/temple-0.8.0 → 2.7.0/gems/temple-0.8.2}/lib/temple/erb/engine.rb +0 -0
  297. data/bundle/ruby/{2.5.0/gems/temple-0.8.0 → 2.7.0/gems/temple-0.8.2}/lib/temple/erb/parser.rb +0 -0
  298. data/bundle/ruby/{2.5.0/gems/temple-0.8.0 → 2.7.0/gems/temple-0.8.2}/lib/temple/erb/template.rb +0 -0
  299. data/bundle/ruby/{2.5.0/gems/temple-0.8.0 → 2.7.0/gems/temple-0.8.2}/lib/temple/erb/trimming.rb +0 -0
  300. data/bundle/ruby/{2.5.0/gems/temple-0.8.0 → 2.7.0/gems/temple-0.8.2}/lib/temple/exceptions.rb +0 -0
  301. data/bundle/ruby/{2.5.0/gems/temple-0.8.0 → 2.7.0/gems/temple-0.8.2}/lib/temple/filter.rb +0 -0
  302. data/bundle/ruby/{2.5.0/gems/temple-0.8.0 → 2.7.0/gems/temple-0.8.2}/lib/temple/filters/code_merger.rb +0 -0
  303. data/bundle/ruby/{2.5.0/gems/temple-0.8.0 → 2.7.0/gems/temple-0.8.2}/lib/temple/filters/control_flow.rb +0 -0
  304. data/bundle/ruby/{2.5.0/gems/temple-0.8.0 → 2.7.0/gems/temple-0.8.2}/lib/temple/filters/dynamic_inliner.rb +0 -0
  305. data/bundle/ruby/{2.5.0/gems/temple-0.8.0 → 2.7.0/gems/temple-0.8.2}/lib/temple/filters/encoding.rb +0 -0
  306. data/bundle/ruby/{2.5.0/gems/temple-0.8.0 → 2.7.0/gems/temple-0.8.2}/lib/temple/filters/eraser.rb +0 -0
  307. data/bundle/ruby/{2.5.0/gems/temple-0.8.0 → 2.7.0/gems/temple-0.8.2}/lib/temple/filters/escapable.rb +0 -0
  308. data/bundle/ruby/{2.5.0/gems/temple-0.8.0 → 2.7.0/gems/temple-0.8.2}/lib/temple/filters/multi_flattener.rb +0 -0
  309. data/bundle/ruby/{2.5.0/gems/temple-0.8.0 → 2.7.0/gems/temple-0.8.2}/lib/temple/filters/remove_bom.rb +0 -0
  310. data/bundle/ruby/{2.5.0/gems/temple-0.8.0 → 2.7.0/gems/temple-0.8.2}/lib/temple/filters/static_analyzer.rb +0 -0
  311. data/bundle/ruby/{2.5.0/gems/temple-0.8.0 → 2.7.0/gems/temple-0.8.2}/lib/temple/filters/static_merger.rb +0 -0
  312. data/bundle/ruby/{2.5.0/gems/temple-0.8.0 → 2.7.0/gems/temple-0.8.2}/lib/temple/filters/string_splitter.rb +1 -1
  313. data/bundle/ruby/{2.5.0/gems/temple-0.8.0 → 2.7.0/gems/temple-0.8.2}/lib/temple/filters/validator.rb +0 -0
  314. data/bundle/ruby/{2.5.0/gems/temple-0.8.0 → 2.7.0/gems/temple-0.8.2}/lib/temple/generator.rb +0 -0
  315. data/bundle/ruby/{2.5.0/gems/temple-0.8.0 → 2.7.0/gems/temple-0.8.2}/lib/temple/generators/array.rb +0 -0
  316. data/bundle/ruby/{2.5.0/gems/temple-0.8.0 → 2.7.0/gems/temple-0.8.2}/lib/temple/generators/array_buffer.rb +0 -0
  317. data/bundle/ruby/{2.5.0/gems/temple-0.8.0 → 2.7.0/gems/temple-0.8.2}/lib/temple/generators/erb.rb +0 -0
  318. data/bundle/ruby/{2.5.0/gems/temple-0.8.0 → 2.7.0/gems/temple-0.8.2}/lib/temple/generators/rails_output_buffer.rb +0 -0
  319. data/bundle/ruby/{2.5.0/gems/temple-0.8.0 → 2.7.0/gems/temple-0.8.2}/lib/temple/generators/string_buffer.rb +0 -0
  320. data/bundle/ruby/{2.5.0/gems/temple-0.8.0 → 2.7.0/gems/temple-0.8.2}/lib/temple/grammar.rb +0 -0
  321. data/bundle/ruby/{2.5.0/gems/temple-0.8.0 → 2.7.0/gems/temple-0.8.2}/lib/temple/html/attribute_merger.rb +0 -0
  322. data/bundle/ruby/{2.5.0/gems/temple-0.8.0 → 2.7.0/gems/temple-0.8.2}/lib/temple/html/attribute_remover.rb +0 -0
  323. data/bundle/ruby/{2.5.0/gems/temple-0.8.0 → 2.7.0/gems/temple-0.8.2}/lib/temple/html/attribute_sorter.rb +0 -0
  324. data/bundle/ruby/{2.5.0/gems/temple-0.8.0 → 2.7.0/gems/temple-0.8.2}/lib/temple/html/dispatcher.rb +0 -0
  325. data/bundle/ruby/{2.5.0/gems/temple-0.8.0 → 2.7.0/gems/temple-0.8.2}/lib/temple/html/fast.rb +0 -0
  326. data/bundle/ruby/{2.5.0/gems/temple-0.8.0 → 2.7.0/gems/temple-0.8.2}/lib/temple/html/filter.rb +0 -0
  327. data/bundle/ruby/{2.5.0/gems/temple-0.8.0 → 2.7.0/gems/temple-0.8.2}/lib/temple/html/pretty.rb +0 -0
  328. data/bundle/ruby/{2.5.0/gems/temple-0.8.0 → 2.7.0/gems/temple-0.8.2}/lib/temple/html/safe.rb +0 -0
  329. data/bundle/ruby/{2.5.0/gems/temple-0.8.0 → 2.7.0/gems/temple-0.8.2}/lib/temple/map.rb +0 -0
  330. data/bundle/ruby/{2.5.0/gems/temple-0.8.0 → 2.7.0/gems/temple-0.8.2}/lib/temple/mixins/dispatcher.rb +2 -1
  331. data/bundle/ruby/{2.5.0/gems/temple-0.8.0 → 2.7.0/gems/temple-0.8.2}/lib/temple/mixins/engine_dsl.rb +0 -0
  332. data/bundle/ruby/{2.5.0/gems/temple-0.8.0 → 2.7.0/gems/temple-0.8.2}/lib/temple/mixins/grammar_dsl.rb +0 -0
  333. data/bundle/ruby/{2.5.0/gems/temple-0.8.0 → 2.7.0/gems/temple-0.8.2}/lib/temple/mixins/options.rb +0 -0
  334. data/bundle/ruby/{2.5.0/gems/temple-0.8.0 → 2.7.0/gems/temple-0.8.2}/lib/temple/mixins/template.rb +0 -0
  335. data/bundle/ruby/{2.5.0/gems/temple-0.8.0 → 2.7.0/gems/temple-0.8.2}/lib/temple/parser.rb +0 -0
  336. data/bundle/ruby/{2.5.0/gems/temple-0.8.0 → 2.7.0/gems/temple-0.8.2}/lib/temple/static_analyzer.rb +1 -1
  337. data/bundle/ruby/{2.5.0/gems/temple-0.8.0 → 2.7.0/gems/temple-0.8.2}/lib/temple/templates.rb +0 -0
  338. data/bundle/ruby/{2.5.0/gems/temple-0.8.0 → 2.7.0/gems/temple-0.8.2}/lib/temple/templates/rails.rb +2 -2
  339. data/bundle/ruby/{2.5.0/gems/temple-0.8.0 → 2.7.0/gems/temple-0.8.2}/lib/temple/templates/tilt.rb +0 -0
  340. data/bundle/ruby/{2.5.0/gems/temple-0.8.0 → 2.7.0/gems/temple-0.8.2}/lib/temple/utils.rb +0 -0
  341. data/bundle/ruby/2.7.0/gems/temple-0.8.2/lib/temple/version.rb +3 -0
  342. data/bundle/ruby/{2.5.0/gems/temple-0.8.0 → 2.7.0/gems/temple-0.8.2}/temple.gemspec +0 -0
  343. data/bundle/ruby/{2.5.0 → 2.7.0}/gems/terminal-table-1.8.0/Gemfile +0 -0
  344. data/bundle/ruby/{2.5.0 → 2.7.0}/gems/terminal-table-1.8.0/History.rdoc +0 -0
  345. data/bundle/ruby/{2.5.0 → 2.7.0}/gems/terminal-table-1.8.0/LICENSE.txt +0 -0
  346. data/bundle/ruby/{2.5.0 → 2.7.0}/gems/terminal-table-1.8.0/Manifest +0 -0
  347. data/bundle/ruby/{2.5.0 → 2.7.0}/gems/terminal-table-1.8.0/README.rdoc +0 -0
  348. data/bundle/ruby/{2.5.0 → 2.7.0}/gems/terminal-table-1.8.0/Todo.rdoc +0 -0
  349. data/bundle/ruby/{2.5.0 → 2.7.0}/gems/terminal-table-1.8.0/lib/terminal-table.rb +0 -0
  350. data/bundle/ruby/{2.5.0 → 2.7.0}/gems/terminal-table-1.8.0/lib/terminal-table/cell.rb +0 -0
  351. data/bundle/ruby/{2.5.0 → 2.7.0}/gems/terminal-table-1.8.0/lib/terminal-table/import.rb +0 -0
  352. data/bundle/ruby/{2.5.0 → 2.7.0}/gems/terminal-table-1.8.0/lib/terminal-table/row.rb +0 -0
  353. data/bundle/ruby/{2.5.0 → 2.7.0}/gems/terminal-table-1.8.0/lib/terminal-table/separator.rb +0 -0
  354. data/bundle/ruby/{2.5.0 → 2.7.0}/gems/terminal-table-1.8.0/lib/terminal-table/style.rb +0 -0
  355. data/bundle/ruby/{2.5.0 → 2.7.0}/gems/terminal-table-1.8.0/lib/terminal-table/table.rb +0 -0
  356. data/bundle/ruby/{2.5.0 → 2.7.0}/gems/terminal-table-1.8.0/lib/terminal-table/table_helper.rb +0 -0
  357. data/bundle/ruby/{2.5.0 → 2.7.0}/gems/terminal-table-1.8.0/lib/terminal-table/version.rb +0 -0
  358. data/bundle/ruby/{2.5.0 → 2.7.0}/gems/terminal-table-1.8.0/terminal-table.gemspec +0 -0
  359. data/bundle/ruby/{2.5.0/gems/tilt-2.0.9 → 2.7.0/gems/tilt-2.0.10}/COPYING +0 -0
  360. data/bundle/ruby/{2.5.0/gems/tilt-2.0.9 → 2.7.0/gems/tilt-2.0.10}/lib/tilt.rb +1 -1
  361. data/bundle/ruby/{2.5.0/gems/tilt-2.0.9 → 2.7.0/gems/tilt-2.0.10}/lib/tilt/asciidoc.rb +0 -0
  362. data/bundle/ruby/{2.5.0/gems/tilt-2.0.9 → 2.7.0/gems/tilt-2.0.10}/lib/tilt/babel.rb +0 -0
  363. data/bundle/ruby/{2.5.0/gems/tilt-2.0.9 → 2.7.0/gems/tilt-2.0.10}/lib/tilt/bluecloth.rb +0 -0
  364. data/bundle/ruby/{2.5.0/gems/tilt-2.0.9 → 2.7.0/gems/tilt-2.0.10}/lib/tilt/builder.rb +0 -0
  365. data/bundle/ruby/{2.5.0/gems/tilt-2.0.9 → 2.7.0/gems/tilt-2.0.10}/lib/tilt/coffee.rb +0 -0
  366. data/bundle/ruby/{2.5.0/gems/tilt-2.0.9 → 2.7.0/gems/tilt-2.0.10}/lib/tilt/commonmarker.rb +0 -0
  367. data/bundle/ruby/{2.5.0/gems/tilt-2.0.9 → 2.7.0/gems/tilt-2.0.10}/lib/tilt/creole.rb +0 -0
  368. data/bundle/ruby/{2.5.0/gems/tilt-2.0.9 → 2.7.0/gems/tilt-2.0.10}/lib/tilt/csv.rb +0 -0
  369. data/bundle/ruby/{2.5.0/gems/tilt-2.0.9 → 2.7.0/gems/tilt-2.0.10}/lib/tilt/dummy.rb +0 -0
  370. data/bundle/ruby/{2.5.0/gems/tilt-2.0.9 → 2.7.0/gems/tilt-2.0.10}/lib/tilt/erb.rb +0 -0
  371. data/bundle/ruby/{2.5.0/gems/tilt-2.0.9 → 2.7.0/gems/tilt-2.0.10}/lib/tilt/erubi.rb +0 -0
  372. data/bundle/ruby/{2.5.0/gems/tilt-2.0.9 → 2.7.0/gems/tilt-2.0.10}/lib/tilt/erubis.rb +0 -0
  373. data/bundle/ruby/{2.5.0/gems/tilt-2.0.9 → 2.7.0/gems/tilt-2.0.10}/lib/tilt/etanni.rb +0 -0
  374. data/bundle/ruby/{2.5.0/gems/tilt-2.0.9 → 2.7.0/gems/tilt-2.0.10}/lib/tilt/haml.rb +0 -0
  375. data/bundle/ruby/{2.5.0/gems/tilt-2.0.9 → 2.7.0/gems/tilt-2.0.10}/lib/tilt/kramdown.rb +0 -0
  376. data/bundle/ruby/{2.5.0/gems/tilt-2.0.9 → 2.7.0/gems/tilt-2.0.10}/lib/tilt/less.rb +0 -0
  377. data/bundle/ruby/{2.5.0/gems/tilt-2.0.9 → 2.7.0/gems/tilt-2.0.10}/lib/tilt/liquid.rb +0 -0
  378. data/bundle/ruby/{2.5.0/gems/tilt-2.0.9 → 2.7.0/gems/tilt-2.0.10}/lib/tilt/livescript.rb +0 -0
  379. data/bundle/ruby/{2.5.0/gems/tilt-2.0.9 → 2.7.0/gems/tilt-2.0.10}/lib/tilt/mapping.rb +0 -0
  380. data/bundle/ruby/{2.5.0/gems/tilt-2.0.9 → 2.7.0/gems/tilt-2.0.10}/lib/tilt/markaby.rb +0 -0
  381. data/bundle/ruby/{2.5.0/gems/tilt-2.0.9 → 2.7.0/gems/tilt-2.0.10}/lib/tilt/maruku.rb +0 -0
  382. data/bundle/ruby/{2.5.0/gems/tilt-2.0.9 → 2.7.0/gems/tilt-2.0.10}/lib/tilt/nokogiri.rb +0 -0
  383. data/bundle/ruby/{2.5.0/gems/tilt-2.0.9 → 2.7.0/gems/tilt-2.0.10}/lib/tilt/pandoc.rb +0 -0
  384. data/bundle/ruby/{2.5.0/gems/tilt-2.0.9 → 2.7.0/gems/tilt-2.0.10}/lib/tilt/plain.rb +0 -0
  385. data/bundle/ruby/{2.5.0/gems/tilt-2.0.9 → 2.7.0/gems/tilt-2.0.10}/lib/tilt/prawn.rb +0 -0
  386. data/bundle/ruby/{2.5.0/gems/tilt-2.0.9 → 2.7.0/gems/tilt-2.0.10}/lib/tilt/radius.rb +0 -0
  387. data/bundle/ruby/{2.5.0/gems/tilt-2.0.9 → 2.7.0/gems/tilt-2.0.10}/lib/tilt/rdiscount.rb +0 -0
  388. data/bundle/ruby/{2.5.0/gems/tilt-2.0.9 → 2.7.0/gems/tilt-2.0.10}/lib/tilt/rdoc.rb +0 -0
  389. data/bundle/ruby/{2.5.0/gems/tilt-2.0.9 → 2.7.0/gems/tilt-2.0.10}/lib/tilt/redcarpet.rb +0 -0
  390. data/bundle/ruby/{2.5.0/gems/tilt-2.0.9 → 2.7.0/gems/tilt-2.0.10}/lib/tilt/redcloth.rb +0 -0
  391. data/bundle/ruby/{2.5.0/gems/tilt-2.0.9 → 2.7.0/gems/tilt-2.0.10}/lib/tilt/rst-pandoc.rb +0 -0
  392. data/bundle/ruby/{2.5.0/gems/tilt-2.0.9 → 2.7.0/gems/tilt-2.0.10}/lib/tilt/sass.rb +0 -0
  393. data/bundle/ruby/{2.5.0/gems/tilt-2.0.9 → 2.7.0/gems/tilt-2.0.10}/lib/tilt/sigil.rb +0 -0
  394. data/bundle/ruby/{2.5.0/gems/tilt-2.0.9 → 2.7.0/gems/tilt-2.0.10}/lib/tilt/string.rb +0 -0
  395. data/bundle/ruby/{2.5.0/gems/tilt-2.0.9 → 2.7.0/gems/tilt-2.0.10}/lib/tilt/template.rb +7 -12
  396. data/bundle/ruby/{2.5.0/gems/tilt-2.0.9 → 2.7.0/gems/tilt-2.0.10}/lib/tilt/typescript.rb +0 -0
  397. data/bundle/ruby/{2.5.0/gems/tilt-2.0.9 → 2.7.0/gems/tilt-2.0.10}/lib/tilt/wikicloth.rb +0 -0
  398. data/bundle/ruby/{2.5.0/gems/tilt-2.0.9 → 2.7.0/gems/tilt-2.0.10}/lib/tilt/yajl.rb +0 -0
  399. data/bundle/ruby/{2.5.0/gems/unicode-display_width-1.4.1 → 2.7.0/gems/unicode-display_width-1.7.0}/CHANGELOG.md +16 -0
  400. data/bundle/ruby/{2.5.0/gems/unicode-display_width-1.4.1 → 2.7.0/gems/unicode-display_width-1.7.0}/MIT-LICENSE.txt +1 -1
  401. data/bundle/ruby/{2.5.0/gems/unicode-display_width-1.4.1 → 2.7.0/gems/unicode-display_width-1.7.0}/README.md +10 -10
  402. data/bundle/ruby/2.7.0/gems/unicode-display_width-1.7.0/data/display_width.marshal.gz +0 -0
  403. data/bundle/ruby/{2.5.0/gems/unicode-display_width-1.4.1 → 2.7.0/gems/unicode-display_width-1.7.0}/lib/unicode/display_width.rb +1 -1
  404. data/bundle/ruby/{2.5.0/gems/unicode-display_width-1.4.1 → 2.7.0/gems/unicode-display_width-1.7.0}/lib/unicode/display_width/constants.rb +2 -2
  405. data/bundle/ruby/{2.5.0/gems/unicode-display_width-1.4.1 → 2.7.0/gems/unicode-display_width-1.7.0}/lib/unicode/display_width/index.rb +0 -0
  406. data/bundle/ruby/{2.5.0/gems/unicode-display_width-1.4.1 → 2.7.0/gems/unicode-display_width-1.7.0}/lib/unicode/display_width/no_string_ext.rb +0 -0
  407. data/bundle/ruby/{2.5.0/gems/unicode-display_width-1.4.1 → 2.7.0/gems/unicode-display_width-1.7.0}/lib/unicode/display_width/string_ext.rb +0 -0
  408. data/lib/brakeman.rb +37 -0
  409. data/lib/brakeman/app_tree.rb +67 -22
  410. data/lib/brakeman/call_index.rb +54 -15
  411. data/lib/brakeman/checks.rb +7 -7
  412. data/lib/brakeman/checks/base_check.rb +94 -66
  413. data/lib/brakeman/checks/check_basic_auth.rb +2 -0
  414. data/lib/brakeman/checks/check_content_tag.rb +12 -1
  415. data/lib/brakeman/checks/check_cookie_serialization.rb +22 -0
  416. data/lib/brakeman/checks/check_cross_site_scripting.rb +15 -10
  417. data/lib/brakeman/checks/check_csrf_token_forgery_cve.rb +28 -0
  418. data/lib/brakeman/checks/check_default_routes.rb +5 -0
  419. data/lib/brakeman/checks/check_deserialize.rb +70 -1
  420. data/lib/brakeman/checks/check_dynamic_finders.rb +1 -1
  421. data/lib/brakeman/checks/check_evaluation.rb +0 -1
  422. data/lib/brakeman/checks/check_execute.rb +84 -5
  423. data/lib/brakeman/checks/check_file_access.rb +7 -1
  424. data/lib/brakeman/checks/check_force_ssl.rb +27 -0
  425. data/lib/brakeman/checks/check_header_dos.rb +2 -2
  426. data/lib/brakeman/checks/check_i18n_xss.rb +2 -2
  427. data/lib/brakeman/checks/check_jruby_xml.rb +2 -2
  428. data/lib/brakeman/checks/check_json_entity_escape.rb +38 -0
  429. data/lib/brakeman/checks/check_json_parsing.rb +7 -2
  430. data/lib/brakeman/checks/check_link_to.rb +1 -1
  431. data/lib/brakeman/checks/check_link_to_href.rb +7 -4
  432. data/lib/brakeman/checks/check_mail_to.rb +1 -1
  433. data/lib/brakeman/checks/check_mass_assignment.rb +34 -4
  434. data/lib/brakeman/checks/check_mime_type_dos.rb +2 -2
  435. data/lib/brakeman/checks/check_model_attr_accessible.rb +2 -2
  436. data/lib/brakeman/checks/check_model_attributes.rb +13 -51
  437. data/lib/brakeman/checks/check_model_serialize.rb +1 -1
  438. data/lib/brakeman/checks/check_nested_attributes_bypass.rb +4 -4
  439. data/lib/brakeman/checks/check_page_caching_cve.rb +37 -0
  440. data/lib/brakeman/checks/check_permit_attributes.rb +1 -1
  441. data/lib/brakeman/checks/check_regex_dos.rb +1 -1
  442. data/lib/brakeman/checks/check_reverse_tabnabbing.rb +58 -0
  443. data/lib/brakeman/checks/check_sanitize_methods.rb +2 -2
  444. data/lib/brakeman/checks/check_secrets.rb +1 -1
  445. data/lib/brakeman/checks/check_send.rb +0 -1
  446. data/lib/brakeman/checks/check_session_manipulation.rb +0 -1
  447. data/lib/brakeman/checks/check_session_settings.rb +15 -12
  448. data/lib/brakeman/checks/check_simple_format.rb +5 -0
  449. data/lib/brakeman/checks/check_skip_before_filter.rb +5 -5
  450. data/lib/brakeman/checks/check_sql.rb +46 -48
  451. data/lib/brakeman/checks/check_template_injection.rb +32 -0
  452. data/lib/brakeman/checks/check_unsafe_reflection_methods.rb +68 -0
  453. data/lib/brakeman/checks/check_validation_regex.rb +1 -1
  454. data/lib/brakeman/checks/check_verb_confusion.rb +75 -0
  455. data/lib/brakeman/checks/check_xml_dos.rb +2 -2
  456. data/lib/brakeman/checks/check_yaml_parsing.rb +10 -18
  457. data/lib/brakeman/commandline.rb +25 -1
  458. data/lib/brakeman/differ.rb +16 -33
  459. data/lib/brakeman/file_parser.rb +25 -21
  460. data/lib/brakeman/file_path.rb +85 -0
  461. data/lib/brakeman/options.rb +32 -1
  462. data/lib/brakeman/parsers/haml_embedded.rb +44 -0
  463. data/lib/brakeman/parsers/slim_embedded.rb +44 -0
  464. data/lib/brakeman/parsers/template_parser.rb +9 -10
  465. data/lib/brakeman/processor.rb +5 -6
  466. data/lib/brakeman/processors/alias_processor.rb +71 -14
  467. data/lib/brakeman/processors/base_processor.rb +10 -7
  468. data/lib/brakeman/processors/controller_alias_processor.rb +10 -7
  469. data/lib/brakeman/processors/controller_processor.rb +10 -14
  470. data/lib/brakeman/processors/gem_processor.rb +10 -2
  471. data/lib/brakeman/processors/haml_template_processor.rb +99 -123
  472. data/lib/brakeman/processors/lib/call_conversion_helper.rb +10 -5
  473. data/lib/brakeman/processors/lib/file_type_detector.rb +64 -0
  474. data/lib/brakeman/processors/lib/find_all_calls.rb +57 -18
  475. data/lib/brakeman/processors/lib/find_call.rb +3 -64
  476. data/lib/brakeman/processors/lib/module_helper.rb +8 -8
  477. data/lib/brakeman/processors/lib/processor_helper.rb +3 -3
  478. data/lib/brakeman/processors/lib/rails2_config_processor.rb +4 -4
  479. data/lib/brakeman/processors/lib/rails2_route_processor.rb +2 -2
  480. data/lib/brakeman/processors/lib/rails3_config_processor.rb +19 -19
  481. data/lib/brakeman/processors/lib/rails3_route_processor.rb +2 -2
  482. data/lib/brakeman/processors/lib/render_helper.rb +5 -3
  483. data/lib/brakeman/processors/lib/render_path.rb +18 -1
  484. data/lib/brakeman/processors/library_processor.rb +5 -5
  485. data/lib/brakeman/processors/model_processor.rb +4 -5
  486. data/lib/brakeman/processors/output_processor.rb +6 -1
  487. data/lib/brakeman/processors/slim_template_processor.rb +16 -0
  488. data/lib/brakeman/processors/template_alias_processor.rb +36 -4
  489. data/lib/brakeman/processors/template_processor.rb +14 -10
  490. data/lib/brakeman/report.rb +22 -4
  491. data/lib/brakeman/report/ignore/config.rb +12 -5
  492. data/lib/brakeman/report/ignore/interactive.rb +2 -2
  493. data/lib/brakeman/report/pager.rb +1 -0
  494. data/lib/brakeman/report/report_base.rb +51 -8
  495. data/lib/brakeman/report/report_codeclimate.rb +3 -3
  496. data/lib/brakeman/report/report_csv.rb +37 -60
  497. data/lib/brakeman/report/report_hash.rb +1 -1
  498. data/lib/brakeman/report/report_html.rb +2 -2
  499. data/lib/brakeman/report/report_json.rb +1 -24
  500. data/lib/brakeman/report/report_junit.rb +104 -0
  501. data/lib/brakeman/report/report_markdown.rb +0 -1
  502. data/lib/brakeman/report/report_sarif.rb +114 -0
  503. data/lib/brakeman/report/report_sonar.rb +38 -0
  504. data/lib/brakeman/report/report_table.rb +20 -4
  505. data/lib/brakeman/report/report_tabs.rb +1 -1
  506. data/lib/brakeman/report/report_text.rb +43 -23
  507. data/lib/brakeman/rescanner.rb +18 -15
  508. data/lib/brakeman/scanner.rb +70 -35
  509. data/lib/brakeman/tracker.rb +44 -8
  510. data/lib/brakeman/tracker/collection.rb +4 -3
  511. data/lib/brakeman/tracker/config.rb +119 -47
  512. data/lib/brakeman/tracker/constants.rb +10 -8
  513. data/lib/brakeman/tracker/controller.rb +1 -1
  514. data/lib/brakeman/util.rb +45 -151
  515. data/lib/brakeman/version.rb +1 -1
  516. data/lib/brakeman/warning.rb +37 -15
  517. data/lib/brakeman/warning_codes.rb +13 -0
  518. data/lib/ruby_parser/bm_sexp.rb +16 -11
  519. data/lib/ruby_parser/bm_sexp_processor.rb +1 -0
  520. metadata +434 -497
  521. data/bundle/ruby/2.5.0/gems/haml-4.0.7/MIT-LICENSE +0 -20
  522. data/bundle/ruby/2.5.0/gems/haml-4.0.7/lib/haml/compiler.rb +0 -540
  523. data/bundle/ruby/2.5.0/gems/haml-4.0.7/lib/haml/error.rb +0 -61
  524. data/bundle/ruby/2.5.0/gems/haml-4.0.7/lib/haml/railtie.rb +0 -22
  525. data/bundle/ruby/2.5.0/gems/haml-4.0.7/lib/haml/template/plugin.rb +0 -41
  526. data/bundle/ruby/2.5.0/gems/haml-4.0.7/lib/haml/util.rb +0 -377
  527. data/bundle/ruby/2.5.0/gems/haml-4.0.7/lib/haml/version.rb +0 -3
  528. data/bundle/ruby/2.5.0/gems/highline-1.7.10/Gemfile +0 -11
  529. data/bundle/ruby/2.5.0/gems/highline-1.7.10/INSTALL +0 -59
  530. data/bundle/ruby/2.5.0/gems/highline-1.7.10/README.rdoc +0 -74
  531. data/bundle/ruby/2.5.0/gems/highline-1.7.10/highline.gemspec +0 -37
  532. data/bundle/ruby/2.5.0/gems/highline-1.7.10/lib/highline.rb +0 -1048
  533. data/bundle/ruby/2.5.0/gems/highline-1.7.10/lib/highline/compatibility.rb +0 -16
  534. data/bundle/ruby/2.5.0/gems/highline-1.7.10/lib/highline/import.rb +0 -41
  535. data/bundle/ruby/2.5.0/gems/highline-1.7.10/lib/highline/menu.rb +0 -381
  536. data/bundle/ruby/2.5.0/gems/highline-1.7.10/lib/highline/simulate.rb +0 -48
  537. data/bundle/ruby/2.5.0/gems/highline-1.7.10/lib/highline/string_extensions.rb +0 -111
  538. data/bundle/ruby/2.5.0/gems/highline-1.7.10/lib/highline/style.rb +0 -192
  539. data/bundle/ruby/2.5.0/gems/highline-1.7.10/lib/highline/system_extensions.rb +0 -254
  540. data/bundle/ruby/2.5.0/gems/highline-1.7.10/setup.rb +0 -1360
  541. data/bundle/ruby/2.5.0/gems/ruby_parser-3.12.0/lib/ruby20_parser.rb +0 -6687
  542. data/bundle/ruby/2.5.0/gems/ruby_parser-3.12.0/lib/ruby20_parser.y +0 -2345
  543. data/bundle/ruby/2.5.0/gems/ruby_parser-3.12.0/lib/ruby21_parser.rb +0 -6767
  544. data/bundle/ruby/2.5.0/gems/ruby_parser-3.12.0/lib/ruby22_parser.rb +0 -6803
  545. data/bundle/ruby/2.5.0/gems/ruby_parser-3.12.0/lib/ruby23_parser.rb +0 -6818
  546. data/bundle/ruby/2.5.0/gems/ruby_parser-3.12.0/lib/ruby24_parser.rb +0 -6818
  547. data/bundle/ruby/2.5.0/gems/ruby_parser-3.12.0/lib/ruby25_parser.rb +0 -6818
  548. data/bundle/ruby/2.5.0/gems/sass-3.4.25/CODE_OF_CONDUCT.md +0 -10
  549. data/bundle/ruby/2.5.0/gems/sass-3.4.25/CONTRIBUTING.md +0 -148
  550. data/bundle/ruby/2.5.0/gems/sass-3.4.25/MIT-LICENSE +0 -20
  551. data/bundle/ruby/2.5.0/gems/sass-3.4.25/README.md +0 -227
  552. data/bundle/ruby/2.5.0/gems/sass-3.4.25/REVISION +0 -1
  553. data/bundle/ruby/2.5.0/gems/sass-3.4.25/VERSION +0 -1
  554. data/bundle/ruby/2.5.0/gems/sass-3.4.25/VERSION_DATE +0 -1
  555. data/bundle/ruby/2.5.0/gems/sass-3.4.25/VERSION_NAME +0 -1
  556. data/bundle/ruby/2.5.0/gems/sass-3.4.25/extra/sass-spec-ref.sh +0 -32
  557. data/bundle/ruby/2.5.0/gems/sass-3.4.25/extra/update_watch.rb +0 -13
  558. data/bundle/ruby/2.5.0/gems/sass-3.4.25/init.rb +0 -18
  559. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass.rb +0 -109
  560. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/cache_stores.rb +0 -15
  561. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/cache_stores/base.rb +0 -88
  562. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/cache_stores/chain.rb +0 -34
  563. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/cache_stores/filesystem.rb +0 -60
  564. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/cache_stores/memory.rb +0 -46
  565. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/cache_stores/null.rb +0 -25
  566. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/callbacks.rb +0 -67
  567. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/css.rb +0 -408
  568. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/deprecation.rb +0 -55
  569. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/engine.rb +0 -1226
  570. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/environment.rb +0 -215
  571. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/error.rb +0 -198
  572. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/exec.rb +0 -9
  573. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/exec/base.rb +0 -199
  574. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/exec/sass_convert.rb +0 -283
  575. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/exec/sass_scss.rb +0 -440
  576. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/features.rb +0 -47
  577. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/importers.rb +0 -23
  578. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/importers/base.rb +0 -182
  579. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/importers/deprecated_path.rb +0 -51
  580. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/importers/filesystem.rb +0 -219
  581. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/logger.rb +0 -17
  582. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/logger/base.rb +0 -36
  583. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/logger/delayed.rb +0 -50
  584. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/logger/log_level.rb +0 -45
  585. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/media.rb +0 -210
  586. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/plugin.rb +0 -134
  587. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/plugin/compiler.rb +0 -582
  588. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/plugin/configuration.rb +0 -134
  589. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/plugin/generic.rb +0 -15
  590. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/plugin/merb.rb +0 -48
  591. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/plugin/rack.rb +0 -60
  592. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/plugin/rails.rb +0 -47
  593. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/plugin/staleness_checker.rb +0 -199
  594. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/railtie.rb +0 -10
  595. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/repl.rb +0 -57
  596. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/root.rb +0 -7
  597. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/script.rb +0 -66
  598. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/script/css_lexer.rb +0 -33
  599. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/script/css_parser.rb +0 -33
  600. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/script/css_variable_warning.rb +0 -52
  601. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/script/functions.rb +0 -2693
  602. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/script/lexer.rb +0 -464
  603. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/script/parser.rb +0 -832
  604. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/script/tree.rb +0 -16
  605. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/script/tree/funcall.rb +0 -313
  606. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/script/tree/interpolation.rb +0 -223
  607. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/script/tree/list_literal.rb +0 -104
  608. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/script/tree/literal.rb +0 -49
  609. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/script/tree/map_literal.rb +0 -64
  610. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/script/tree/node.rb +0 -127
  611. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/script/tree/operation.rb +0 -156
  612. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/script/tree/selector.rb +0 -26
  613. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/script/tree/string_interpolation.rb +0 -125
  614. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/script/tree/unary_operation.rb +0 -69
  615. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/script/tree/variable.rb +0 -57
  616. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/script/value.rb +0 -11
  617. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/script/value/arg_list.rb +0 -36
  618. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/script/value/base.rb +0 -241
  619. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/script/value/bool.rb +0 -35
  620. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/script/value/color.rb +0 -698
  621. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/script/value/helpers.rb +0 -272
  622. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/script/value/list.rb +0 -113
  623. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/script/value/map.rb +0 -70
  624. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/script/value/null.rb +0 -44
  625. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/script/value/number.rb +0 -563
  626. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/script/value/string.rb +0 -138
  627. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/scss.rb +0 -14
  628. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/scss/css_parser.rb +0 -56
  629. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/scss/parser.rb +0 -1254
  630. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/scss/rx.rb +0 -140
  631. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/scss/static_parser.rb +0 -373
  632. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/selector.rb +0 -323
  633. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/selector/abstract_sequence.rb +0 -111
  634. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/selector/comma_sequence.rb +0 -191
  635. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/selector/pseudo.rb +0 -266
  636. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/selector/sequence.rb +0 -636
  637. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/selector/simple.rb +0 -117
  638. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/selector/simple_sequence.rb +0 -344
  639. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/shared.rb +0 -76
  640. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/source/map.rb +0 -213
  641. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/source/position.rb +0 -39
  642. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/source/range.rb +0 -41
  643. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/stack.rb +0 -120
  644. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/supports.rb +0 -225
  645. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/tree/at_root_node.rb +0 -83
  646. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/tree/charset_node.rb +0 -22
  647. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/tree/comment_node.rb +0 -82
  648. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/tree/content_node.rb +0 -9
  649. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/tree/css_import_node.rb +0 -68
  650. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/tree/debug_node.rb +0 -18
  651. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/tree/directive_node.rb +0 -59
  652. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/tree/each_node.rb +0 -24
  653. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/tree/error_node.rb +0 -18
  654. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/tree/extend_node.rb +0 -43
  655. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/tree/for_node.rb +0 -36
  656. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/tree/function_node.rb +0 -44
  657. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/tree/if_node.rb +0 -52
  658. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/tree/import_node.rb +0 -75
  659. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/tree/keyframe_rule_node.rb +0 -15
  660. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/tree/media_node.rb +0 -48
  661. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/tree/mixin_def_node.rb +0 -38
  662. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/tree/mixin_node.rb +0 -52
  663. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/tree/node.rb +0 -240
  664. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/tree/prop_node.rb +0 -170
  665. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/tree/return_node.rb +0 -19
  666. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/tree/root_node.rb +0 -44
  667. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/tree/rule_node.rb +0 -155
  668. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/tree/supports_node.rb +0 -38
  669. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/tree/trace_node.rb +0 -33
  670. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/tree/variable_node.rb +0 -36
  671. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/tree/visitors/base.rb +0 -72
  672. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/tree/visitors/check_nesting.rb +0 -173
  673. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/tree/visitors/convert.rb +0 -351
  674. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/tree/visitors/cssize.rb +0 -373
  675. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/tree/visitors/deep_copy.rb +0 -107
  676. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/tree/visitors/extend.rb +0 -70
  677. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/tree/visitors/perform.rb +0 -564
  678. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/tree/visitors/set_options.rb +0 -139
  679. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/tree/visitors/to_css.rb +0 -409
  680. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/tree/warn_node.rb +0 -18
  681. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/tree/while_node.rb +0 -18
  682. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/util.rb +0 -1375
  683. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/util/cross_platform_random.rb +0 -19
  684. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/util/multibyte_string_scanner.rb +0 -155
  685. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/util/normalized_map.rb +0 -129
  686. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/util/ordered_hash.rb +0 -192
  687. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/util/subset_map.rb +0 -109
  688. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/util/test.rb +0 -9
  689. data/bundle/ruby/2.5.0/gems/sass-3.4.25/lib/sass/version.rb +0 -124
  690. data/bundle/ruby/2.5.0/gems/sass-3.4.25/rails/init.rb +0 -1
  691. data/bundle/ruby/2.5.0/gems/sass-3.4.25/vendor/listen/CHANGELOG.md +0 -1
  692. data/bundle/ruby/2.5.0/gems/sass-3.4.25/vendor/listen/CONTRIBUTING.md +0 -38
  693. data/bundle/ruby/2.5.0/gems/sass-3.4.25/vendor/listen/Gemfile +0 -20
  694. data/bundle/ruby/2.5.0/gems/sass-3.4.25/vendor/listen/Guardfile +0 -8
  695. data/bundle/ruby/2.5.0/gems/sass-3.4.25/vendor/listen/README.md +0 -349
  696. data/bundle/ruby/2.5.0/gems/sass-3.4.25/vendor/listen/Rakefile +0 -5
  697. data/bundle/ruby/2.5.0/gems/sass-3.4.25/vendor/listen/Vagrantfile +0 -96
  698. data/bundle/ruby/2.5.0/gems/sass-3.4.25/vendor/listen/lib/listen.rb +0 -54
  699. data/bundle/ruby/2.5.0/gems/sass-3.4.25/vendor/listen/lib/listen/adapter.rb +0 -327
  700. data/bundle/ruby/2.5.0/gems/sass-3.4.25/vendor/listen/lib/listen/adapters/bsd.rb +0 -75
  701. data/bundle/ruby/2.5.0/gems/sass-3.4.25/vendor/listen/lib/listen/adapters/darwin.rb +0 -48
  702. data/bundle/ruby/2.5.0/gems/sass-3.4.25/vendor/listen/lib/listen/adapters/linux.rb +0 -81
  703. data/bundle/ruby/2.5.0/gems/sass-3.4.25/vendor/listen/lib/listen/adapters/polling.rb +0 -58
  704. data/bundle/ruby/2.5.0/gems/sass-3.4.25/vendor/listen/lib/listen/adapters/windows.rb +0 -91
  705. data/bundle/ruby/2.5.0/gems/sass-3.4.25/vendor/listen/lib/listen/directory_record.rb +0 -406
  706. data/bundle/ruby/2.5.0/gems/sass-3.4.25/vendor/listen/lib/listen/listener.rb +0 -323
  707. data/bundle/ruby/2.5.0/gems/sass-3.4.25/vendor/listen/lib/listen/turnstile.rb +0 -32
  708. data/bundle/ruby/2.5.0/gems/sass-3.4.25/vendor/listen/lib/listen/version.rb +0 -3
  709. data/bundle/ruby/2.5.0/gems/sass-3.4.25/vendor/listen/listen.gemspec +0 -28
  710. data/bundle/ruby/2.5.0/gems/sass-3.4.25/vendor/listen/spec/listen/adapter_spec.rb +0 -149
  711. data/bundle/ruby/2.5.0/gems/sass-3.4.25/vendor/listen/spec/listen/adapters/bsd_spec.rb +0 -36
  712. data/bundle/ruby/2.5.0/gems/sass-3.4.25/vendor/listen/spec/listen/adapters/darwin_spec.rb +0 -37
  713. data/bundle/ruby/2.5.0/gems/sass-3.4.25/vendor/listen/spec/listen/adapters/linux_spec.rb +0 -47
  714. data/bundle/ruby/2.5.0/gems/sass-3.4.25/vendor/listen/spec/listen/adapters/polling_spec.rb +0 -68
  715. data/bundle/ruby/2.5.0/gems/sass-3.4.25/vendor/listen/spec/listen/adapters/windows_spec.rb +0 -30
  716. data/bundle/ruby/2.5.0/gems/sass-3.4.25/vendor/listen/spec/listen/directory_record_spec.rb +0 -1250
  717. data/bundle/ruby/2.5.0/gems/sass-3.4.25/vendor/listen/spec/listen/listener_spec.rb +0 -258
  718. data/bundle/ruby/2.5.0/gems/sass-3.4.25/vendor/listen/spec/listen/turnstile_spec.rb +0 -56
  719. data/bundle/ruby/2.5.0/gems/sass-3.4.25/vendor/listen/spec/listen_spec.rb +0 -67
  720. data/bundle/ruby/2.5.0/gems/sass-3.4.25/vendor/listen/spec/spec_helper.rb +0 -25
  721. data/bundle/ruby/2.5.0/gems/sass-3.4.25/vendor/listen/spec/support/adapter_helper.rb +0 -666
  722. data/bundle/ruby/2.5.0/gems/sass-3.4.25/vendor/listen/spec/support/directory_record_helper.rb +0 -57
  723. data/bundle/ruby/2.5.0/gems/sass-3.4.25/vendor/listen/spec/support/fixtures_helper.rb +0 -29
  724. data/bundle/ruby/2.5.0/gems/sass-3.4.25/vendor/listen/spec/support/listeners_helper.rb +0 -179
  725. data/bundle/ruby/2.5.0/gems/sass-3.4.25/vendor/listen/spec/support/platform_helper.rb +0 -15
  726. data/bundle/ruby/2.5.0/gems/temple-0.8.0/lib/temple/version.rb +0 -3
  727. data/bundle/ruby/2.5.0/gems/tilt-2.0.9/CHANGELOG.md +0 -132
  728. data/bundle/ruby/2.5.0/gems/tilt-2.0.9/Gemfile +0 -70
  729. data/bundle/ruby/2.5.0/gems/tilt-2.0.9/HACKING +0 -16
  730. data/bundle/ruby/2.5.0/gems/tilt-2.0.9/README.md +0 -233
  731. data/bundle/ruby/2.5.0/gems/tilt-2.0.9/tilt.gemspec +0 -130
  732. data/bundle/ruby/2.5.0/gems/unicode-display_width-1.4.1/data/display_width.marshal.gz +0 -0
@@ -21,35 +21,35 @@ token kCLASS kMODULE kDEF kUNDEF kBEGIN kRESCUE kENSURE kEND kIF kUNLESS
21
21
  tLAMBEG tDSTAR tCHAR tSYMBOLS_BEG tQSYMBOLS_BEG tSTRING_DEND tUBANG
22
22
  tRATIONAL tIMAGINARY
23
23
 
24
- prechigh
25
- right tBANG tTILDE tUPLUS
26
- right tPOW
27
- right tUMINUS_NUM tUMINUS
28
- left tSTAR2 tDIVIDE tPERCENT
29
- left tPLUS tMINUS
30
- left tLSHFT tRSHFT
31
- left tAMPER2
32
- left tPIPE tCARET
33
- left tGT tGEQ tLT tLEQ
34
- nonassoc tCMP tEQ tEQQ tNEQ tMATCH tNMATCH
35
- left tANDOP
36
- left tOROP
37
- nonassoc tDOT2 tDOT3
38
- right tEH tCOLON
39
- left kRESCUE_MOD
40
- right tEQL tOP_ASGN
41
- nonassoc kDEFINED
42
- right kNOT
43
- left kOR kAND
44
- nonassoc kIF_MOD kUNLESS_MOD kWHILE_MOD kUNTIL_MOD
45
- nonassoc tLBRACE_ARG
46
- nonassoc tLOWEST
47
24
  preclow
25
+ nonassoc tLOWEST
26
+ nonassoc tLBRACE_ARG
27
+ nonassoc kIF_MOD kUNLESS_MOD kWHILE_MOD kUNTIL_MOD
28
+ left kOR kAND
29
+ right kNOT
30
+ nonassoc kDEFINED
31
+ right tEQL tOP_ASGN
32
+ left kRESCUE_MOD
33
+ right tEH tCOLON
34
+ nonassoc tDOT2 tDOT3
35
+ left tOROP
36
+ left tANDOP
37
+ nonassoc tCMP tEQ tEQQ tNEQ tMATCH tNMATCH
38
+ left tGT tGEQ tLT tLEQ
39
+ left tPIPE tCARET
40
+ left tAMPER2
41
+ left tLSHFT tRSHFT
42
+ left tPLUS tMINUS
43
+ left tSTAR2 tDIVIDE tPERCENT # TODO: tSTAR2 -> tMULT
44
+ right tUMINUS_NUM tUMINUS
45
+ right tPOW
46
+ right tBANG tTILDE tUPLUS
47
+ prechigh
48
48
 
49
49
  rule
50
50
 
51
51
  program: {
52
- self.lexer.lex_state = :expr_beg
52
+ self.lexer.lex_state = EXPR_BEG
53
53
  }
54
54
  top_compstmt
55
55
  {
@@ -58,7 +58,8 @@ rule
58
58
 
59
59
  top_compstmt: top_stmts opt_terms
60
60
  {
61
- result = val[0]
61
+ stmt, _ = val
62
+ result = stmt
62
63
  }
63
64
 
64
65
  top_stmts: none
@@ -70,14 +71,6 @@ rule
70
71
  | error top_stmt
71
72
 
72
73
  top_stmt: stmt
73
- {
74
- result = val[0]
75
-
76
- # TODO: remove once I have more confidence this is fixed
77
- # result.each_of_type :call_args do |s|
78
- # debug20 666, s, result
79
- # end
80
- }
81
74
  | klBEGIN
82
75
  {
83
76
  if (self.in_def || self.in_single > 0) then
@@ -86,14 +79,40 @@ rule
86
79
  end
87
80
  self.env.extend
88
81
  }
89
- tLCURLY top_compstmt tRCURLY
82
+ begin_block
90
83
  {
91
- result = new_iter s(:preexe), nil, val[3]
84
+ (_, lineno), _, iter = val
85
+ iter.line lineno
86
+
87
+ (_, preexe,) = iter
88
+ preexe.line lineno
89
+
90
+ result = iter
91
+ }
92
+
93
+ begin_block: tLCURLY { result = lexer.lineno } top_compstmt tRCURLY
94
+ {
95
+ _, line, stmt, _ = val
96
+ result = new_iter s(:preexe).line(line), 0, stmt
92
97
  }
93
98
 
94
- bodystmt: compstmt opt_rescue opt_else opt_ensure
99
+ bodystmt: compstmt opt_rescue k_else
95
100
  {
96
- result = new_body val
101
+ res = _values[-2]
102
+ yyerror "else without rescue is useless" unless res
103
+ }
104
+ compstmt
105
+ opt_ensure
106
+ {
107
+ body, resc, _, _, els, ens = val
108
+
109
+ result = new_body [body, resc, els, ens]
110
+ }
111
+ | compstmt opt_rescue opt_ensure
112
+ {
113
+ body, resc, ens = val
114
+
115
+ result = new_body [body, resc, nil, ens]
97
116
  }
98
117
 
99
118
  compstmt: stmts opt_terms
@@ -102,8 +121,8 @@ rule
102
121
  }
103
122
 
104
123
  stmts: none
105
- | stmt
106
- | stmts terms stmt
124
+ | stmt_or_begin # TODO: newline_node ?
125
+ | stmts terms stmt_or_begin
107
126
  {
108
127
  result = self.block_append val[0], val[2]
109
128
  }
@@ -113,22 +132,30 @@ rule
113
132
  debug20 2, val, result
114
133
  }
115
134
 
135
+ stmt_or_begin: stmt
136
+ | klBEGIN
137
+ {
138
+ yyerror "BEGIN is permitted only at toplevel"
139
+ }
140
+
116
141
  stmt: kALIAS fitem
117
142
  {
118
- lexer.lex_state = :expr_fname
119
- result = self.lexer.lineno
143
+ lexer.lex_state = EXPR_FNAME
120
144
  }
121
145
  fitem
122
146
  {
123
- result = s(:alias, val[1], val[3]).line(val[2])
147
+ (_, line), lhs, _, rhs = val
148
+ result = s(:alias, lhs, rhs).line(line).line line
124
149
  }
125
150
  | kALIAS tGVAR tGVAR
126
151
  {
127
- result = s(:valias, val[1].to_sym, val[2].to_sym)
152
+ (_, line), lhs, rhs = val
153
+ result = s(:valias, lhs.to_sym, rhs.to_sym).line line
128
154
  }
129
155
  | kALIAS tGVAR tBACK_REF
130
156
  {
131
- result = s(:valias, val[1].to_sym, :"$#{val[2]}")
157
+ (_, line), lhs, rhs = val
158
+ result = s(:valias, lhs.to_sym, :"$#{rhs}").line line
132
159
  }
133
160
  | kALIAS tGVAR tNTH_REF
134
161
  {
@@ -140,54 +167,84 @@ rule
140
167
  }
141
168
  | stmt kIF_MOD expr_value
142
169
  {
143
- result = new_if val[2], val[0], nil
170
+ t, _, c = val
171
+ result = new_if c, t, nil
144
172
  }
145
173
  | stmt kUNLESS_MOD expr_value
146
174
  {
147
- result = new_if val[2], nil, val[0]
175
+ f, _, c = val
176
+ result = new_if c, nil, f
148
177
  }
149
178
  | stmt kWHILE_MOD expr_value
150
179
  {
151
- result = new_while val[0], val[2], true
180
+ e, _, c = val
181
+ result = new_while e, c, true
152
182
  }
153
183
  | stmt kUNTIL_MOD expr_value
154
184
  {
155
- result = new_until val[0], val[2], true
185
+ e, _, c = val
186
+ result = new_until e, c, true
156
187
  }
157
188
  | stmt kRESCUE_MOD stmt
158
189
  {
159
- result = s(:rescue, val[0], new_resbody(s(:array), val[2]))
190
+ body, _, resbody = val
191
+
192
+ resbody = new_resbody s(:array).line(resbody.line), resbody
193
+ result = new_rescue body, resbody
160
194
  }
161
195
  | klEND tLCURLY compstmt tRCURLY
162
196
  {
197
+ (_, line), _, stmt, _ = val
198
+
163
199
  if (self.in_def || self.in_single > 0) then
164
200
  debug20 3
165
201
  yyerror "END in method; use at_exit"
166
202
  end
167
- result = new_iter s(:postexe), 0, val[2]
203
+
204
+ result = new_iter s(:postexe).line(line), 0, stmt
168
205
  }
169
206
  | command_asgn
170
207
  | mlhs tEQL command_call
171
208
  {
172
209
  result = new_masgn val[0], val[2], :wrap
173
210
  }
174
- | var_lhs tOP_ASGN command_call
211
+ | lhs tEQL mrhs
212
+ {
213
+ lhs, _, rhs = val
214
+ result = new_assign lhs, s(:svalue, rhs).line(rhs.line)
215
+ }
216
+ | mlhs tEQL mrhs_arg
217
+ {
218
+ result = new_masgn val[0], val[2]
219
+ }
220
+ | expr
221
+
222
+ command_asgn: lhs tEQL command_rhs
223
+ {
224
+ result = new_assign val[0], val[2]
225
+ }
226
+ # | lhs tEQL command_asgn
227
+ # {
228
+ # result = new_assign val[0], val[2]
229
+ # }
230
+ | var_lhs tOP_ASGN command_rhs
175
231
  {
176
232
  result = new_op_asgn val
177
233
  }
178
- | primary_value tLBRACK2 opt_call_args rbracket tOP_ASGN command_call
234
+ | primary_value tLBRACK2 opt_call_args rbracket tOP_ASGN command_rhs
179
235
  {
180
- result = s(:op_asgn1, val[0], val[2], val[4].to_sym, val[5])
236
+ result = new_op_asgn1 val
181
237
  }
182
- | primary_value call_op tIDENTIFIER tOP_ASGN command_call
238
+ | primary_value call_op tIDENTIFIER tOP_ASGN command_rhs
183
239
  {
184
- result = s(:op_asgn, val[0], val[4], val[2].to_sym, val[3].to_sym)
240
+ prim, _, id, opasgn, rhs = val
241
+ result = s(:op_asgn, prim, rhs, id.to_sym, opasgn.to_sym)
185
242
  if val[1] == '&.'
186
243
  result.sexp_type = :safe_op_asgn
187
244
  end
188
245
  result.line = val[0].line
189
246
  }
190
- | primary_value call_op tCONSTANT tOP_ASGN command_call
247
+ | primary_value call_op tCONSTANT tOP_ASGN command_rhs
191
248
  {
192
249
  result = s(:op_asgn, val[0], val[4], val[2].to_sym, val[3].to_sym)
193
250
  if val[1] == '&.'
@@ -195,55 +252,53 @@ rule
195
252
  end
196
253
  result.line = val[0].line
197
254
  }
198
- | primary_value tCOLON2 tCONSTANT tOP_ASGN command_call
255
+ | primary_value tCOLON2 tCONSTANT tOP_ASGN command_rhs
199
256
  {
200
- result = s(:op_asgn, val[0], val[4], val[2], val[3])
201
- debug20 4, val, result
257
+ lhs1, _, lhs2, op, rhs = val
258
+
259
+ result = s(:op_asgn, lhs1, rhs, lhs2.to_sym, op.to_sym)
202
260
  }
203
- | primary_value tCOLON2 tIDENTIFIER tOP_ASGN command_call
261
+ | primary_value tCOLON2 tIDENTIFIER tOP_ASGN command_rhs
204
262
  {
205
- result = s(:op_asgn, val[0], val[4], val[2], val[3])
206
- debug20 5, val, result
263
+ lhs1, _, lhs2, op, rhs = val
264
+
265
+ result = s(:op_asgn, lhs1, rhs, lhs2.to_sym, op.to_sym)
207
266
  }
208
- | backref tOP_ASGN command_call
267
+ | backref tOP_ASGN command_rhs
209
268
  {
210
269
  self.backref_assign_error val[0]
211
270
  }
212
- | lhs tEQL mrhs
213
- {
214
- result = new_assign val[0], s(:svalue, val[2])
215
- }
216
- | mlhs tEQL mrhs_arg
217
- {
218
- result = new_masgn val[0], val[2]
219
- }
220
- | expr
221
271
 
222
- command_asgn: lhs tEQL command_call
223
- {
224
- result = new_assign val[0], val[2]
225
- }
226
- | lhs tEQL command_asgn
272
+ command_rhs: command_call =tOP_ASGN
227
273
  {
228
- result = new_assign val[0], val[2]
274
+ expr, = val
275
+ result = value_expr expr
229
276
  }
277
+ | command_asgn
230
278
 
231
279
  expr: command_call
232
280
  | expr kAND expr
233
281
  {
234
- result = logical_op :and, val[0], val[2]
282
+ lhs, _, rhs = val
283
+ result = logical_op :and, lhs, rhs
235
284
  }
236
285
  | expr kOR expr
237
286
  {
238
- result = logical_op :or, val[0], val[2]
287
+ lhs, _, rhs = val
288
+ result = logical_op :or, lhs, rhs
239
289
  }
240
290
  | kNOT opt_nl expr
241
291
  {
242
- result = s(:call, val[2], :"!")
292
+ (_, line), _, expr = val
293
+ result = new_call(expr, :"!").line line
294
+ # REFACTOR: call_uni_op
243
295
  }
244
296
  | tBANG command_call
245
297
  {
246
- result = s(:call, val[1], :"!")
298
+ _, cmd = val
299
+ result = new_call(cmd, :"!").line cmd.line
300
+ # TODO: fix line number to tBANG... but causes BAD shift/reduce conflict
301
+ # REFACTOR: call_uni_op -- see parse26.y
247
302
  }
248
303
  | arg
249
304
 
@@ -252,54 +307,71 @@ rule
252
307
  result = value_expr(val[0])
253
308
  }
254
309
 
310
+ expr_value_do: {
311
+ lexer.cond.push true
312
+ }
313
+ expr_value do
314
+ {
315
+ lexer.cond.pop
316
+ }
317
+ {
318
+ _, expr, _, _ = val
319
+ result = expr
320
+ }
321
+
255
322
  command_call: command
256
323
  | block_command
257
324
 
258
325
  block_command: block_call
259
- | block_call dot_or_colon operation2 command_args
326
+ | block_call call_op2 operation2 command_args
260
327
  {
261
- result = new_call val[0], val[2].to_sym, val[3]
328
+ blk, _, msg, args = val
329
+ result = new_call(blk, msg.to_sym, args).line blk.line
262
330
  }
263
331
 
264
332
  cmd_brace_block: tLBRACE_ARG
265
333
  {
266
- self.env.extend(:dynamic)
334
+ # self.env.extend(:dynamic)
267
335
  result = self.lexer.lineno
268
336
  }
269
- opt_block_param
337
+ brace_body tRCURLY
270
338
  {
271
- result = nil # self.env.dynamic.keys
272
- }
273
- compstmt tRCURLY
274
- {
275
- result = new_iter nil, val[2], val[4]
276
- result.line = val[1]
339
+ _, line, body, _ = val
277
340
 
278
- self.env.unextend
341
+ result = body
342
+ result.line = line
343
+
344
+ # self.env.unextend
279
345
  }
280
346
 
281
347
  fcall: operation
282
348
  {
283
- result = new_call nil, val[0].to_sym
349
+ msg, = val
350
+ result = new_call(nil, msg.to_sym).line lexer.lineno
284
351
  }
285
352
 
286
353
  command: fcall command_args =tLOWEST
287
354
  {
288
- result = val[0].concat val[1].sexp_body # REFACTOR pattern
355
+ call, args = val
356
+ result = call.concat args.sexp_body
289
357
  }
290
358
  | fcall command_args cmd_brace_block
291
359
  {
292
- result = val[0].concat val[1].sexp_body
293
- if val[2] then
294
- block_dup_check result, val[2]
360
+ call, args, block = val
361
+
362
+ result = call.concat args.sexp_body
295
363
 
296
- result, operation = val[2], result
364
+ if block then
365
+ block_dup_check result, block
366
+
367
+ result, operation = block, result
297
368
  result.insert 1, operation
298
369
  end
299
370
  }
300
371
  | primary_value call_op operation2 command_args =tLOWEST
301
372
  {
302
- result = new_call val[0], val[2].to_sym, val[3], val[1]
373
+ lhs, callop, op, args = val
374
+ result = new_call lhs, op.to_sym, args, callop
303
375
  }
304
376
  | primary_value call_op operation2 command_args cmd_brace_block
305
377
  {
@@ -331,17 +403,19 @@ rule
331
403
  }
332
404
  | kYIELD command_args
333
405
  {
334
- result = new_yield val[1]
406
+ (_, line), args = val
407
+ result = new_yield args
408
+ result.line line # TODO: push to new_yield
335
409
  }
336
- | kRETURN call_args
410
+ | k_return call_args
337
411
  {
338
412
  line = val[0].last
339
413
  result = s(:return, ret_args(val[1])).line(line)
340
414
  }
341
415
  | kBREAK call_args
342
416
  {
343
- line = val[0].last
344
- result = s(:break, ret_args(val[1])).line(line)
417
+ (_, line), args = val
418
+ result = s(:break, ret_args(args)).line line
345
419
  }
346
420
  | kNEXT call_args
347
421
  {
@@ -358,56 +432,79 @@ rule
358
432
  mlhs_inner: mlhs_basic
359
433
  | tLPAREN mlhs_inner rparen
360
434
  {
361
- result = s(:masgn, s(:array, val[1]))
435
+ _, arg, _ = val
436
+ l = arg.line
437
+
438
+ result = s(:masgn, s(:array, arg).line(l)).line l
362
439
  }
363
440
 
364
441
  mlhs_basic: mlhs_head
365
442
  {
366
- result = s(:masgn, val[0])
443
+ head, = val
444
+ result = s(:masgn, head).line head.line
367
445
  }
368
446
  | mlhs_head mlhs_item
369
447
  {
370
- result = s(:masgn, val[0] << val[1].compact)
448
+ lhs, rhs = val
449
+ result = s(:masgn, lhs << rhs.compact).line lhs.line
371
450
  }
372
451
  | mlhs_head tSTAR mlhs_node
373
452
  {
374
- result = s(:masgn, val[0] << s(:splat, val[2]))
453
+ head, _, tail = val
454
+ head << s(:splat, tail).line(tail.line)
455
+ result = s(:masgn, head).line head.line
375
456
  }
376
457
  | mlhs_head tSTAR mlhs_node tCOMMA mlhs_post
377
458
  {
378
459
  ary1, _, splat, _, ary2 = val
379
460
 
380
- result = list_append ary1, s(:splat, splat)
461
+ result = list_append ary1, s(:splat, splat).line(splat.line)
381
462
  result.concat ary2.sexp_body
382
- result = s(:masgn, result)
463
+ result = s(:masgn, result).line result.line
383
464
  }
384
465
  | mlhs_head tSTAR
385
466
  {
386
- result = s(:masgn, val[0] << s(:splat))
467
+ head, _ = val
468
+ l = head.line
469
+ result = s(:masgn, head << s(:splat).line(l)).line l
387
470
  }
388
471
  | mlhs_head tSTAR tCOMMA mlhs_post
389
472
  {
390
- ary = list_append val[0], s(:splat)
391
- ary.concat val[3].sexp_body
392
- result = s(:masgn, ary)
473
+ head, _, _, post = val
474
+ ary = list_append head, s(:splat).line(head.line)
475
+ ary.concat post.sexp_body
476
+ result = s(:masgn, ary).line ary.line
393
477
  }
394
478
  | tSTAR mlhs_node
395
479
  {
396
- result = s(:masgn, s(:array, s(:splat, val[1])))
480
+ _, node = val
481
+ l = node.line
482
+ splat = s(:splat, node).line l
483
+ ary = s(:array, splat).line l
484
+ result = s(:masgn, ary).line l
397
485
  }
398
486
  | tSTAR mlhs_node tCOMMA mlhs_post
399
487
  {
400
- ary = s(:array, s(:splat, val[1]))
401
- ary.concat val[3].sexp_body
402
- result = s(:masgn, ary)
488
+ _, node, _, post = val
489
+
490
+ splat = s(:splat, node).line node.line
491
+ ary = s(:array, splat).line splat.line
492
+ ary.concat post.sexp_body
493
+ result = s(:masgn, ary).line ary.line
403
494
  }
404
495
  | tSTAR
405
496
  {
406
- result = s(:masgn, s(:array, s(:splat)))
497
+ l = lexer.lineno
498
+ result = s(:masgn, s(:array, s(:splat).line(l)).line(l)).line l
407
499
  }
408
500
  | tSTAR tCOMMA mlhs_post
409
501
  {
410
- result = s(:masgn, s(:array, s(:splat), *val[2].sexp_body))
502
+ _, _, post = val
503
+ l = post.line
504
+
505
+ splat = s(:splat).line l
506
+ ary = s(:array, splat, *post.sexp_body).line l
507
+ result = s(:masgn, ary).line l
411
508
  }
412
509
 
413
510
  mlhs_item: mlhs_node
@@ -418,7 +515,8 @@ rule
418
515
 
419
516
  mlhs_head: mlhs_item tCOMMA
420
517
  {
421
- result = s(:array, val[0])
518
+ lhs, _ = val
519
+ result = s(:array, lhs).line lhs.line
422
520
  }
423
521
  | mlhs_head mlhs_item tCOMMA
424
522
  {
@@ -427,7 +525,8 @@ rule
427
525
 
428
526
  mlhs_post: mlhs_item
429
527
  {
430
- result = s(:array, val[0])
528
+ item, = val
529
+ result = s(:array, item).line item.line
431
530
  }
432
531
  | mlhs_post tCOMMA mlhs_item
433
532
  {
@@ -452,7 +551,8 @@ rule
452
551
  }
453
552
  | primary_value tCOLON2 tIDENTIFIER
454
553
  {
455
- result = s(:attrasgn, val[0], :"#{val[2]}=")
554
+ recv, _, id = val
555
+ result = new_attrasgn recv, id
456
556
  }
457
557
  | primary_value call_op tCONSTANT
458
558
  {
@@ -465,7 +565,10 @@ rule
465
565
  yyerror "dynamic constant assignment"
466
566
  end
467
567
 
468
- result = s(:const, s(:colon2, val[0], val[2].to_sym), nil)
568
+ expr, _, id = val
569
+ l = expr.line
570
+
571
+ result = s(:const, s(:colon2, expr, id.to_sym).line(l), nil).line l
469
572
  }
470
573
  | tCOLON3 tCONSTANT
471
574
  {
@@ -474,7 +577,10 @@ rule
474
577
  yyerror "dynamic constant assignment"
475
578
  end
476
579
 
477
- result = s(:const, nil, s(:colon3, val[1].to_sym))
580
+ _, id = val
581
+ l = lexer.lineno
582
+
583
+ result = s(:const, nil, s(:colon3, id.to_sym).line(l)).line l
478
584
  }
479
585
  | backref
480
586
  {
@@ -483,24 +589,31 @@ rule
483
589
 
484
590
  lhs: user_variable
485
591
  {
592
+ line = lexer.lineno
486
593
  result = self.assignable val[0]
594
+ result.line = line
487
595
  }
488
596
  | keyword_variable
489
597
  {
598
+ line = lexer.lineno
490
599
  result = self.assignable val[0]
600
+ result.line = line
491
601
  debug20 9, val, result
492
602
  }
493
603
  | primary_value tLBRACK2 opt_call_args rbracket
494
604
  {
495
- result = self.aryset val[0], val[2]
605
+ lhs, _, args, _ = val
606
+ result = self.aryset lhs, args
496
607
  }
497
608
  | primary_value call_op tIDENTIFIER # REFACTOR
498
609
  {
499
- result = new_attrasgn val[0], val[2], val[1]
610
+ lhs, op, id = val
611
+ result = new_attrasgn lhs, id, op
500
612
  }
501
613
  | primary_value tCOLON2 tIDENTIFIER
502
614
  {
503
- result = s(:attrasgn, val[0], :"#{val[2]}=")
615
+ lhs, _, id = val
616
+ result = new_attrasgn lhs, id
504
617
  }
505
618
  | primary_value call_op tCONSTANT # REFACTOR?
506
619
  {
@@ -508,21 +621,27 @@ rule
508
621
  }
509
622
  | primary_value tCOLON2 tCONSTANT
510
623
  {
624
+ expr, _, id = val
625
+
511
626
  if (self.in_def || self.in_single > 0) then
512
627
  debug20 10
513
628
  yyerror "dynamic constant assignment"
514
629
  end
515
630
 
516
- result = s(:const, s(:colon2, val[0], val[2].to_sym))
631
+ l = expr.line
632
+ result = s(:const, s(:colon2, expr, id.to_sym).line(l)).line l
517
633
  }
518
634
  | tCOLON3 tCONSTANT
519
635
  {
636
+ _, id = val
637
+
520
638
  if (self.in_def || self.in_single > 0) then
521
639
  debug20 11
522
640
  yyerror "dynamic constant assignment"
523
641
  end
524
642
 
525
- result = s(:const, s(:colon3, val[1].to_sym))
643
+ l = lexer.lineno
644
+ result = s(:const, s(:colon3, id.to_sym).line(l)).line l
526
645
  }
527
646
  | backref
528
647
  {
@@ -537,7 +656,8 @@ rule
537
656
 
538
657
  cpath: tCOLON3 cname
539
658
  {
540
- result = s(:colon3, val[1].to_sym)
659
+ _, name = val
660
+ result = s(:colon3, name.to_sym).line lexer.lineno
541
661
  }
542
662
  | cname
543
663
  {
@@ -545,27 +665,32 @@ rule
545
665
  }
546
666
  | primary_value tCOLON2 cname
547
667
  {
548
- result = s(:colon2, val[0], val[2].to_sym)
668
+ pval, _, name = val
669
+
670
+ result = s(:colon2, pval, name.to_sym)
671
+ result.line pval.line
549
672
  }
550
673
 
551
674
  fname: tIDENTIFIER | tCONSTANT | tFID
552
675
  | op
553
676
  {
554
- lexer.lex_state = :expr_end
677
+ lexer.lex_state = EXPR_END
555
678
  result = val[0]
556
679
  }
557
680
 
558
681
  | reswords
559
682
  {
560
- lexer.lex_state = :expr_end
561
- result = val[0]
683
+ (sym, _line), = val
684
+ lexer.lex_state = EXPR_END
685
+ result = sym
562
686
  }
563
687
 
564
688
  fsym: fname | symbol
565
689
 
566
690
  fitem: fsym
567
691
  {
568
- result = s(:lit, val[0].to_sym)
692
+ id, = val
693
+ result = s(:lit, id.to_sym).line lexer.lineno
569
694
  }
570
695
  | dsym
571
696
 
@@ -576,7 +701,7 @@ rule
576
701
  |
577
702
  undef_list tCOMMA
578
703
  {
579
- lexer.lex_state = :expr_fname
704
+ lexer.lex_state = EXPR_FNAME
580
705
  }
581
706
  fitem
582
707
  {
@@ -588,6 +713,8 @@ rule
588
713
  | tNEQ | tLSHFT | tRSHFT | tPLUS | tMINUS | tSTAR2
589
714
  | tSTAR | tDIVIDE | tPERCENT | tPOW | tDSTAR | tBANG | tTILDE
590
715
  | tUPLUS | tUMINUS | tAREF | tASET | tBACK_REF2
716
+ # TODO: tUBANG dead?
717
+ | tUBANG
591
718
 
592
719
  reswords: k__LINE__ | k__FILE__ | k__ENCODING__ | klBEGIN | klEND
593
720
  | kALIAS | kAND | kBEGIN | kBREAK | kCASE
@@ -599,68 +726,72 @@ rule
599
726
  | kWHEN | kYIELD | kIF | kUNLESS | kWHILE
600
727
  | kUNTIL
601
728
 
602
- arg: lhs tEQL arg
729
+ arg: lhs tEQL arg_rhs
603
730
  {
604
731
  result = new_assign val[0], val[2]
605
732
  }
606
- | lhs tEQL arg kRESCUE_MOD arg
607
- {
608
- result = new_assign val[0], s(:rescue, val[2], new_resbody(s(:array), val[4]))
609
- }
610
- | var_lhs tOP_ASGN arg
733
+ | var_lhs tOP_ASGN arg_rhs
611
734
  {
612
735
  result = new_op_asgn val
613
736
  }
614
- | var_lhs tOP_ASGN arg kRESCUE_MOD arg
737
+ | primary_value tLBRACK2 opt_call_args rbracket tOP_ASGN arg_rhs
615
738
  {
616
- result = new_op_asgn val
617
- result = s(:rescue, result, new_resbody(s(:array), val[4]))
739
+ result = new_op_asgn1 val
618
740
  }
619
- | primary_value tLBRACK2 opt_call_args rbracket tOP_ASGN arg
741
+ | primary_value call_op tIDENTIFIER tOP_ASGN arg_rhs
620
742
  {
621
- val[2].sexp_type = :arglist if val[2]
622
- result = s(:op_asgn1, val[0], val[2], val[4].to_sym, val[5])
743
+ result = new_op_asgn2 val
623
744
  }
624
- | primary_value call_op tIDENTIFIER tOP_ASGN arg
745
+ | primary_value call_op tCONSTANT tOP_ASGN arg_rhs
625
746
  {
626
747
  result = new_op_asgn2 val
627
748
  }
628
- | primary_value call_op tCONSTANT tOP_ASGN arg
749
+ | primary_value tCOLON2 tIDENTIFIER tOP_ASGN arg_rhs
629
750
  {
630
- result = new_op_asgn2 val
751
+ lhs, _, id, op, rhs = val
752
+
753
+ result = s(:op_asgn, lhs, rhs, id.to_sym, op.to_sym).line lhs.line
631
754
  }
632
- | primary_value tCOLON2 tIDENTIFIER tOP_ASGN arg
755
+ | primary_value tCOLON2 tCONSTANT tOP_ASGN arg_rhs
633
756
  {
634
- result = s(:op_asgn, val[0], val[4], val[2].to_sym, val[3].to_sym)
757
+ lhs1, _, lhs2, op, rhs = val
758
+
759
+ lhs = s(:colon2, lhs1, lhs2.to_sym).line lhs1.line
760
+ result = new_const_op_asgn [lhs, op, rhs]
635
761
  }
636
- | primary_value tCOLON2 tCONSTANT tOP_ASGN arg
762
+ | tCOLON3 tCONSTANT
637
763
  {
638
- yyerror "constant re-assignment"
764
+ result = self.lexer.lineno
639
765
  }
640
- | tCOLON3 tCONSTANT tOP_ASGN arg
766
+ tOP_ASGN arg_rhs
641
767
  {
642
- yyerror "constant re-assignment"
768
+ _, lhs, line, op, rhs = val
769
+
770
+ lhs = s(:colon3, lhs.to_sym).line line
771
+ result = new_const_op_asgn [lhs, op, rhs]
643
772
  }
644
- | backref tOP_ASGN arg
773
+ | backref tOP_ASGN arg_rhs
645
774
  {
646
- self.backref_assign_error val[0]
775
+ # TODO: lhs = var_field val[0]
776
+ asgn = new_op_asgn val
777
+ result = self.backref_assign_error asgn
647
778
  }
648
779
  | arg tDOT2 arg
649
780
  {
650
781
  v1, v2 = val[0], val[2]
651
782
  if v1.node_type == :lit and v2.node_type == :lit and Integer === v1.last and Integer === v2.last then
652
- result = s(:lit, (v1.last)..(v2.last))
783
+ result = s(:lit, (v1.last)..(v2.last)).line v1.line
653
784
  else
654
- result = s(:dot2, v1, v2)
785
+ result = s(:dot2, v1, v2).line v1.line
655
786
  end
656
787
  }
657
788
  | arg tDOT3 arg
658
789
  {
659
790
  v1, v2 = val[0], val[2]
660
791
  if v1.node_type == :lit and v2.node_type == :lit and Integer === v1.last and Integer === v2.last then
661
- result = s(:lit, (v1.last)...(v2.last))
792
+ result = s(:lit, (v1.last)...(v2.last)).line v1.line
662
793
  else
663
- result = s(:dot3, v1, v2)
794
+ result = s(:dot3, v1, v2).line v1.line
664
795
  end
665
796
  }
666
797
  | arg tPLUS arg
@@ -689,7 +820,9 @@ rule
689
820
  }
690
821
  | tUMINUS_NUM simple_numeric tPOW arg
691
822
  {
692
- result = new_call(new_call(s(:lit, val[1]), :"**", argl(val[3])), :"-@")
823
+ lit = s(:lit, val[1]).line lexer.lineno
824
+ result = new_call(new_call(lit, :"**", argl(val[3])), :"-@")
825
+
693
826
  }
694
827
  | tUPLUS arg
695
828
  {
@@ -715,22 +848,7 @@ rule
715
848
  {
716
849
  result = new_call val[0], :"<=>", argl(val[2])
717
850
  }
718
- | arg tGT arg
719
- {
720
- result = new_call val[0], :">", argl(val[2])
721
- }
722
- | arg tGEQ arg
723
- {
724
- result = new_call val[0], :">=", argl(val[2])
725
- }
726
- | arg tLT arg
727
- {
728
- result = new_call val[0], :"<", argl(val[2])
729
- }
730
- | arg tLEQ arg
731
- {
732
- result = new_call val[0], :"<=", argl(val[2])
733
- }
851
+ | rel_expr =tCMP
734
852
  | arg tEQ arg
735
853
  {
736
854
  result = new_call val[0], :"==", argl(val[2])
@@ -745,15 +863,19 @@ rule
745
863
  }
746
864
  | arg tMATCH arg
747
865
  {
748
- result = new_match val[0], val[2]
866
+ lhs, _, rhs = val
867
+ result = new_match lhs, rhs
749
868
  }
750
869
  | arg tNMATCH arg
751
870
  {
752
- result = s(:not, new_match(val[0], val[2]))
871
+ lhs, _, rhs = val
872
+ result = s(:not, new_match(lhs, rhs)).line lhs.line
753
873
  }
754
874
  | tBANG arg
755
875
  {
756
- result = new_call val[1], :"!"
876
+ _, arg = val
877
+ result = new_call arg, :"!"
878
+ result.line arg.line
757
879
  }
758
880
  | tTILDE arg
759
881
  {
@@ -781,14 +903,33 @@ rule
781
903
  }
782
904
  | kDEFINED opt_nl arg
783
905
  {
784
- result = s(:defined, val[2])
906
+ (_, line), _, arg = val
907
+ result = s(:defined, arg).line line
785
908
  }
786
909
  | arg tEH arg opt_nl tCOLON arg
787
910
  {
788
- result = s(:if, val[0], val[2], val[5])
911
+ c, _, t, _, _, f = val
912
+ result = s(:if, c, t, f).line c.line
789
913
  }
790
914
  | primary
791
915
 
916
+ relop: tGT
917
+ | tLT
918
+ | tGEQ
919
+ | tLEQ
920
+
921
+ rel_expr: arg relop arg =tGT
922
+ {
923
+ lhs, op, rhs = val
924
+ result = new_call lhs, op.to_sym, argl(rhs)
925
+ }
926
+ | rel_expr relop arg =tGT
927
+ {
928
+ lhs, op, rhs = val
929
+ warn "comparison '%s' after comparison", op
930
+ result = new_call lhs, op.to_sym, argl(rhs)
931
+ }
932
+
792
933
  arg_value: arg
793
934
  {
794
935
  result = value_expr(val[0])
@@ -808,22 +949,28 @@ rule
808
949
  result = args [array_to_hash(val[0])]
809
950
  }
810
951
 
952
+ arg_rhs: arg =tOP_ASGN
953
+ | arg kRESCUE_MOD arg
954
+ {
955
+ body, (_, line), resbody = val
956
+ body = value_expr body
957
+ resbody = remove_begin resbody
958
+
959
+ ary = s(:array).line line
960
+ result = new_rescue(body, new_resbody(ary, resbody))
961
+ }
962
+
811
963
  paren_args: tLPAREN2 opt_call_args rparen
812
964
  {
813
- result = val[1]
965
+ _, args, _ = val
966
+ result = args
814
967
  }
815
968
 
816
969
  opt_paren_args: none
817
970
  | paren_args
818
971
 
819
972
  opt_call_args: none
820
- {
821
- result = val[0]
822
- }
823
973
  | call_args
824
- {
825
- result = val[0]
826
- }
827
974
  | args tCOMMA
828
975
  {
829
976
  result = args val
@@ -845,17 +992,14 @@ rule
845
992
  | args opt_block_arg
846
993
  {
847
994
  result = call_args val
848
- result = self.arg_blk_pass val[0], val[1]
849
995
  }
850
996
  | assocs opt_block_arg
851
997
  {
852
- result = call_args [array_to_hash(val[0])]
853
- result = self.arg_blk_pass result, val[1]
998
+ result = call_args [array_to_hash(val[0]), val[1]]
854
999
  }
855
1000
  | args tCOMMA assocs opt_block_arg
856
1001
  {
857
- result = call_args [val[0], array_to_hash(val[2])]
858
- result = self.arg_blk_pass result, val[3]
1002
+ result = call_args [val[0], array_to_hash(val[2]), val[3]]
859
1003
  }
860
1004
  | block_arg
861
1005
  {
@@ -863,18 +1007,45 @@ rule
863
1007
  }
864
1008
 
865
1009
  command_args: {
866
- result = lexer.cmdarg.stack.dup # TODO: smell?
1010
+ # parse26.y line 2200
1011
+
1012
+ # If call_args starts with a open paren '(' or
1013
+ # '[', look-ahead reading of the letters calls
1014
+ # CMDARG_PUSH(0), but the push must be done
1015
+ # after CMDARG_PUSH(1). So this code makes them
1016
+ # consistent by first cancelling the premature
1017
+ # CMDARG_PUSH(0), doing CMDARG_PUSH(1), and
1018
+ # finally redoing CMDARG_PUSH(0).
1019
+
1020
+ result = yychar = self.last_token_type.first
1021
+ lookahead = [:tLPAREN, :tLPAREN_ARG, :tLPAREN2, :tLBRACK, :tLBRACK2].include?(yychar)
1022
+ lexer.cmdarg.pop if lookahead
867
1023
  lexer.cmdarg.push true
1024
+ lexer.cmdarg.push false if lookahead
868
1025
  }
869
1026
  call_args
870
1027
  {
871
- lexer.cmdarg.stack.replace val[0]
872
- result = val[1]
1028
+ yychar, args = val
1029
+
1030
+ # call_args can be followed by tLBRACE_ARG (that
1031
+ # does CMDARG_PUSH(0) in the lexer) but the push
1032
+ # must be done after CMDARG_POP() in the parser.
1033
+ # So this code does CMDARG_POP() to pop 0 pushed
1034
+ # by tLBRACE_ARG, CMDARG_POP() to pop 1 pushed
1035
+ # by command_args, and CMDARG_PUSH(0) to restore
1036
+ # back the flag set by tLBRACE_ARG.
1037
+
1038
+ lookahead = [:tLBRACE_ARG].include?(yychar)
1039
+ lexer.cmdarg.pop if lookahead
1040
+ lexer.cmdarg.pop
1041
+ lexer.cmdarg.push false if lookahead
1042
+ result = args
873
1043
  }
874
1044
 
875
1045
  block_arg: tAMPER arg_value
876
1046
  {
877
- result = s(:block_pass, val[1])
1047
+ _, arg = val
1048
+ result = s(:block_pass, arg).line arg.line
878
1049
  }
879
1050
 
880
1051
  opt_block_arg: tCOMMA block_arg
@@ -885,19 +1056,27 @@ rule
885
1056
 
886
1057
  args: arg_value
887
1058
  {
888
- result = s(:array, val[0])
1059
+ arg, = val
1060
+ lineno = arg.line || lexer.lineno # HACK
1061
+
1062
+ result = s(:array, arg).line lineno
889
1063
  }
890
1064
  | tSTAR arg_value
891
1065
  {
892
- result = s(:array, s(:splat, val[1]))
1066
+ _, arg = val
1067
+ result = s(:array, s(:splat, arg).line(arg.line)).line arg.line
893
1068
  }
894
1069
  | args tCOMMA arg_value
895
1070
  {
896
- result = self.list_append val[0], val[2]
1071
+ args, _, id = val
1072
+ result = self.list_append args, id
897
1073
  }
898
1074
  | args tCOMMA tSTAR arg_value
899
1075
  {
900
- result = self.list_append val[0], s(:splat, val[3])
1076
+ # TODO: the line number from tSTAR has been dropped
1077
+ args, _, _, id = val
1078
+ line = lexer.lineno
1079
+ result = self.list_append args, s(:splat, id).line(line)
901
1080
  }
902
1081
 
903
1082
  mrhs_arg: mrhs
@@ -915,11 +1094,14 @@ rule
915
1094
  }
916
1095
  | args tCOMMA tSTAR arg_value
917
1096
  {
918
- result = self.arg_concat val[0], val[3]
1097
+ # TODO: make all tXXXX terminals include lexer.lineno
1098
+ arg, _, _, splat = val
1099
+ result = self.arg_concat arg, splat
919
1100
  }
920
1101
  | tSTAR arg_value
921
1102
  {
922
- result = s(:splat, val[1])
1103
+ _, arg = val
1104
+ result = s(:splat, arg).line arg.line
923
1105
  }
924
1106
 
925
1107
  primary: literal
@@ -934,58 +1116,65 @@ rule
934
1116
  | backref
935
1117
  | tFID
936
1118
  {
937
- result = new_call nil, val[0].to_sym
1119
+ msg, = val
1120
+ result = new_call nil, msg.to_sym
938
1121
  }
939
- | kBEGIN
1122
+ | k_begin
940
1123
  {
1124
+ lexer.cmdarg.push false
941
1125
  result = self.lexer.lineno
942
1126
  }
943
- bodystmt kEND
1127
+ bodystmt k_end
944
1128
  {
945
- unless val[2] then
946
- result = s(:nil)
947
- else
948
- result = s(:begin, val[2])
949
- end
950
-
951
- result.line = val[1]
1129
+ lexer.cmdarg.pop
1130
+ result = new_begin val
952
1131
  }
953
- | tLPAREN_ARG rparen
1132
+ | tLPAREN_ARG
954
1133
  {
955
- debug20 13, val, result
1134
+ lexer.lex_state = EXPR_ENDARG
1135
+ result = lexer.lineno
956
1136
  }
957
- | tLPAREN_ARG
1137
+ rparen
958
1138
  {
959
- result = self.lexer.cmdarg.stack.dup
960
- lexer.cmdarg.stack.replace [false] # TODO add api for these
1139
+ _, line, _ = val
1140
+ result = s(:begin).line line
961
1141
  }
962
- expr
1142
+ | tLPAREN_ARG
1143
+ stmt
963
1144
  {
964
- lexer.lex_state = :expr_endarg
1145
+ lexer.lex_state = EXPR_ENDARG
965
1146
  }
966
1147
  rparen
967
1148
  {
968
- warning "(...) interpreted as grouped expression"
969
- lexer.cmdarg.stack.replace val[1]
970
- result = val[2]
1149
+ _, stmt, _, _, = val
1150
+ # warning "(...) interpreted as grouped expression"
1151
+ result = stmt
971
1152
  }
972
1153
  | tLPAREN compstmt tRPAREN
973
1154
  {
974
- result = val[1] || s(:nil)
1155
+ _, stmt, _ = val
1156
+ result = stmt
1157
+ result ||= s(:nil).line lexer.lineno
975
1158
  result.paren = true
976
1159
  }
977
1160
  | primary_value tCOLON2 tCONSTANT
978
1161
  {
979
- result = s(:colon2, val[0], val[2].to_sym)
1162
+ expr, _, id = val
1163
+
1164
+ result = s(:colon2, expr, id.to_sym).line expr.line
980
1165
  }
981
1166
  | tCOLON3 tCONSTANT
982
1167
  {
983
- result = s(:colon3, val[1].to_sym)
1168
+ _, id = val
1169
+
1170
+ result = s(:colon3, id.to_sym).line lexer.lineno
984
1171
  }
985
- | tLBRACK aref_args tRBRACK
1172
+ | tLBRACK { result = lexer.lineno } aref_args tRBRACK
986
1173
  {
987
- result = val[1] || s(:array)
1174
+ _, line, args, _ = val
1175
+ result = args || s(:array)
988
1176
  result.sexp_type = :array # aref_args is :args
1177
+ result.line line
989
1178
  }
990
1179
  | tLBRACE
991
1180
  {
@@ -995,9 +1184,10 @@ rule
995
1184
  {
996
1185
  result = new_hash val
997
1186
  }
998
- | kRETURN
1187
+ | k_return
999
1188
  {
1000
- result = s(:return)
1189
+ (_, line), = val
1190
+ result = s(:return).line line
1001
1191
  }
1002
1192
  | kYIELD tLPAREN2 call_args rparen
1003
1193
  {
@@ -1013,11 +1203,14 @@ rule
1013
1203
  }
1014
1204
  | kDEFINED opt_nl tLPAREN2 expr rparen
1015
1205
  {
1016
- result = s(:defined, val[3])
1206
+ (_, line), _, _, arg, _ = val
1207
+
1208
+ result = s(:defined, arg).line line
1017
1209
  }
1018
1210
  | kNOT tLPAREN2 expr rparen
1019
1211
  {
1020
- result = s(:call, val[2], :"!")
1212
+ _, _, lhs, _ = val
1213
+ result = new_call lhs, :"!"
1021
1214
  }
1022
1215
  | kNOT tLPAREN2 rparen
1023
1216
  {
@@ -1025,11 +1218,11 @@ rule
1025
1218
  }
1026
1219
  | fcall brace_block
1027
1220
  {
1028
- oper, iter = val[0], val[1]
1029
- call = oper # FIX
1221
+ call, iter = val
1222
+
1030
1223
  iter.insert 1, call
1031
1224
  result = iter
1032
- call.line = iter.line
1225
+ # FIX: probably not: call.line = iter.line
1033
1226
  }
1034
1227
  | method_call
1035
1228
  | method_call brace_block
@@ -1043,61 +1236,42 @@ rule
1043
1236
  {
1044
1237
  result = val[1] # TODO: fix lineno
1045
1238
  }
1046
- | kIF expr_value then compstmt if_tail kEND
1047
- {
1048
- result = new_if val[1], val[3], val[4]
1049
- }
1050
- | kUNLESS expr_value then compstmt opt_else kEND
1051
- {
1052
- result = new_if val[1], val[4], val[3]
1053
- }
1054
- | kWHILE
1055
- {
1056
- lexer.cond.push true
1057
- }
1058
- expr_value do
1059
- {
1060
- lexer.cond.pop
1061
- }
1062
- compstmt kEND
1239
+ | k_if expr_value then compstmt if_tail k_end
1063
1240
  {
1064
- result = new_while val[5], val[2], true
1241
+ _, c, _, t, f, _ = val
1242
+ result = new_if c, t, f
1065
1243
  }
1066
- | kUNTIL
1244
+ | k_unless expr_value then compstmt opt_else k_end
1067
1245
  {
1068
- lexer.cond.push true
1246
+ _, c, _, t, f, _ = val
1247
+ result = new_if c, f, t
1069
1248
  }
1070
- expr_value do
1249
+ | k_while expr_value_do compstmt k_end
1071
1250
  {
1072
- lexer.cond.pop
1251
+ _, cond, body, _ = val
1252
+ result = new_while body, cond, true
1073
1253
  }
1074
- compstmt kEND
1254
+ | k_until expr_value_do compstmt k_end
1075
1255
  {
1076
- result = new_until val[5], val[2], true
1256
+ _, cond, body, _ = val
1257
+ result = new_until body, cond, true
1077
1258
  }
1078
- | kCASE expr_value opt_terms case_body kEND
1259
+ | k_case expr_value opt_terms case_body k_end
1079
1260
  {
1080
1261
  (_, line), expr, _, body, _ = val
1081
1262
  result = new_case expr, body, line
1082
1263
  }
1083
- | kCASE opt_terms case_body kEND
1264
+ | k_case opt_terms case_body k_end
1084
1265
  {
1085
1266
  (_, line), _, body, _ = val
1086
1267
  result = new_case nil, body, line
1087
1268
  }
1088
- | kFOR for_var kIN
1269
+ | k_for for_var kIN expr_value_do compstmt k_end
1089
1270
  {
1090
- lexer.cond.push true
1091
- }
1092
- expr_value do
1093
- {
1094
- lexer.cond.pop
1271
+ _, var, _, iter, body, _ = val
1272
+ result = new_for iter, var, body
1095
1273
  }
1096
- compstmt kEND
1097
- {
1098
- result = new_for val[4], val[1], val[7]
1099
- }
1100
- | kCLASS
1274
+ | k_class
1101
1275
  {
1102
1276
  result = self.lexer.lineno
1103
1277
  }
@@ -1109,13 +1283,13 @@ rule
1109
1283
  end
1110
1284
  self.env.extend
1111
1285
  }
1112
- bodystmt kEND
1286
+ bodystmt k_end
1113
1287
  {
1114
1288
  result = new_class val
1115
1289
  self.env.unextend
1116
1290
  self.lexer.comments # we don't care about comments in the body
1117
1291
  }
1118
- | kCLASS tLSHFT
1292
+ | k_class tLSHFT
1119
1293
  {
1120
1294
  result = self.lexer.lineno
1121
1295
  }
@@ -1130,13 +1304,13 @@ rule
1130
1304
  self.in_single = 0
1131
1305
  self.env.extend
1132
1306
  }
1133
- bodystmt kEND
1307
+ bodystmt k_end
1134
1308
  {
1135
1309
  result = new_sclass val
1136
1310
  self.env.unextend
1137
1311
  self.lexer.comments # we don't care about comments in the body
1138
1312
  }
1139
- | kMODULE
1313
+ | k_module
1140
1314
  {
1141
1315
  result = self.lexer.lineno
1142
1316
  }
@@ -1148,74 +1322,90 @@ rule
1148
1322
 
1149
1323
  self.env.extend
1150
1324
  }
1151
- bodystmt kEND
1325
+ bodystmt k_end
1152
1326
  {
1153
1327
  result = new_module val
1154
1328
  self.env.unextend
1155
1329
  self.lexer.comments # we don't care about comments in the body
1156
1330
  }
1157
- | kDEF fname
1331
+ | k_def fname
1158
1332
  {
1159
- result = [self.in_def, self.lexer.cmdarg.stack.dup]
1333
+ result = self.in_def
1160
1334
 
1161
- self.comments.push self.lexer.comments
1162
- self.in_def = true
1335
+ self.in_def = true # group = local_push
1163
1336
  self.env.extend
1164
- # TODO: local->cmdargs = cmdarg_stack;
1165
- # TODO: port local_push_gen and local_pop_gen
1166
- lexer.cmdarg.stack.replace [false]
1337
+ lexer.cmdarg.push false
1338
+ lexer.cond.push false
1339
+
1340
+ self.comments.push self.lexer.comments
1167
1341
  }
1168
- f_arglist bodystmt kEND
1342
+ f_arglist bodystmt { result = lexer.lineno } k_end
1169
1343
  {
1170
- in_def, cmdarg = val[2]
1344
+ in_def = val[2]
1171
1345
 
1172
1346
  result = new_defn val
1173
1347
 
1174
- lexer.cmdarg.stack.replace cmdarg
1348
+ lexer.cond.pop # group = local_pop
1349
+ lexer.cmdarg.pop
1175
1350
  self.env.unextend
1176
1351
  self.in_def = in_def
1352
+
1177
1353
  self.lexer.comments # we don't care about comments in the body
1178
1354
  }
1179
- | kDEF singleton dot_or_colon
1355
+ | k_def singleton dot_or_colon
1180
1356
  {
1181
- self.comments.push self.lexer.comments
1182
- lexer.lex_state = :expr_fname
1357
+ lexer.lex_state = EXPR_FNAME
1183
1358
  }
1184
1359
  fname
1185
1360
  {
1186
- self.in_single += 1
1361
+ result = [self.in_def, lexer.lineno]
1362
+
1363
+ self.in_single += 1 # TODO: remove?
1364
+
1365
+ self.in_def = true # local_push
1187
1366
  self.env.extend
1188
- lexer.lex_state = :expr_endfn # force for args
1189
- result = [lexer.lineno, self.lexer.cmdarg.stack.dup]
1190
- lexer.cmdarg.stack.replace [false]
1367
+ lexer.cmdarg.push false
1368
+ lexer.cond.push false
1369
+
1370
+ lexer.lex_state = EXPR_ENDFN|EXPR_LABEL
1371
+ self.comments.push self.lexer.comments
1191
1372
  }
1192
- f_arglist bodystmt kEND
1373
+ f_arglist bodystmt k_end
1193
1374
  {
1194
- line, cmdarg = val[5]
1195
- result = new_defs val
1196
- result[3].line line
1375
+ _, _recv, _, _, _name, (in_def, _lineno), _args, _body, _ = val
1197
1376
 
1198
- lexer.cmdarg.stack.replace cmdarg
1377
+ result = new_defs val
1199
1378
 
1379
+ lexer.cond.pop # group = local_pop
1380
+ lexer.cmdarg.pop
1200
1381
  self.env.unextend
1382
+ self.in_def = in_def
1383
+
1201
1384
  self.in_single -= 1
1385
+
1386
+ # TODO: restore cur_arg ? what's cur_arg?
1387
+
1202
1388
  self.lexer.comments # we don't care about comments in the body
1203
1389
  }
1204
1390
  | kBREAK
1205
1391
  {
1206
- result = s(:break)
1392
+ (_, line), = val
1393
+ result = s(:break).line line
1207
1394
  }
1208
1395
  | kNEXT
1209
1396
  {
1210
- result = s(:next)
1397
+ (_, line), = val
1398
+ result = s(:next).line line
1211
1399
  }
1212
1400
  | kREDO
1213
1401
  {
1214
- result = s(:redo)
1402
+ (_, line), = val
1403
+ result = s(:redo).line line
1215
1404
  }
1216
1405
  | kRETRY
1217
1406
  {
1218
- result = s(:retry)
1407
+ (_, line), = val
1408
+ result = s(:retry).line line
1219
1409
  }
1220
1410
 
1221
1411
  primary_value: primary
@@ -1234,7 +1424,15 @@ rule
1234
1424
  k_class: kCLASS
1235
1425
  k_module: kMODULE
1236
1426
  k_def: kDEF
1427
+ k_do: kDO
1428
+ k_do_block: kDO_BLOCK
1429
+ k_rescue: kRESCUE
1430
+ k_ensure: kENSURE
1431
+ k_when: kWHEN
1432
+ k_else: kELSE
1433
+ k_elsif: kELSIF
1237
1434
  k_end: kEND
1435
+ k_return: kRETURN
1238
1436
 
1239
1437
  then: term
1240
1438
  | kTHEN
@@ -1244,9 +1442,11 @@ rule
1244
1442
  | kDO_COND
1245
1443
 
1246
1444
  if_tail: opt_else
1247
- | kELSIF expr_value then compstmt if_tail
1445
+ | k_elsif expr_value then compstmt if_tail
1248
1446
  {
1249
- result = s(:if, val[1], val[3], val[4])
1447
+ (_, line), c, _, t, rest = val
1448
+
1449
+ result = s(:if, c, t, rest).line line
1250
1450
  }
1251
1451
 
1252
1452
  opt_else: none
@@ -1269,7 +1469,9 @@ rule
1269
1469
 
1270
1470
  f_marg_list: f_marg
1271
1471
  {
1272
- result = s(:array, val[0])
1472
+ sym, = val
1473
+
1474
+ result = s(:array, sym).line lexer.lineno
1273
1475
  }
1274
1476
  | f_marg_list tCOMMA f_marg
1275
1477
  {
@@ -1343,7 +1545,9 @@ rule
1343
1545
  }
1344
1546
  | f_block_arg
1345
1547
  {
1346
- result = call_args val
1548
+ line = lexer.lineno
1549
+ result = call_args val # TODO: push line down
1550
+ result.line line
1347
1551
  }
1348
1552
 
1349
1553
  opt_block_args_tail: tCOMMA block_args_tail
@@ -1374,7 +1578,7 @@ opt_block_args_tail: tCOMMA block_args_tail
1374
1578
  }
1375
1579
  | f_arg tCOMMA
1376
1580
  {
1377
- result = args val
1581
+ result = args(val) << nil
1378
1582
  }
1379
1583
  | f_arg tCOMMA f_rest_arg tCOMMA f_arg opt_block_args_tail
1380
1584
  {
@@ -1415,18 +1619,22 @@ opt_block_args_tail: tCOMMA block_args_tail
1415
1619
 
1416
1620
  opt_block_param: none { result = 0 }
1417
1621
  | block_param_def
1622
+ {
1623
+ self.lexer.command_start = true
1624
+ }
1418
1625
 
1419
1626
  block_param_def: tPIPE opt_bv_decl tPIPE
1420
1627
  {
1628
+ # TODO: current_arg = 0
1421
1629
  result = args val
1422
1630
  }
1423
1631
  | tOROP
1424
1632
  {
1425
- self.lexer.command_start = true
1426
- result = s(:args)
1633
+ result = s(:args).line lexer.lineno
1427
1634
  }
1428
1635
  | tPIPE block_param opt_bv_decl tPIPE
1429
1636
  {
1637
+ # TODO: current_arg = 0
1430
1638
  result = args val
1431
1639
  }
1432
1640
 
@@ -1447,26 +1655,33 @@ opt_block_args_tail: tCOMMA block_args_tail
1447
1655
 
1448
1656
  bvar: tIDENTIFIER
1449
1657
  {
1450
- result = s(:shadow, val[0].to_sym)
1658
+ id, = val
1659
+ line = lexer.lineno
1660
+ result = s(:shadow, id.to_sym).line line
1451
1661
  }
1452
1662
  | f_bad_arg
1453
1663
 
1454
1664
  lambda: {
1455
1665
  self.env.extend :dynamic
1456
- result = self.lexer.lineno
1457
-
1458
- result = lexer.lpar_beg
1666
+ result = [lexer.lineno, lexer.lpar_beg]
1459
1667
  lexer.paren_nest += 1
1460
1668
  lexer.lpar_beg = lexer.paren_nest
1461
1669
  }
1462
- f_larglist lambda_body
1670
+ f_larglist
1671
+ {
1672
+ lexer.cmdarg.push false
1673
+ }
1674
+ lambda_body
1463
1675
  {
1464
- lpar, args, body = val
1676
+ (line, lpar), args, _cmdarg, body = val
1465
1677
  lexer.lpar_beg = lpar
1466
1678
 
1467
- call = new_call nil, :lambda
1679
+ lexer.cmdarg.pop
1680
+
1681
+ call = s(:lambda).line line
1468
1682
  result = new_iter call, args, body
1469
- self.env.unextend
1683
+ result.line = line
1684
+ self.env.unextend # TODO: dynapush & dynapop
1470
1685
  }
1471
1686
 
1472
1687
  f_larglist: tLPAREN2 f_args opt_bv_decl rparen
@@ -1483,28 +1698,15 @@ opt_block_args_tail: tCOMMA block_args_tail
1483
1698
  {
1484
1699
  result = val[1]
1485
1700
  }
1486
- | kDO_LAMBDA compstmt kEND
1701
+ | kDO_LAMBDA bodystmt kEND
1487
1702
  {
1488
1703
  result = val[1]
1489
1704
  }
1490
1705
 
1491
- do_block: kDO_BLOCK
1492
- {
1493
- self.env.extend :dynamic
1494
- result = self.lexer.lineno
1495
- }
1496
- opt_block_param
1497
- {
1498
- result = nil # self.env.dynamic.keys
1499
- }
1500
- compstmt kEND
1706
+ do_block: k_do_block do_body kEND
1501
1707
  {
1502
- args = val[2]
1503
- body = val[4]
1504
- result = new_iter nil, args, body
1505
- result.line = val[1]
1506
-
1507
- self.env.unextend
1708
+ (_, line), iter, _ = val
1709
+ result = iter.line line
1508
1710
  }
1509
1711
 
1510
1712
  block_call: command do_block
@@ -1518,14 +1720,16 @@ opt_block_args_tail: tCOMMA block_args_tail
1518
1720
 
1519
1721
  val = invert_block_call val if inverted? val
1520
1722
 
1521
- result = val[1]
1522
- result.insert 1, val[0]
1723
+ cmd, blk = val
1724
+
1725
+ result = blk
1726
+ result.insert 1, cmd
1523
1727
  }
1524
- | block_call dot_or_colon operation2 opt_paren_args
1728
+ | block_call call_op2 operation2 opt_paren_args
1525
1729
  {
1526
1730
  result = new_call val[0], val[2].to_sym, val[3]
1527
1731
  }
1528
- | block_call dot_or_colon operation2 opt_paren_args brace_block
1732
+ | block_call call_op2 operation2 opt_paren_args brace_block
1529
1733
  {
1530
1734
  iter1, _, name, args, iter2 = val
1531
1735
 
@@ -1534,7 +1738,7 @@ opt_block_args_tail: tCOMMA block_args_tail
1534
1738
 
1535
1739
  result = iter2
1536
1740
  }
1537
- | block_call dot_or_colon operation2 command_args do_block
1741
+ | block_call call_op2 operation2 command_args do_block
1538
1742
  {
1539
1743
  iter1, _, name, args, iter2 = val
1540
1744
 
@@ -1550,8 +1754,10 @@ opt_block_args_tail: tCOMMA block_args_tail
1550
1754
  }
1551
1755
  paren_args
1552
1756
  {
1553
- args = self.call_args val[2..-1]
1554
- result = val[0].concat args.sexp_body
1757
+ call, lineno, args = val
1758
+
1759
+ result = call.concat args.sexp_body if args
1760
+ result.line lineno
1555
1761
  }
1556
1762
  | primary_value call_op operation2 opt_paren_args
1557
1763
  {
@@ -1579,7 +1785,7 @@ opt_block_args_tail: tCOMMA block_args_tail
1579
1785
  }
1580
1786
  | kSUPER
1581
1787
  {
1582
- result = s(:zsuper)
1788
+ result = s(:zsuper).line lexer.lineno
1583
1789
  }
1584
1790
  | primary_value tLBRACK2 opt_call_args rbracket
1585
1791
  {
@@ -1591,39 +1797,55 @@ opt_block_args_tail: tCOMMA block_args_tail
1591
1797
  self.env.extend :dynamic
1592
1798
  result = self.lexer.lineno
1593
1799
  }
1594
- opt_block_param
1595
- {
1596
- result = nil # self.env.dynamic.keys
1597
- }
1598
- compstmt tRCURLY
1800
+ brace_body tRCURLY
1599
1801
  {
1600
- _, line, args, _, body, _ = val
1802
+ _, line, body, _ = val
1601
1803
 
1602
- result = new_iter nil, args, body
1804
+ result = body
1603
1805
  result.line = line
1604
1806
 
1605
1807
  self.env.unextend
1606
1808
  }
1607
- | kDO
1809
+ | k_do
1608
1810
  {
1609
1811
  self.env.extend :dynamic
1610
1812
  result = self.lexer.lineno
1611
1813
  }
1612
- opt_block_param
1814
+ do_body kEND
1613
1815
  {
1614
- result = nil # self.env.dynamic.keys
1816
+ _, line, body, _ = val
1817
+
1818
+ result = body
1819
+ result.line = line
1820
+
1821
+ self.env.unextend
1615
1822
  }
1616
- compstmt kEND
1823
+
1824
+ brace_body: { self.env.extend :dynamic; result = self.lexer.lineno }
1825
+ { result = lexer.cmdarg.store(false) }
1826
+ opt_block_param compstmt
1617
1827
  {
1618
- _, line, args, _, body, _ = val
1828
+ line, cmdarg, param, cmpstmt = val
1619
1829
 
1620
- result = new_iter nil, args, body
1621
- result.line = line
1830
+ result = new_brace_body param, cmpstmt, line
1831
+ self.env.unextend
1832
+ lexer.cmdarg.restore cmdarg
1833
+ lexer.cmdarg.pop # because of: cmdarg_stack >> 1 ?
1834
+ }
1622
1835
 
1836
+ do_body: { self.env.extend :dynamic; result = self.lexer.lineno }
1837
+ { lexer.cmdarg.push false }
1838
+ opt_block_param
1839
+ compstmt
1840
+ {
1841
+ line, _cmdarg, param, cmpstmt = val
1842
+
1843
+ result = new_do_body param, cmpstmt, line
1844
+ lexer.cmdarg.pop
1623
1845
  self.env.unextend
1624
1846
  }
1625
1847
 
1626
- case_body: kWHEN
1848
+ case_body: k_when
1627
1849
  {
1628
1850
  result = self.lexer.lineno
1629
1851
  }
@@ -1636,12 +1858,12 @@ opt_block_args_tail: tCOMMA block_args_tail
1636
1858
 
1637
1859
  cases: opt_else | case_body
1638
1860
 
1639
- opt_rescue: kRESCUE exc_list exc_var then compstmt opt_rescue
1861
+ opt_rescue: k_rescue exc_list exc_var then compstmt opt_rescue
1640
1862
  {
1641
1863
  (_, line), klasses, var, _, body, rest = val
1642
1864
 
1643
1865
  klasses ||= s(:array)
1644
- klasses << new_assign(var, s(:gvar, :"$!")) if var
1866
+ klasses << new_assign(var, s(:gvar, :"$!").line(var.line)) if var
1645
1867
  klasses.line line
1646
1868
 
1647
1869
  result = new_resbody(klasses, body)
@@ -1654,7 +1876,8 @@ opt_block_args_tail: tCOMMA block_args_tail
1654
1876
 
1655
1877
  exc_list: arg_value
1656
1878
  {
1657
- result = s(:array, val[0])
1879
+ arg, = val
1880
+ result = s(:array, arg).line arg.line
1658
1881
  }
1659
1882
  | mrhs
1660
1883
  | none
@@ -1665,28 +1888,33 @@ opt_block_args_tail: tCOMMA block_args_tail
1665
1888
  }
1666
1889
  | none
1667
1890
 
1668
- opt_ensure: kENSURE compstmt
1891
+ opt_ensure: k_ensure compstmt
1669
1892
  {
1670
- _, body = val
1893
+ (_, line), body = val
1671
1894
 
1672
- result = body || s(:nil)
1895
+ result = body || s(:nil).line(line)
1673
1896
  }
1674
1897
  | none
1675
1898
 
1676
1899
  literal: numeric
1677
1900
  {
1901
+ line = lexer.lineno
1678
1902
  result = s(:lit, val[0])
1903
+ result.line = line
1679
1904
  }
1680
1905
  | symbol
1681
1906
  {
1907
+ line = lexer.lineno
1682
1908
  result = s(:lit, val[0])
1909
+ result.line = line
1683
1910
  }
1684
1911
  | dsym
1685
1912
 
1686
1913
  strings: string
1687
1914
  {
1688
- val[0] = s(:dstr, val[0].value) if val[0].sexp_type == :evstr
1689
- result = val[0]
1915
+ str, = val
1916
+ str = s(:dstr, str.value) if str.sexp_type == :evstr
1917
+ result = str
1690
1918
  }
1691
1919
 
1692
1920
  string: tCHAR
@@ -1701,7 +1929,11 @@ opt_block_args_tail: tCOMMA block_args_tail
1701
1929
 
1702
1930
  string1: tSTRING_BEG string_contents tSTRING_END
1703
1931
  {
1704
- result = val[1]
1932
+ _, str, (_, func) = val
1933
+
1934
+ str = dedent str if func =~ RubyLexer::STR_FUNC_ICNTNT
1935
+
1936
+ result = str
1705
1937
  }
1706
1938
  | tSTRING
1707
1939
  {
@@ -1710,7 +1942,8 @@ opt_block_args_tail: tCOMMA block_args_tail
1710
1942
 
1711
1943
  xstring: tXSTRING_BEG xstring_contents tSTRING_END
1712
1944
  {
1713
- result = new_xstring val[1]
1945
+ result = new_xstring val
1946
+ # TODO: dedent?!?! SERIOUSLY?!?
1714
1947
  }
1715
1948
 
1716
1949
  regexp: tREGEXP_BEG regexp_contents tREGEXP_END
@@ -1720,7 +1953,7 @@ opt_block_args_tail: tCOMMA block_args_tail
1720
1953
 
1721
1954
  words: tWORDS_BEG tSPACE tSTRING_END
1722
1955
  {
1723
- result = s(:array)
1956
+ result = s(:array).line lexer.lineno
1724
1957
  }
1725
1958
  | tWORDS_BEG word_list tSTRING_END
1726
1959
  {
@@ -1744,25 +1977,28 @@ opt_block_args_tail: tCOMMA block_args_tail
1744
1977
 
1745
1978
  symbols: tSYMBOLS_BEG tSPACE tSTRING_END
1746
1979
  {
1747
- result = s(:array)
1980
+ result = s(:array).line lexer.lineno
1748
1981
  }
1749
- | tSYMBOLS_BEG symbol_list tSTRING_END
1982
+ | tSYMBOLS_BEG { result = lexer.lineno } symbol_list tSTRING_END
1750
1983
  {
1751
- result = val[1]
1984
+ _, line, list, _, = val
1985
+ list.line = line
1986
+ result = list
1752
1987
  }
1753
1988
 
1754
1989
  symbol_list: none
1755
1990
  {
1756
- result = new_symbol_list
1991
+ result = new_symbol_list.line lexer.lineno
1757
1992
  }
1758
1993
  | symbol_list word tSPACE
1759
1994
  {
1760
- result = val[0].dup << new_symbol_list_entry(val)
1995
+ list, * = val
1996
+ result = list.dup << new_symbol_list_entry(val)
1761
1997
  }
1762
1998
 
1763
1999
  qwords: tQWORDS_BEG tSPACE tSTRING_END
1764
2000
  {
1765
- result = s(:array)
2001
+ result = s(:array).line lexer.lineno
1766
2002
  }
1767
2003
  | tQWORDS_BEG qword_list tSTRING_END
1768
2004
  {
@@ -1771,7 +2007,7 @@ opt_block_args_tail: tCOMMA block_args_tail
1771
2007
 
1772
2008
  qsymbols: tQSYMBOLS_BEG tSPACE tSTRING_END
1773
2009
  {
1774
- result = s(:array)
2010
+ result = s(:array).line lexer.lineno # FIX
1775
2011
  }
1776
2012
  | tQSYMBOLS_BEG qsym_list tSTRING_END
1777
2013
  {
@@ -1798,11 +2034,12 @@ opt_block_args_tail: tCOMMA block_args_tail
1798
2034
 
1799
2035
  string_contents: none
1800
2036
  {
1801
- result = s(:str, "")
2037
+ result = s(:str, "").line lexer.lineno
1802
2038
  }
1803
2039
  | string_contents string_content
1804
2040
  {
1805
- result = literal_concat(val[0], val[1])
2041
+ v1, v2 = val
2042
+ result = literal_concat v1, v2
1806
2043
  }
1807
2044
 
1808
2045
  xstring_contents: none
@@ -1811,7 +2048,8 @@ xstring_contents: none
1811
2048
  }
1812
2049
  | xstring_contents string_content
1813
2050
  {
1814
- result = literal_concat(val[0], val[1])
2051
+ v1, v2 = val
2052
+ result = literal_concat v1, v2
1815
2053
  }
1816
2054
 
1817
2055
  regexp_contents: none
@@ -1820,7 +2058,8 @@ regexp_contents: none
1820
2058
  }
1821
2059
  | regexp_contents string_content
1822
2060
  {
1823
- result = literal_concat(val[0], val[1])
2061
+ v1, v2 = val
2062
+ result = literal_concat v1, v2
1824
2063
  }
1825
2064
 
1826
2065
  string_content: tSTRING_CONTENT
@@ -1832,42 +2071,46 @@ regexp_contents: none
1832
2071
  result = lexer.lex_strterm
1833
2072
 
1834
2073
  lexer.lex_strterm = nil
1835
- lexer.lex_state = :expr_beg # TODO: expr_value ?
2074
+ lexer.lex_state = EXPR_BEG
1836
2075
  }
1837
2076
  string_dvar
1838
2077
  {
1839
- lexer.lex_strterm = val[1]
1840
- result = s(:evstr, val[2])
2078
+ _, strterm, str = val
2079
+ lexer.lex_strterm = strterm
2080
+ result = s(:evstr, str).line str.line
1841
2081
  }
1842
2082
  | tSTRING_DBEG
1843
2083
  {
1844
2084
  result = [lexer.lex_strterm,
1845
2085
  lexer.brace_nest,
1846
2086
  lexer.string_nest, # TODO: remove
1847
- lexer.cond.store,
1848
- lexer.cmdarg.store,
1849
2087
  lexer.lex_state,
2088
+ lexer.lineno,
1850
2089
  ]
1851
2090
 
2091
+ lexer.cmdarg.push false
2092
+ lexer.cond.push false
2093
+
1852
2094
  lexer.lex_strterm = nil
1853
2095
  lexer.brace_nest = 0
1854
2096
  lexer.string_nest = 0
1855
2097
 
1856
- lexer.lex_state = :expr_value
2098
+ lexer.lex_state = EXPR_BEG
1857
2099
  }
1858
- compstmt tRCURLY
2100
+ compstmt
2101
+ tSTRING_DEND
1859
2102
  {
1860
- # TODO: tRCURLY -> tSTRING_END
1861
2103
  _, memo, stmt, _ = val
1862
2104
 
1863
- lex_strterm, brace_nest, string_nest, oldcond, oldcmdarg, oldlex_state = memo
2105
+ lex_strterm, brace_nest, string_nest, oldlex_state, line = memo
2106
+ # TODO: heredoc_indent
1864
2107
 
1865
2108
  lexer.lex_strterm = lex_strterm
1866
2109
  lexer.brace_nest = brace_nest
1867
2110
  lexer.string_nest = string_nest
1868
2111
 
1869
- lexer.cond.restore oldcond
1870
- lexer.cmdarg.restore oldcmdarg
2112
+ lexer.cmdarg.pop
2113
+ lexer.cond.pop
1871
2114
 
1872
2115
  lexer.lex_state = oldlex_state
1873
2116
 
@@ -1877,24 +2120,24 @@ regexp_contents: none
1877
2120
  when :str, :dstr, :evstr then
1878
2121
  result = stmt
1879
2122
  else
1880
- result = s(:evstr, stmt)
2123
+ result = s(:evstr, stmt).line line
1881
2124
  end
1882
2125
  when nil then
1883
- result = s(:evstr)
2126
+ result = s(:evstr).line line
1884
2127
  else
1885
2128
  debug20 25
1886
2129
  raise "unknown string body: #{stmt.inspect}"
1887
2130
  end
1888
2131
  }
1889
2132
 
1890
- string_dvar: tGVAR { result = s(:gvar, val[0].to_sym) }
1891
- | tIVAR { result = s(:ivar, val[0].to_sym) }
1892
- | tCVAR { result = s(:cvar, val[0].to_sym) }
2133
+ string_dvar: tGVAR { result = s(:gvar, val[0].to_sym).line lexer.lineno }
2134
+ | tIVAR { result = s(:ivar, val[0].to_sym).line lexer.lineno }
2135
+ | tCVAR { result = s(:cvar, val[0].to_sym).line lexer.lineno }
1893
2136
  | backref
1894
2137
 
1895
2138
  symbol: tSYMBEG sym
1896
2139
  {
1897
- lexer.lex_state = :expr_end
2140
+ lexer.lex_state = EXPR_END
1898
2141
  result = val[1].to_sym
1899
2142
  }
1900
2143
  | tSYMBOL
@@ -1906,18 +2149,19 @@ regexp_contents: none
1906
2149
 
1907
2150
  dsym: tSYMBEG xstring_contents tSTRING_END
1908
2151
  {
1909
- lexer.lex_state = :expr_end
1910
- result = val[1]
2152
+ _, result, _ = val
2153
+
2154
+ lexer.lex_state = EXPR_END
1911
2155
 
1912
- result ||= s(:str, "")
2156
+ result ||= s(:str, "").line lexer.lineno
1913
2157
 
1914
2158
  case result.sexp_type
1915
2159
  when :dstr then
1916
2160
  result.sexp_type = :dsym
1917
2161
  when :str then
1918
- result = s(:lit, result.last.to_sym)
2162
+ result = s(:lit, result.last.to_sym).line result.line
1919
2163
  when :evstr then
1920
- result = s(:dsym, "", result)
2164
+ result = s(:dsym, "", result).line result.line
1921
2165
  else
1922
2166
  debug20 26, val, result
1923
2167
  end
@@ -1940,19 +2184,20 @@ regexp_contents: none
1940
2184
  | tCONSTANT
1941
2185
  | tCVAR
1942
2186
 
1943
- keyword_variable: kNIL { result = s(:nil) }
1944
- | kSELF { result = s(:self) }
1945
- | kTRUE { result = s(:true) }
1946
- | kFALSE { result = s(:false) }
1947
- | k__FILE__ { result = s(:str, self.file) }
1948
- | k__LINE__ { result = s(:lit, lexer.lineno) }
2187
+ keyword_variable: kNIL { result = s(:nil).line lexer.lineno }
2188
+ | kSELF { result = s(:self).line lexer.lineno }
2189
+ | kTRUE { result = s(:true).line lexer.lineno }
2190
+ | kFALSE { result = s(:false).line lexer.lineno }
2191
+ | k__FILE__ { result = s(:str, self.file).line lexer.lineno }
2192
+ | k__LINE__ { result = s(:lit, lexer.lineno).line lexer.lineno }
1949
2193
  | k__ENCODING__
1950
2194
  {
2195
+ l = lexer.lineno
1951
2196
  result =
1952
2197
  if defined? Encoding then
1953
- s(:colon2, s(:const, :Encoding), :UTF_8)
2198
+ s(:colon2, s(:const, :Encoding).line(l), :UTF_8).line l
1954
2199
  else
1955
- s(:str, "Unsupported!")
2200
+ s(:str, "Unsupported!").line l
1956
2201
  end
1957
2202
  }
1958
2203
 
@@ -1977,43 +2222,42 @@ keyword_variable: kNIL { result = s(:nil) }
1977
2222
  debug20 29, val, result
1978
2223
  }
1979
2224
 
1980
- backref: tNTH_REF { result = s(:nth_ref, val[0]) }
1981
- | tBACK_REF { result = s(:back_ref, val[0]) }
2225
+ backref: tNTH_REF { result = s(:nth_ref, val[0]).line lexer.lineno }
2226
+ | tBACK_REF { result = s(:back_ref, val[0]).line lexer.lineno }
1982
2227
 
1983
- superclass: term
2228
+ superclass: tLT
1984
2229
  {
1985
- result = nil
1986
- }
1987
- | tLT
1988
- {
1989
- lexer.lex_state = :expr_beg
2230
+ lexer.lex_state = EXPR_BEG
2231
+ lexer.command_start = true
1990
2232
  }
1991
2233
  expr_value term
1992
2234
  {
1993
2235
  result = val[2]
1994
2236
  }
1995
- | error term
2237
+ | none
1996
2238
  {
1997
- yyerrok
1998
2239
  result = nil
1999
- debug20 30, val, result
2000
2240
  }
2001
2241
 
2002
2242
  f_arglist: tLPAREN2 f_args rparen
2003
2243
  {
2004
2244
  result = val[1]
2005
- self.lexer.lex_state = :expr_beg
2245
+ self.lexer.lex_state = EXPR_BEG
2006
2246
  self.lexer.command_start = true
2007
- # TODO:
2008
- # $<num>$ = parser->parser_in_kwarg;
2009
- # parser->parser_in_kwarg = 1;
2010
2247
  }
2011
- | f_args term
2248
+ | {
2249
+ result = self.in_kwarg
2250
+ self.in_kwarg = true
2251
+ self.lexer.lex_state |= EXPR_LABEL
2252
+ }
2253
+ f_args term
2012
2254
  {
2013
- # TODO: parser->parser_in_kwarg = $<num>1;
2014
- result = val[0]
2015
- self.lexer.lex_state = :expr_beg
2016
- self.lexer.command_start = true
2255
+ kwarg, args, _ = val
2256
+
2257
+ self.in_kwarg = kwarg
2258
+ result = args
2259
+ lexer.lex_state = EXPR_BEG
2260
+ lexer.command_start = true
2017
2261
  }
2018
2262
 
2019
2263
  args_tail: f_kwarg tCOMMA f_kwrest opt_f_block_arg
@@ -2134,12 +2378,13 @@ keyword_variable: kNIL { result = s(:nil) }
2134
2378
 
2135
2379
  f_arg: f_arg_item
2136
2380
  {
2137
- case val[0]
2381
+ arg, = val
2382
+
2383
+ case arg
2138
2384
  when Symbol then
2139
- result = s(:args)
2140
- result << val[0]
2385
+ result = s(:args, arg).line lexer.lineno
2141
2386
  when Sexp then
2142
- result = val[0]
2387
+ result = arg
2143
2388
  else
2144
2389
  debug20 32
2145
2390
  raise "Unknown f_arg type: #{val.inspect}"
@@ -2152,7 +2397,7 @@ keyword_variable: kNIL { result = s(:nil) }
2152
2397
  if list.sexp_type == :args then
2153
2398
  result = list
2154
2399
  else
2155
- result = s(:args, list)
2400
+ result = s(:args, list).line list.line
2156
2401
  end
2157
2402
 
2158
2403
  result << item
@@ -2162,38 +2407,42 @@ keyword_variable: kNIL { result = s(:nil) }
2162
2407
 
2163
2408
  f_kw: f_label arg_value
2164
2409
  {
2165
- # TODO: call_args
2166
- label, _ = val[0] # TODO: fix lineno?
2410
+ # TODO: new_kw_arg
2411
+ (label, line), arg = val
2412
+
2167
2413
  identifier = label.to_sym
2168
2414
  self.env[identifier] = :lvar
2169
2415
 
2170
- result = s(:array, s(:kwarg, identifier, val[1]))
2416
+ kwarg = s(:kwarg, identifier, arg).line line
2417
+ result = s(:array, kwarg).line line
2171
2418
  }
2172
2419
  | f_label
2173
2420
  {
2174
- label, _ = val[0] # TODO: fix lineno?
2175
- identifier = label.to_sym
2176
- self.env[identifier] = :lvar
2421
+ (label, line), = val
2422
+
2423
+ id = label.to_sym
2424
+ self.env[id] = :lvar
2177
2425
 
2178
- result = s(:array, s(:kwarg, identifier))
2426
+ result = s(:array, s(:kwarg, id).line(line)).line line
2179
2427
  }
2180
2428
 
2181
2429
  f_block_kw: f_label primary_value
2182
2430
  {
2183
- # TODO: call_args
2184
- label, _ = val[0] # TODO: fix lineno?
2185
- identifier = label.to_sym
2186
- self.env[identifier] = :lvar
2431
+ # TODO: new_kw_arg
2432
+ (label, line), expr = val
2433
+ id = label.to_sym
2434
+ self.env[id] = :lvar
2187
2435
 
2188
- result = s(:array, s(:kwarg, identifier, val[1]))
2436
+ result = s(:array, s(:kwarg, id, expr).line(line)).line line
2189
2437
  }
2190
2438
  | f_label
2191
2439
  {
2192
- label, _ = val[0] # TODO: fix lineno?
2193
- identifier = label.to_sym
2194
- self.env[identifier] = :lvar
2440
+ # TODO: new_kw_arg
2441
+ (label, line), = val
2442
+ id = label.to_sym
2443
+ self.env[id] = :lvar
2195
2444
 
2196
- result = s(:array, s(:kwarg, identifier))
2445
+ result = s(:array, s(:kwarg, id).line(line)).line line
2197
2446
  }
2198
2447
 
2199
2448
  f_block_kwarg: f_block_kw
@@ -2214,7 +2463,9 @@ keyword_variable: kNIL { result = s(:nil) }
2214
2463
 
2215
2464
  f_kwrest: kwrest_mark tIDENTIFIER
2216
2465
  {
2217
- result = :"**#{val[1]}"
2466
+ name = val[1].to_sym
2467
+ self.assignable name
2468
+ result = :"**#{name}"
2218
2469
  }
2219
2470
  | kwrest_mark
2220
2471
  {
@@ -2234,17 +2485,20 @@ keyword_variable: kNIL { result = s(:nil) }
2234
2485
 
2235
2486
  f_block_optarg: f_block_opt
2236
2487
  {
2237
- result = s(:block, val[0])
2488
+ optblk, = val
2489
+ result = s(:block, optblk).line optblk.line
2238
2490
  }
2239
2491
  | f_block_optarg tCOMMA f_block_opt
2240
2492
  {
2241
- result = val[0]
2242
- result << val[2]
2493
+ optarg, _, optblk = val
2494
+ result = optarg
2495
+ result << optblk
2243
2496
  }
2244
2497
 
2245
2498
  f_optarg: f_opt
2246
2499
  {
2247
- result = s(:block, val[0])
2500
+ opt, = val
2501
+ result = s(:block, opt).line opt.line
2248
2502
  }
2249
2503
  | f_optarg tCOMMA f_opt
2250
2504
  {
@@ -2289,7 +2543,7 @@ keyword_variable: kNIL { result = s(:nil) }
2289
2543
  singleton: var_ref
2290
2544
  | tLPAREN2
2291
2545
  {
2292
- lexer.lex_state = :expr_beg
2546
+ lexer.lex_state = EXPR_BEG
2293
2547
  }
2294
2548
  expr rparen
2295
2549
  {
@@ -2298,14 +2552,11 @@ keyword_variable: kNIL { result = s(:nil) }
2298
2552
  result.sexp_type == :lit
2299
2553
  }
2300
2554
 
2301
- assoc_list: none # [!nil]
2555
+ assoc_list: none
2302
2556
  {
2303
- result = s(:array)
2304
- }
2305
- | assocs trailer # [!nil]
2306
- {
2307
- result = val[0]
2557
+ result = s(:array).line lexer.lineno
2308
2558
  }
2559
+ | assocs trailer
2309
2560
 
2310
2561
  assocs: assoc
2311
2562
  | assocs tCOMMA assoc
@@ -2319,15 +2570,21 @@ keyword_variable: kNIL { result = s(:nil) }
2319
2570
 
2320
2571
  assoc: arg_value tASSOC arg_value
2321
2572
  {
2322
- result = s(:array, val[0], val[2])
2573
+ v1, _, v2 = val
2574
+ result = s(:array, v1, v2).line v1.line
2323
2575
  }
2324
- | tLABEL opt_nl arg_value
2576
+ | tLABEL arg_value
2325
2577
  {
2326
- result = s(:array, s(:lit, val[0][0].to_sym), val.last)
2578
+ (label, line), arg = val
2579
+
2580
+ lit = s(:lit, label.to_sym).line line
2581
+ result = s(:array, lit, arg).line line
2327
2582
  }
2328
2583
  | tDSTAR arg_value
2329
2584
  {
2330
- result = s(:array, s(:kwsplat, val[1]))
2585
+ _, arg = val
2586
+ line = arg.line
2587
+ result = s(:array, s(:kwsplat, arg).line(line)).line line
2331
2588
  }
2332
2589
 
2333
2590
  operation: tIDENTIFIER | tCONSTANT | tFID
@@ -2335,6 +2592,10 @@ keyword_variable: kNIL { result = s(:nil) }
2335
2592
  operation3: tIDENTIFIER | tFID | op
2336
2593
  dot_or_colon: tDOT | tCOLON2
2337
2594
  call_op: tDOT
2595
+
2596
+ call_op2: call_op
2597
+ | tCOLON2
2598
+
2338
2599
  opt_terms: | terms
2339
2600
  opt_nl: | tNL
2340
2601
  rparen: opt_nl tRPAREN
@@ -2354,6 +2615,7 @@ end
2354
2615
 
2355
2616
  require "ruby_lexer"
2356
2617
  require "ruby_parser_extras"
2618
+ include RubyLexer::State::Values
2357
2619
 
2358
2620
  # :stopdoc:
2359
2621