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
@@ -23,35 +23,35 @@ token kCLASS kMODULE kDEF kUNDEF kBEGIN kRESCUE kENSURE kEND kIF kUNLESS
23
23
  tLABEL_END
24
24
  tLONELY
25
25
 
26
- prechigh
27
- right tBANG tTILDE tUPLUS
28
- right tPOW
29
- right tUMINUS_NUM tUMINUS
30
- left tSTAR2 tDIVIDE tPERCENT
31
- left tPLUS tMINUS
32
- left tLSHFT tRSHFT
33
- left tAMPER2
34
- left tPIPE tCARET
35
- left tGT tGEQ tLT tLEQ
36
- nonassoc tCMP tEQ tEQQ tNEQ tMATCH tNMATCH
37
- left tANDOP
38
- left tOROP
39
- nonassoc tDOT2 tDOT3
40
- right tEH tCOLON
41
- left kRESCUE_MOD
42
- right tEQL tOP_ASGN
43
- nonassoc kDEFINED
44
- right kNOT
45
- left kOR kAND
46
- nonassoc kIF_MOD kUNLESS_MOD kWHILE_MOD kUNTIL_MOD
47
- nonassoc tLBRACE_ARG
48
- nonassoc tLOWEST
49
26
  preclow
27
+ nonassoc tLOWEST
28
+ nonassoc tLBRACE_ARG
29
+ nonassoc kIF_MOD kUNLESS_MOD kWHILE_MOD kUNTIL_MOD
30
+ left kOR kAND
31
+ right kNOT
32
+ nonassoc kDEFINED
33
+ right tEQL tOP_ASGN
34
+ left kRESCUE_MOD
35
+ right tEH tCOLON
36
+ nonassoc tDOT2 tDOT3
37
+ left tOROP
38
+ left tANDOP
39
+ nonassoc tCMP tEQ tEQQ tNEQ tMATCH tNMATCH
40
+ left tGT tGEQ tLT tLEQ
41
+ left tPIPE tCARET
42
+ left tAMPER2
43
+ left tLSHFT tRSHFT
44
+ left tPLUS tMINUS
45
+ left tSTAR2 tDIVIDE tPERCENT # TODO: tSTAR2 -> tMULT
46
+ right tUMINUS_NUM tUMINUS
47
+ right tPOW
48
+ right tBANG tTILDE tUPLUS
49
+ prechigh
50
50
 
51
51
  rule
52
52
 
53
53
  program: {
54
- self.lexer.lex_state = :expr_beg
54
+ self.lexer.lex_state = EXPR_BEG
55
55
  }
56
56
  top_compstmt
57
57
  {
@@ -60,7 +60,8 @@ rule
60
60
 
61
61
  top_compstmt: top_stmts opt_terms
62
62
  {
63
- result = val[0]
63
+ stmt, _ = val
64
+ result = stmt
64
65
  }
65
66
 
66
67
  top_stmts: none
@@ -72,14 +73,6 @@ rule
72
73
  | error top_stmt
73
74
 
74
75
  top_stmt: stmt
75
- {
76
- result = val[0]
77
-
78
- # TODO: remove once I have more confidence this is fixed
79
- # result.each_of_type :call_args do |s|
80
- # debug20 666, s, result
81
- # end
82
- }
83
76
  | klBEGIN
84
77
  {
85
78
  if (self.in_def || self.in_single > 0) then
@@ -88,14 +81,40 @@ rule
88
81
  end
89
82
  self.env.extend
90
83
  }
91
- tLCURLY top_compstmt tRCURLY
84
+ begin_block
85
+ {
86
+ (_, lineno), _, iter = val
87
+ iter.line lineno
88
+
89
+ (_, preexe,) = iter
90
+ preexe.line lineno
91
+
92
+ result = iter
93
+ }
94
+
95
+ begin_block: tLCURLY { result = lexer.lineno } top_compstmt tRCURLY
92
96
  {
93
- result = new_iter s(:preexe), nil, val[3]
97
+ _, line, stmt, _ = val
98
+ result = new_iter s(:preexe).line(line), 0, stmt
94
99
  }
95
100
 
96
- bodystmt: compstmt opt_rescue opt_else opt_ensure
101
+ bodystmt: compstmt opt_rescue k_else
97
102
  {
98
- result = new_body val
103
+ res = _values[-2]
104
+ yyerror "else without rescue is useless" unless res
105
+ }
106
+ compstmt
107
+ opt_ensure
108
+ {
109
+ body, resc, _, _, els, ens = val
110
+
111
+ result = new_body [body, resc, els, ens]
112
+ }
113
+ | compstmt opt_rescue opt_ensure
114
+ {
115
+ body, resc, ens = val
116
+
117
+ result = new_body [body, resc, nil, ens]
99
118
  }
100
119
 
101
120
  compstmt: stmts opt_terms
@@ -104,8 +123,8 @@ rule
104
123
  }
105
124
 
106
125
  stmts: none
107
- | stmt
108
- | stmts terms stmt
126
+ | stmt_or_begin # TODO: newline_node ?
127
+ | stmts terms stmt_or_begin
109
128
  {
110
129
  result = self.block_append val[0], val[2]
111
130
  }
@@ -115,22 +134,30 @@ rule
115
134
  debug20 2, val, result
116
135
  }
117
136
 
137
+ stmt_or_begin: stmt
138
+ | klBEGIN
139
+ {
140
+ yyerror "BEGIN is permitted only at toplevel"
141
+ }
142
+
118
143
  stmt: kALIAS fitem
119
144
  {
120
- lexer.lex_state = :expr_fname
121
- result = self.lexer.lineno
145
+ lexer.lex_state = EXPR_FNAME
122
146
  }
123
147
  fitem
124
148
  {
125
- result = s(:alias, val[1], val[3]).line(val[2])
149
+ (_, line), lhs, _, rhs = val
150
+ result = s(:alias, lhs, rhs).line(line).line line
126
151
  }
127
152
  | kALIAS tGVAR tGVAR
128
153
  {
129
- result = s(:valias, val[1].to_sym, val[2].to_sym)
154
+ (_, line), lhs, rhs = val
155
+ result = s(:valias, lhs.to_sym, rhs.to_sym).line line
130
156
  }
131
157
  | kALIAS tGVAR tBACK_REF
132
158
  {
133
- result = s(:valias, val[1].to_sym, :"$#{val[2]}")
159
+ (_, line), lhs, rhs = val
160
+ result = s(:valias, lhs.to_sym, :"$#{rhs}").line line
134
161
  }
135
162
  | kALIAS tGVAR tNTH_REF
136
163
  {
@@ -142,54 +169,84 @@ rule
142
169
  }
143
170
  | stmt kIF_MOD expr_value
144
171
  {
145
- result = new_if val[2], val[0], nil
172
+ t, _, c = val
173
+ result = new_if c, t, nil
146
174
  }
147
175
  | stmt kUNLESS_MOD expr_value
148
176
  {
149
- result = new_if val[2], nil, val[0]
177
+ f, _, c = val
178
+ result = new_if c, nil, f
150
179
  }
151
180
  | stmt kWHILE_MOD expr_value
152
181
  {
153
- result = new_while val[0], val[2], true
182
+ e, _, c = val
183
+ result = new_while e, c, true
154
184
  }
155
185
  | stmt kUNTIL_MOD expr_value
156
186
  {
157
- result = new_until val[0], val[2], true
187
+ e, _, c = val
188
+ result = new_until e, c, true
158
189
  }
159
190
  | stmt kRESCUE_MOD stmt
160
191
  {
161
- result = s(:rescue, val[0], new_resbody(s(:array), val[2]))
192
+ body, _, resbody = val
193
+
194
+ resbody = new_resbody s(:array).line(resbody.line), resbody
195
+ result = new_rescue body, resbody
162
196
  }
163
197
  | klEND tLCURLY compstmt tRCURLY
164
198
  {
199
+ (_, line), _, stmt, _ = val
200
+
165
201
  if (self.in_def || self.in_single > 0) then
166
202
  debug20 3
167
203
  yyerror "END in method; use at_exit"
168
204
  end
169
- result = new_iter s(:postexe), 0, val[2]
205
+
206
+ result = new_iter s(:postexe).line(line), 0, stmt
170
207
  }
171
208
  | command_asgn
172
209
  | mlhs tEQL command_call
173
210
  {
174
211
  result = new_masgn val[0], val[2], :wrap
175
212
  }
176
- | var_lhs tOP_ASGN command_call
213
+ | lhs tEQL mrhs
214
+ {
215
+ lhs, _, rhs = val
216
+ result = new_assign lhs, s(:svalue, rhs).line(rhs.line)
217
+ }
218
+ | mlhs tEQL mrhs_arg
219
+ {
220
+ result = new_masgn val[0], val[2]
221
+ }
222
+ | expr
223
+
224
+ command_asgn: lhs tEQL command_rhs
225
+ {
226
+ result = new_assign val[0], val[2]
227
+ }
228
+ # | lhs tEQL command_asgn
229
+ # {
230
+ # result = new_assign val[0], val[2]
231
+ # }
232
+ | var_lhs tOP_ASGN command_rhs
177
233
  {
178
234
  result = new_op_asgn val
179
235
  }
180
- | primary_value tLBRACK2 opt_call_args rbracket tOP_ASGN command_call
236
+ | primary_value tLBRACK2 opt_call_args rbracket tOP_ASGN command_rhs
181
237
  {
182
- result = s(:op_asgn1, val[0], val[2], val[4].to_sym, val[5])
238
+ result = new_op_asgn1 val
183
239
  }
184
- | primary_value call_op tIDENTIFIER tOP_ASGN command_call
240
+ | primary_value call_op tIDENTIFIER tOP_ASGN command_rhs
185
241
  {
186
- result = s(:op_asgn, val[0], val[4], val[2].to_sym, val[3].to_sym)
242
+ prim, _, id, opasgn, rhs = val
243
+ result = s(:op_asgn, prim, rhs, id.to_sym, opasgn.to_sym)
187
244
  if val[1] == '&.'
188
245
  result.sexp_type = :safe_op_asgn
189
246
  end
190
247
  result.line = val[0].line
191
248
  }
192
- | primary_value call_op tCONSTANT tOP_ASGN command_call
249
+ | primary_value call_op tCONSTANT tOP_ASGN command_rhs
193
250
  {
194
251
  result = s(:op_asgn, val[0], val[4], val[2].to_sym, val[3].to_sym)
195
252
  if val[1] == '&.'
@@ -197,55 +254,61 @@ rule
197
254
  end
198
255
  result.line = val[0].line
199
256
  }
200
- | primary_value tCOLON2 tCONSTANT tOP_ASGN command_call
257
+ | primary_value tCOLON2 tCONSTANT tOP_ASGN command_rhs
201
258
  {
202
- result = s(:op_asgn, val[0], val[4], val[2], val[3])
203
- debug20 4, val, result
259
+ lhs1, _, lhs2, op, rhs = val
260
+
261
+ result = s(:op_asgn, lhs1, rhs, lhs2.to_sym, op.to_sym)
204
262
  }
