brakeman 6.2.0 → 6.2.2.rc1

Sign up to get free protection for your applications and to get access to all the features.
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