brakeman 6.2.0 → 6.2.2.rc1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (452) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES.md +4 -0
  3. data/README.md +0 -1
  4. data/bundle/load.rb +14 -16
  5. data/bundle/ruby/{3.1.0/gems/highline-3.1.0 → 3.3.0/gems/highline-3.1.1}/Changelog.md +6 -0
  6. data/bundle/ruby/{3.1.0/gems/highline-3.1.0 → 3.3.0/gems/highline-3.1.1}/Gemfile +1 -0
  7. data/bundle/ruby/{3.1.0/gems/highline-3.1.0 → 3.3.0/gems/highline-3.1.1}/README.md +3 -0
  8. data/bundle/ruby/{3.1.0/gems/highline-3.1.0 → 3.3.0/gems/highline-3.1.1}/lib/highline/version.rb +1 -1
  9. data/bundle/ruby/{3.1.0/gems/highline-3.1.0 → 3.3.0/gems/highline-3.1.1}/lib/highline.rb +9 -1
  10. data/bundle/ruby/{3.1.0 → 3.3.0}/gems/io-console-0.7.2/ext/io/console/Makefile +12 -11
  11. data/bundle/ruby/3.3.0/gems/io-console-0.7.2/lib/io/console.so +0 -0
  12. data/bundle/ruby/{3.1.0/gems/strscan-3.1.0/LICENSE.txt → 3.3.0/gems/racc-1.8.1/BSDL} +1 -1
  13. data/bundle/ruby/{3.1.0/gems/strscan-3.1.0 → 3.3.0/gems/racc-1.8.1}/COPYING +2 -2
  14. data/bundle/ruby/3.3.0/gems/racc-1.8.1/ChangeLog +846 -0
  15. data/bundle/ruby/3.3.0/gems/racc-1.8.1/README.ja.rdoc +58 -0
  16. data/bundle/ruby/3.3.0/gems/racc-1.8.1/README.rdoc +60 -0
  17. data/bundle/ruby/3.3.0/gems/racc-1.8.1/TODO +5 -0
  18. data/bundle/ruby/{3.1.0/gems/strscan-3.1.0/ext/strscan → 3.3.0/gems/racc-1.8.1/ext/racc/cparse}/Makefile +18 -17
  19. data/bundle/ruby/3.3.0/gems/racc-1.8.1/ext/racc/cparse/cparse.c +840 -0
  20. data/bundle/ruby/3.3.0/gems/racc-1.8.1/ext/racc/cparse/extconf.rb +8 -0
  21. data/bundle/ruby/3.3.0/gems/racc-1.8.1/lib/racc/compat.rb +33 -0
  22. data/bundle/ruby/3.3.0/gems/racc-1.8.1/lib/racc/cparse.so +0 -0
  23. data/bundle/ruby/3.3.0/gems/racc-1.8.1/lib/racc/debugflags.rb +60 -0
  24. data/bundle/ruby/3.3.0/gems/racc-1.8.1/lib/racc/exception.rb +16 -0
  25. data/bundle/ruby/3.3.0/gems/racc-1.8.1/lib/racc/grammar.rb +1191 -0
  26. data/bundle/ruby/3.3.0/gems/racc-1.8.1/lib/racc/grammarfileparser.rb +667 -0
  27. data/bundle/ruby/3.3.0/gems/racc-1.8.1/lib/racc/info.rb +18 -0
  28. data/bundle/ruby/3.3.0/gems/racc-1.8.1/lib/racc/iset.rb +92 -0
  29. data/bundle/ruby/3.3.0/gems/racc-1.8.1/lib/racc/logfilegenerator.rb +212 -0
  30. data/bundle/ruby/3.3.0/gems/racc-1.8.1/lib/racc/parser-text.rb +644 -0
  31. data/bundle/ruby/3.3.0/gems/racc-1.8.1/lib/racc/parser.rb +630 -0
  32. data/bundle/ruby/3.3.0/gems/racc-1.8.1/lib/racc/parserfilegenerator.rb +473 -0
  33. data/bundle/ruby/3.3.0/gems/racc-1.8.1/lib/racc/sourcetext.rb +35 -0
  34. data/bundle/ruby/3.3.0/gems/racc-1.8.1/lib/racc/state.rb +976 -0
  35. data/bundle/ruby/3.3.0/gems/racc-1.8.1/lib/racc/statetransitiontable.rb +311 -0
  36. data/bundle/ruby/3.3.0/gems/racc-1.8.1/lib/racc/static.rb +5 -0
  37. data/bundle/ruby/3.3.0/gems/racc-1.8.1/lib/racc.rb +6 -0
  38. data/bundle/ruby/{3.1.0/gems/reline-0.5.9 → 3.3.0/gems/reline-0.5.10}/lib/reline/config.rb +19 -24
  39. data/bundle/ruby/{3.1.0/gems/reline-0.5.9 → 3.3.0/gems/reline-0.5.10}/lib/reline/face.rb +1 -1
  40. data/bundle/ruby/{3.1.0/gems/reline-0.5.9 → 3.3.0/gems/reline-0.5.10}/lib/reline/io/ansi.rb +8 -0
  41. data/bundle/ruby/{3.1.0/gems/reline-0.5.9 → 3.3.0/gems/reline-0.5.10}/lib/reline/io/windows.rb +24 -14
  42. data/bundle/ruby/{3.1.0/gems/reline-0.5.9 → 3.3.0/gems/reline-0.5.10}/lib/reline/line_editor.rb +39 -48
  43. data/bundle/ruby/{3.1.0/gems/reline-0.5.9 → 3.3.0/gems/reline-0.5.10}/lib/reline/terminfo.rb +1 -1
  44. data/bundle/ruby/3.3.0/gems/reline-0.5.10/lib/reline/unicode/east_asian_width.rb +1267 -0
  45. data/bundle/ruby/{3.1.0/gems/reline-0.5.9 → 3.3.0/gems/reline-0.5.10}/lib/reline/unicode.rb +14 -39
  46. data/bundle/ruby/3.3.0/gems/reline-0.5.10/lib/reline/version.rb +3 -0
  47. data/bundle/ruby/{3.1.0/gems/reline-0.5.9 → 3.3.0/gems/reline-0.5.10}/lib/reline.rb +7 -4
  48. data/bundle/ruby/{3.1.0/gems/rexml-3.3.6 → 3.3.0/gems/rexml-3.3.8}/NEWS.md +43 -0
  49. data/bundle/ruby/{3.1.0/gems/rexml-3.3.6 → 3.3.0/gems/rexml-3.3.8}/lib/rexml/attribute.rb +3 -2
  50. data/bundle/ruby/{3.1.0/gems/rexml-3.3.6 → 3.3.0/gems/rexml-3.3.8}/lib/rexml/document.rb +5 -1
  51. data/bundle/ruby/{3.1.0/gems/rexml-3.3.6 → 3.3.0/gems/rexml-3.3.8}/lib/rexml/entity.rb +5 -2
  52. data/bundle/ruby/{3.1.0/gems/rexml-3.3.6 → 3.3.0/gems/rexml-3.3.8}/lib/rexml/parsers/baseparser.rb +9 -4
  53. data/bundle/ruby/{3.1.0/gems/rexml-3.3.6 → 3.3.0/gems/rexml-3.3.8}/lib/rexml/parsers/pullparser.rb +8 -0
  54. data/bundle/ruby/{3.1.0/gems/rexml-3.3.6 → 3.3.0/gems/rexml-3.3.8}/lib/rexml/parsers/sax2parser.rb +10 -0
  55. data/bundle/ruby/{3.1.0/gems/rexml-3.3.6 → 3.3.0/gems/rexml-3.3.8}/lib/rexml/parsers/streamparser.rb +8 -0
  56. data/bundle/ruby/{3.1.0/gems/rexml-3.3.6 → 3.3.0/gems/rexml-3.3.8}/lib/rexml/rexml.rb +1 -1
  57. data/bundle/ruby/{3.1.0/gems/rexml-3.3.6 → 3.3.0/gems/rexml-3.3.8}/lib/rexml/text.rb +5 -3
  58. data/lib/brakeman/checks/check_eol_rails.rb +6 -0
  59. data/lib/brakeman/checks/check_execute.rb +28 -0
  60. data/lib/brakeman/version.rb +1 -1
  61. metadata +437 -421
  62. data/bundle/ruby/3.1.0/gems/io-console-0.7.2/ext/io/console/console.o +0 -0
  63. data/bundle/ruby/3.1.0/gems/io-console-0.7.2/ext/io/console/console.so +0 -0
  64. data/bundle/ruby/3.1.0/gems/io-console-0.7.2/lib/io/console.so +0 -0
  65. data/bundle/ruby/3.1.0/gems/reline-0.5.9/lib/reline/unicode/east_asian_width.rb +0 -1196
  66. data/bundle/ruby/3.1.0/gems/reline-0.5.9/lib/reline/version.rb +0 -3
  67. data/bundle/ruby/3.1.0/gems/strscan-3.1.0/ext/strscan/extconf.rb +0 -10
  68. data/bundle/ruby/3.1.0/gems/strscan-3.1.0/ext/strscan/strscan.c +0 -1741
  69. data/bundle/ruby/3.1.0/gems/strscan-3.1.0/ext/strscan/strscan.o +0 -0
  70. data/bundle/ruby/3.1.0/gems/strscan-3.1.0/ext/strscan/strscan.so +0 -0
  71. data/bundle/ruby/3.1.0/gems/strscan-3.1.0/lib/strscan.so +0 -0
  72. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/erubis-2.7.0/CHANGES.txt +0 -0
  73. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/erubis-2.7.0/MIT-LICENSE +0 -0
  74. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/erubis-2.7.0/README.txt +0 -0
  75. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/erubis-2.7.0/contrib/erubis +0 -0
  76. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/erubis-2.7.0/contrib/erubis-run.rb +0 -0
  77. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/erubis-2.7.0/contrib/inline-require +0 -0
  78. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/erubis-2.7.0/lib/erubis/context.rb +0 -0
  79. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/erubis-2.7.0/lib/erubis/converter.rb +0 -0
  80. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/erubis-2.7.0/lib/erubis/engine/ec.rb +0 -0
  81. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/erubis-2.7.0/lib/erubis/engine/ecpp.rb +0 -0
  82. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/erubis-2.7.0/lib/erubis/engine/ejava.rb +0 -0
  83. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/erubis-2.7.0/lib/erubis/engine/ejavascript.rb +0 -0
  84. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/erubis-2.7.0/lib/erubis/engine/enhanced.rb +0 -0
  85. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/erubis-2.7.0/lib/erubis/engine/eperl.rb +0 -0
  86. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/erubis-2.7.0/lib/erubis/engine/ephp.rb +0 -0
  87. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/erubis-2.7.0/lib/erubis/engine/eruby.rb +0 -0
  88. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/erubis-2.7.0/lib/erubis/engine/escheme.rb +0 -0
  89. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/erubis-2.7.0/lib/erubis/engine/optimized.rb +0 -0
  90. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/erubis-2.7.0/lib/erubis/engine.rb +0 -0
  91. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/erubis-2.7.0/lib/erubis/enhancer.rb +0 -0
  92. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/erubis-2.7.0/lib/erubis/error.rb +0 -0
  93. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/erubis-2.7.0/lib/erubis/evaluator.rb +0 -0
  94. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/erubis-2.7.0/lib/erubis/generator.rb +0 -0
  95. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/erubis-2.7.0/lib/erubis/helper.rb +0 -0
  96. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/erubis-2.7.0/lib/erubis/helpers/rails_form_helper.rb +0 -0
  97. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/erubis-2.7.0/lib/erubis/helpers/rails_helper.rb +0 -0
  98. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/erubis-2.7.0/lib/erubis/local-setting.rb +0 -0
  99. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/erubis-2.7.0/lib/erubis/main.rb +0 -0
  100. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/erubis-2.7.0/lib/erubis/preprocessing.rb +0 -0
  101. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/erubis-2.7.0/lib/erubis/tiny.rb +0 -0
  102. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/erubis-2.7.0/lib/erubis/util.rb +0 -0
  103. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/erubis-2.7.0/lib/erubis.rb +0 -0
  104. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/erubis-2.7.0/setup.rb +0 -0
  105. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/haml-5.2.2/CHANGELOG.md +0 -0
  106. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/haml-5.2.2/FAQ.md +0 -0
  107. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/haml-5.2.2/Gemfile +0 -0
  108. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/haml-5.2.2/MIT-LICENSE +0 -0
  109. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/haml-5.2.2/README.md +0 -0
  110. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/haml-5.2.2/REFERENCE.md +0 -0
  111. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/haml-5.2.2/TODO +0 -0
  112. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/haml-5.2.2/haml.gemspec +0 -0
  113. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/haml-5.2.2/lib/haml/attribute_builder.rb +0 -0
  114. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/haml-5.2.2/lib/haml/attribute_compiler.rb +0 -0
  115. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/haml-5.2.2/lib/haml/attribute_parser.rb +0 -0
  116. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/haml-5.2.2/lib/haml/buffer.rb +0 -0
  117. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/haml-5.2.2/lib/haml/compiler.rb +0 -0
  118. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/haml-5.2.2/lib/haml/engine.rb +0 -0
  119. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/haml-5.2.2/lib/haml/error.rb +0 -0
  120. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/haml-5.2.2/lib/haml/escapable.rb +0 -0
  121. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/haml-5.2.2/lib/haml/exec.rb +0 -0
  122. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/haml-5.2.2/lib/haml/filters.rb +0 -0
  123. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/haml-5.2.2/lib/haml/generator.rb +0 -0
  124. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/haml-5.2.2/lib/haml/helpers/action_view_extensions.rb +0 -0
  125. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/haml-5.2.2/lib/haml/helpers/action_view_mods.rb +0 -0
  126. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/haml-5.2.2/lib/haml/helpers/action_view_xss_mods.rb +0 -0
  127. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/haml-5.2.2/lib/haml/helpers/safe_erubi_template.rb +0 -0
  128. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/haml-5.2.2/lib/haml/helpers/safe_erubis_template.rb +0 -0
  129. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/haml-5.2.2/lib/haml/helpers/xss_mods.rb +0 -0
  130. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/haml-5.2.2/lib/haml/helpers.rb +0 -0
  131. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/haml-5.2.2/lib/haml/options.rb +0 -0
  132. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/haml-5.2.2/lib/haml/parser.rb +0 -0
  133. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/haml-5.2.2/lib/haml/plugin.rb +0 -0
  134. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/haml-5.2.2/lib/haml/railtie.rb +0 -0
  135. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/haml-5.2.2/lib/haml/sass_rails_filter.rb +0 -0
  136. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/haml-5.2.2/lib/haml/template/options.rb +0 -0
  137. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/haml-5.2.2/lib/haml/template.rb +0 -0
  138. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/haml-5.2.2/lib/haml/temple_engine.rb +0 -0
  139. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/haml-5.2.2/lib/haml/temple_line_counter.rb +0 -0
  140. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/haml-5.2.2/lib/haml/util.rb +0 -0
  141. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/haml-5.2.2/lib/haml/version.rb +0 -0
  142. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/haml-5.2.2/lib/haml.rb +0 -0
  143. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/haml-5.2.2/yard/default/fulldoc/html/css/common.sass +0 -0
  144. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/haml-5.2.2/yard/default/layout/html/footer.erb +0 -0
  145. /data/bundle/ruby/{3.1.0/gems/highline-3.1.0 → 3.3.0/gems/highline-3.1.1}/AUTHORS +0 -0
  146. /data/bundle/ruby/{3.1.0/gems/highline-3.1.0 → 3.3.0/gems/highline-3.1.1}/COPYING +0 -0
  147. /data/bundle/ruby/{3.1.0/gems/highline-3.1.0 → 3.3.0/gems/highline-3.1.1}/LICENSE +0 -0
  148. /data/bundle/ruby/{3.1.0/gems/highline-3.1.0 → 3.3.0/gems/highline-3.1.1}/TODO +0 -0
  149. /data/bundle/ruby/{3.1.0/gems/highline-3.1.0 → 3.3.0/gems/highline-3.1.1}/highline.gemspec +0 -0
  150. /data/bundle/ruby/{3.1.0/gems/highline-3.1.0 → 3.3.0/gems/highline-3.1.1}/lib/highline/builtin_styles.rb +0 -0
  151. /data/bundle/ruby/{3.1.0/gems/highline-3.1.0 → 3.3.0/gems/highline-3.1.1}/lib/highline/color_scheme.rb +0 -0
  152. /data/bundle/ruby/{3.1.0/gems/highline-3.1.0 → 3.3.0/gems/highline-3.1.1}/lib/highline/compatibility.rb +0 -0
  153. /data/bundle/ruby/{3.1.0/gems/highline-3.1.0 → 3.3.0/gems/highline-3.1.1}/lib/highline/custom_errors.rb +0 -0
  154. /data/bundle/ruby/{3.1.0/gems/highline-3.1.0 → 3.3.0/gems/highline-3.1.1}/lib/highline/import.rb +0 -0
  155. /data/bundle/ruby/{3.1.0/gems/highline-3.1.0 → 3.3.0/gems/highline-3.1.1}/lib/highline/io_console_compatible.rb +0 -0
  156. /data/bundle/ruby/{3.1.0/gems/highline-3.1.0 → 3.3.0/gems/highline-3.1.1}/lib/highline/list.rb +0 -0
  157. /data/bundle/ruby/{3.1.0/gems/highline-3.1.0 → 3.3.0/gems/highline-3.1.1}/lib/highline/list_renderer.rb +0 -0
  158. /data/bundle/ruby/{3.1.0/gems/highline-3.1.0 → 3.3.0/gems/highline-3.1.1}/lib/highline/menu/item.rb +0 -0
  159. /data/bundle/ruby/{3.1.0/gems/highline-3.1.0 → 3.3.0/gems/highline-3.1.1}/lib/highline/menu.rb +0 -0
  160. /data/bundle/ruby/{3.1.0/gems/highline-3.1.0 → 3.3.0/gems/highline-3.1.1}/lib/highline/paginator.rb +0 -0
  161. /data/bundle/ruby/{3.1.0/gems/highline-3.1.0 → 3.3.0/gems/highline-3.1.1}/lib/highline/question/answer_converter.rb +0 -0
  162. /data/bundle/ruby/{3.1.0/gems/highline-3.1.0 → 3.3.0/gems/highline-3.1.1}/lib/highline/question.rb +0 -0
  163. /data/bundle/ruby/{3.1.0/gems/highline-3.1.0 → 3.3.0/gems/highline-3.1.1}/lib/highline/question_asker.rb +0 -0
  164. /data/bundle/ruby/{3.1.0/gems/highline-3.1.0 → 3.3.0/gems/highline-3.1.1}/lib/highline/simulate.rb +0 -0
  165. /data/bundle/ruby/{3.1.0/gems/highline-3.1.0 → 3.3.0/gems/highline-3.1.1}/lib/highline/statement.rb +0 -0
  166. /data/bundle/ruby/{3.1.0/gems/highline-3.1.0 → 3.3.0/gems/highline-3.1.1}/lib/highline/string.rb +0 -0
  167. /data/bundle/ruby/{3.1.0/gems/highline-3.1.0 → 3.3.0/gems/highline-3.1.1}/lib/highline/string_extensions.rb +0 -0
  168. /data/bundle/ruby/{3.1.0/gems/highline-3.1.0 → 3.3.0/gems/highline-3.1.1}/lib/highline/style.rb +0 -0
  169. /data/bundle/ruby/{3.1.0/gems/highline-3.1.0 → 3.3.0/gems/highline-3.1.1}/lib/highline/template_renderer.rb +0 -0
  170. /data/bundle/ruby/{3.1.0/gems/highline-3.1.0 → 3.3.0/gems/highline-3.1.1}/lib/highline/terminal/io_console.rb +0 -0
  171. /data/bundle/ruby/{3.1.0/gems/highline-3.1.0 → 3.3.0/gems/highline-3.1.1}/lib/highline/terminal/ncurses.rb +0 -0
  172. /data/bundle/ruby/{3.1.0/gems/highline-3.1.0 → 3.3.0/gems/highline-3.1.1}/lib/highline/terminal/unix_stty.rb +0 -0
  173. /data/bundle/ruby/{3.1.0/gems/highline-3.1.0 → 3.3.0/gems/highline-3.1.1}/lib/highline/terminal.rb +0 -0
  174. /data/bundle/ruby/{3.1.0/gems/highline-3.1.0 → 3.3.0/gems/highline-3.1.1}/lib/highline/wrapper.rb +0 -0
  175. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/io-console-0.7.2/LICENSE.txt +0 -0
  176. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/io-console-0.7.2/README.md +0 -0
  177. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/io-console-0.7.2/ext/io/console/console.c +0 -0
  178. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/io-console-0.7.2/ext/io/console/extconf.rb +0 -0
  179. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/io-console-0.7.2/ext/io/console/win32_vk.inc +0 -0
  180. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/io-console-0.7.2/lib/io/console/size.rb +0 -0
  181. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/parallel-1.26.3/MIT-LICENSE.txt +0 -0
  182. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/parallel-1.26.3/lib/parallel/version.rb +0 -0
  183. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/parallel-1.26.3/lib/parallel.rb +0 -0
  184. /data/bundle/ruby/{3.1.0/gems/reline-0.5.9 → 3.3.0/gems/reline-0.5.10}/BSDL +0 -0
  185. /data/bundle/ruby/{3.1.0/gems/reline-0.5.9 → 3.3.0/gems/reline-0.5.10}/COPYING +0 -0
  186. /data/bundle/ruby/{3.1.0/gems/reline-0.5.9 → 3.3.0/gems/reline-0.5.10}/README.md +0 -0
  187. /data/bundle/ruby/{3.1.0/gems/reline-0.5.9 → 3.3.0/gems/reline-0.5.10}/lib/reline/history.rb +0 -0
  188. /data/bundle/ruby/{3.1.0/gems/reline-0.5.9 → 3.3.0/gems/reline-0.5.10}/lib/reline/io/dumb.rb +0 -0
  189. /data/bundle/ruby/{3.1.0/gems/reline-0.5.9 → 3.3.0/gems/reline-0.5.10}/lib/reline/io.rb +0 -0
  190. /data/bundle/ruby/{3.1.0/gems/reline-0.5.9 → 3.3.0/gems/reline-0.5.10}/lib/reline/key_actor/base.rb +0 -0
  191. /data/bundle/ruby/{3.1.0/gems/reline-0.5.9 → 3.3.0/gems/reline-0.5.10}/lib/reline/key_actor/composite.rb +0 -0
  192. /data/bundle/ruby/{3.1.0/gems/reline-0.5.9 → 3.3.0/gems/reline-0.5.10}/lib/reline/key_actor/emacs.rb +0 -0
  193. /data/bundle/ruby/{3.1.0/gems/reline-0.5.9 → 3.3.0/gems/reline-0.5.10}/lib/reline/key_actor/vi_command.rb +0 -0
  194. /data/bundle/ruby/{3.1.0/gems/reline-0.5.9 → 3.3.0/gems/reline-0.5.10}/lib/reline/key_actor/vi_insert.rb +0 -0
  195. /data/bundle/ruby/{3.1.0/gems/reline-0.5.9 → 3.3.0/gems/reline-0.5.10}/lib/reline/key_actor.rb +0 -0
  196. /data/bundle/ruby/{3.1.0/gems/reline-0.5.9 → 3.3.0/gems/reline-0.5.10}/lib/reline/key_stroke.rb +0 -0
  197. /data/bundle/ruby/{3.1.0/gems/reline-0.5.9 → 3.3.0/gems/reline-0.5.10}/lib/reline/kill_ring.rb +0 -0
  198. /data/bundle/ruby/{3.1.0/gems/reline-0.5.9 → 3.3.0/gems/reline-0.5.10}/license_of_rb-readline +0 -0
  199. /data/bundle/ruby/{3.1.0/gems/rexml-3.3.6 → 3.3.0/gems/rexml-3.3.8}/LICENSE.txt +0 -0
  200. /data/bundle/ruby/{3.1.0/gems/rexml-3.3.6 → 3.3.0/gems/rexml-3.3.8}/README.md +0 -0
  201. /data/bundle/ruby/{3.1.0/gems/rexml-3.3.6 → 3.3.0/gems/rexml-3.3.8}/lib/rexml/attlistdecl.rb +0 -0
  202. /data/bundle/ruby/{3.1.0/gems/rexml-3.3.6 → 3.3.0/gems/rexml-3.3.8}/lib/rexml/cdata.rb +0 -0
  203. /data/bundle/ruby/{3.1.0/gems/rexml-3.3.6 → 3.3.0/gems/rexml-3.3.8}/lib/rexml/child.rb +0 -0
  204. /data/bundle/ruby/{3.1.0/gems/rexml-3.3.6 → 3.3.0/gems/rexml-3.3.8}/lib/rexml/comment.rb +0 -0
  205. /data/bundle/ruby/{3.1.0/gems/rexml-3.3.6 → 3.3.0/gems/rexml-3.3.8}/lib/rexml/doctype.rb +0 -0
  206. /data/bundle/ruby/{3.1.0/gems/rexml-3.3.6 → 3.3.0/gems/rexml-3.3.8}/lib/rexml/dtd/attlistdecl.rb +0 -0
  207. /data/bundle/ruby/{3.1.0/gems/rexml-3.3.6 → 3.3.0/gems/rexml-3.3.8}/lib/rexml/dtd/dtd.rb +0 -0
  208. /data/bundle/ruby/{3.1.0/gems/rexml-3.3.6 → 3.3.0/gems/rexml-3.3.8}/lib/rexml/dtd/elementdecl.rb +0 -0
  209. /data/bundle/ruby/{3.1.0/gems/rexml-3.3.6 → 3.3.0/gems/rexml-3.3.8}/lib/rexml/dtd/entitydecl.rb +0 -0
  210. /data/bundle/ruby/{3.1.0/gems/rexml-3.3.6 → 3.3.0/gems/rexml-3.3.8}/lib/rexml/dtd/notationdecl.rb +0 -0
  211. /data/bundle/ruby/{3.1.0/gems/rexml-3.3.6 → 3.3.0/gems/rexml-3.3.8}/lib/rexml/element.rb +0 -0
  212. /data/bundle/ruby/{3.1.0/gems/rexml-3.3.6 → 3.3.0/gems/rexml-3.3.8}/lib/rexml/encoding.rb +0 -0
  213. /data/bundle/ruby/{3.1.0/gems/rexml-3.3.6 → 3.3.0/gems/rexml-3.3.8}/lib/rexml/formatters/default.rb +0 -0
  214. /data/bundle/ruby/{3.1.0/gems/rexml-3.3.6 → 3.3.0/gems/rexml-3.3.8}/lib/rexml/formatters/pretty.rb +0 -0
  215. /data/bundle/ruby/{3.1.0/gems/rexml-3.3.6 → 3.3.0/gems/rexml-3.3.8}/lib/rexml/formatters/transitive.rb +0 -0
  216. /data/bundle/ruby/{3.1.0/gems/rexml-3.3.6 → 3.3.0/gems/rexml-3.3.8}/lib/rexml/functions.rb +0 -0
  217. /data/bundle/ruby/{3.1.0/gems/rexml-3.3.6 → 3.3.0/gems/rexml-3.3.8}/lib/rexml/instruction.rb +0 -0
  218. /data/bundle/ruby/{3.1.0/gems/rexml-3.3.6 → 3.3.0/gems/rexml-3.3.8}/lib/rexml/light/node.rb +0 -0
  219. /data/bundle/ruby/{3.1.0/gems/rexml-3.3.6 → 3.3.0/gems/rexml-3.3.8}/lib/rexml/namespace.rb +0 -0
  220. /data/bundle/ruby/{3.1.0/gems/rexml-3.3.6 → 3.3.0/gems/rexml-3.3.8}/lib/rexml/node.rb +0 -0
  221. /data/bundle/ruby/{3.1.0/gems/rexml-3.3.6 → 3.3.0/gems/rexml-3.3.8}/lib/rexml/output.rb +0 -0
  222. /data/bundle/ruby/{3.1.0/gems/rexml-3.3.6 → 3.3.0/gems/rexml-3.3.8}/lib/rexml/parent.rb +0 -0
  223. /data/bundle/ruby/{3.1.0/gems/rexml-3.3.6 → 3.3.0/gems/rexml-3.3.8}/lib/rexml/parseexception.rb +0 -0
  224. /data/bundle/ruby/{3.1.0/gems/rexml-3.3.6 → 3.3.0/gems/rexml-3.3.8}/lib/rexml/parsers/lightparser.rb +0 -0
  225. /data/bundle/ruby/{3.1.0/gems/rexml-3.3.6 → 3.3.0/gems/rexml-3.3.8}/lib/rexml/parsers/treeparser.rb +0 -0
  226. /data/bundle/ruby/{3.1.0/gems/rexml-3.3.6 → 3.3.0/gems/rexml-3.3.8}/lib/rexml/parsers/ultralightparser.rb +0 -0
  227. /data/bundle/ruby/{3.1.0/gems/rexml-3.3.6 → 3.3.0/gems/rexml-3.3.8}/lib/rexml/parsers/xpathparser.rb +0 -0
  228. /data/bundle/ruby/{3.1.0/gems/rexml-3.3.6 → 3.3.0/gems/rexml-3.3.8}/lib/rexml/quickpath.rb +0 -0
  229. /data/bundle/ruby/{3.1.0/gems/rexml-3.3.6 → 3.3.0/gems/rexml-3.3.8}/lib/rexml/sax2listener.rb +0 -0
  230. /data/bundle/ruby/{3.1.0/gems/rexml-3.3.6 → 3.3.0/gems/rexml-3.3.8}/lib/rexml/security.rb +0 -0
  231. /data/bundle/ruby/{3.1.0/gems/rexml-3.3.6 → 3.3.0/gems/rexml-3.3.8}/lib/rexml/source.rb +0 -0
  232. /data/bundle/ruby/{3.1.0/gems/rexml-3.3.6 → 3.3.0/gems/rexml-3.3.8}/lib/rexml/streamlistener.rb +0 -0
  233. /data/bundle/ruby/{3.1.0/gems/rexml-3.3.6 → 3.3.0/gems/rexml-3.3.8}/lib/rexml/undefinednamespaceexception.rb +0 -0
  234. /data/bundle/ruby/{3.1.0/gems/rexml-3.3.6 → 3.3.0/gems/rexml-3.3.8}/lib/rexml/validation/relaxng.rb +0 -0
  235. /data/bundle/ruby/{3.1.0/gems/rexml-3.3.6 → 3.3.0/gems/rexml-3.3.8}/lib/rexml/validation/validation.rb +0 -0
  236. /data/bundle/ruby/{3.1.0/gems/rexml-3.3.6 → 3.3.0/gems/rexml-3.3.8}/lib/rexml/validation/validationexception.rb +0 -0
  237. /data/bundle/ruby/{3.1.0/gems/rexml-3.3.6 → 3.3.0/gems/rexml-3.3.8}/lib/rexml/xmldecl.rb +0 -0
  238. /data/bundle/ruby/{3.1.0/gems/rexml-3.3.6 → 3.3.0/gems/rexml-3.3.8}/lib/rexml/xmltokens.rb +0 -0
  239. /data/bundle/ruby/{3.1.0/gems/rexml-3.3.6 → 3.3.0/gems/rexml-3.3.8}/lib/rexml/xpath.rb +0 -0
  240. /data/bundle/ruby/{3.1.0/gems/rexml-3.3.6 → 3.3.0/gems/rexml-3.3.8}/lib/rexml/xpath_parser.rb +0 -0
  241. /data/bundle/ruby/{3.1.0/gems/rexml-3.3.6 → 3.3.0/gems/rexml-3.3.8}/lib/rexml.rb +0 -0
  242. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/ruby2ruby-2.5.1/History.rdoc +0 -0
  243. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/ruby2ruby-2.5.1/Manifest.txt +0 -0
  244. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/ruby2ruby-2.5.1/README.rdoc +0 -0
  245. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/ruby2ruby-2.5.1/lib/ruby2ruby.rb +0 -0
  246. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/ruby_parser-3.20.3/History.rdoc +0 -0
  247. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/ruby_parser-3.20.3/Manifest.txt +0 -0
  248. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/ruby_parser-3.20.3/README.rdoc +0 -0
  249. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/ruby_parser-3.20.3/compare/normalize.rb +0 -0
  250. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/ruby_parser-3.20.3/debugging.md +0 -0
  251. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/ruby_parser-3.20.3/gauntlet.md +0 -0
  252. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/ruby_parser-3.20.3/lib/rp_extensions.rb +0 -0
  253. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/ruby_parser-3.20.3/lib/rp_stringscanner.rb +0 -0
  254. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/ruby_parser-3.20.3/lib/ruby20_parser.rb +0 -0
  255. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/ruby_parser-3.20.3/lib/ruby20_parser.y +0 -0
  256. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/ruby_parser-3.20.3/lib/ruby21_parser.rb +0 -0
  257. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/ruby_parser-3.20.3/lib/ruby21_parser.y +0 -0
  258. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/ruby_parser-3.20.3/lib/ruby22_parser.rb +0 -0
  259. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/ruby_parser-3.20.3/lib/ruby22_parser.y +0 -0
  260. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/ruby_parser-3.20.3/lib/ruby23_parser.rb +0 -0
  261. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/ruby_parser-3.20.3/lib/ruby23_parser.y +0 -0
  262. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/ruby_parser-3.20.3/lib/ruby24_parser.rb +0 -0
  263. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/ruby_parser-3.20.3/lib/ruby24_parser.y +0 -0
  264. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/ruby_parser-3.20.3/lib/ruby25_parser.rb +0 -0
  265. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/ruby_parser-3.20.3/lib/ruby25_parser.y +0 -0
  266. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/ruby_parser-3.20.3/lib/ruby26_parser.rb +0 -0
  267. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/ruby_parser-3.20.3/lib/ruby26_parser.y +0 -0
  268. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/ruby_parser-3.20.3/lib/ruby27_parser.rb +0 -0
  269. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/ruby_parser-3.20.3/lib/ruby27_parser.y +0 -0
  270. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/ruby_parser-3.20.3/lib/ruby30_parser.rb +0 -0
  271. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/ruby_parser-3.20.3/lib/ruby30_parser.y +0 -0
  272. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/ruby_parser-3.20.3/lib/ruby31_parser.rb +0 -0
  273. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/ruby_parser-3.20.3/lib/ruby31_parser.y +0 -0
  274. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/ruby_parser-3.20.3/lib/ruby32_parser.rb +0 -0
  275. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/ruby_parser-3.20.3/lib/ruby32_parser.y +0 -0
  276. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/ruby_parser-3.20.3/lib/ruby3_parser.yy +0 -0
  277. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/ruby_parser-3.20.3/lib/ruby_lexer.rb +0 -0
  278. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/ruby_parser-3.20.3/lib/ruby_lexer.rex +0 -0
  279. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/ruby_parser-3.20.3/lib/ruby_lexer.rex.rb +0 -0
  280. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/ruby_parser-3.20.3/lib/ruby_lexer_strings.rb +0 -0
  281. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/ruby_parser-3.20.3/lib/ruby_parser.rb +0 -0
  282. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/ruby_parser-3.20.3/lib/ruby_parser.yy +0 -0
  283. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/ruby_parser-3.20.3/lib/ruby_parser_extras.rb +0 -0
  284. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/ruby_parser-3.20.3/tools/munge.rb +0 -0
  285. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/ruby_parser-3.20.3/tools/ripper.rb +0 -0
  286. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/sexp_processor-4.17.2/History.rdoc +0 -0
  287. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/sexp_processor-4.17.2/Manifest.txt +0 -0
  288. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/sexp_processor-4.17.2/README.rdoc +0 -0
  289. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/sexp_processor-4.17.2/lib/composite_sexp_processor.rb +0 -0
  290. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/sexp_processor-4.17.2/lib/pt_testcase.rb +0 -0
  291. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/sexp_processor-4.17.2/lib/sexp.rb +0 -0
  292. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/sexp_processor-4.17.2/lib/sexp_matcher.rb +0 -0
  293. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/sexp_processor-4.17.2/lib/sexp_processor.rb +0 -0
  294. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/sexp_processor-4.17.2/lib/strict_sexp.rb +0 -0
  295. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/sexp_processor-4.17.2/lib/unique.rb +0 -0
  296. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/slim-5.2.1/CHANGES +0 -0
  297. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/slim-5.2.1/Gemfile +0 -0
  298. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/slim-5.2.1/LICENSE +0 -0
  299. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/slim-5.2.1/README.jp.md +0 -0
  300. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/slim-5.2.1/README.md +0 -0
  301. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/slim-5.2.1/lib/slim/code_attributes.rb +0 -0
  302. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/slim-5.2.1/lib/slim/command.rb +0 -0
  303. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/slim-5.2.1/lib/slim/controls.rb +0 -0
  304. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/slim-5.2.1/lib/slim/do_inserter.rb +0 -0
  305. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/slim-5.2.1/lib/slim/embedded.rb +0 -0
  306. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/slim-5.2.1/lib/slim/end_inserter.rb +0 -0
  307. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/slim-5.2.1/lib/slim/engine.rb +0 -0
  308. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/slim-5.2.1/lib/slim/erb_converter.rb +0 -0
  309. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/slim-5.2.1/lib/slim/filter.rb +0 -0
  310. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/slim-5.2.1/lib/slim/grammar.rb +0 -0
  311. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/slim-5.2.1/lib/slim/include.rb +0 -0
  312. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/slim-5.2.1/lib/slim/interpolation.rb +0 -0
  313. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/slim-5.2.1/lib/slim/logic_less/context.rb +0 -0
  314. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/slim-5.2.1/lib/slim/logic_less/filter.rb +0 -0
  315. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/slim-5.2.1/lib/slim/logic_less.rb +0 -0
  316. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/slim-5.2.1/lib/slim/parser.rb +0 -0
  317. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/slim-5.2.1/lib/slim/railtie.rb +0 -0
  318. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/slim-5.2.1/lib/slim/smart/escaper.rb +0 -0
  319. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/slim-5.2.1/lib/slim/smart/filter.rb +0 -0
  320. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/slim-5.2.1/lib/slim/smart/parser.rb +0 -0
  321. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/slim-5.2.1/lib/slim/smart.rb +0 -0
  322. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/slim-5.2.1/lib/slim/splat/builder.rb +0 -0
  323. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/slim-5.2.1/lib/slim/splat/filter.rb +0 -0
  324. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/slim-5.2.1/lib/slim/template.rb +0 -0
  325. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/slim-5.2.1/lib/slim/translator.rb +0 -0
  326. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/slim-5.2.1/lib/slim/version.rb +0 -0
  327. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/slim-5.2.1/lib/slim.rb +0 -0
  328. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/slim-5.2.1/slim.gemspec +0 -0
  329. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/temple-0.10.3/CHANGES +0 -0
  330. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/temple-0.10.3/EXPRESSIONS.md +0 -0
  331. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/temple-0.10.3/Gemfile +0 -0
  332. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/temple-0.10.3/LICENSE +0 -0
  333. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/temple-0.10.3/README.md +0 -0
  334. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/temple-0.10.3/lib/temple/engine.rb +0 -0
  335. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/temple-0.10.3/lib/temple/erb/engine.rb +0 -0
  336. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/temple-0.10.3/lib/temple/erb/parser.rb +0 -0
  337. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/temple-0.10.3/lib/temple/erb/template.rb +0 -0
  338. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/temple-0.10.3/lib/temple/erb/trimming.rb +0 -0
  339. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/temple-0.10.3/lib/temple/exceptions.rb +0 -0
  340. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/temple-0.10.3/lib/temple/filter.rb +0 -0
  341. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/temple-0.10.3/lib/temple/filters/ambles.rb +0 -0
  342. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/temple-0.10.3/lib/temple/filters/code_merger.rb +0 -0
  343. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/temple-0.10.3/lib/temple/filters/control_flow.rb +0 -0
  344. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/temple-0.10.3/lib/temple/filters/dynamic_inliner.rb +0 -0
  345. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/temple-0.10.3/lib/temple/filters/dynamic_merger.rb +0 -0
  346. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/temple-0.10.3/lib/temple/filters/encoding.rb +0 -0
  347. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/temple-0.10.3/lib/temple/filters/eraser.rb +0 -0
  348. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/temple-0.10.3/lib/temple/filters/escapable.rb +0 -0
  349. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/temple-0.10.3/lib/temple/filters/multi_flattener.rb +0 -0
  350. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/temple-0.10.3/lib/temple/filters/remove_bom.rb +0 -0
  351. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/temple-0.10.3/lib/temple/filters/static_analyzer.rb +0 -0
  352. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/temple-0.10.3/lib/temple/filters/static_merger.rb +0 -0
  353. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/temple-0.10.3/lib/temple/filters/string_splitter.rb +0 -0
  354. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/temple-0.10.3/lib/temple/filters/validator.rb +0 -0
  355. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/temple-0.10.3/lib/temple/generator.rb +0 -0
  356. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/temple-0.10.3/lib/temple/generators/array.rb +0 -0
  357. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/temple-0.10.3/lib/temple/generators/array_buffer.rb +0 -0
  358. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/temple-0.10.3/lib/temple/generators/erb.rb +0 -0
  359. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/temple-0.10.3/lib/temple/generators/rails_output_buffer.rb +0 -0
  360. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/temple-0.10.3/lib/temple/generators/string_buffer.rb +0 -0
  361. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/temple-0.10.3/lib/temple/grammar.rb +0 -0
  362. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/temple-0.10.3/lib/temple/html/attribute_merger.rb +0 -0
  363. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/temple-0.10.3/lib/temple/html/attribute_remover.rb +0 -0
  364. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/temple-0.10.3/lib/temple/html/attribute_sorter.rb +0 -0
  365. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/temple-0.10.3/lib/temple/html/dispatcher.rb +0 -0
  366. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/temple-0.10.3/lib/temple/html/fast.rb +0 -0
  367. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/temple-0.10.3/lib/temple/html/filter.rb +0 -0
  368. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/temple-0.10.3/lib/temple/html/pretty.rb +0 -0
  369. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/temple-0.10.3/lib/temple/html/safe.rb +0 -0
  370. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/temple-0.10.3/lib/temple/map.rb +0 -0
  371. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/temple-0.10.3/lib/temple/mixins/dispatcher.rb +0 -0
  372. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/temple-0.10.3/lib/temple/mixins/engine_dsl.rb +0 -0
  373. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/temple-0.10.3/lib/temple/mixins/grammar_dsl.rb +0 -0
  374. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/temple-0.10.3/lib/temple/mixins/options.rb +0 -0
  375. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/temple-0.10.3/lib/temple/mixins/template.rb +0 -0
  376. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/temple-0.10.3/lib/temple/parser.rb +0 -0
  377. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/temple-0.10.3/lib/temple/static_analyzer.rb +0 -0
  378. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/temple-0.10.3/lib/temple/templates/rails.rb +0 -0
  379. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/temple-0.10.3/lib/temple/templates/tilt.rb +0 -0
  380. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/temple-0.10.3/lib/temple/templates.rb +0 -0
  381. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/temple-0.10.3/lib/temple/utils.rb +0 -0
  382. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/temple-0.10.3/lib/temple/version.rb +0 -0
  383. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/temple-0.10.3/lib/temple.rb +0 -0
  384. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/temple-0.10.3/temple.gemspec +0 -0
  385. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/terminal-table-1.8.0/Gemfile +0 -0
  386. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/terminal-table-1.8.0/History.rdoc +0 -0
  387. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/terminal-table-1.8.0/LICENSE.txt +0 -0
  388. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/terminal-table-1.8.0/Manifest +0 -0
  389. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/terminal-table-1.8.0/README.rdoc +0 -0
  390. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/terminal-table-1.8.0/Todo.rdoc +0 -0
  391. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/terminal-table-1.8.0/lib/terminal-table/cell.rb +0 -0
  392. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/terminal-table-1.8.0/lib/terminal-table/import.rb +0 -0
  393. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/terminal-table-1.8.0/lib/terminal-table/row.rb +0 -0
  394. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/terminal-table-1.8.0/lib/terminal-table/separator.rb +0 -0
  395. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/terminal-table-1.8.0/lib/terminal-table/style.rb +0 -0
  396. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/terminal-table-1.8.0/lib/terminal-table/table.rb +0 -0
  397. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/terminal-table-1.8.0/lib/terminal-table/table_helper.rb +0 -0
  398. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/terminal-table-1.8.0/lib/terminal-table/version.rb +0 -0
  399. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/terminal-table-1.8.0/lib/terminal-table.rb +0 -0
  400. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/terminal-table-1.8.0/terminal-table.gemspec +0 -0
  401. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/tilt-2.4.0/COPYING +0 -0
  402. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/tilt-2.4.0/lib/tilt/_emacs_org.rb +0 -0
  403. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/tilt-2.4.0/lib/tilt/_handlebars.rb +0 -0
  404. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/tilt-2.4.0/lib/tilt/_jbuilder.rb +0 -0
  405. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/tilt-2.4.0/lib/tilt/_org.rb +0 -0
  406. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/tilt-2.4.0/lib/tilt/asciidoc.rb +0 -0
  407. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/tilt-2.4.0/lib/tilt/babel.rb +0 -0
  408. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/tilt-2.4.0/lib/tilt/builder.rb +0 -0
  409. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/tilt-2.4.0/lib/tilt/cli.rb +0 -0
  410. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/tilt-2.4.0/lib/tilt/coffee.rb +0 -0
  411. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/tilt-2.4.0/lib/tilt/commonmarker.rb +0 -0
  412. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/tilt-2.4.0/lib/tilt/creole.rb +0 -0
  413. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/tilt-2.4.0/lib/tilt/csv.rb +0 -0
  414. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/tilt-2.4.0/lib/tilt/erb.rb +0 -0
  415. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/tilt-2.4.0/lib/tilt/erubi.rb +0 -0
  416. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/tilt-2.4.0/lib/tilt/erubis.rb +0 -0
  417. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/tilt-2.4.0/lib/tilt/etanni.rb +0 -0
  418. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/tilt-2.4.0/lib/tilt/haml.rb +0 -0
  419. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/tilt-2.4.0/lib/tilt/kramdown.rb +0 -0
  420. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/tilt-2.4.0/lib/tilt/liquid.rb +0 -0
  421. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/tilt-2.4.0/lib/tilt/livescript.rb +0 -0
  422. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/tilt-2.4.0/lib/tilt/mapping.rb +0 -0
  423. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/tilt-2.4.0/lib/tilt/markaby.rb +0 -0
  424. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/tilt-2.4.0/lib/tilt/maruku.rb +0 -0
  425. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/tilt-2.4.0/lib/tilt/nokogiri.rb +0 -0
  426. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/tilt-2.4.0/lib/tilt/pandoc.rb +0 -0
  427. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/tilt-2.4.0/lib/tilt/pipeline.rb +0 -0
  428. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/tilt-2.4.0/lib/tilt/plain.rb +0 -0
  429. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/tilt-2.4.0/lib/tilt/prawn.rb +0 -0
  430. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/tilt-2.4.0/lib/tilt/radius.rb +0 -0
  431. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/tilt-2.4.0/lib/tilt/rdiscount.rb +0 -0
  432. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/tilt-2.4.0/lib/tilt/rdoc.rb +0 -0
  433. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/tilt-2.4.0/lib/tilt/redcarpet.rb +0 -0
  434. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/tilt-2.4.0/lib/tilt/redcloth.rb +0 -0
  435. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/tilt-2.4.0/lib/tilt/rst-pandoc.rb +0 -0
  436. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/tilt-2.4.0/lib/tilt/sass.rb +0 -0
  437. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/tilt-2.4.0/lib/tilt/slim.rb +0 -0
  438. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/tilt-2.4.0/lib/tilt/string.rb +0 -0
  439. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/tilt-2.4.0/lib/tilt/template.rb +0 -0
  440. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/tilt-2.4.0/lib/tilt/typescript.rb +0 -0
  441. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/tilt-2.4.0/lib/tilt/wikicloth.rb +0 -0
  442. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/tilt-2.4.0/lib/tilt/yajl.rb +0 -0
  443. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/tilt-2.4.0/lib/tilt.rb +0 -0
  444. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/unicode-display_width-1.8.0/CHANGELOG.md +0 -0
  445. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/unicode-display_width-1.8.0/MIT-LICENSE.txt +0 -0
  446. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/unicode-display_width-1.8.0/README.md +0 -0
  447. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/unicode-display_width-1.8.0/data/display_width.marshal.gz +0 -0
  448. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/unicode-display_width-1.8.0/lib/unicode/display_width/constants.rb +0 -0
  449. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/unicode-display_width-1.8.0/lib/unicode/display_width/index.rb +0 -0
  450. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/unicode-display_width-1.8.0/lib/unicode/display_width/no_string_ext.rb +0 -0
  451. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/unicode-display_width-1.8.0/lib/unicode/display_width/string_ext.rb +0 -0
  452. /data/bundle/ruby/{3.1.0 → 3.3.0}/gems/unicode-display_width-1.8.0/lib/unicode/display_width.rb +0 -0