205
- | primary_value tCOLON2 tIDENTIFIER tOP_ASGN command_call
263
+ | primary_value tCOLON2 tIDENTIFIER tOP_ASGN command_rhs
206
264
  {
207
- result = s(:op_asgn, val[0], val[4], val[2], val[3])
208
- debug20 5, val, result
265
+ lhs1, _, lhs2, op, rhs = val
266
+
267
+ result = s(:op_asgn, lhs1, rhs, lhs2.to_sym, op.to_sym)
209
268
  }
210
- | backref tOP_ASGN command_call
269
+ | backref tOP_ASGN command_rhs
211
270
  {
212
271
  self.backref_assign_error val[0]
213
272
  }
214
- | lhs tEQL mrhs
215
- {
216
- result = new_assign val[0], s(:svalue, val[2])
217
- }
218
- | mlhs tEQL mrhs_arg
219
- {
220
- result = new_masgn val[0], val[2]
221
- }
222
- | expr
223
273
 
224
- command_asgn: lhs tEQL command_call
274
+ command_rhs: command_call =tOP_ASGN
225
275
  {
226
- result = new_assign val[0], val[2]
276
+ expr, = val
277
+ result = value_expr expr
227
278
  }
228
- | lhs tEQL command_asgn
279
+ | command_call kRESCUE_MOD stmt
229
280
  {
230
- result = new_assign val[0], val[2]
281
+ expr, (_, line), resbody = val
282
+
283
+ expr = value_expr expr
284
+ ary = s(:array).line line
285
+ result = new_rescue(expr, new_resbody(ary, resbody))
231
286
  }
287
+ | command_asgn
232
288
 
233
289
  expr: command_call
234
290
  | expr kAND expr
235
291
  {
236
- result = logical_op :and, val[0], val[2]
292
+ lhs, _, rhs = val
293
+ result = logical_op :and, lhs, rhs
237
294
  }
238
295
  | expr kOR expr
239
296
  {
240
- result = logical_op :or, val[0], val[2]
297
+ lhs, _, rhs = val
298
+ result = logical_op :or, lhs, rhs
241
299
  }
242
300
  | kNOT opt_nl expr
243
301
  {
244
- result = s(:call, val[2], :"!")
302
+ (_, line), _, expr = val
303
+ result = new_call(expr, :"!").line line
304
+ # REFACTOR: call_uni_op
245
305
  }
246
306
  | tBANG command_call
247
307
  {
248
- result = s(:call, val[1], :"!")
308
+ _, cmd = val
309
+ result = new_call(cmd, :"!").line cmd.line
310
+ # TODO: fix line number to tBANG... but causes BAD shift/reduce conflict
311
+ # REFACTOR: call_uni_op -- see parse26.y
249
312
  }
250
313
  | arg
251
314
 
@@ -254,54 +317,71 @@ rule
254
317
  result = value_expr(val[0])
255
318
  }
256
319
 
320
+ expr_value_do: {
321
+ lexer.cond.push true
322
+ }
323
+ expr_value do
324
+ {
325
+ lexer.cond.pop
326
+ }
327
+ {
328
+ _, expr, _, _ = val
329
+ result = expr
330
+ }
331
+
257
332
  command_call: command
258
333
  | block_command
259
334
 
260
335
  block_command: block_call
261
- | block_call dot_or_colon operation2 command_args
336
+ | block_call call_op2 operation2 command_args
262
337
  {
263
- result = new_call val[0], val[2].to_sym, val[3]
338
+ blk, _, msg, args = val
339
+ result = new_call(blk, msg.to_sym, args).line blk.line
264
340
  }
265
341
 
266
342
  cmd_brace_block: tLBRACE_ARG
267
343
  {
268
- self.env.extend(:dynamic)
344
+ # self.env.extend(:dynamic)
269
345
  result = self.lexer.lineno
270
346
  }
271
- opt_block_param
347
+ brace_body tRCURLY
272
348
  {
273
- result = nil # self.env.dynamic.keys
274
- }
275
- compstmt tRCURLY
276
- {
277
- result = new_iter nil, val[2], val[4]
278
- result.line = val[1]
349
+ _, line, body, _ = val
279
350
 
280
- self.env.unextend
351
+ result = body
352
+ result.line = line
353
+
354
+ # self.env.unextend
281
355
  }
282
356
 
283
357
  fcall: operation
284
358
  {
285
- result = new_call nil, val[0].to_sym
359
+ msg, = val
360
+ result = new_call(nil, msg.to_sym).line lexer.lineno
286
361
  }
287
362
 
288
363
  command: fcall command_args =tLOWEST
289
364
  {
290
- result = val[0].concat val[1].sexp_body # REFACTOR pattern
365
+ call, args = val
366
+ result = call.concat args.sexp_body
291
367
  }
292
368
  | fcall command_args cmd_brace_block
293
369
  {
294
- result = val[0].concat val[1].sexp_body
295
- if val[2] then
296
- block_dup_check result, val[2]
370
+ call, args, block = val
371
+
372
+ result = call.concat args.sexp_body
297
373
 
298
- result, operation = val[2], result
374
+ if block then
375
+ block_dup_check result, block
376
+
377
+ result, operation = block, result
299
378
  result.insert 1, operation
300
379
  end
301
380
  }
302
381
  | primary_value call_op operation2 command_args =tLOWEST
303
382
  {
304
- result = new_call val[0], val[2].to_sym, val[3], val[1]
383
+ lhs, callop, op, args = val
384
+ result = new_call lhs, op.to_sym, args, callop
305
385
  }
306
386
  | primary_value call_op operation2 command_args cmd_brace_block
307
387
  {
@@ -333,17 +413,19 @@ rule
333
413
  }
334
414
  | kYIELD command_args
335
415
  {
336
- result = new_yield val[1]
416
+ (_, line), args = val
417
+ result = new_yield args
418
+ result.line line # TODO: push to new_yield
337
419
  }
338
- | kRETURN call_args
420
+ | k_return call_args
339
421
  {
340
422
  line = val[0].last
341
423
  result = s(:return, ret_args(val[1])).line(line)
342
424
  }
343
425
  | kBREAK call_args
344
426
  {
345
- line = val[0].last
346
- result = s(:break, ret_args(val[1])).line(line)
427
+ (_, line), args = val
428
+ result = s(:break, ret_args(args)).line line
347
429
  }
348
430
  | kNEXT call_args
349
431
  {
@@ -360,56 +442,79 @@ rule
360
442
  mlhs_inner: mlhs_basic
361
443
  | tLPAREN mlhs_inner rparen
362
444
  {
363
- result = s(:masgn, s(:array, val[1]))
445
+ _, arg, _ = val
446
+ l = arg.line
447
+
448
+ result = s(:masgn, s(:array, arg).line(l)).line l
364
449
  }
365
450
 
366
451
  mlhs_basic: mlhs_head
367
452
  {
368
- result = s(:masgn, val[0])
453
+ head, = val
454
+ result = s(:masgn, head).line head.line
369
455
  }
370
456
  | mlhs_head mlhs_item
371
457
  {
372
- result = s(:masgn, val[0] << val[1].compact)
458
+ lhs, rhs = val
459
+ result = s(:masgn, lhs << rhs.compact).line lhs.line
373
460
  }
374
461
  | mlhs_head tSTAR mlhs_node
375
462
  {
376
- result = s(:masgn, val[0] << s(:splat, val[2]))
463
+ head, _, tail = val
464
+ head << s(:splat, tail).line(tail.line)
465
+ result = s(:masgn, head).line head.line
377
466
  }
378
467
  | mlhs_head tSTAR mlhs_node tCOMMA mlhs_post
379
468
  {
380
469
  ary1, _, splat, _, ary2 = val
381
470
 
382
- result = list_append ary1, s(:splat, splat)
471
+ result = list_append ary1, s(:splat, splat).line(splat.line)
383
472
  result.concat ary2.sexp_body
384
- result = s(:masgn, result)
473
+ result = s(:masgn, result).line result.line
385
474
  }
386
475
  | mlhs_head tSTAR
387
476
  {
388
- result = s(:masgn, val[0] << s(:splat))
477
+ head, _ = val
478
+ l = head.line
479
+ result = s(:masgn, head << s(:splat).line(l)).line l
389
480
  }
390
481
  | mlhs_head tSTAR tCOMMA mlhs_post
391
482
  {
392
- ary = list_append val[0], s(:splat)
393
- ary.concat val[3].sexp_body
394
- result = s(:masgn, ary)
483
+ head, _, _, post = val
484
+ ary = list_append head, s(:splat).line(head.line)
485
+ ary.concat post.sexp_body
486
+ result = s(:masgn, ary).line ary.line
395
487
  }
396
488
  | tSTAR mlhs_node
397
489
  {
398
- result = s(:masgn, s(:array, s(:splat, val[1])))
490
+ _, node = val
491
+ l = node.line
492
+ splat = s(:splat, node).line l
493
+ ary = s(:array, splat).line l
494
+ result = s(:masgn, ary).line l
399
495
  }
400
496
  | tSTAR mlhs_node tCOMMA mlhs_post
401
497
  {
402
- ary = s(:array, s(:splat, val[1]))
403
- ary.concat val[3].sexp_body
404
- result = s(:masgn, ary)
498
+ _, node, _, post = val
499
+
500
+ splat = s(:splat, node).line node.line
501
+ ary = s(:array, splat).line splat.line
502
+ ary.concat post.sexp_body
503
+ result = s(:masgn, ary).line ary.line
405
504
  }
406
505
  | tSTAR
407
506
  {
408
- result = s(:masgn, s(:array, s(:splat)))
507
+ l = lexer.lineno
508
+ result = s(:masgn, s(:array, s(:splat).line(l)).line(l)).line l
409
509
  }
410
510
  | tSTAR tCOMMA mlhs_post
411
511
  {
412
- result = s(:masgn, s(:array, s(:splat), *val[2].sexp_body))
512
+ _, _, post = val
513
+ l = post.line
514
+
515
+ splat = s(:splat).line l
516
+ ary = s(:array, splat, *post.sexp_body).line l
517
+ result = s(:masgn, ary).line l
413
518
  }
414
519
 
415
520
  mlhs_item: mlhs_node
@@ -420,7 +525,8 @@ rule
420
525
 
421
526
  mlhs_head: mlhs_item tCOMMA
422
527
  {
423
- result = s(:array, val[0])
528
+ lhs, _ = val
529
+ result = s(:array, lhs).line lhs.line
424
530
  }
425
531
  | mlhs_head mlhs_item tCOMMA
426
532
  {
@@ -429,7 +535,8 @@ rule
429
535
 
430
536
  mlhs_post: mlhs_item
431
537
  {
432
- result = s(:array, val[0])
538
+ item, = val
539
+ result = s(:array, item).line item.line
433
540
  }
434
541
  | mlhs_post tCOMMA mlhs_item
435
542
  {
@@ -454,7 +561,8 @@ rule
454
561
  }
455
562
  | primary_value tCOLON2 tIDENTIFIER
456
563
  {
457
- result = s(:attrasgn, val[0], :"#{val[2]}=")
564
+ recv, _, id = val
565
+ result = new_attrasgn recv, id
458
566
  }
459
567
  | primary_value call_op tCONSTANT
460
568
  {
@@ -467,7 +575,10 @@ rule
467
575
  yyerror "dynamic constant assignment"
468
576
  end
469
577
 
470
- result = s(:const, s(:colon2, val[0], val[2].to_sym), nil)
578
+ expr, _, id = val
579
+ l = expr.line
580
+
581
+ result = s(:const, s(:colon2, expr, id.to_sym).line(l), nil).line l
471
582
  }
472
583
  | tCOLON3 tCONSTANT
473
584
  {
@@ -476,7 +587,10 @@ rule
476
587
  yyerror "dynamic constant assignment"
477
588
  end
478
589
 
479
- result = s(:const, nil, s(:colon3, val[1].to_sym))
590
+ _, id = val
591
+ l = lexer.lineno
592
+
593
+ result = s(:const, nil, s(:colon3, id.to_sym).line(l)).line l
480
594
  }
481
595
  | backref
482
596
  {
@@ -485,24 +599,31 @@ rule
485
599
 
486
600
  lhs: user_variable
487
601
  {
602
+ line = lexer.lineno
488
603
  result = self.assignable val[0]
604
+ result.line = line
489
605
  }
490
606
  | keyword_variable
491
607
  {
608
+ line = lexer.lineno
492
609
  result = self.assignable val[0]
610
+ result.line = line
493
611
  debug20 9, val, result
494
612
  }
495
613
  | primary_value tLBRACK2 opt_call_args rbracket
496
614
  {
497
- result = self.aryset val[0], val[2]
615
+ lhs, _, args, _ = val
616
+ result = self.aryset lhs, args
498
617
  }
499
618
  | primary_value call_op tIDENTIFIER # REFACTOR
500
619
  {
501
- result = new_attrasgn val[0], val[2], val[1]
620
+ lhs, op, id = val
621
+ result = new_attrasgn lhs, id, op
502
622
  }
503
623
  | primary_value tCOLON2 tIDENTIFIER
504
624
  {
505
- result = s(:attrasgn, val[0], :"#{val[2]}=")
625
+ lhs, _, id = val
626
+ result = new_attrasgn lhs, id
506
627
  }
507
628
  | primary_value call_op tCONSTANT # REFACTOR?
508
629
  {
@@ -510,21 +631,27 @@ rule
510
631
  }
511
632
  | primary_value tCOLON2 tCONSTANT
512
633
  {
634
+ expr, _, id = val
635
+
513
636
  if (self.in_def || self.in_single > 0) then
514
637
  debug20 10
515
638
  yyerror "dynamic constant assignment"
516
639
  end
517
640
 
518
- result = s(:const, s(:colon2, val[0], val[2].to_sym))
641
+ l = expr.line
642
+ result = s(:const, s(:colon2, expr, id.to_sym).line(l)).line l
519
643
  }
520
644
  | tCOLON3 tCONSTANT
521
645
  {
646
+ _, id = val
647
+
522
648
  if (self.in_def || self.in_single > 0) then
523
649
  debug20 11
524
650
  yyerror "dynamic constant assignment"
525
651
  end
526
652
 
527
- result = s(:const, s(:colon3, val[1].to_sym))
653
+ l = lexer.lineno
654
+ result = s(:const, s(:colon3, id.to_sym).line(l)).line l
528
655
  }
529
656
  | backref
530
657
  {
@@ -539,7 +666,8 @@ rule
539
666
 
540
667
  cpath: tCOLON3 cname
541
668
  {
542
- result = s(:colon3, val[1].to_sym)
669
+ _, name = val
670
+ result = s(:colon3, name.to_sym).line lexer.lineno
543
671
  }
544
672
  | cname
545
673
  {
@@ -547,27 +675,32 @@ rule
547
675
  }
548
676
  | primary_value tCOLON2 cname
549
677
  {
550
- result = s(:colon2, val[0], val[2].to_sym)
678
+ pval, _, name = val
679
+
680
+ result = s(:colon2, pval, name.to_sym)
681
+ result.line pval.line
551
682
  }
552
683
 
553
684
  fname: tIDENTIFIER | tCONSTANT | tFID
554
685
  | op
555
686
  {
556
- lexer.lex_state = :expr_end
687
+ lexer.lex_state = EXPR_END
557
688
  result = val[0]
558
689
  }
559
690
 
560
691
  | reswords
561
692
  {
562
- lexer.lex_state = :expr_end
563
- result = val[0]
693
+ (sym, _line), = val
694
+ lexer.lex_state = EXPR_END
695
+ result = sym
564
696
  }
565
697
 
566
698
  fsym: fname | symbol
567
699
 
568
700
  fitem: fsym
569
701
  {
570
- result = s(:lit, val[0].to_sym)
702
+ id, = val
703
+ result = s(:lit, id.to_sym).line lexer.lineno
571
704
  }
572
705
  | dsym
573
706
 
@@ -578,7 +711,7 @@ rule
578
711
  |
579
712
  undef_list tCOMMA
580
713
  {
581
- lexer.lex_state = :expr_fname
714
+ lexer.lex_state = EXPR_FNAME
582
715
  }
583
716
  fitem
584
717
  {
@@ -590,6 +723,8 @@ rule
590
723
  | tNEQ | tLSHFT | tRSHFT | tPLUS | tMINUS | tSTAR2
591
724
  | tSTAR | tDIVIDE | tPERCENT | tPOW | tDSTAR | tBANG | tTILDE
592
725
  | tUPLUS | tUMINUS | tAREF | tASET | tBACK_REF2
726
+ # TODO: tUBANG dead?
727
+ | tUBANG
593
728
 
594
729
  reswords: k__LINE__ | k__FILE__ | k__ENCODING__ | klBEGIN | klEND
595
730
  | kALIAS | kAND | kBEGIN | kBREAK | kCASE
@@ -601,68 +736,72 @@ rule
601
736
  | kWHEN | kYIELD | kIF | kUNLESS | kWHILE
602
737
  | kUNTIL
603
738
 
604
- arg: lhs tEQL arg
739
+ arg: lhs tEQL arg_rhs
605
740
  {
606
741
  result = new_assign val[0], val[2]
607
742
  }
608
- | lhs tEQL arg kRESCUE_MOD arg
609
- {
610
- result = new_assign val[0], s(:rescue, val[2], new_resbody(s(:array), val[4]))
611
- }
612
- | var_lhs tOP_ASGN arg
743
+ | var_lhs tOP_ASGN arg_rhs
613
744
  {
614
745
  result = new_op_asgn val
615
746
  }
616
- | var_lhs tOP_ASGN arg kRESCUE_MOD arg
747
+ | primary_value tLBRACK2 opt_call_args rbracket tOP_ASGN arg_rhs
617
748
  {
618
- result = new_op_asgn val
619
- result = s(:rescue, result, new_resbody(s(:array), val[4]))
749
+ result = new_op_asgn1 val
620
750
  }
621
- | primary_value tLBRACK2 opt_call_args rbracket tOP_ASGN arg
751
+ | primary_value call_op tIDENTIFIER tOP_ASGN arg_rhs
622
752
  {
623
- val[2].sexp_type = :arglist if val[2]
624
- result = s(:op_asgn1, val[0], val[2], val[4].to_sym, val[5])
753
+ result = new_op_asgn2 val
625
754
  }
626
- | primary_value call_op tIDENTIFIER tOP_ASGN arg
755
+ | primary_value call_op tCONSTANT tOP_ASGN arg_rhs
627
756
  {
628
757
  result = new_op_asgn2 val
629
758
  }
630
- | primary_value call_op tCONSTANT tOP_ASGN arg
759
+ | primary_value tCOLON2 tIDENTIFIER tOP_ASGN arg_rhs
631
760
  {
632
- result = new_op_asgn2 val
761
+ lhs, _, id, op, rhs = val
762
+
763
+ result = s(:op_asgn, lhs, rhs, id.to_sym, op.to_sym).line lhs.line
633
764
  }
634
- | primary_value tCOLON2 tIDENTIFIER tOP_ASGN arg
765
+ | primary_value tCOLON2 tCONSTANT tOP_ASGN arg_rhs
635
766
  {
636
- result = s(:op_asgn, val[0], val[4], val[2].to_sym, val[3].to_sym)
767
+ lhs1, _, lhs2, op, rhs = val
768
+
769
+ lhs = s(:colon2, lhs1, lhs2.to_sym).line lhs1.line
770
+ result = new_const_op_asgn [lhs, op, rhs]
637
771
  }
638
- | primary_value tCOLON2 tCONSTANT tOP_ASGN arg
772
+ | tCOLON3 tCONSTANT
639
773
  {
640
- yyerror "constant re-assignment"
774
+ result = self.lexer.lineno
641
775
  }
642
- | tCOLON3 tCONSTANT tOP_ASGN arg
776
+ tOP_ASGN arg_rhs
643
777
  {
644
- yyerror "constant re-assignment"
778
+ _, lhs, line, op, rhs = val
779
+
780
+ lhs = s(:colon3, lhs.to_sym).line line
781
+ result = new_const_op_asgn [lhs, op, rhs]
645
782
  }
646
- | backref tOP_ASGN arg
783
+ | backref tOP_ASGN arg_rhs
647
784
  {
648
- self.backref_assign_error val[0]
785
+ # TODO: lhs = var_field val[0]
786
+ asgn = new_op_asgn val
787
+ result = self.backref_assign_error asgn
649
788
  }
650
789
  | arg tDOT2 arg
651
790
  {
652
791
  v1, v2 = val[0], val[2]
653
792
  if v1.node_type == :lit and v2.node_type == :lit and Integer === v1.last and Integer === v2.last then
654
- result = s(:lit, (v1.last)..(v2.last))
793
+ result = s(:lit, (v1.last)..(v2.last)).line v1.line
655
794
  else
656
- result = s(:dot2, v1, v2)
795
+ result = s(:dot2, v1, v2).line v1.line
657
796
  end
658
797
  }
659
798
  | arg tDOT3 arg
660
799
  {
661
800
  v1, v2 = val[0], val[2]
662
801
  if v1.node_type == :lit and v2.node_type == :lit and Integer === v1.last and Integer === v2.last then
663
- result = s(:lit, (v1.last)...(v2.last))
802
+ result = s(:lit, (v1.last)...(v2.last)).line v1.line
664
803
  else
665
- result = s(:dot3, v1, v2)
804
+ result = s(:dot3, v1, v2).line v1.line
666
805
  end
667
806
  }
668
807
  | arg tPLUS arg
@@ -691,7 +830,9 @@ rule
691
830
  }
692
831
  | tUMINUS_NUM simple_numeric tPOW arg
693
832
  {
694
- result = new_call(new_call(s(:lit, val[1]), :"**", argl(val[3])), :"-@")
833
+ lit = s(:lit, val[1]).line lexer.lineno
834
+ result = new_call(new_call(lit, :"**", argl(val[3])), :"-@")
835
+
695
836
  }
696
837
  | tUPLUS arg
697
838
  {
@@ -717,22 +858,7 @@ rule
717
858
  {
718
859
  result = new_call val[0], :"<=>", argl(val[2])
719
860
  }
720
- | arg tGT arg
721
- {
722
- result = new_call val[0], :">", argl(val[2])
723
- }
724
- | arg tGEQ arg
725
- {
726
- result = new_call val[0], :">=", argl(val[2])
727
- }
728
- | arg tLT arg
729
- {
730
- result = new_call val[0], :"<", argl(val[2])
731
- }
732
- | arg tLEQ arg
733
- {
734
- result = new_call val[0], :"<=", argl(val[2])
735
- }
861
+ | rel_expr =tCMP
736
862
  | arg tEQ arg
737
863
  {
738
864
  result = new_call val[0], :"==", argl(val[2])
@@ -747,15 +873,19 @@ rule
747
873
  }
748
874
  | arg tMATCH arg
749
875
  {
750
- result = new_match val[0], val[2]
876
+ lhs, _, rhs = val
877
+ result = new_match lhs, rhs
751
878
  }
752
879
  | arg tNMATCH arg
753
880
  {
754
- result = s(:not, new_match(val[0], val[2]))
881
+ lhs, _, rhs = val
882
+ result = s(:not, new_match(lhs, rhs)).line lhs.line
755
883
  }
756
884
  | tBANG arg
757
885
  {
758
- result = new_call val[1], :"!"
886
+ _, arg = val
887
+ result = new_call arg, :"!"
888
+ result.line arg.line
759
889
  }
760
890
  | tTILDE arg
761
891
  {
@@ -783,14 +913,33 @@ rule
783
913
  }
784
914
  | kDEFINED opt_nl arg
785
915
  {
786
- result = s(:defined, val[2])
916
+ (_, line), _, arg = val
917
+ result = s(:defined, arg).line line
787
918
  }
788
919
  | arg tEH arg opt_nl tCOLON arg
789
920
  {
790
- result = s(:if, val[0], val[2], val[5])
921
+ c, _, t, _, _, f = val
922
+ result = s(:if, c, t, f).line c.line
791
923
  }
792
924
  | primary
793
925
 
926
+ relop: tGT
927
+ | tLT
928
+ | tGEQ
929
+ | tLEQ
930
+
931
+ rel_expr: arg relop arg =tGT
932
+ {
933
+ lhs, op, rhs = val
934
+ result = new_call lhs, op.to_sym, argl(rhs)
935
+ }
936
+ | rel_expr relop arg =tGT
937
+ {
938
+ lhs, op, rhs = val
939
+ warn "comparison '%s' after comparison", op
940
+ result = new_call lhs, op.to_sym, argl(rhs)
941
+ }
942
+
794
943
  arg_value: arg
795
944
  {
796
945
  result = value_expr(val[0])
@@ -810,22 +959,28 @@ rule
810
959
  result = args [array_to_hash(val[0])]
811
960
  }
812
961
 
962
+ arg_rhs: arg =tOP_ASGN
963
+ | arg kRESCUE_MOD arg
964
+ {
965
+ body, (_, line), resbody = val
966
+ body = value_expr body
967
+ resbody = remove_begin resbody
968
+
969
+ ary = s(:array).line line
970
+ result = new_rescue(body, new_resbody(ary, resbody))
971
+ }
972
+
813
973
  paren_args: tLPAREN2 opt_call_args rparen
814
974
  {
815
- result = val[1]
975
+ _, args, _ = val
976
+ result = args
816
977
  }
817
978
 
818
979
  opt_paren_args: none
819
980
  | paren_args
820
981
 
821
982
  opt_call_args: none
822
- {
823
- result = val[0]
824
- }
825
983
  | call_args
826
- {
827
- result = val[0]
828
- }
829
984
  | args tCOMMA
830
985
  {
831
986
  result = args val
@@ -847,17 +1002,14 @@ rule
847
1002
  | args opt_block_arg
848
1003
  {
849
1004
  result = call_args val
850
- result = self.arg_blk_pass val[0], val[1]
851
1005
  }
852
1006
  | assocs opt_block_arg
853
1007
  {
854
- result = call_args [array_to_hash(val[0])]
855
- result = self.arg_blk_pass result, val[1]
1008
+ result = call_args [array_to_hash(val[0]), val[1]]
856
1009
  }
857
1010
  | args tCOMMA assocs opt_block_arg
858
1011
  {
859
- result = call_args [val[0], array_to_hash(val[2])]
860
- result = self.arg_blk_pass result, val[3]
1012
+ result = call_args [val[0], array_to_hash(val[2]), val[3]]
861
1013
  }
862
1014
  | block_arg
863
1015
  {
@@ -865,18 +1017,45 @@ rule
865
1017
  }
866
1018
 
867
1019
  command_args: {
868
- result = lexer.cmdarg.stack.dup # TODO: smell?
1020
+ # parse26.y line 2200
1021
+
1022
+ # If call_args starts with a open paren '(' or
1023
+ # '[', look-ahead reading of the letters calls
1024
+ # CMDARG_PUSH(0), but the push must be done
1025
+ # after CMDARG_PUSH(1). So this code makes them
1026
+ # consistent by first cancelling the premature
1027
+ # CMDARG_PUSH(0), doing CMDARG_PUSH(1), and
1028
+ # finally redoing CMDARG_PUSH(0).
1029
+
1030
+ result = yychar = self.last_token_type.first
1031
+ lookahead = [:tLPAREN, :tLPAREN_ARG, :tLPAREN2, :tLBRACK, :tLBRACK2].include?(yychar)
1032
+ lexer.cmdarg.pop if lookahead
869
1033
  lexer.cmdarg.push true
1034
+ lexer.cmdarg.push false if lookahead
870
1035
  }
871
1036
  call_args
872
1037
  {
873
- lexer.cmdarg.stack.replace val[0]
874
- result = val[1]
1038
+ yychar, args = val
1039
+
1040
+ # call_args can be followed by tLBRACE_ARG (that
1041
+ # does CMDARG_PUSH(0) in the lexer) but the push
1042
+ # must be done after CMDARG_POP() in the parser.
1043
+ # So this code does CMDARG_POP() to pop 0 pushed
1044
+ # by tLBRACE_ARG, CMDARG_POP() to pop 1 pushed
1045
+ # by command_args, and CMDARG_PUSH(0) to restore
1046
+ # back the flag set by tLBRACE_ARG.
1047
+
1048
+ lookahead = [:tLBRACE_ARG].include?(yychar)
1049
+ lexer.cmdarg.pop if lookahead
1050
+ lexer.cmdarg.pop
1051
+ lexer.cmdarg.push false if lookahead
1052
+ result = args
875
1053
  }
876
1054
 
877
1055
  block_arg: tAMPER arg_value
878
1056
  {
879
- result = s(:block_pass, val[1])
1057
+ _, arg = val
1058
+ result = s(:block_pass, arg).line arg.line
880
1059
  }
881
1060
 
882
1061
  opt_block_arg: tCOMMA block_arg
@@ -887,19 +1066,27 @@ rule
887
1066
 
888
1067
  args: arg_value
889
1068
  {
890
- result = s(:array, val[0])
1069
+ arg, = val
1070
+ lineno = arg.line || lexer.lineno # HACK
1071
+
1072
+ result = s(:array, arg).line lineno
891
1073
  }
892
1074
  | tSTAR arg_value
893
1075
  {
894
- result = s(:array, s(:splat, val[1]))
1076
+ _, arg = val
1077
+ result = s(:array, s(:splat, arg).line(arg.line)).line arg.line
895
1078
  }
896
1079
  | args tCOMMA arg_value
897
1080
  {
898
- result = self.list_append val[0], val[2]
1081
+ args, _, id = val
1082
+ result = self.list_append args, id
899
1083
  }
900
1084
  | args tCOMMA tSTAR arg_value
901
1085
  {
902
- result = self.list_append val[0], s(:splat, val[3])
1086
+ # TODO: the line number from tSTAR has been dropped
1087
+ args, _, _, id = val
1088
+ line = lexer.lineno
1089
+ result = self.list_append args, s(:splat, id).line(line)
903
1090
  }
904
1091
 
905
1092
  mrhs_arg: mrhs
@@ -917,11 +1104,14 @@ rule
917
1104
  }
918
1105
  | args tCOMMA tSTAR arg_value
919
1106
  {
920
- result = self.arg_concat val[0], val[3]
1107
+ # TODO: make all tXXXX terminals include lexer.lineno
1108
+ arg, _, _, splat = val
1109
+ result = self.arg_concat arg, splat
921
1110
  }
922
1111
  | tSTAR arg_value
923
1112
  {
924
- result = s(:splat, val[1])
1113
+ _, arg = val
1114
+ result = s(:splat, arg).line arg.line
925
1115
  }
926
1116
 
927
1117
  primary: literal
@@ -936,58 +1126,65 @@ rule
936
1126
  | backref
937
1127
  | tFID
938
1128
  {
939
- result = new_call nil, val[0].to_sym
1129
+ msg, = val
1130
+ result = new_call nil, msg.to_sym
940
1131
  }
941
- | kBEGIN
1132
+ | k_begin
942
1133
  {
1134
+ lexer.cmdarg.push false
943
1135
  result = self.lexer.lineno
944
1136
  }
945
- bodystmt kEND
1137
+ bodystmt k_end
946
1138
  {
947
- unless val[2] then
948
- result = s(:nil)
949
- else
950
- result = s(:begin, val[2])
951
- end
952
-
953
- result.line = val[1]
1139
+ lexer.cmdarg.pop
1140
+ result = new_begin val
954
1141
  }
955
- | tLPAREN_ARG rparen
1142
+ | tLPAREN_ARG
956
1143
  {
957
- debug20 13, val, result
1144
+ lexer.lex_state = EXPR_ENDARG
1145
+ result = lexer.lineno
958
1146
  }
959
- | tLPAREN_ARG
1147
+ rparen
960
1148
  {
961
- result = self.lexer.cmdarg.stack.dup
962
- lexer.cmdarg.stack.replace [false] # TODO add api for these
1149
+ _, line, _ = val
1150
+ result = s(:begin).line line
963
1151
  }
964
- expr
1152
+ | tLPAREN_ARG
1153
+ stmt
965
1154
  {
966
- lexer.lex_state = :expr_endarg
1155
+ lexer.lex_state = EXPR_ENDARG
967
1156
  }
968
1157
  rparen
969
1158
  {
970
- warning "(...) interpreted as grouped expression"
971
- lexer.cmdarg.stack.replace val[1]
972
- result = val[2]
1159
+ _, stmt, _, _, = val
1160
+ # warning "(...) interpreted as grouped expression"
1161
+ result = stmt
973
1162
  }
974
1163
  | tLPAREN compstmt tRPAREN
975
1164
  {
976
- result = val[1] || s(:nil)
1165
+ _, stmt, _ = val
1166
+ result = stmt
1167
+ result ||= s(:nil).line lexer.lineno
977
1168
  result.paren = true
978
1169
  }
979
1170
  | primary_value tCOLON2 tCONSTANT
980
1171
  {
981
- result = s(:colon2, val[0], val[2].to_sym)
1172
+ expr, _, id = val
1173
+
1174
+ result = s(:colon2, expr, id.to_sym).line expr.line
982
1175
  }
983
1176
  | tCOLON3 tCONSTANT
984
1177
  {
985
- result = s(:colon3, val[1].to_sym)
1178
+ _, id = val
1179
+
1180
+ result = s(:colon3, id.to_sym).line lexer.lineno
986
1181
  }
987
- | tLBRACK aref_args tRBRACK
1182
+ | tLBRACK { result = lexer.lineno } aref_args tRBRACK
988
1183
  {
989
- result = val[1] || s(:array)
1184
+ _, line, args, _ = val
1185
+ result = args || s(:array)
990
1186
  result.sexp_type = :array # aref_args is :args
1187
+ result.line line
991
1188
  }
992
1189
  | tLBRACE
993
1190
  {
@@ -997,9 +1194,10 @@ rule
997
1194
  {
998
1195
  result = new_hash val
999
1196
  }
1000
- | kRETURN
1197
+ | k_return
1001
1198
  {
1002
- result = s(:return)
1199
+ (_, line), = val
1200
+ result = s(:return).line line
1003
1201
  }
1004
1202
  | kYIELD tLPAREN2 call_args rparen
1005
1203
  {
@@ -1015,11 +1213,14 @@ rule
1015
1213
  }
1016
1214
  | kDEFINED opt_nl tLPAREN2 expr rparen
1017
1215
  {
1018
- result = s(:defined, val[3])
1216
+ (_, line), _, _, arg, _ = val
1217
+
1218
+ result = s(:defined, arg).line line
1019
1219
  }
1020
1220
  | kNOT tLPAREN2 expr rparen
1021
1221
  {
1022
- result = s(:call, val[2], :"!")
1222
+ _, _, lhs, _ = val
1223
+ result = new_call lhs, :"!"
1023
1224
  }
1024
1225
  | kNOT tLPAREN2 rparen
1025
1226
  {
@@ -1027,11 +1228,11 @@ rule
1027
1228
  }
1028
1229
  | fcall brace_block
1029
1230
  {
1030
- oper, iter = val[0], val[1]
1031
- call = oper # FIX
1231
+ call, iter = val
1232
+
1032
1233
  iter.insert 1, call
1033
1234
  result = iter
1034
- call.line = iter.line
1235
+ # FIX: probably not: call.line = iter.line
1035
1236
  }
1036
1237
  | method_call
1037
1238
  | method_call brace_block
@@ -1045,61 +1246,42 @@ rule
1045
1246
  {
1046
1247
  result = val[1] # TODO: fix lineno
1047
1248
  }
1048
- | kIF expr_value then compstmt if_tail kEND
1049
- {
1050
- result = new_if val[1], val[3], val[4]
1051
- }
1052
- | kUNLESS expr_value then compstmt opt_else kEND
1053
- {
1054
- result = new_if val[1], val[4], val[3]
1055
- }
1056
- | kWHILE
1057
- {
1058
- lexer.cond.push true
1059
- }
1060
- expr_value do
1249
+ | k_if expr_value then compstmt if_tail k_end
1061
1250
  {
1062
- lexer.cond.pop
1251
+ _, c, _, t, f, _ = val
1252
+ result = new_if c, t, f
1063
1253
  }
1064
- compstmt kEND
1065
- {
1066
- result = new_while val[5], val[2], true
1067
- }
1068
- | kUNTIL
1254
+ | k_unless expr_value then compstmt opt_else k_end
1069
1255
  {
1070
- lexer.cond.push true
1256
+ _, c, _, t, f, _ = val
1257
+ result = new_if c, f, t
1071
1258
  }
1072
- expr_value do
1259
+ | k_while expr_value_do compstmt k_end
1073
1260
  {
1074
- lexer.cond.pop
1261
+ _, cond, body, _ = val
1262
+ result = new_while body, cond, true
1075
1263
  }
1076
- compstmt kEND
1264
+ | k_until expr_value_do compstmt k_end
1077
1265
  {
1078
- result = new_until val[5], val[2], true
1266
+ _, cond, body, _ = val
1267
+ result = new_until body, cond, true
1079
1268
  }
1080
- | kCASE expr_value opt_terms case_body kEND
1269
+ | k_case expr_value opt_terms case_body k_end
1081
1270
  {
1082
1271
  (_, line), expr, _, body, _ = val
1083
1272
  result = new_case expr, body, line
1084
1273
  }
1085
- | kCASE opt_terms case_body kEND
1274
+ | k_case opt_terms case_body k_end
1086
1275
  {
1087
1276
  (_, line), _, body, _ = val
1088
1277
  result = new_case nil, body, line
1089
1278
  }
1090
- | kFOR for_var kIN
1091
- {
1092
- lexer.cond.push true
1093
- }
1094
- expr_value do
1095
- {
1096
- lexer.cond.pop
1097
- }
1098
- compstmt kEND
1279
+ | k_for for_var kIN expr_value_do compstmt k_end
1099
1280
  {
1100
- result = new_for val[4], val[1], val[7]
1281
+ _, var, _, iter, body, _ = val
1282
+ result = new_for iter, var, body
1101
1283
  }
1102
- | kCLASS
1284
+ | k_class
1103
1285
  {
1104
1286
  result = self.lexer.lineno
1105
1287
  }
@@ -1111,13 +1293,13 @@ rule
1111
1293
  end
1112
1294
  self.env.extend
1113
1295
  }
1114
- bodystmt kEND
1296
+ bodystmt k_end
1115
1297
  {
1116
1298
  result = new_class val
1117
1299
  self.env.unextend
1118
1300
  self.lexer.comments # we don't care about comments in the body
1119
1301
  }
1120
- | kCLASS tLSHFT
1302
+ | k_class tLSHFT
1121
1303
  {
1122
1304
  result = self.lexer.lineno
1123
1305
  }
@@ -1132,13 +1314,13 @@ rule
1132
1314
  self.in_single = 0
1133
1315
  self.env.extend
1134
1316
  }
1135
- bodystmt kEND
1317
+ bodystmt k_end
1136
1318
  {
1137
1319
  result = new_sclass val
1138
1320
  self.env.unextend
1139
1321
  self.lexer.comments # we don't care about comments in the body
1140
1322
  }
1141
- | kMODULE
1323
+ | k_module
1142
1324
  {
1143
1325
  result = self.lexer.lineno
1144
1326
  }
@@ -1150,74 +1332,90 @@ rule
1150
1332
 
1151
1333
  self.env.extend
1152
1334
  }
1153
- bodystmt kEND
1335
+ bodystmt k_end
1154
1336
  {
1155
1337
  result = new_module val
1156
1338
  self.env.unextend
1157
1339
  self.lexer.comments # we don't care about comments in the body
1158
1340
  }
1159
- | kDEF fname
1341
+ | k_def fname
1160
1342
  {
1161
- result = [self.in_def, self.lexer.cmdarg.stack.dup]
1343
+ result = self.in_def
1162
1344
 
1163
- self.comments.push self.lexer.comments
1164
- self.in_def = true
1345
+ self.in_def = true # group = local_push
1165
1346
  self.env.extend
1166
- # TODO: local->cmdargs = cmdarg_stack;
1167
- # TODO: port local_push_gen and local_pop_gen
1168
- lexer.cmdarg.stack.replace [false]
1347
+ lexer.cmdarg.push false
1348
+ lexer.cond.push false
1349
+
1350
+ self.comments.push self.lexer.comments
1169
1351
  }
1170
- f_arglist bodystmt kEND
1352
+ f_arglist bodystmt { result = lexer.lineno } k_end
1171
1353
  {
1172
- in_def, cmdarg = val[2]
1354
+ in_def = val[2]
1173
1355
 
1174
1356
  result = new_defn val
1175
1357
 
1176
- lexer.cmdarg.stack.replace cmdarg
1358
+ lexer.cond.pop # group = local_pop
1359
+ lexer.cmdarg.pop
1177
1360
  self.env.unextend
1178
1361
  self.in_def = in_def
1362
+
1179
1363
  self.lexer.comments # we don't care about comments in the body
1180
1364
  }
1181
- | kDEF singleton dot_or_colon
1365
+ | k_def singleton dot_or_colon
1182
1366
  {
1183
- self.comments.push self.lexer.comments
1184
- lexer.lex_state = :expr_fname
1367
+ lexer.lex_state = EXPR_FNAME
1185
1368
  }
1186
1369
  fname
1187
1370
  {
1188
- self.in_single += 1
1371
+ result = [self.in_def, lexer.lineno]
1372
+
1373
+ self.in_single += 1 # TODO: remove?
1374
+
1375
+ self.in_def = true # local_push
1189
1376
  self.env.extend
1190
- lexer.lex_state = :expr_endfn # force for args
1191
- result = [lexer.lineno, self.lexer.cmdarg.stack.dup]
1192
- lexer.cmdarg.stack.replace [false]
1377
+ lexer.cmdarg.push false
1378
+ lexer.cond.push false
1379
+
1380
+ lexer.lex_state = EXPR_ENDFN|EXPR_LABEL
1381
+ self.comments.push self.lexer.comments
1193
1382
  }
1194
- f_arglist bodystmt kEND
1383
+ f_arglist bodystmt k_end
1195
1384
  {
1196
- line, cmdarg = val[5]
1197
- result = new_defs val
1198
- result[3].line line
1385
+ _, _recv, _, _, _name, (in_def, _lineno), _args, _body, _ = val
1199
1386
 
1200
- lexer.cmdarg.stack.replace cmdarg
1387
+ result = new_defs val
1201
1388
 
1389
+ lexer.cond.pop # group = local_pop
1390
+ lexer.cmdarg.pop
1202
1391
  self.env.unextend
1392
+ self.in_def = in_def
1393
+
1203
1394
  self.in_single -= 1
1395
+
1396
+ # TODO: restore cur_arg ? what's cur_arg?
1397
+
1204
1398
  self.lexer.comments # we don't care about comments in the body
1205
1399
  }
1206
1400
  | kBREAK
1207
1401
  {
1208
- result = s(:break)
1402
+ (_, line), = val
1403
+ result = s(:break).line line
1209
1404
  }
1210
1405
  | kNEXT
1211
1406
  {
1212
- result = s(:next)
1407
+ (_, line), = val
1408
+ result = s(:next).line line
1213
1409
  }
1214
1410
  | kREDO
1215
1411
  {
1216
- result = s(:redo)
1412
+ (_, line), = val
1413
+ result = s(:redo).line line
1217
1414
  }
1218
1415
  | kRETRY
1219
1416
  {
1220
- result = s(:retry)
1417
+ (_, line), = val
1418
+ result = s(:retry).line line
1221
1419
  }
1222
1420
 
1223
1421
  primary_value: primary
@@ -1236,7 +1434,15 @@ rule
1236
1434
  k_class: kCLASS
1237
1435
  k_module: kMODULE
1238
1436
  k_def: kDEF
1437
+ k_do: kDO
1438
+ k_do_block: kDO_BLOCK
1439
+ k_rescue: kRESCUE
1440
+ k_ensure: kENSURE
1441
+ k_when: kWHEN
1442
+ k_else: kELSE
1443
+ k_elsif: kELSIF
1239
1444
  k_end: kEND
1445
+ k_return: kRETURN
1240
1446
 
1241
1447
  then: term
1242
1448
  | kTHEN
@@ -1246,9 +1452,11 @@ rule
1246
1452
  | kDO_COND
1247
1453
 
1248
1454
  if_tail: opt_else
1249
- | kELSIF expr_value then compstmt if_tail
1455
+ | k_elsif expr_value then compstmt if_tail
1250
1456
  {
1251
- result = s(:if, val[1], val[3], val[4])
1457
+ (_, line), c, _, t, rest = val
1458
+
1459
+ result = s(:if, c, t, rest).line line
1252
1460
  }
1253
1461
 
1254
1462
  opt_else: none
@@ -1271,7 +1479,9 @@ rule
1271
1479
 
1272
1480
  f_marg_list: f_marg
1273
1481
  {
1274
- result = s(:array, val[0])
1482
+ sym, = val
1483
+
1484
+ result = s(:array, sym).line lexer.lineno
1275
1485
  }
1276
1486
  | f_marg_list tCOMMA f_marg
1277
1487
  {
@@ -1345,7 +1555,9 @@ rule
1345
1555
  }
1346
1556
  | f_block_arg
1347
1557
  {
1348
- result = call_args val
1558
+ line = lexer.lineno
1559
+ result = call_args val # TODO: push line down
1560
+ result.line line
1349
1561
  }
1350
1562
 
1351
1563
  opt_block_args_tail: tCOMMA block_args_tail
@@ -1376,7 +1588,7 @@ opt_block_args_tail: tCOMMA block_args_tail
1376
1588
  }
1377
1589
  | f_arg tCOMMA
1378
1590
  {
1379
- result = args val
1591
+ result = args(val) << nil
1380
1592
  }
1381
1593
  | f_arg tCOMMA f_rest_arg tCOMMA f_arg opt_block_args_tail
1382
1594
  {
@@ -1417,18 +1629,22 @@ opt_block_args_tail: tCOMMA block_args_tail
1417
1629
 
1418
1630
  opt_block_param: none { result = 0 }
1419
1631
  | block_param_def
1632
+ {
1633
+ self.lexer.command_start = true
1634
+ }
1420
1635
 
1421
1636
  block_param_def: tPIPE opt_bv_decl tPIPE
1422
1637
  {
1638
+ # TODO: current_arg = 0
1423
1639
  result = args val
1424
1640
  }
1425
1641
  | tOROP
1426
1642
  {
1427
- self.lexer.command_start = true
1428
- result = s(:args)
1643
+ result = s(:args).line lexer.lineno
1429
1644
  }
1430
1645
  | tPIPE block_param opt_bv_decl tPIPE
1431
1646
  {
1647
+ # TODO: current_arg = 0
1432
1648
  result = args val
1433
1649
  }
1434
1650
 
@@ -1449,26 +1665,33 @@ opt_block_args_tail: tCOMMA block_args_tail
1449
1665
 
1450
1666
  bvar: tIDENTIFIER
1451
1667
  {
1452
- result = s(:shadow, val[0].to_sym)
1668
+ id, = val
1669
+ line = lexer.lineno
1670
+ result = s(:shadow, id.to_sym).line line
1453
1671
  }
1454
1672
  | f_bad_arg
1455
1673
 
1456
1674
  lambda: {
1457
1675
  self.env.extend :dynamic
1458
- result = self.lexer.lineno
1459
-
1460
- result = lexer.lpar_beg
1676
+ result = [lexer.lineno, lexer.lpar_beg]
1461
1677
  lexer.paren_nest += 1
1462
1678
  lexer.lpar_beg = lexer.paren_nest
1463
1679
  }
1464
- f_larglist lambda_body
1680
+ f_larglist
1465
1681
  {
1466
- lpar, args, body = val
1682
+ lexer.cmdarg.push false
1683
+ }
1684
+ lambda_body
1685
+ {
1686
+ (line, lpar), args, _cmdarg, body = val
1467
1687
  lexer.lpar_beg = lpar
1468
1688
 
1469
- call = new_call nil, :lambda
1689
+ lexer.cmdarg.pop
1690
+
1691
+ call = s(:lambda).line line
1470
1692
  result = new_iter call, args, body
1471
- self.env.unextend
1693
+ result.line = line
1694
+ self.env.unextend # TODO: dynapush & dynapop
1472
1695
  }
1473
1696
 
1474
1697
  f_larglist: tLPAREN2 f_args opt_bv_decl rparen
@@ -1485,28 +1708,15 @@ opt_block_args_tail: tCOMMA block_args_tail
1485
1708
  {
1486
1709
  result = val[1]
1487
1710
  }
1488
- | kDO_LAMBDA compstmt kEND
1711
+ | kDO_LAMBDA bodystmt kEND
1489
1712
  {
1490
1713
  result = val[1]
1491
1714
  }
1492
1715
 
1493
- do_block: kDO_BLOCK
1494
- {
1495
- self.env.extend :dynamic
1496
- result = self.lexer.lineno
1497
- }
1498
- opt_block_param
1716
+ do_block: k_do_block do_body kEND
1499
1717
  {
1500
- result = nil # self.env.dynamic.keys
1501
- }
1502
- compstmt kEND
1503
- {
1504
- args = val[2]
1505
- body = val[4]
1506
- result = new_iter nil, args, body
1507
- result.line = val[1]
1508
-
1509
- self.env.unextend
1718
+ (_, line), iter, _ = val
1719
+ result = iter.line line
1510
1720
  }
1511
1721
 
1512
1722
  block_call: command do_block
@@ -1520,14 +1730,16 @@ opt_block_args_tail: tCOMMA block_args_tail
1520
1730
 
1521
1731
  val = invert_block_call val if inverted? val
1522
1732
 
1523
- result = val[1]
1524
- result.insert 1, val[0]
1733
+ cmd, blk = val
1734
+
1735
+ result = blk
1736
+ result.insert 1, cmd
1525
1737
  }
1526
- | block_call dot_or_colon operation2 opt_paren_args
1738
+ | block_call call_op2 operation2 opt_paren_args
1527
1739
  {
1528
1740
  result = new_call val[0], val[2].to_sym, val[3]
1529
1741
  }
1530
- | block_call dot_or_colon operation2 opt_paren_args brace_block
1742
+ | block_call call_op2 operation2 opt_paren_args brace_block
1531
1743
  {
1532
1744
  iter1, _, name, args, iter2 = val
1533
1745
 
@@ -1536,7 +1748,7 @@ opt_block_args_tail: tCOMMA block_args_tail
1536
1748
 
1537
1749
  result = iter2
1538
1750
  }
1539
- | block_call dot_or_colon operation2 command_args do_block
1751
+ | block_call call_op2 operation2 command_args do_block
1540
1752
  {
1541
1753
  iter1, _, name, args, iter2 = val
1542
1754
 
@@ -1552,8 +1764,10 @@ opt_block_args_tail: tCOMMA block_args_tail
1552
1764
  }
1553
1765
  paren_args
1554
1766
  {
1555
- args = self.call_args val[2..-1]
1556
- result = val[0].concat args.sexp_body
1767
+ call, lineno, args = val
1768
+
1769
+ result = call.concat args.sexp_body if args
1770
+ result.line lineno
1557
1771
  }
1558
1772
  | primary_value call_op operation2 opt_paren_args
1559
1773
  {
@@ -1581,7 +1795,7 @@ opt_block_args_tail: tCOMMA block_args_tail
1581
1795
  }
1582
1796
  | kSUPER
1583
1797
  {
1584
- result = s(:zsuper)
1798
+ result = s(:zsuper).line lexer.lineno
1585
1799
  }
1586
1800
  | primary_value tLBRACK2 opt_call_args rbracket
1587
1801
  {
@@ -1593,39 +1807,55 @@ opt_block_args_tail: tCOMMA block_args_tail
1593
1807
  self.env.extend :dynamic
1594
1808
  result = self.lexer.lineno
1595
1809
  }
1596
- opt_block_param
1597
- {
1598
- result = nil # self.env.dynamic.keys
1599
- }
1600
- compstmt tRCURLY
1810
+ brace_body tRCURLY
1601
1811
  {
1602
- _, line, args, _, body, _ = val
1812
+ _, line, body, _ = val
1603
1813
 
1604
- result = new_iter nil, args, body
1814
+ result = body
1605
1815
  result.line = line
1606
1816
 
1607
1817
  self.env.unextend
1608
1818
  }
1609
- | kDO
1819
+ | k_do
1610
1820
  {
1611
1821
  self.env.extend :dynamic
1612
1822
  result = self.lexer.lineno
1613
1823
  }
1614
- opt_block_param
1824
+ do_body kEND
1615
1825
  {
1616
- result = nil # self.env.dynamic.keys
1826
+ _, line, body, _ = val
1827
+
1828
+ result = body
1829
+ result.line = line
1830
+
1831
+ self.env.unextend
1617
1832
  }
1618
- bodystmt kEND
1833
+
1834
+ brace_body: { self.env.extend :dynamic; result = self.lexer.lineno }
1835
+ { result = lexer.cmdarg.store(false) }
1836
+ opt_block_param compstmt
1619
1837
  {
1620
- _, line, args, _, body, _ = val
1838
+ line, cmdarg, param, cmpstmt = val
1621
1839
 
1622
- result = new_iter nil, args, body
1623
- result.line = line
1840
+ result = new_brace_body param, cmpstmt, line
1841
+ self.env.unextend
1842
+ lexer.cmdarg.restore cmdarg
1843
+ lexer.cmdarg.pop # because of: cmdarg_stack >> 1 ?
1844
+ }
1845
+
1846
+ do_body: { self.env.extend :dynamic; result = self.lexer.lineno }
1847
+ { lexer.cmdarg.push false }
1848
+ opt_block_param
1849
+ bodystmt
1850
+ {
1851
+ line, _cmdarg, param, cmpstmt = val
1624
1852
 
1853
+ result = new_do_body param, cmpstmt, line
1854
+ lexer.cmdarg.pop
1625
1855
  self.env.unextend
1626
1856
  }
1627
1857
 
1628
- case_body: kWHEN
1858
+ case_body: k_when
1629
1859
  {
1630
1860
  result = self.lexer.lineno
1631
1861
  }
@@ -1638,12 +1868,12 @@ opt_block_args_tail: tCOMMA block_args_tail
1638
1868
 
1639
1869
  cases: opt_else | case_body
1640
1870
 
1641
- opt_rescue: kRESCUE exc_list exc_var then compstmt opt_rescue
1871
+ opt_rescue: k_rescue exc_list exc_var then compstmt opt_rescue
1642
1872
  {
1643
1873
  (_, line), klasses, var, _, body, rest = val
1644
1874
 
1645
1875
  klasses ||= s(:array)
1646
- klasses << new_assign(var, s(:gvar, :"$!")) if var
1876
+ klasses << new_assign(var, s(:gvar, :"$!").line(var.line)) if var
1647
1877
  klasses.line line
1648
1878
 
1649
1879
  result = new_resbody(klasses, body)
@@ -1656,7 +1886,8 @@ opt_block_args_tail: tCOMMA block_args_tail
1656
1886
 
1657
1887
  exc_list: arg_value
1658
1888
  {
1659
- result = s(:array, val[0])
1889
+ arg, = val
1890
+ result = s(:array, arg).line arg.line
1660
1891
  }
1661
1892
  | mrhs
1662
1893
  | none
@@ -1667,28 +1898,33 @@ opt_block_args_tail: tCOMMA block_args_tail
1667
1898
  }
1668
1899
  | none
1669
1900
 
1670
- opt_ensure: kENSURE compstmt
1901
+ opt_ensure: k_ensure compstmt
1671
1902
  {
1672
- _, body = val
1903
+ (_, line), body = val
1673
1904
 
1674
- result = body || s(:nil)
1905
+ result = body || s(:nil).line(line)
1675
1906
  }
1676
1907
  | none
1677
1908
 
1678
1909
  literal: numeric
1679
1910
  {
1911
+ line = lexer.lineno
1680
1912
  result = s(:lit, val[0])
1913
+ result.line = line
1681
1914
  }
1682
1915
  | symbol
1683
1916
  {
1917
+ line = lexer.lineno
1684
1918
  result = s(:lit, val[0])
1919
+ result.line = line
1685
1920
  }
1686
1921
  | dsym
1687
1922
 
1688
1923
  strings: string
1689
1924
  {
1690
- val[0] = s(:dstr, val[0].value) if val[0].sexp_type == :evstr
1691
- result = val[0]
1925
+ str, = val
1926
+ str = s(:dstr, str.value) if str.sexp_type == :evstr
1927
+ result = str
1692
1928
  }
1693
1929
 
1694
1930
  string: tCHAR
@@ -1703,7 +1939,11 @@ opt_block_args_tail: tCOMMA block_args_tail
1703
1939
 
1704
1940
  string1: tSTRING_BEG string_contents tSTRING_END
1705
1941
  {
1706
- result = val[1]
1942
+ _, str, (_, func) = val
1943
+
1944
+ str = dedent str if func =~ RubyLexer::STR_FUNC_ICNTNT
1945
+
1946
+ result = str
1707
1947
  }
1708
1948
  | tSTRING
1709
1949
  {
@@ -1712,7 +1952,8 @@ opt_block_args_tail: tCOMMA block_args_tail
1712
1952
 
1713
1953
  xstring: tXSTRING_BEG xstring_contents tSTRING_END
1714
1954
  {
1715
- result = new_xstring val[1]
1955
+ result = new_xstring val
1956
+ # TODO: dedent?!?! SERIOUSLY?!?
1716
1957
  }
1717
1958
 
1718
1959
  regexp: tREGEXP_BEG regexp_contents tREGEXP_END
@@ -1722,7 +1963,7 @@ opt_block_args_tail: tCOMMA block_args_tail
1722
1963
 
1723
1964
  words: tWORDS_BEG tSPACE tSTRING_END
1724
1965
  {
1725
- result = s(:array)
1966
+ result = s(:array).line lexer.lineno
1726
1967
  }
1727
1968
  | tWORDS_BEG word_list tSTRING_END
1728
1969
  {
@@ -1746,25 +1987,28 @@ opt_block_args_tail: tCOMMA block_args_tail
1746
1987
 
1747
1988
  symbols: tSYMBOLS_BEG tSPACE tSTRING_END
1748
1989
  {
1749
- result = s(:array)
1990
+ result = s(:array).line lexer.lineno
1750
1991
  }
1751
- | tSYMBOLS_BEG symbol_list tSTRING_END
1992
+ | tSYMBOLS_BEG { result = lexer.lineno } symbol_list tSTRING_END
1752
1993
  {
1753
- result = val[1]
1994
+ _, line, list, _, = val
1995
+ list.line = line
1996
+ result = list
1754
1997
  }
1755
1998
 
1756
1999
  symbol_list: none
1757
2000
  {
1758
- result = new_symbol_list
2001
+ result = new_symbol_list.line lexer.lineno
1759
2002
  }
1760
2003
  | symbol_list word tSPACE
1761
2004
  {
1762
- result = val[0].dup << new_symbol_list_entry(val)
2005
+ list, * = val
2006
+ result = list.dup << new_symbol_list_entry(val)
1763
2007
  }
1764
2008
 
1765
2009
  qwords: tQWORDS_BEG tSPACE tSTRING_END
1766
2010
  {
1767
- result = s(:array)
2011
+ result = s(:array).line lexer.lineno
1768
2012
  }
1769
2013
  | tQWORDS_BEG qword_list tSTRING_END
1770
2014
  {
@@ -1773,7 +2017,7 @@ opt_block_args_tail: tCOMMA block_args_tail
1773
2017
 
1774
2018
  qsymbols: tQSYMBOLS_BEG tSPACE tSTRING_END
1775
2019
  {
1776
- result = s(:array)
2020
+ result = s(:array).line lexer.lineno # FIX
1777
2021
  }
1778
2022
  | tQSYMBOLS_BEG qsym_list tSTRING_END
1779
2023
  {
@@ -1800,11 +2044,12 @@ opt_block_args_tail: tCOMMA block_args_tail
1800
2044
 
1801
2045
  string_contents: none
1802
2046
  {
1803
- result = s(:str, "")
2047
+ result = s(:str, "").line lexer.lineno
1804
2048
  }
1805
2049
  | string_contents string_content
1806
2050
  {
1807
- result = literal_concat(val[0], val[1])
2051
+ v1, v2 = val
2052
+ result = literal_concat v1, v2
1808
2053
  }
1809
2054
 
1810
2055
  xstring_contents: none
@@ -1813,7 +2058,8 @@ xstring_contents: none
1813
2058
  }
1814
2059
  | xstring_contents string_content
1815
2060
  {
1816
- result = literal_concat(val[0], val[1])
2061
+ v1, v2 = val
2062
+ result = literal_concat v1, v2
1817
2063
  }
1818
2064
 
1819
2065
  regexp_contents: none
@@ -1822,7 +2068,8 @@ regexp_contents: none
1822
2068
  }
1823
2069
  | regexp_contents string_content
1824
2070
  {
1825
- result = literal_concat(val[0], val[1])
2071
+ v1, v2 = val
2072
+ result = literal_concat v1, v2
1826
2073
  }
1827
2074
 
1828
2075
  string_content: tSTRING_CONTENT
@@ -1834,42 +2081,46 @@ regexp_contents: none
1834
2081
  result = lexer.lex_strterm
1835
2082
 
1836
2083
  lexer.lex_strterm = nil
1837
- lexer.lex_state = :expr_beg # TODO: expr_value ?
2084
+ lexer.lex_state = EXPR_BEG
1838
2085
  }
1839
2086
  string_dvar
1840
2087
  {
1841
- lexer.lex_strterm = val[1]
1842
- result = s(:evstr, val[2])
2088
+ _, strterm, str = val
2089
+ lexer.lex_strterm = strterm
2090
+ result = s(:evstr, str).line str.line
1843
2091
  }
1844
2092
  | tSTRING_DBEG
1845
2093
  {
1846
2094
  result = [lexer.lex_strterm,
1847
2095
  lexer.brace_nest,
1848
2096
  lexer.string_nest, # TODO: remove
1849
- lexer.cond.store,
1850
- lexer.cmdarg.store,
1851
2097
  lexer.lex_state,
2098
+ lexer.lineno,
1852
2099
  ]
1853
2100
 
2101
+ lexer.cmdarg.push false
2102
+ lexer.cond.push false
2103
+
1854
2104
  lexer.lex_strterm = nil
1855
2105
  lexer.brace_nest = 0
1856
2106
  lexer.string_nest = 0
1857
2107
 
1858
- lexer.lex_state = :expr_value
2108
+ lexer.lex_state = EXPR_BEG
1859
2109
  }
1860
- compstmt tRCURLY
2110
+ compstmt
2111
+ tSTRING_DEND
1861
2112
  {
1862
- # TODO: tRCURLY -> tSTRING_END
1863
2113
  _, memo, stmt, _ = val
1864
2114
 
1865
- lex_strterm, brace_nest, string_nest, oldcond, oldcmdarg, oldlex_state = memo
2115
+ lex_strterm, brace_nest, string_nest, oldlex_state, line = memo
2116
+ # TODO: heredoc_indent
1866
2117
 
1867
2118
  lexer.lex_strterm = lex_strterm
1868
2119
  lexer.brace_nest = brace_nest
1869
2120
  lexer.string_nest = string_nest
1870
2121
 
1871
- lexer.cond.restore oldcond
1872
- lexer.cmdarg.restore oldcmdarg
2122
+ lexer.cmdarg.pop
2123
+ lexer.cond.pop
1873
2124
 
1874
2125
  lexer.lex_state = oldlex_state
1875
2126
 
@@ -1879,24 +2130,24 @@ regexp_contents: none
1879
2130
  when :str, :dstr, :evstr then
1880
2131
  result = stmt
1881
2132
  else
1882
- result = s(:evstr, stmt)
2133
+ result = s(:evstr, stmt).line line
1883
2134
  end
1884
2135
  when nil then
1885
- result = s(:evstr)
2136
+ result = s(:evstr).line line
1886
2137
  else
1887
2138
  debug20 25
1888
2139
  raise "unknown string body: #{stmt.inspect}"
1889
2140
  end
1890
2141
  }
1891
2142
 
1892
- string_dvar: tGVAR { result = s(:gvar, val[0].to_sym) }
1893
- | tIVAR { result = s(:ivar, val[0].to_sym) }
1894
- | tCVAR { result = s(:cvar, val[0].to_sym) }
2143
+ string_dvar: tGVAR { result = s(:gvar, val[0].to_sym).line lexer.lineno }
2144
+ | tIVAR { result = s(:ivar, val[0].to_sym).line lexer.lineno }
2145
+ | tCVAR { result = s(:cvar, val[0].to_sym).line lexer.lineno }
1895
2146
  | backref
1896
2147
 
1897
2148
  symbol: tSYMBEG sym
1898
2149
  {
1899
- lexer.lex_state = :expr_end
2150
+ lexer.lex_state = EXPR_END
1900
2151
  result = val[1].to_sym
1901
2152
  }
1902
2153
  | tSYMBOL
@@ -1908,18 +2159,19 @@ regexp_contents: none
1908
2159
 
1909
2160
  dsym: tSYMBEG xstring_contents tSTRING_END
1910
2161
  {
1911
- lexer.lex_state = :expr_end
1912
- result = val[1]
2162
+ _, result, _ = val
2163
+
2164
+ lexer.lex_state = EXPR_END
1913
2165
 
1914
- result ||= s(:str, "")
2166
+ result ||= s(:str, "").line lexer.lineno
1915
2167
 
1916
2168
  case result.sexp_type
1917
2169
  when :dstr then
1918
2170
  result.sexp_type = :dsym
1919
2171
  when :str then
1920
- result = s(:lit, result.last.to_sym)
2172
+ result = s(:lit, result.last.to_sym).line result.line
1921
2173
  when :evstr then
1922
- result = s(:dsym, "", result)
2174
+ result = s(:dsym, "", result).line result.line
1923
2175
  else
1924
2176
  debug20 26, val, result
1925
2177
  end
@@ -1942,19 +2194,20 @@ regexp_contents: none
1942
2194
  | tCONSTANT
1943
2195
  | tCVAR
1944
2196
 
1945
- keyword_variable: kNIL { result = s(:nil) }
1946
- | kSELF { result = s(:self) }
1947
- | kTRUE { result = s(:true) }
1948
- | kFALSE { result = s(:false) }
1949
- | k__FILE__ { result = s(:str, self.file) }
1950
- | k__LINE__ { result = s(:lit, lexer.lineno) }
2197
+ keyword_variable: kNIL { result = s(:nil).line lexer.lineno }
2198
+ | kSELF { result = s(:self).line lexer.lineno }
2199
+ | kTRUE { result = s(:true).line lexer.lineno }
2200
+ | kFALSE { result = s(:false).line lexer.lineno }
2201
+ | k__FILE__ { result = s(:str, self.file).line lexer.lineno }
2202
+ | k__LINE__ { result = s(:lit, lexer.lineno).line lexer.lineno }
1951
2203
  | k__ENCODING__
1952
2204
  {
2205
+ l = lexer.lineno
1953
2206
  result =
1954
2207
  if defined? Encoding then
1955
- s(:colon2, s(:const, :Encoding), :UTF_8)
2208
+ s(:colon2, s(:const, :Encoding).line(l), :UTF_8).line l
1956
2209
  else
1957
- s(:str, "Unsupported!")
2210
+ s(:str, "Unsupported!").line l
1958
2211
  end
1959
2212
  }
1960
2213
 
@@ -1979,43 +2232,42 @@ keyword_variable: kNIL { result = s(:nil) }
1979
2232
  debug20 29, val, result
1980
2233
  }
1981
2234
 
1982
- backref: tNTH_REF { result = s(:nth_ref, val[0]) }
1983
- | tBACK_REF { result = s(:back_ref, val[0]) }
2235
+ backref: tNTH_REF { result = s(:nth_ref, val[0]).line lexer.lineno }
2236
+ | tBACK_REF { result = s(:back_ref, val[0]).line lexer.lineno }
1984
2237
 
1985
- superclass: term
1986
- {
1987
- result = nil
1988
- }
1989
- | tLT
2238
+ superclass: tLT
1990
2239
  {
1991
- lexer.lex_state = :expr_beg
2240
+ lexer.lex_state = EXPR_BEG
2241
+ lexer.command_start = true
1992
2242
  }
1993
2243
  expr_value term
1994
2244
  {
1995
2245
  result = val[2]
1996
2246
  }
1997
- | error term
2247
+ | none
1998
2248
  {
1999
- yyerrok
2000
2249
  result = nil
2001
- debug20 30, val, result
2002
2250
  }
2003
2251
 
2004
2252
  f_arglist: tLPAREN2 f_args rparen
2005
2253
  {
2006
2254
  result = val[1]
2007
- self.lexer.lex_state = :expr_beg
2255
+ self.lexer.lex_state = EXPR_BEG
2008
2256
  self.lexer.command_start = true
2009
- # TODO:
2010
- # $<num>$ = parser->parser_in_kwarg;
2011
- # parser->parser_in_kwarg = 1;
2012
2257
  }
2013
- | f_args term
2258
+ | {
2259
+ result = self.in_kwarg
2260
+ self.in_kwarg = true
2261
+ self.lexer.lex_state |= EXPR_LABEL
2262
+ }
2263
+ f_args term
2014
2264
  {
2015
- # TODO: parser->parser_in_kwarg = $<num>1;
2016
- result = val[0]
2017
- self.lexer.lex_state = :expr_beg
2018
- self.lexer.command_start = true
2265
+ kwarg, args, _ = val
2266
+
2267
+ self.in_kwarg = kwarg
2268
+ result = args
2269
+ lexer.lex_state = EXPR_BEG
2270
+ lexer.command_start = true
2019
2271
  }
2020
2272
 
2021
2273
  args_tail: f_kwarg tCOMMA f_kwrest opt_f_block_arg
@@ -2138,12 +2390,13 @@ keyword_variable: kNIL { result = s(:nil) }
2138
2390
 
2139
2391
  f_arg: f_arg_item
2140
2392
  {
2141
- case val[0]
2393
+ arg, = val
2394
+
2395
+ case arg
2142
2396
  when Symbol then
2143
- result = s(:args)
2144
- result << val[0]
2397
+ result = s(:args, arg).line lexer.lineno
2145
2398
  when Sexp then
2146
- result = val[0]
2399
+ result = arg
2147
2400
  else
2148
2401
  debug20 32
2149
2402
  raise "Unknown f_arg type: #{val.inspect}"
@@ -2156,7 +2409,7 @@ keyword_variable: kNIL { result = s(:nil) }
2156
2409
  if list.sexp_type == :args then
2157
2410
  result = list
2158
2411
  else
2159
- result = s(:args, list)
2412
+ result = s(:args, list).line list.line
2160
2413
  end
2161
2414
 
2162
2415
  result << item
@@ -2166,38 +2419,42 @@ keyword_variable: kNIL { result = s(:nil) }
2166
2419
 
2167
2420
  f_kw: f_label arg_value
2168
2421
  {
2169
- # TODO: call_args
2170
- label, _ = val[0] # TODO: fix lineno?
2422
+ # TODO: new_kw_arg
2423
+ (label, line), arg = val
2424
+
2171
2425
  identifier = label.to_sym
2172
2426
  self.env[identifier] = :lvar
2173
2427
 
2174
- result = s(:array, s(:kwarg, identifier, val[1]))
2428
+ kwarg = s(:kwarg, identifier, arg).line line
2429
+ result = s(:array, kwarg).line line
2175
2430
  }
2176
2431
  | f_label
2177
2432
  {
2178
- label, _ = val[0] # TODO: fix lineno?
2179
- identifier = label.to_sym
2180
- self.env[identifier] = :lvar
2433
+ (label, line), = val
2434
+
2435
+ id = label.to_sym
2436
+ self.env[id] = :lvar
2181
2437
 
2182
- result = s(:array, s(:kwarg, identifier))
2438
+ result = s(:array, s(:kwarg, id).line(line)).line line
2183
2439
  }
2184
2440
 
2185
2441
  f_block_kw: f_label primary_value
2186
2442
  {
2187
- # TODO: call_args
2188
- label, _ = val[0] # TODO: fix lineno?
2189
- identifier = label.to_sym
2190
- self.env[identifier] = :lvar
2443
+ # TODO: new_kw_arg
2444
+ (label, line), expr = val
2445
+ id = label.to_sym
2446
+ self.env[id] = :lvar
2191
2447
 
2192
- result = s(:array, s(:kwarg, identifier, val[1]))
2448
+ result = s(:array, s(:kwarg, id, expr).line(line)).line line
2193
2449
  }
2194
2450
  | f_label
2195
2451
  {
2196
- label, _ = val[0] # TODO: fix lineno?
2197
- identifier = label.to_sym
2198
- self.env[identifier] = :lvar
2452
+ # TODO: new_kw_arg
2453
+ (label, line), = val
2454
+ id = label.to_sym
2455
+ self.env[id] = :lvar
2199
2456
 
2200
- result = s(:array, s(:kwarg, identifier))
2457
+ result = s(:array, s(:kwarg, id).line(line)).line line
2201
2458
  }
2202
2459
 
2203
2460
  f_block_kwarg: f_block_kw
@@ -2218,7 +2475,9 @@ keyword_variable: kNIL { result = s(:nil) }
2218
2475
 
2219
2476
  f_kwrest: kwrest_mark tIDENTIFIER
2220
2477
  {
2221
- result = :"**#{val[1]}"
2478
+ name = val[1].to_sym
2479
+ self.assignable name
2480
+ result = :"**#{name}"
2222
2481
  }
2223
2482
  | kwrest_mark
2224
2483
  {
@@ -2238,17 +2497,20 @@ keyword_variable: kNIL { result = s(:nil) }
2238
2497
 
2239
2498
  f_block_optarg: f_block_opt
2240
2499
  {
2241
- result = s(:block, val[0])
2500
+ optblk, = val
2501
+ result = s(:block, optblk).line optblk.line
2242
2502
  }
2243
2503
  | f_block_optarg tCOMMA f_block_opt
2244
2504
  {
2245
- result = val[0]
2246
- result << val[2]
2505
+ optarg, _, optblk = val
2506
+ result = optarg
2507
+ result << optblk
2247
2508
  }
2248
2509
 
2249
2510
  f_optarg: f_opt
2250
2511
  {
2251
- result = s(:block, val[0])
2512
+ opt, = val
2513
+ result = s(:block, opt).line opt.line
2252
2514
  }
2253
2515
  | f_optarg tCOMMA f_opt
2254
2516
  {
@@ -2293,7 +2555,7 @@ keyword_variable: kNIL { result = s(:nil) }
2293
2555
  singleton: var_ref
2294
2556
  | tLPAREN2
2295
2557
  {
2296
- lexer.lex_state = :expr_beg
2558
+ lexer.lex_state = EXPR_BEG
2297
2559
  }
2298
2560
  expr rparen
2299
2561
  {
@@ -2302,14 +2564,11 @@ keyword_variable: kNIL { result = s(:nil) }
2302
2564
  result.sexp_type == :lit
2303
2565
  }
2304
2566
 
2305
- assoc_list: none # [!nil]
2567
+ assoc_list: none
2306
2568
  {
2307
- result = s(:array)
2308
- }
2309
- | assocs trailer # [!nil]
2310
- {
2311
- result = val[0]
2569
+ result = s(:array).line lexer.lineno
2312
2570
  }
2571
+ | assocs trailer
2313
2572
 
2314
2573
  assocs: assoc
2315
2574
  | assocs tCOMMA assoc
@@ -2323,26 +2582,27 @@ keyword_variable: kNIL { result = s(:nil) }
2323
2582
 
2324
2583
  assoc: arg_value tASSOC arg_value
2325
2584
  {
2326
- result = s(:array, val[0], val[2])
2585
+ v1, _, v2 = val
2586
+ result = s(:array, v1, v2).line v1.line
2327
2587
  }
2328
- | tLABEL opt_nl arg_value
2588
+ | tLABEL arg_value
2329
2589
  {
2330
- result = s(:array, s(:lit, val[0][0].to_sym), val.last)
2590
+ (label, line), arg = val
2591
+
2592
+ lit = s(:lit, label.to_sym).line line
2593
+ result = s(:array, lit, arg).line line
2331
2594
  }
2332
2595
  | tSTRING_BEG string_contents tLABEL_END arg_value
2333
2596
  {
2334
2597
  _, sym, _, value = val
2335
2598
  sym.sexp_type = :dsym
2336
- result = s(:array, sym, value)
2337
- }
2338
- | tSYMBOL arg_value
2339
- {
2340
- raise "not yet: #{val.inspect}"
2341
- # result = s(:array, s(:lit, val[1].to_sym), val[1])
2599
+ result = s(:array, sym, value).line sym.line
2342
2600
  }
2343
2601
  | tDSTAR arg_value
2344
2602
  {
2345
- result = s(:array, s(:kwsplat, val[1]))
2603
+ _, arg = val
2604
+ line = arg.line
2605
+ result = s(:array, s(:kwsplat, arg).line(line)).line line
2346
2606
  }
2347
2607
 
2348
2608
  operation: tIDENTIFIER | tCONSTANT | tFID
@@ -2350,7 +2610,11 @@ keyword_variable: kNIL { result = s(:nil) }
2350
2610
  operation3: tIDENTIFIER | tFID | op
2351
2611
  dot_or_colon: tDOT | tCOLON2
2352
2612
  call_op: tDOT
2353
- | tLONELY
2613
+ | tLONELY # TODO: rename tANDDOT?
2614
+
2615
+ call_op2: call_op
2616
+ | tCOLON2
2617
+
2354
2618
  opt_terms: | terms
2355
2619
  opt_nl: | tNL
2356
2620
  rparen: opt_nl tRPAREN
@@ -2370,6 +2634,7 @@ end
2370
2634
 
2371
2635
  require "ruby_lexer"
2372
2636
  require "ruby_parser_extras"
2637
+ include RubyLexer::State::Values
2373
2638
 
2374
2639
  # :stopdoc:
2375
2640