@@ -0,0 +1,1191 @@
1
+ #--
2
+ #
3
+ #
4
+ #
5
+ # Copyright (c) 1999-2006 Minero Aoki
6
+ #
7
+ # This program is free software.
8
+ # You can distribute/modify this program under the same terms of ruby.
9
+ # see the file "COPYING".
10
+ #
11
+ #++
12
+
13
+ require_relative 'compat'
14
+ require_relative 'iset'
15
+ require_relative 'sourcetext'
16
+ require_relative 'logfilegenerator'
17
+ require_relative 'exception'
18
+ require 'forwardable'
19
+
20
+ module Racc
21
+
22
+ class Grammar
23
+
24
+ def initialize(debug_flags = DebugFlags.new)
25
+ @symboltable = SymbolTable.new
26
+ @debug_symbol = debug_flags.token
27
+ @rules = [] # :: [Rule]
28
+ @start = nil
29
+ @n_expected_srconflicts = nil
30
+ @error_on_expect_mismatch = nil
31
+ @prec_table = []
32
+ @prec_table_closed = false
33
+ @closed = false
34
+ @states = nil
35
+ end
36
+
37
+ attr_reader :start
38
+ attr_reader :symboltable
39
+ attr_accessor :n_expected_srconflicts
40
+ attr_accessor :error_on_expect_mismatch
41
+
42
+ def [](x)
43
+ @rules[x]
44
+ end
45
+
46
+ def each_rule(&block)
47
+ @rules.each(&block)
48
+ end
49
+
50
+ alias each each_rule
51
+
52
+ def each_index(&block)
53
+ @rules.each_index(&block)
54
+ end
55
+
56
+ def each_with_index(&block)
57
+ @rules.each_with_index(&block)
58
+ end
59
+
60
+ def size
61
+ @rules.size
62
+ end
63
+
64
+ def to_s
65
+ "<Racc::Grammar>"
66
+ end
67
+
68
+ extend Forwardable
69
+
70
+ def_delegator "@symboltable", :each, :each_symbol
71
+ def_delegator "@symboltable", :each_terminal
72
+ def_delegator "@symboltable", :each_nonterminal
73
+
74
+ def intern(value, dummy = false)
75
+ @symboltable.intern(value, dummy)
76
+ end
77
+
78
+ def symbols
79
+ @symboltable.symbols
80
+ end
81
+
82
+ def nonterminal_base
83
+ @symboltable.nt_base
84
+ end
85
+
86
+ def useless_nonterminal_exist?
87
+ n_useless_nonterminals() != 0
88
+ end
89
+
90
+ def n_useless_nonterminals
91
+ @n_useless_nonterminals ||= each_useless_nonterminal.count
92
+ end
93
+
94
+ def each_useless_nonterminal
95
+ return to_enum __method__ unless block_given?
96
+
97
+ @symboltable.each_nonterminal do |sym|
98
+ yield sym if sym.useless?
99
+ end
100
+ end
101
+
102
+ def useless_rule_exist?
103
+ n_useless_rules() != 0
104
+ end
105
+
106
+ def n_useless_rules
107
+ @n_useless_rules ||= each_useless_rule.count
108
+ end
109
+
110
+ def each_useless_rule
111
+ return to_enum __method__ unless block_given?
112
+
113
+ each do |r|
114
+ yield r if r.useless?
115
+ end
116
+ end
117
+
118
+ def nfa
119
+ (@states ||= States.new(self)).nfa
120
+ end
121
+
122
+ def dfa
123
+ (@states ||= States.new(self)).dfa
124
+ end
125
+
126
+ alias states dfa
127
+
128
+ def state_transition_table
129
+ states().state_transition_table
130
+ end
131
+
132
+ def parser_class
133
+ states = states() # cache
134
+ if $DEBUG
135
+ srcfilename = caller(1).first.slice(/\A(.*?):/, 1)
136
+ begin
137
+ write_log srcfilename + ".output"
138
+ rescue SystemCallError
139
+ end
140
+ report = lambda {|s| $stderr.puts "racc: #{srcfilename}: #{s}" }
141
+ if states.should_report_srconflict?
142
+ report["#{states.n_srconflicts} shift/reduce conflicts"]
143
+ end
144
+ if states.rrconflict_exist?
145
+ report["#{states.n_rrconflicts} reduce/reduce conflicts"]
146
+ end
147
+ g = states.grammar
148
+ if g.useless_nonterminal_exist?
149
+ report["#{g.n_useless_nonterminals} useless nonterminals"]
150
+ end
151
+ if g.useless_rule_exist?
152
+ report["#{g.n_useless_rules} useless rules"]
153
+ end
154
+ end
155
+ states.state_transition_table.parser_class
156
+ end
157
+
158
+ def write_log(path)
159
+ File.open(path, 'w') {|f|
160
+ LogFileGenerator.new(states()).output f
161
+ }
162
+ end
163
+
164
+ #
165
+ # Grammar Definition Interface
166
+ #
167
+
168
+ def add(rule)
169
+ raise ArgumentError, "rule added after the Grammar closed" if @closed
170
+ @rules.push rule
171
+ end
172
+
173
+ def added?(sym)
174
+ @rules.detect {|r| r.target == sym }
175
+ end
176
+
177
+ def start_symbol=(s)
178
+ raise CompileError, "start symbol set twice'" if @start
179
+ @start = s
180
+ end
181
+
182
+ def declare_precedence(assoc, syms)
183
+ raise CompileError, "precedence table defined twice" if @prec_table_closed
184
+ @prec_table.push [assoc, syms]
185
+ end
186
+
187
+ def end_precedence_declaration(reverse)
188
+ @prec_table_closed = true
189
+ return if @prec_table.empty?
190
+ table = reverse ? @prec_table.reverse : @prec_table
191
+ table.each_with_index do |(assoc, syms), idx|
192
+ syms.each do |sym|
193
+ sym.assoc = assoc
194
+ sym.precedence = idx
195
+ end
196
+ end
197
+ end
198
+
199
+ #
200
+ # Dynamic Generation Interface
201
+ #
202
+
203
+ def Grammar.define(&block)
204
+ env = DefinitionEnv.new
205
+ env.instance_eval(&block)
206
+ env.grammar
207
+ end
208
+
209
+ class DefinitionEnv
210
+ def initialize
211
+ @grammar = Grammar.new
212
+ @seqs = Hash.new(0)
213
+ @delayed = []
214
+ end
215
+
216
+ def grammar
217
+ flush_delayed
218
+ @grammar.each do |rule|
219
+ if rule.specified_prec
220
+ rule.specified_prec = @grammar.intern(rule.specified_prec)
221
+ end
222
+ end
223
+ @grammar.init
224
+ @grammar
225
+ end
226
+
227
+ def precedence_table(&block)
228
+ env = PrecedenceDefinitionEnv.new(@grammar)
229
+ env.instance_eval(&block)
230
+ @grammar.end_precedence_declaration env.reverse
231
+ end
232
+
233
+ def method_missing(mid, *args, &block)
234
+ unless mid.to_s[-1,1] == '='
235
+ super # raises NoMethodError
236
+ end
237
+ target = @grammar.intern(mid.to_s.chop.intern)
238
+ unless args.size == 1
239
+ raise ArgumentError, "too many arguments for #{mid} (#{args.size} for 1)"
240
+ end
241
+ _add target, args.first
242
+ end
243
+
244
+ def _add(target, x)
245
+ case x
246
+ when Sym
247
+ @delayed.each do |rule|
248
+ rule.replace x, target if rule.target == x
249
+ end
250
+ @grammar.symboltable.delete x
251
+ else
252
+ x.each_rule do |r|
253
+ r.target = target
254
+ @grammar.add r
255
+ end
256
+ end
257
+ flush_delayed
258
+ end
259
+
260
+ def _delayed_add(rule)
261
+ @delayed.push rule
262
+ end
263
+
264
+ def _added?(sym)
265
+ @grammar.added?(sym) or @delayed.detect {|r| r.target == sym }
266
+ end
267
+
268
+ def flush_delayed
269
+ return if @delayed.empty?
270
+ @delayed.each do |rule|
271
+ @grammar.add rule
272
+ end
273
+ @delayed.clear
274
+ end
275
+
276
+ def seq(*list, &block)
277
+ Rule.new(nil, list.map {|x| _intern(x) }, UserAction.proc(block))
278
+ end
279
+
280
+ def null(&block)
281
+ seq(&block)
282
+ end
283
+
284
+ def action(&block)
285
+ id = "@#{@seqs["action"] += 1}".intern
286
+ _delayed_add Rule.new(@grammar.intern(id), [], UserAction.proc(block))
287
+ id
288
+ end
289
+
290
+ alias _ action
291
+
292
+ def option(sym, default = nil, &block)
293
+ _defmetasyntax("option", _intern(sym), block) {|target|
294
+ seq() { default } | seq(sym)
295
+ }
296
+ end
297
+
298
+ def many(sym, &block)
299
+ _defmetasyntax("many", _intern(sym), block) {|target|
300
+ seq() { [] }\
301
+ | seq(target, sym) {|list, x| list.push x; list }
302
+ }
303
+ end
304
+
305
+ def many1(sym, &block)
306
+ _defmetasyntax("many1", _intern(sym), block) {|target|
307
+ seq(sym) {|x| [x] }\
308
+ | seq(target, sym) {|list, x| list.push x; list }
309
+ }
310
+ end
311
+
312
+ def separated_by(sep, sym, &block)
313
+ option(separated_by1(sep, sym), [], &block)
314
+ end
315
+
316
+ def separated_by1(sep, sym, &block)
317
+ _defmetasyntax("separated_by1", _intern(sym), block) {|target|
318
+ seq(sym) {|x| [x] }\
319
+ | seq(target, sep, sym) {|list, _, x| list.push x; list }
320
+ }
321
+ end
322
+
323
+ def _intern(x)
324
+ case x
325
+ when Symbol, String
326
+ @grammar.intern(x)
327
+ when Racc::Sym
328
+ x
329
+ else
330
+ raise TypeError, "wrong type #{x.class} (expected Symbol/String/Racc::Sym)"
331
+ end
332
+ end
333
+
334
+ private
335
+
336
+ def _defmetasyntax(type, id, action, &block)
337
+ if action
338
+ idbase = "#{type}@#{id}-#{@seqs[type] += 1}"
339
+ target = _wrap(idbase, "#{idbase}-core", action)
340
+ _register("#{idbase}-core", &block)
341
+ else
342
+ target = _register("#{type}@#{id}", &block)
343
+ end
344
+ @grammar.intern(target)
345
+ end
346
+
347
+ def _register(target_name)
348
+ target = target_name.intern
349
+ unless _added?(@grammar.intern(target))
350
+ yield(target).each_rule do |rule|
351
+ rule.target = @grammar.intern(target)
352
+ _delayed_add rule
353
+ end
354
+ end
355
+ target
356
+ end
357
+
358
+ def _wrap(target_name, sym, block)
359
+ target = target_name.intern
360
+ _delayed_add Rule.new(@grammar.intern(target),
361
+ [@grammar.intern(sym.intern)],
362
+ UserAction.proc(block))
363
+ target
364
+ end
365
+ end
366
+
367
+ class PrecedenceDefinitionEnv
368
+ def initialize(g)
369
+ @grammar = g
370
+ @prechigh_seen = false
371
+ @preclow_seen = false
372
+ @reverse = false
373
+ end
374
+
375
+ attr_reader :reverse
376
+
377
+ def higher
378
+ if @prechigh_seen
379
+ raise CompileError, "prechigh used twice"
380
+ end
381
+ @prechigh_seen = true
382
+ end
383
+
384
+ def lower
385
+ if @preclow_seen
386
+ raise CompileError, "preclow used twice"
387
+ end
388
+ if @prechigh_seen
389
+ @reverse = true
390
+ end
391
+ @preclow_seen = true
392
+ end
393
+
394
+ def left(*syms)
395
+ @grammar.declare_precedence :Left, syms.map {|s| @grammar.intern(s) }
396
+ end
397
+
398
+ def right(*syms)
399
+ @grammar.declare_precedence :Right, syms.map {|s| @grammar.intern(s) }
400
+ end
401
+
402
+ def nonassoc(*syms)
403
+ @grammar.declare_precedence :Nonassoc, syms.map {|s| @grammar.intern(s)}
404
+ end
405
+ end
406
+
407
+ #
408
+ # Computation
409
+ #
410
+
411
+ def init
412
+ return if @closed
413
+ @closed = true
414
+ @start ||= @rules.map {|r| r.target }.detect {|sym| not sym.dummy? }
415
+ raise CompileError, 'no rule in input' if @rules.empty?
416
+ add_start_rule
417
+ @rules.freeze
418
+ fix_ident
419
+ compute_hash
420
+ compute_heads
421
+ determine_terminals
422
+ compute_nullable_0
423
+ @symboltable.fix
424
+ compute_locate
425
+ @symboltable.each_nonterminal {|t| compute_expand t }
426
+ compute_nullable
427
+ compute_useless
428
+ end
429
+
430
+ private
431
+
432
+ def add_start_rule
433
+ r = Rule.new(@symboltable.dummy,
434
+ [@start, @symboltable.anchor, @symboltable.anchor],
435
+ UserAction.empty)
436
+ r.ident = 0
437
+ r.hash = 0
438
+ r.precedence = nil
439
+ @rules.unshift r
440
+ end
441
+
442
+ # Rule#ident
443
+ # LocationPointer#ident
444
+ def fix_ident
445
+ @rules.each_with_index do |rule, idx|
446
+ rule.ident = idx
447
+ end
448
+ end
449
+
450
+ # Rule#hash
451
+ def compute_hash
452
+ hash = 4 # size of dummy rule
453
+ @rules.each do |rule|
454
+ rule.hash = hash
455
+ hash += (rule.size + 1)
456
+ end
457
+ end
458
+
459
+ # Sym#heads
460
+ def compute_heads
461
+ @rules.each do |rule|
462
+ rule.target.heads.push rule.ptrs[0]
463
+ end
464
+ end
465
+
466
+ # Sym#terminal?
467
+ def determine_terminals
468
+ @symboltable.each do |s|
469
+ s.term = s.heads.empty?
470
+ end
471
+ end
472
+
473
+ # Sym#self_null?
474
+ def compute_nullable_0
475
+ @symboltable.each do |s|
476
+ if s.terminal?
477
+ s.snull = false
478
+ else
479
+ s.snull = s.heads.any? {|loc| loc.reduce? }
480
+ end
481
+ end
482
+ end
483
+
484
+ # Sym#locate
485
+ def compute_locate
486
+ @rules.each do |rule|
487
+ t = nil
488
+ rule.ptrs.each do |ptr|
489
+ unless ptr.reduce?
490
+ tok = ptr.dereference
491
+ tok.locate.push ptr
492
+ t = tok if tok.terminal?
493
+ end
494
+ end
495
+ rule.precedence = t
496
+ end
497
+ end
498
+
499
+ # Sym#expand
500
+ def compute_expand(t)
501
+ puts "expand> #{t.to_s}" if @debug_symbol
502
+ t.expand = _compute_expand(t, ISet.new, [])
503
+ puts "expand< #{t.to_s}: #{t.expand.to_s}" if @debug_symbol
504
+ end
505
+
506
+ def _compute_expand(t, set, lock)
507
+ if tmp = t.expand
508
+ set.update tmp
509
+ return set
510
+ end
511
+ tok = nil
512
+ set.update_a t.heads
513
+ t.heads.each do |ptr|
514
+ tok = ptr.dereference
515
+ if tok and tok.nonterminal?
516
+ unless lock[tok.ident]
517
+ lock[tok.ident] = true
518
+ _compute_expand tok, set, lock
519
+ end
520
+ end
521
+ end
522
+ set
523
+ end
524
+
525
+ # Sym#nullable?, Rule#nullable?
526
+ def compute_nullable
527
+ @rules.each {|r| r.null = false }
528
+ @symboltable.each {|t| t.null = false }
529
+ r = @rules.dup
530
+ s = @symboltable.nonterminals
531
+ begin
532
+ rs = r.size
533
+ ss = s.size
534
+ check_rules_nullable r
535
+ check_symbols_nullable s
536
+ end until rs == r.size and ss == s.size
537
+ end
538
+
539
+ def check_rules_nullable(rules)
540
+ rules.delete_if do |rule|
541
+ rule.null = true
542
+ rule.symbols.each do |t|
543
+ unless t.nullable?
544
+ rule.null = false
545
+ break
546
+ end
547
+ end
548
+ rule.nullable?
549
+ end
550
+ end
551
+
552
+ def check_symbols_nullable(symbols)
553
+ symbols.delete_if do |sym|
554
+ sym.heads.each do |ptr|
555
+ if ptr.rule.nullable?
556
+ sym.null = true
557
+ break
558
+ end
559
+ end
560
+ sym.nullable?
561
+ end
562
+ end
563
+
564
+ # Sym#useless?, Rule#useless?
565
+ # FIXME: what means "useless"?
566
+ def compute_useless
567
+ @symboltable.each_terminal {|sym| sym.useless = false }
568
+ @symboltable.each_nonterminal {|sym| sym.useless = true }
569
+ @rules.each {|rule| rule.useless = true }
570
+ r = @rules.dup
571
+ s = @symboltable.nonterminals
572
+ begin
573
+ rs = r.size
574
+ ss = s.size
575
+ check_rules_useless r
576
+ check_symbols_useless s
577
+ end until r.size == rs and s.size == ss
578
+ end
579
+
580
+ def check_rules_useless(rules)
581
+ rules.delete_if do |rule|
582
+ rule.useless = false
583
+ rule.symbols.each do |sym|
584
+ if sym.useless?
585
+ rule.useless = true
586
+ break
587
+ end
588
+ end
589
+ not rule.useless?
590
+ end
591
+ end
592
+
593
+ def check_symbols_useless(s)
594
+ s.delete_if do |t|
595
+ t.heads.each do |ptr|
596
+ unless ptr.rule.useless?
597
+ t.useless = false
598
+ break
599
+ end
600
+ end
601
+ not t.useless?
602
+ end
603
+ end
604
+
605
+ end # class Grammar
606
+
607
+
608
+ class Rule
609
+
610
+ def initialize(target, syms, act)
611
+ @target = target
612
+ @symbols = syms
613
+ @action = act
614
+ @alternatives = []
615
+
616
+ @ident = nil
617
+ @hash = nil
618
+ @ptrs = nil
619
+ @precedence = nil
620
+ @specified_prec = nil
621
+ @null = nil
622
+ @useless = nil
623
+ end
624
+
625
+ attr_accessor :target
626
+ attr_reader :symbols
627
+ attr_reader :action
628
+
629
+ def |(x)
630
+ @alternatives.push x.rule
631
+ self
632
+ end
633
+
634
+ def rule
635
+ self
636
+ end
637
+
638
+ def each_rule(&block)
639
+ yield self
640
+ @alternatives.each(&block)
641
+ end
642
+
643
+ attr_accessor :ident
644
+
645
+ attr_reader :hash
646
+ attr_reader :ptrs
647
+
648
+ def hash=(n)
649
+ @hash = n
650
+ ptrs = []
651
+ @symbols.each_with_index do |sym, idx|
652
+ ptrs.push LocationPointer.new(self, idx, sym)
653
+ end
654
+ ptrs.push LocationPointer.new(self, @symbols.size, nil)
655
+ @ptrs = ptrs
656
+ end
657
+
658
+ def precedence
659
+ @specified_prec || @precedence
660
+ end
661
+
662
+ def precedence=(sym)
663
+ @precedence ||= sym
664
+ end
665
+
666
+ def prec(sym, &block)
667
+ @specified_prec = sym
668
+ if block
669
+ unless @action.empty?
670
+ raise CompileError, 'both of rule action block and prec block given'
671
+ end
672
+ @action = UserAction.proc(block)
673
+ end
674
+ self
675
+ end
676
+
677
+ attr_accessor :specified_prec
678
+
679
+ def nullable?() @null end
680
+ def null=(n) @null = n end
681
+
682
+ def useless?() @useless end
683
+ def useless=(u) @useless = u end
684
+
685
+ def inspect
686
+ "#<Racc::Rule id=#{@ident} (#{@target})>"
687
+ end
688
+
689
+ def ==(other)
690
+ other.kind_of?(Rule) and @ident == other.ident
691
+ end
692
+
693
+ def [](idx)
694
+ @symbols[idx]
695
+ end
696
+
697
+ def size
698
+ @symbols.size
699
+ end
700
+
701
+ def empty?
702
+ @symbols.empty?
703
+ end
704
+
705
+ def to_s
706
+ "#<rule#{@ident}>"
707
+ end
708
+
709
+ def accept?
710
+ if tok = @symbols[-1]
711
+ tok.anchor?
712
+ else
713
+ false
714
+ end
715
+ end
716
+
717
+ def each(&block)
718
+ @symbols.each(&block)
719
+ end
720
+
721
+ def replace(src, dest)
722
+ @target = dest
723
+ @symbols = @symbols.map {|s| s == src ? dest : s }
724
+ end
725
+
726
+ end # class Rule
727
+
728
+
729
+ class UserAction
730
+
731
+ def UserAction.source_text(src)
732
+ new(src, nil)
733
+ end
734
+
735
+ def UserAction.proc(pr = nil, &block)
736
+ if pr and block
737
+ raise ArgumentError, "both of argument and block given"
738
+ end
739
+ new(nil, pr || block)
740
+ end
741
+
742
+ def UserAction.empty
743
+ new(nil, nil)
744
+ end
745
+
746
+ private_class_method :new
747
+
748
+ def initialize(src, proc)
749
+ @source = src
750
+ @proc = proc
751
+ end
752
+
753
+ attr_reader :source
754
+ attr_reader :proc
755
+
756
+ def source?
757
+ not @proc
758
+ end
759
+
760
+ def proc?
761
+ not @source
762
+ end
763
+
764
+ def empty?
765
+ not @proc and not @source
766
+ end
767
+
768
+ def name
769
+ "{action type=#{@source || @proc || 'nil'}}"
770
+ end
771
+
772
+ alias inspect name
773
+
774
+ end
775
+
776
+
777
+ class OrMark
778
+ def initialize(lineno)
779
+ @lineno = lineno
780
+ end
781
+
782
+ def name
783
+ '|'
784
+ end
785
+
786
+ alias inspect name
787
+
788
+ attr_reader :lineno
789
+ end
790
+
791
+
792
+ class OptionMark
793
+ def initialize(lineno)
794
+ @lineno = lineno
795
+ end
796
+
797
+ def name
798
+ '?'
799
+ end
800
+
801
+ alias inspect name
802
+
803
+ attr_reader :lineno
804
+ end
805
+
806
+
807
+ class ManyMark
808
+ def initialize(lineno)
809
+ @lineno = lineno
810
+ end
811
+
812
+ def name
813
+ '*'
814
+ end
815
+
816
+ alias inspect name
817
+
818
+ attr_reader :lineno
819
+ end
820
+
821
+
822
+ class Many1Mark
823
+ def initialize(lineno)
824
+ @lineno = lineno
825
+ end
826
+
827
+ def name
828
+ '+'
829
+ end
830
+
831
+ alias inspect name
832
+
833
+ attr_reader :lineno
834
+ end
835
+
836
+
837
+ class GroupStartMark
838
+ def initialize(lineno)
839
+ @lineno = lineno
840
+ end
841
+
842
+ def name
843
+ '('
844
+ end
845
+
846
+ alias inspect name
847
+
848
+ attr_reader :lineno
849
+ end
850
+
851
+
852
+ class GroupEndMark
853
+ def initialize(lineno)
854
+ @lineno = lineno
855
+ end
856
+
857
+ def name
858
+ ')'
859
+ end
860
+
861
+ alias inspect name
862
+
863
+ attr_reader :lineno
864
+ end
865
+
866
+
867
+ class Prec
868
+ def initialize(symbol, lineno)
869
+ @symbol = symbol
870
+ @lineno = lineno
871
+ end
872
+
873
+ def name
874
+ "=#{@symbol}"
875
+ end
876
+
877
+ alias inspect name
878
+
879
+ attr_reader :symbol
880
+ attr_reader :lineno
881
+ end
882
+
883
+
884
+ #
885
+ # A set of rule and position in it's RHS.
886
+ # Note that the number of pointers is more than rule's RHS array,
887
+ # because pointer points right edge of the final symbol when reducing.
888
+ #
889
+ class LocationPointer
890
+
891
+ def initialize(rule, i, sym)
892
+ @rule = rule
893
+ @index = i
894
+ @symbol = sym
895
+ @ident = @rule.hash + i
896
+ @reduce = sym.nil?
897
+ end
898
+
899
+ attr_reader :rule
900
+ attr_reader :index
901
+ attr_reader :symbol
902
+
903
+ alias dereference symbol
904
+
905
+ attr_reader :ident
906
+ alias hash ident
907
+ attr_reader :reduce
908
+ alias reduce? reduce
909
+
910
+ def to_s
911
+ sprintf('(%d,%d %s)',
912
+ @rule.ident, @index, (reduce?() ? '#' : @symbol.to_s))
913
+ end
914
+
915
+ alias inspect to_s
916
+
917
+ def eql?(ot)
918
+ @hash == ot.hash
919
+ end
920
+
921
+ alias == eql?
922
+
923
+ def head?
924
+ @index == 0
925
+ end
926
+
927
+ def next
928
+ @rule.ptrs[@index + 1] or ptr_bug!
929
+ end
930
+
931
+ alias increment next
932
+
933
+ def before(len)
934
+ @rule.ptrs[@index - len] or ptr_bug!
935
+ end
936
+
937
+ private
938
+
939
+ def ptr_bug!
940
+ raise "racc: fatal: pointer not exist: self: #{to_s}"
941
+ end
942
+
943
+ end # class LocationPointer
944
+
945
+
946
+ class SymbolTable
947
+
948
+ include Enumerable
949
+
950
+ def initialize
951
+ @symbols = [] # :: [Racc::Sym]
952
+ @cache = {} # :: {(String|Symbol) => Racc::Sym}
953
+ @dummy = intern(:$start, true)
954
+ @anchor = intern(false, true) # Symbol ID = 0
955
+ @error = intern(:error, false) # Symbol ID = 1
956
+ end
957
+
958
+ attr_reader :dummy
959
+ attr_reader :anchor
960
+ attr_reader :error
961
+
962
+ def [](id)
963
+ @symbols[id]
964
+ end
965
+
966
+ def intern(val, dummy = false)
967
+ @cache[val] ||=
968
+ begin
969
+ sym = Sym.new(val, dummy)
970
+ @symbols.push sym
971
+ sym
972
+ end
973
+ end
974
+
975
+ attr_reader :symbols
976
+ alias to_a symbols
977
+
978
+ def delete(sym)
979
+ @symbols.delete sym
980
+ @cache.delete sym.value
981
+ end
982
+
983
+ attr_reader :nt_base
984
+
985
+ def nt_max
986
+ @symbols.size
987
+ end
988
+
989
+ def each(&block)
990
+ @symbols.each(&block)
991
+ end
992
+
993
+ def terminals(&block)
994
+ @symbols[0, @nt_base]
995
+ end
996
+
997
+ def each_terminal(&block)
998
+ @terms.each(&block)
999
+ end
1000
+
1001
+ def nonterminals
1002
+ @symbols[@nt_base, @symbols.size - @nt_base]
1003
+ end
1004
+
1005
+ def each_nonterminal(&block)
1006
+ @nterms.each(&block)
1007
+ end
1008
+
1009
+ def fix
1010
+ terms, nterms = @symbols.partition {|s| s.terminal? }
1011
+ @symbols = terms + nterms
1012
+ @terms = terms
1013
+ @nterms = nterms
1014
+ @nt_base = terms.size
1015
+ fix_ident
1016
+ check_terminals
1017
+ end
1018
+
1019
+ private
1020
+
1021
+ def fix_ident
1022
+ @symbols.each_with_index do |t, i|
1023
+ t.ident = i
1024
+ end
1025
+ end
1026
+
1027
+ def check_terminals
1028
+ return unless @symbols.any? {|s| s.should_terminal? }
1029
+ @anchor.should_terminal
1030
+ @error.should_terminal
1031
+ each_terminal do |t|
1032
+ t.should_terminal if t.string_symbol?
1033
+ end
1034
+ each do |s|
1035
+ s.should_terminal if s.assoc
1036
+ end
1037
+ terminals().reject {|t| t.should_terminal? }.each do |t|
1038
+ raise CompileError, "terminal #{t} not declared as terminal"
1039
+ end
1040
+ nonterminals().select {|n| n.should_terminal? }.each do |n|
1041
+ raise CompileError, "symbol #{n} declared as terminal but is not terminal"
1042
+ end
1043
+ end
1044
+
1045
+ end # class SymbolTable
1046
+
1047
+
1048
+ # Stands terminal and nonterminal symbols.
1049
+ class Sym
1050
+
1051
+ def initialize(value, dummyp)
1052
+ @ident = nil
1053
+ @value = value
1054
+ @dummyp = dummyp
1055
+
1056
+ @term = nil
1057
+ @nterm = nil
1058
+ @should_terminal = false
1059
+ @precedence = nil
1060
+ case value
1061
+ when Symbol
1062
+ @to_s = value.to_s
1063
+ @serialized = value.inspect
1064
+ @string = false
1065
+ when String
1066
+ @to_s = value.inspect
1067
+ @serialized = value.dump
1068
+ @string = true
1069
+ when false
1070
+ @to_s = '$end'
1071
+ @serialized = 'false'
1072
+ @string = false
1073
+ else
1074
+ raise ArgumentError, "unknown symbol value: #{value.class}"
1075
+ end
1076
+
1077
+ @heads = []
1078
+ @locate = []
1079
+ @snull = nil
1080
+ @null = nil
1081
+ @expand = nil
1082
+ @useless = nil
1083
+ end
1084
+
1085
+ class << self
1086
+ def once_writer(nm)
1087
+ nm = nm.id2name
1088
+ module_eval(<<-EOS)
1089
+ def #{nm}=(v)
1090
+ raise 'racc: fatal: @#{nm} != nil' unless @#{nm}.nil?
1091
+ @#{nm} = v
1092
+ end
1093
+ EOS
1094
+ end
1095
+ end
1096
+
1097
+ once_writer :ident
1098
+ attr_reader :ident
1099
+
1100
+ alias hash ident
1101
+
1102
+ attr_reader :value
1103
+
1104
+ def dummy?
1105
+ @dummyp
1106
+ end
1107
+
1108
+ def terminal?
1109
+ @term
1110
+ end
1111
+
1112
+ def nonterminal?
1113
+ @nterm
1114
+ end
1115
+
1116
+ def term=(t)
1117
+ raise 'racc: fatal: term= called twice' unless @term.nil?
1118
+ @term = t
1119
+ @nterm = !t
1120
+ end
1121
+
1122
+ def should_terminal
1123
+ @should_terminal = true
1124
+ end
1125
+
1126
+ def should_terminal?
1127
+ @should_terminal
1128
+ end
1129
+
1130
+ def string_symbol?
1131
+ @string
1132
+ end
1133
+
1134
+ def serialize
1135
+ @serialized
1136
+ end
1137
+
1138
+ attr_writer :serialized
1139
+
1140
+ attr_accessor :precedence
1141
+ attr_accessor :assoc
1142
+
1143
+ def to_s
1144
+ @to_s.dup
1145
+ end
1146
+
1147
+ alias inspect to_s
1148
+
1149
+ def |(x)
1150
+ rule() | x.rule
1151
+ end
1152
+
1153
+ def rule
1154
+ Rule.new(nil, [self], UserAction.empty)
1155
+ end
1156
+
1157
+ #
1158
+ # cache
1159
+ #
1160
+
1161
+ attr_reader :heads
1162
+ attr_reader :locate
1163
+
1164
+ def self_null?
1165
+ @snull
1166
+ end
1167
+
1168
+ once_writer :snull
1169
+
1170
+ def nullable?
1171
+ @null
1172
+ end
1173
+
1174
+ def null=(n)
1175
+ @null = n
1176
+ end
1177
+
1178
+ attr_reader :expand
1179
+ once_writer :expand
1180
+
1181
+ def useless?
1182
+ @useless
1183
+ end
1184
+
1185
+ def useless=(f)
1186
+ @useless = f
1187
+ end
1188
+
1189
+ end # class Sym
1190
+
1191
+ end # module Racc