llm-shell 0.9.2 → 0.10.0

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 (258) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +61 -66
  3. data/lib/llm/shell/command.rb +40 -40
  4. data/lib/llm/shell/commands/clear_screen.rb +4 -18
  5. data/lib/llm/shell/commands/debug_mode.rb +12 -0
  6. data/lib/llm/shell/commands/dir_import.rb +4 -20
  7. data/lib/llm/shell/commands/disable_tool.rb +33 -0
  8. data/lib/llm/shell/commands/enable_tool.rb +33 -0
  9. data/lib/llm/shell/commands/file_import.rb +4 -20
  10. data/lib/llm/shell/commands/help.rb +23 -36
  11. data/lib/llm/shell/commands/show_chat.rb +4 -19
  12. data/lib/llm/shell/commands/show_version.rb +4 -20
  13. data/lib/llm/shell/commands/system_prompt.rb +4 -18
  14. data/lib/llm/shell/completion.rb +5 -5
  15. data/lib/llm/shell/config.rb +4 -5
  16. data/lib/llm/shell/formatter.rb +1 -2
  17. data/lib/llm/shell/internal/coderay/lib/coderay/duo.rb +81 -0
  18. data/lib/llm/shell/internal/coderay/lib/coderay/encoders/_map.rb +17 -0
  19. data/lib/llm/shell/internal/coderay/lib/coderay/encoders/comment_filter.rb +25 -0
  20. data/lib/llm/shell/internal/coderay/lib/coderay/encoders/count.rb +39 -0
  21. data/lib/llm/shell/internal/coderay/lib/coderay/encoders/debug.rb +49 -0
  22. data/lib/llm/shell/internal/coderay/lib/coderay/encoders/debug_lint.rb +63 -0
  23. data/lib/llm/shell/internal/coderay/lib/coderay/encoders/div.rb +23 -0
  24. data/lib/llm/shell/internal/coderay/lib/coderay/encoders/encoder.rb +190 -0
  25. data/lib/llm/shell/internal/coderay/lib/coderay/encoders/filter.rb +58 -0
  26. data/lib/llm/shell/internal/coderay/lib/coderay/encoders/html/css.rb +65 -0
  27. data/lib/llm/shell/internal/coderay/lib/coderay/encoders/html/numbering.rb +108 -0
  28. data/lib/llm/shell/internal/coderay/lib/coderay/encoders/html/output.rb +164 -0
  29. data/lib/llm/shell/internal/coderay/lib/coderay/encoders/html.rb +333 -0
  30. data/lib/llm/shell/internal/coderay/lib/coderay/encoders/json.rb +83 -0
  31. data/lib/llm/shell/internal/coderay/lib/coderay/encoders/lines_of_code.rb +45 -0
  32. data/lib/llm/shell/internal/coderay/lib/coderay/encoders/lint.rb +59 -0
  33. data/lib/llm/shell/internal/coderay/lib/coderay/encoders/null.rb +18 -0
  34. data/lib/llm/shell/internal/coderay/lib/coderay/encoders/page.rb +24 -0
  35. data/lib/llm/shell/internal/coderay/lib/coderay/encoders/span.rb +23 -0
  36. data/lib/llm/shell/internal/coderay/lib/coderay/encoders/statistic.rb +95 -0
  37. data/lib/llm/shell/internal/coderay/lib/coderay/encoders/terminal.rb +195 -0
  38. data/lib/llm/shell/internal/coderay/lib/coderay/encoders/text.rb +46 -0
  39. data/lib/llm/shell/internal/coderay/lib/coderay/encoders/token_kind_filter.rb +111 -0
  40. data/lib/llm/shell/internal/coderay/lib/coderay/encoders/xml.rb +72 -0
  41. data/lib/llm/shell/internal/coderay/lib/coderay/encoders/yaml.rb +50 -0
  42. data/lib/llm/shell/internal/coderay/lib/coderay/encoders.rb +18 -0
  43. data/lib/llm/shell/internal/coderay/lib/coderay/for_redcloth.rb +95 -0
  44. data/lib/llm/shell/internal/coderay/lib/coderay/helpers/file_type.rb +151 -0
  45. data/lib/llm/shell/internal/coderay/lib/coderay/helpers/plugin.rb +55 -0
  46. data/lib/llm/shell/internal/coderay/lib/coderay/helpers/plugin_host.rb +221 -0
  47. data/lib/llm/shell/internal/coderay/lib/coderay/helpers/word_list.rb +72 -0
  48. data/lib/llm/shell/internal/coderay/lib/coderay/scanners/_map.rb +24 -0
  49. data/lib/llm/shell/internal/coderay/lib/coderay/scanners/c.rb +189 -0
  50. data/lib/llm/shell/internal/coderay/lib/coderay/scanners/clojure.rb +217 -0
  51. data/lib/llm/shell/internal/coderay/lib/coderay/scanners/cpp.rb +217 -0
  52. data/lib/llm/shell/internal/coderay/lib/coderay/scanners/css.rb +196 -0
  53. data/lib/llm/shell/internal/coderay/lib/coderay/scanners/debug.rb +75 -0
  54. data/lib/llm/shell/internal/coderay/lib/coderay/scanners/delphi.rb +144 -0
  55. data/lib/llm/shell/internal/coderay/lib/coderay/scanners/diff.rb +221 -0
  56. data/lib/llm/shell/internal/coderay/lib/coderay/scanners/erb.rb +81 -0
  57. data/lib/llm/shell/internal/coderay/lib/coderay/scanners/go.rb +208 -0
  58. data/lib/llm/shell/internal/coderay/lib/coderay/scanners/groovy.rb +268 -0
  59. data/lib/llm/shell/internal/coderay/lib/coderay/scanners/haml.rb +168 -0
  60. data/lib/llm/shell/internal/coderay/lib/coderay/scanners/html.rb +275 -0
  61. data/lib/llm/shell/internal/coderay/lib/coderay/scanners/java/builtin_types.rb +421 -0
  62. data/lib/llm/shell/internal/coderay/lib/coderay/scanners/java.rb +174 -0
  63. data/lib/llm/shell/internal/coderay/lib/coderay/scanners/java_script.rb +236 -0
  64. data/lib/llm/shell/internal/coderay/lib/coderay/scanners/json.rb +98 -0
  65. data/lib/llm/shell/internal/coderay/lib/coderay/scanners/lua.rb +280 -0
  66. data/lib/llm/shell/internal/coderay/lib/coderay/scanners/php.rb +527 -0
  67. data/lib/llm/shell/internal/coderay/lib/coderay/scanners/python.rb +287 -0
  68. data/lib/llm/shell/internal/coderay/lib/coderay/scanners/raydebug.rb +75 -0
  69. data/lib/llm/shell/internal/coderay/lib/coderay/scanners/ruby/patterns.rb +178 -0
  70. data/lib/llm/shell/internal/coderay/lib/coderay/scanners/ruby/string_state.rb +79 -0
  71. data/lib/llm/shell/internal/coderay/lib/coderay/scanners/ruby.rb +477 -0
  72. data/lib/llm/shell/internal/coderay/lib/coderay/scanners/sass.rb +232 -0
  73. data/lib/llm/shell/internal/coderay/lib/coderay/scanners/scanner.rb +337 -0
  74. data/lib/llm/shell/internal/coderay/lib/coderay/scanners/sql.rb +169 -0
  75. data/lib/llm/shell/internal/coderay/lib/coderay/scanners/taskpaper.rb +36 -0
  76. data/lib/llm/shell/internal/coderay/lib/coderay/scanners/text.rb +26 -0
  77. data/lib/llm/shell/internal/coderay/lib/coderay/scanners/xml.rb +17 -0
  78. data/lib/llm/shell/internal/coderay/lib/coderay/scanners/yaml.rb +140 -0
  79. data/lib/llm/shell/internal/coderay/lib/coderay/scanners.rb +27 -0
  80. data/lib/llm/shell/internal/coderay/lib/coderay/styles/_map.rb +7 -0
  81. data/lib/llm/shell/internal/coderay/lib/coderay/styles/alpha.rb +153 -0
  82. data/lib/llm/shell/internal/coderay/lib/coderay/styles/style.rb +18 -0
  83. data/lib/llm/shell/internal/coderay/lib/coderay/styles.rb +15 -0
  84. data/lib/llm/shell/internal/coderay/lib/coderay/token_kinds.rb +85 -0
  85. data/lib/llm/shell/internal/coderay/lib/coderay/tokens.rb +164 -0
  86. data/lib/llm/shell/internal/coderay/lib/coderay/tokens_proxy.rb +55 -0
  87. data/lib/llm/shell/internal/coderay/lib/coderay/version.rb +3 -0
  88. data/lib/llm/shell/internal/coderay/lib/coderay.rb +284 -0
  89. data/lib/llm/shell/internal/io-line/lib/io/line/multiple.rb +19 -0
  90. data/lib/{io → llm/shell/internal/io-line/lib/io}/line.rb +2 -0
  91. data/lib/llm/shell/internal/llm.rb/lib/llm/bot/builder.rb +31 -0
  92. data/lib/llm/shell/internal/llm.rb/lib/llm/bot/conversable.rb +37 -0
  93. data/lib/llm/shell/internal/llm.rb/lib/llm/bot/prompt/completion.rb +49 -0
  94. data/lib/llm/shell/internal/llm.rb/lib/llm/bot/prompt/respond.rb +49 -0
  95. data/lib/llm/shell/internal/llm.rb/lib/llm/bot.rb +150 -0
  96. data/lib/llm/shell/internal/llm.rb/lib/llm/buffer.rb +162 -0
  97. data/lib/llm/shell/internal/llm.rb/lib/llm/client.rb +36 -0
  98. data/lib/llm/shell/internal/llm.rb/lib/llm/error.rb +49 -0
  99. data/lib/llm/shell/internal/llm.rb/lib/llm/eventhandler.rb +44 -0
  100. data/lib/llm/shell/internal/llm.rb/lib/llm/eventstream/event.rb +69 -0
  101. data/lib/llm/shell/internal/llm.rb/lib/llm/eventstream/parser.rb +88 -0
  102. data/lib/llm/shell/internal/llm.rb/lib/llm/eventstream.rb +8 -0
  103. data/lib/llm/shell/internal/llm.rb/lib/llm/file.rb +91 -0
  104. data/lib/llm/shell/internal/llm.rb/lib/llm/function.rb +177 -0
  105. data/lib/llm/shell/internal/llm.rb/lib/llm/message.rb +178 -0
  106. data/lib/llm/shell/internal/llm.rb/lib/llm/mime.rb +140 -0
  107. data/lib/llm/shell/internal/llm.rb/lib/llm/multipart.rb +101 -0
  108. data/lib/llm/shell/internal/llm.rb/lib/llm/object/builder.rb +38 -0
  109. data/lib/llm/shell/internal/llm.rb/lib/llm/object/kernel.rb +53 -0
  110. data/lib/llm/shell/internal/llm.rb/lib/llm/object.rb +89 -0
  111. data/lib/llm/shell/internal/llm.rb/lib/llm/provider.rb +352 -0
  112. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/anthropic/error_handler.rb +36 -0
  113. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/anthropic/files.rb +155 -0
  114. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/anthropic/format/completion_format.rb +88 -0
  115. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/anthropic/format.rb +29 -0
  116. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/anthropic/models.rb +54 -0
  117. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/anthropic/response/completion.rb +39 -0
  118. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/anthropic/response/enumerable.rb +11 -0
  119. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/anthropic/response/file.rb +23 -0
  120. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/anthropic/response/web_search.rb +21 -0
  121. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/anthropic/stream_parser.rb +66 -0
  122. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/anthropic.rb +138 -0
  123. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/deepseek/format/completion_format.rb +68 -0
  124. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/deepseek/format.rb +27 -0
  125. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/deepseek.rb +75 -0
  126. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/gemini/audio.rb +73 -0
  127. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/gemini/error_handler.rb +47 -0
  128. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/gemini/files.rb +146 -0
  129. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/gemini/format/completion_format.rb +69 -0
  130. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/gemini/format.rb +39 -0
  131. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/gemini/images.rb +133 -0
  132. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/gemini/models.rb +60 -0
  133. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/gemini/response/completion.rb +35 -0
  134. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/gemini/response/embedding.rb +8 -0
  135. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/gemini/response/file.rb +11 -0
  136. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/gemini/response/files.rb +15 -0
  137. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/gemini/response/image.rb +31 -0
  138. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/gemini/response/models.rb +15 -0
  139. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/gemini/response/web_search.rb +22 -0
  140. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/gemini/stream_parser.rb +86 -0
  141. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/gemini.rb +173 -0
  142. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/llamacpp.rb +74 -0
  143. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/ollama/error_handler.rb +36 -0
  144. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/ollama/format/completion_format.rb +77 -0
  145. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/ollama/format.rb +29 -0
  146. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/ollama/models.rb +56 -0
  147. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/ollama/response/completion.rb +28 -0
  148. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/ollama/response/embedding.rb +9 -0
  149. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/ollama/stream_parser.rb +44 -0
  150. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/ollama.rb +116 -0
  151. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/openai/audio.rb +91 -0
  152. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/openai/error_handler.rb +46 -0
  153. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/openai/files.rb +134 -0
  154. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/openai/format/completion_format.rb +90 -0
  155. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/openai/format/moderation_format.rb +35 -0
  156. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/openai/format/respond_format.rb +72 -0
  157. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/openai/format.rb +54 -0
  158. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/openai/images.rb +109 -0
  159. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/openai/models.rb +55 -0
  160. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/openai/moderations.rb +65 -0
  161. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/openai/response/audio.rb +7 -0
  162. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/openai/response/completion.rb +40 -0
  163. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/openai/response/embedding.rb +9 -0
  164. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/openai/response/enumerable.rb +23 -0
  165. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/openai/response/file.rb +7 -0
  166. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/openai/response/image.rb +16 -0
  167. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/openai/response/moderations.rb +34 -0
  168. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/openai/response/responds.rb +48 -0
  169. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/openai/response/web_search.rb +21 -0
  170. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/openai/responses/stream_parser.rb +76 -0
  171. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/openai/responses.rb +99 -0
  172. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/openai/stream_parser.rb +86 -0
  173. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/openai/vector_stores.rb +228 -0
  174. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/openai.rb +206 -0
  175. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/xai/images.rb +58 -0
  176. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/xai.rb +72 -0
  177. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/zai.rb +74 -0
  178. data/lib/llm/shell/internal/llm.rb/lib/llm/response.rb +67 -0
  179. data/lib/llm/shell/internal/llm.rb/lib/llm/schema/array.rb +26 -0
  180. data/lib/llm/shell/internal/llm.rb/lib/llm/schema/boolean.rb +13 -0
  181. data/lib/llm/shell/internal/llm.rb/lib/llm/schema/integer.rb +43 -0
  182. data/lib/llm/shell/internal/llm.rb/lib/llm/schema/leaf.rb +78 -0
  183. data/lib/llm/shell/internal/llm.rb/lib/llm/schema/null.rb +13 -0
  184. data/lib/llm/shell/internal/llm.rb/lib/llm/schema/number.rb +43 -0
  185. data/lib/llm/shell/internal/llm.rb/lib/llm/schema/object.rb +41 -0
  186. data/lib/llm/shell/internal/llm.rb/lib/llm/schema/string.rb +34 -0
  187. data/lib/llm/shell/internal/llm.rb/lib/llm/schema/version.rb +8 -0
  188. data/lib/llm/shell/internal/llm.rb/lib/llm/schema.rb +81 -0
  189. data/lib/llm/shell/internal/llm.rb/lib/llm/server_tool.rb +32 -0
  190. data/lib/llm/shell/internal/llm.rb/lib/llm/tool/param.rb +75 -0
  191. data/lib/llm/shell/internal/llm.rb/lib/llm/tool.rb +78 -0
  192. data/lib/llm/shell/internal/llm.rb/lib/llm/utils.rb +19 -0
  193. data/lib/llm/shell/internal/llm.rb/lib/llm/version.rb +5 -0
  194. data/lib/llm/shell/internal/llm.rb/lib/llm.rb +121 -0
  195. data/lib/llm/shell/internal/optparse/lib/optionparser.rb +2 -0
  196. data/lib/llm/shell/internal/optparse/lib/optparse/ac.rb +70 -0
  197. data/lib/llm/shell/internal/optparse/lib/optparse/date.rb +18 -0
  198. data/lib/llm/shell/internal/optparse/lib/optparse/kwargs.rb +27 -0
  199. data/lib/llm/shell/internal/optparse/lib/optparse/shellwords.rb +7 -0
  200. data/lib/llm/shell/internal/optparse/lib/optparse/time.rb +11 -0
  201. data/lib/llm/shell/internal/optparse/lib/optparse/uri.rb +7 -0
  202. data/lib/llm/shell/internal/optparse/lib/optparse/version.rb +80 -0
  203. data/lib/llm/shell/internal/optparse/lib/optparse.rb +2469 -0
  204. data/lib/llm/shell/internal/paint/lib/paint/constants.rb +104 -0
  205. data/lib/llm/shell/internal/paint/lib/paint/pa.rb +13 -0
  206. data/lib/llm/shell/internal/paint/lib/paint/rgb_colors.rb +14 -0
  207. data/lib/llm/shell/internal/paint/lib/paint/shortcuts.rb +100 -0
  208. data/lib/llm/shell/internal/paint/lib/paint/shortcuts_version.rb +5 -0
  209. data/lib/llm/shell/internal/paint/lib/paint/util.rb +16 -0
  210. data/lib/llm/shell/internal/paint/lib/paint/version.rb +5 -0
  211. data/lib/llm/shell/internal/paint/lib/paint.rb +261 -0
  212. data/lib/llm/shell/internal/reline/lib/reline/config.rb +378 -0
  213. data/lib/llm/shell/internal/reline/lib/reline/face.rb +199 -0
  214. data/lib/llm/shell/internal/reline/lib/reline/history.rb +76 -0
  215. data/lib/llm/shell/internal/reline/lib/reline/io/ansi.rb +322 -0
  216. data/lib/llm/shell/internal/reline/lib/reline/io/dumb.rb +120 -0
  217. data/lib/llm/shell/internal/reline/lib/reline/io/windows.rb +530 -0
  218. data/lib/llm/shell/internal/reline/lib/reline/io.rb +55 -0
  219. data/lib/llm/shell/internal/reline/lib/reline/key_actor/base.rb +37 -0
  220. data/lib/llm/shell/internal/reline/lib/reline/key_actor/composite.rb +17 -0
  221. data/lib/llm/shell/internal/reline/lib/reline/key_actor/emacs.rb +517 -0
  222. data/lib/llm/shell/internal/reline/lib/reline/key_actor/vi_command.rb +518 -0
  223. data/lib/llm/shell/internal/reline/lib/reline/key_actor/vi_insert.rb +517 -0
  224. data/lib/llm/shell/internal/reline/lib/reline/key_actor.rb +8 -0
  225. data/lib/llm/shell/internal/reline/lib/reline/key_stroke.rb +119 -0
  226. data/lib/llm/shell/internal/reline/lib/reline/kill_ring.rb +125 -0
  227. data/lib/llm/shell/internal/reline/lib/reline/line_editor.rb +2356 -0
  228. data/lib/llm/shell/internal/reline/lib/reline/unicode/east_asian_width.rb +1292 -0
  229. data/lib/llm/shell/internal/reline/lib/reline/unicode.rb +421 -0
  230. data/lib/llm/shell/internal/reline/lib/reline/version.rb +3 -0
  231. data/lib/llm/shell/internal/reline/lib/reline.rb +527 -0
  232. data/lib/llm/shell/internal/tomlrb/lib/tomlrb/generated_parser.rb +712 -0
  233. data/lib/llm/shell/internal/tomlrb/lib/tomlrb/handler.rb +268 -0
  234. data/lib/llm/shell/internal/tomlrb/lib/tomlrb/local_date.rb +35 -0
  235. data/lib/llm/shell/internal/tomlrb/lib/tomlrb/local_date_time.rb +42 -0
  236. data/lib/llm/shell/internal/tomlrb/lib/tomlrb/local_time.rb +40 -0
  237. data/lib/llm/shell/internal/tomlrb/lib/tomlrb/parser.rb +21 -0
  238. data/lib/llm/shell/internal/tomlrb/lib/tomlrb/scanner.rb +92 -0
  239. data/lib/llm/shell/internal/tomlrb/lib/tomlrb/string_utils.rb +40 -0
  240. data/lib/llm/shell/internal/tomlrb/lib/tomlrb/version.rb +5 -0
  241. data/lib/llm/shell/internal/tomlrb/lib/tomlrb.rb +49 -0
  242. data/lib/llm/shell/options.rb +1 -1
  243. data/lib/llm/shell/renderer.rb +2 -3
  244. data/lib/llm/shell/repl.rb +21 -16
  245. data/lib/llm/shell/tool.rb +42 -0
  246. data/lib/llm/shell/tools/read_file.rb +15 -0
  247. data/lib/llm/shell/tools/system.rb +17 -0
  248. data/lib/llm/shell/tools/write_file.rb +16 -0
  249. data/lib/llm/shell/version.rb +1 -1
  250. data/lib/llm/shell.rb +83 -39
  251. data/libexec/llm-shell/shell +4 -6
  252. data/llm-shell.gemspec +0 -4
  253. metadata +233 -63
  254. data/lib/llm/function.rb +0 -17
  255. data/lib/llm/shell/command/extension.rb +0 -42
  256. data/lib/llm/shell/commands/utils.rb +0 -21
  257. data/lib/llm/shell/functions/read_file.rb +0 -22
  258. data/lib/llm/shell/functions/write_file.rb +0 -22
@@ -0,0 +1,712 @@
1
+ #
2
+ # DO NOT MODIFY!!!!
3
+ # This file is automatically generated by Racc 1.8.1
4
+ # from Racc grammar file "parser.y".
5
+ #
6
+
7
+ require 'racc/parser.rb'
8
+ module Tomlrb
9
+ class GeneratedParser < Racc::Parser
10
+ ##### State transition tables begin ###
11
+
12
+ racc_action_table = [
13
+ 2, 45, 16, 56, 17, 44, 18, 55, 23, 19,
14
+ 20, 14, 21, 22, 8, 4, 10, 36, 16, 12,
15
+ 17, 48, 18, 46, 47, 19, 20, 42, 21, 22,
16
+ 50, 51, 87, 86, 39, 54, 39, 72, 73, 74,
17
+ 75, 70, 71, 67, 68, 65, 66, 69, 78, nil,
18
+ 59, nil, nil, 12, 72, 73, 74, 75, 70, 71,
19
+ 67, 68, 65, 66, 69, nil, nil, 59, nil, nil,
20
+ 12, 72, 73, 74, 75, 70, 71, 67, 68, 65,
21
+ 66, 69, 91, nil, 59, 89, nil, 12, 72, 73,
22
+ 74, 75, 70, 71, 67, 68, 65, 66, 69, 91,
23
+ nil, 59, 89, nil, 12, 72, 73, 74, 75, 70,
24
+ 71, 67, 68, 65, 66, 69, 91, nil, 59, 89,
25
+ nil, 12, 72, 73, 74, 75, 70, 71, 67, 68,
26
+ 65, 66, 69, 91, nil, 59, 89, 29, 12, 30,
27
+ nil, 31, nil, nil, 32, 33, 27, 34, 35, 29,
28
+ nil, 30, 25, 31, nil, nil, 32, 33, 81, 34,
29
+ 35, 16, nil, 17, 25, 18, nil, nil, 19, 20,
30
+ 77, 21, 22, 16, nil, 17, nil, 18, nil, nil,
31
+ 19, 20, 42, 21, 22, 16, nil, 17, nil, 18,
32
+ nil, nil, 19, 20, 85, 21, 22, 95, nil, nil,
33
+ 93, nil, nil, nil, 94 ]
34
+
35
+ racc_action_check = [
36
+ 1, 13, 1, 41, 1, 13, 1, 41, 2, 1,
37
+ 1, 1, 1, 1, 1, 1, 1, 10, 11, 1,
38
+ 11, 25, 11, 24, 24, 11, 11, 11, 11, 11,
39
+ 26, 26, 57, 57, 38, 40, 11, 44, 44, 44,
40
+ 44, 44, 44, 44, 44, 44, 44, 44, 50, nil,
41
+ 44, nil, nil, 44, 55, 55, 55, 55, 55, 55,
42
+ 55, 55, 55, 55, 55, nil, nil, 55, nil, nil,
43
+ 55, 58, 58, 58, 58, 58, 58, 58, 58, 58,
44
+ 58, 58, 58, nil, 58, 58, nil, 58, 91, 91,
45
+ 91, 91, 91, 91, 91, 91, 91, 91, 91, 91,
46
+ nil, 91, 91, nil, 91, 94, 94, 94, 94, 94,
47
+ 94, 94, 94, 94, 94, 94, 94, nil, 94, 94,
48
+ nil, 94, 95, 95, 95, 95, 95, 95, 95, 95,
49
+ 95, 95, 95, 95, nil, 95, 95, 9, 95, 9,
50
+ nil, 9, nil, nil, 9, 9, 9, 9, 9, 51,
51
+ nil, 51, 9, 51, nil, nil, 51, 51, 51, 51,
52
+ 51, 45, nil, 45, 51, 45, nil, nil, 45, 45,
53
+ 45, 45, 45, 54, nil, 54, nil, 54, nil, nil,
54
+ 54, 54, 54, 54, 54, 56, nil, 56, nil, 56,
55
+ nil, nil, 56, 56, 56, 56, 56, 90, nil, nil,
56
+ 90, nil, nil, nil, 90 ]
57
+
58
+ racc_action_pointer = [
59
+ nil, 0, 8, nil, nil, nil, nil, nil, nil, 135,
60
+ 1, 16, nil, -17, nil, nil, nil, nil, nil, nil,
61
+ nil, nil, nil, nil, 9, 4, 13, nil, nil, nil,
62
+ nil, nil, nil, nil, nil, nil, nil, nil, 14, nil,
63
+ 14, -15, nil, nil, 34, 159, nil, nil, nil, nil,
64
+ 31, 147, nil, nil, 171, 51, 183, 18, 68, nil,
65
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
66
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
67
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
68
+ 183, 85, nil, nil, 102, 119, nil, nil, nil ]
69
+
70
+ racc_action_default = [
71
+ -1, -79, -79, -2, -3, -4, -5, -6, -7, -79,
72
+ -11, -79, -31, -79, -45, -46, -47, -48, -49, -50,
73
+ -51, -52, -53, 99, -79, -13, -79, -20, -21, -22,
74
+ -23, -24, -25, -26, -27, -28, -10, -29, -79, -32,
75
+ -33, -79, -39, -40, -67, -79, -8, -9, -12, -14,
76
+ -16, -79, -30, -34, -79, -67, -79, -79, -67, -61,
77
+ -62, -63, -64, -65, -66, -68, -69, -70, -71, -72,
78
+ -73, -74, -75, -76, -77, -78, -43, -44, -15, -17,
79
+ -18, -19, -35, -36, -37, -38, -41, -42, -54, -55,
80
+ -79, -67, -56, -58, -67, -67, -57, -59, -60 ]
81
+
82
+ racc_goto_table = [
83
+ 15, 24, 38, 88, 28, 37, 57, 1, 3, 5,
84
+ 6, 7, 9, 49, 53, 13, 92, 83, nil, nil,
85
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
86
+ nil, nil, 52, nil, nil, nil, 96, nil, nil, 97,
87
+ 98, nil, nil, 79, 76, 82, 80, nil, nil, nil,
88
+ nil, nil, nil, nil, nil, 84 ]
89
+
90
+ racc_goto_check = [
91
+ 18, 7, 13, 22, 10, 12, 17, 1, 2, 3,
92
+ 4, 5, 6, 9, 15, 19, 23, 17, nil, nil,
93
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
94
+ nil, nil, 12, nil, nil, nil, 22, nil, nil, 22,
95
+ 22, nil, nil, 7, 18, 13, 10, nil, nil, nil,
96
+ nil, nil, nil, nil, nil, 18 ]
97
+
98
+ racc_goto_pointer = [
99
+ nil, 7, 7, 8, 9, 10, 11, -8, nil, -13,
100
+ -5, nil, -6, -9, nil, -26, nil, -38, -1, 14,
101
+ nil, nil, -55, -74, nil, nil, nil ]
102
+
103
+ racc_goto_default = [
104
+ nil, nil, nil, nil, nil, 62, nil, nil, 26, nil,
105
+ nil, 11, nil, nil, 40, nil, 41, 90, 43, nil,
106
+ 61, 58, nil, nil, 60, 63, 64 ]
107
+
108
+ racc_reduce_table = [
109
+ 0, 0, :racc_error,
110
+ 0, 24, :_reduce_none,
111
+ 2, 24, :_reduce_none,
112
+ 2, 24, :_reduce_none,
113
+ 1, 25, :_reduce_none,
114
+ 1, 25, :_reduce_none,
115
+ 1, 25, :_reduce_none,
116
+ 1, 25, :_reduce_none,
117
+ 3, 26, :_reduce_none,
118
+ 3, 26, :_reduce_none,
119
+ 2, 29, :_reduce_10,
120
+ 1, 29, :_reduce_11,
121
+ 2, 30, :_reduce_12,
122
+ 1, 30, :_reduce_13,
123
+ 2, 30, :_reduce_none,
124
+ 2, 32, :_reduce_15,
125
+ 1, 32, :_reduce_16,
126
+ 2, 32, :_reduce_none,
127
+ 3, 31, :_reduce_18,
128
+ 3, 31, :_reduce_19,
129
+ 1, 31, :_reduce_20,
130
+ 1, 31, :_reduce_21,
131
+ 1, 33, :_reduce_none,
132
+ 1, 33, :_reduce_23,
133
+ 1, 33, :_reduce_none,
134
+ 1, 33, :_reduce_none,
135
+ 1, 33, :_reduce_none,
136
+ 1, 33, :_reduce_none,
137
+ 1, 33, :_reduce_none,
138
+ 2, 28, :_reduce_none,
139
+ 3, 28, :_reduce_none,
140
+ 1, 34, :_reduce_31,
141
+ 1, 35, :_reduce_32,
142
+ 1, 36, :_reduce_none,
143
+ 2, 36, :_reduce_none,
144
+ 2, 38, :_reduce_none,
145
+ 3, 37, :_reduce_36,
146
+ 3, 39, :_reduce_37,
147
+ 3, 39, :_reduce_38,
148
+ 1, 39, :_reduce_39,
149
+ 1, 39, :_reduce_40,
150
+ 4, 27, :_reduce_41,
151
+ 4, 27, :_reduce_42,
152
+ 3, 42, :_reduce_43,
153
+ 3, 42, :_reduce_44,
154
+ 1, 42, :_reduce_45,
155
+ 1, 42, :_reduce_46,
156
+ 1, 41, :_reduce_none,
157
+ 1, 41, :_reduce_48,
158
+ 1, 41, :_reduce_none,
159
+ 1, 41, :_reduce_none,
160
+ 1, 41, :_reduce_none,
161
+ 1, 41, :_reduce_none,
162
+ 1, 41, :_reduce_none,
163
+ 2, 43, :_reduce_none,
164
+ 1, 45, :_reduce_55,
165
+ 2, 45, :_reduce_none,
166
+ 2, 45, :_reduce_none,
167
+ 1, 46, :_reduce_58,
168
+ 2, 46, :_reduce_none,
169
+ 2, 46, :_reduce_none,
170
+ 1, 44, :_reduce_61,
171
+ 1, 40, :_reduce_62,
172
+ 1, 40, :_reduce_none,
173
+ 1, 40, :_reduce_none,
174
+ 1, 47, :_reduce_none,
175
+ 1, 47, :_reduce_none,
176
+ 0, 49, :_reduce_none,
177
+ 1, 49, :_reduce_68,
178
+ 1, 49, :_reduce_69,
179
+ 1, 49, :_reduce_70,
180
+ 1, 49, :_reduce_71,
181
+ 1, 49, :_reduce_72,
182
+ 1, 49, :_reduce_73,
183
+ 1, 49, :_reduce_74,
184
+ 1, 48, :_reduce_75,
185
+ 1, 48, :_reduce_76,
186
+ 1, 48, :_reduce_77,
187
+ 1, 48, :_reduce_78 ]
188
+
189
+ racc_reduce_n = 79
190
+
191
+ racc_shift_n = 99
192
+
193
+ racc_token_table = {
194
+ false => 0,
195
+ :error => 1,
196
+ :IDENTIFIER => 2,
197
+ :STRING_MULTI => 3,
198
+ :STRING_BASIC => 4,
199
+ :STRING_LITERAL_MULTI => 5,
200
+ :STRING_LITERAL => 6,
201
+ :DATETIME => 7,
202
+ :LOCAL_TIME => 8,
203
+ :INTEGER => 9,
204
+ :NON_DEC_INTEGER => 10,
205
+ :FLOAT => 11,
206
+ :FLOAT_KEYWORD => 12,
207
+ :BOOLEAN => 13,
208
+ :NEWLINE => 14,
209
+ :EOS => 15,
210
+ "[" => 16,
211
+ "]" => 17,
212
+ "." => 18,
213
+ "{" => 19,
214
+ "}" => 20,
215
+ "," => 21,
216
+ "=" => 22 }
217
+
218
+ racc_nt_base = 23
219
+
220
+ racc_use_result_var = true
221
+
222
+ Racc_arg = [
223
+ racc_action_table,
224
+ racc_action_check,
225
+ racc_action_default,
226
+ racc_action_pointer,
227
+ racc_goto_table,
228
+ racc_goto_check,
229
+ racc_goto_default,
230
+ racc_goto_pointer,
231
+ racc_nt_base,
232
+ racc_reduce_table,
233
+ racc_token_table,
234
+ racc_shift_n,
235
+ racc_reduce_n,
236
+ racc_use_result_var ]
237
+ Ractor.make_shareable(Racc_arg) if defined?(Ractor)
238
+
239
+ Racc_token_to_s_table = [
240
+ "$end",
241
+ "error",
242
+ "IDENTIFIER",
243
+ "STRING_MULTI",
244
+ "STRING_BASIC",
245
+ "STRING_LITERAL_MULTI",
246
+ "STRING_LITERAL",
247
+ "DATETIME",
248
+ "LOCAL_TIME",
249
+ "INTEGER",
250
+ "NON_DEC_INTEGER",
251
+ "FLOAT",
252
+ "FLOAT_KEYWORD",
253
+ "BOOLEAN",
254
+ "NEWLINE",
255
+ "EOS",
256
+ "\"[\"",
257
+ "\"]\"",
258
+ "\".\"",
259
+ "\"{\"",
260
+ "\"}\"",
261
+ "\",\"",
262
+ "\"=\"",
263
+ "$start",
264
+ "expressions",
265
+ "expression",
266
+ "table",
267
+ "assignment",
268
+ "inline_table",
269
+ "table_start",
270
+ "table_continued",
271
+ "table_identifier",
272
+ "table_next",
273
+ "table_identifier_component",
274
+ "inline_table_start",
275
+ "inline_table_end",
276
+ "inline_continued",
277
+ "inline_assignment",
278
+ "inline_next",
279
+ "inline_assignment_key",
280
+ "value",
281
+ "assignment_key_component",
282
+ "assignment_key",
283
+ "array",
284
+ "start_array",
285
+ "array_continued",
286
+ "array_next",
287
+ "scalar",
288
+ "string",
289
+ "literal" ]
290
+ Ractor.make_shareable(Racc_token_to_s_table) if defined?(Ractor)
291
+
292
+ Racc_debug_parser = false
293
+
294
+ ##### State transition tables end #####
295
+
296
+ # reduce 0 omitted
297
+
298
+ # reduce 1 omitted
299
+
300
+ # reduce 2 omitted
301
+
302
+ # reduce 3 omitted
303
+
304
+ # reduce 4 omitted
305
+
306
+ # reduce 5 omitted
307
+
308
+ # reduce 6 omitted
309
+
310
+ # reduce 7 omitted
311
+
312
+ # reduce 8 omitted
313
+
314
+ # reduce 9 omitted
315
+
316
+ module_eval(<<'.,.,', 'parser.y', 18)
317
+ def _reduce_10(val, _values, result)
318
+ @handler.start_(:array_of_tables)
319
+ result
320
+ end
321
+ .,.,
322
+
323
+ module_eval(<<'.,.,', 'parser.y', 19)
324
+ def _reduce_11(val, _values, result)
325
+ @handler.start_(:table)
326
+ result
327
+ end
328
+ .,.,
329
+
330
+ module_eval(<<'.,.,', 'parser.y', 22)
331
+ def _reduce_12(val, _values, result)
332
+ array = @handler.end_(:array_of_tables); @handler.set_context(array, is_array_of_tables: true)
333
+ result
334
+ end
335
+ .,.,
336
+
337
+ module_eval(<<'.,.,', 'parser.y', 23)
338
+ def _reduce_13(val, _values, result)
339
+ array = @handler.end_(:table); @handler.set_context(array)
340
+ result
341
+ end
342
+ .,.,
343
+
344
+ # reduce 14 omitted
345
+
346
+ module_eval(<<'.,.,', 'parser.y', 27)
347
+ def _reduce_15(val, _values, result)
348
+ array = @handler.end_(:array_of_tables); @handler.set_context(array, is_array_of_tables: true)
349
+ result
350
+ end
351
+ .,.,
352
+
353
+ module_eval(<<'.,.,', 'parser.y', 28)
354
+ def _reduce_16(val, _values, result)
355
+ array = @handler.end_(:table); @handler.set_context(array)
356
+ result
357
+ end
358
+ .,.,
359
+
360
+ # reduce 17 omitted
361
+
362
+ module_eval(<<'.,.,', 'parser.y', 32)
363
+ def _reduce_18(val, _values, result)
364
+ @handler.push(val[2])
365
+ result
366
+ end
367
+ .,.,
368
+
369
+ module_eval(<<'.,.,', 'parser.y', 33)
370
+ def _reduce_19(val, _values, result)
371
+ val[2].split('.').each { |k| @handler.push(k) }
372
+ result
373
+ end
374
+ .,.,
375
+
376
+ module_eval(<<'.,.,', 'parser.y', 35)
377
+ def _reduce_20(val, _values, result)
378
+ keys = val[0].split('.')
379
+ @handler.start_(:table)
380
+ keys.each { |key| @handler.push(key) }
381
+
382
+ result
383
+ end
384
+ .,.,
385
+
386
+ module_eval(<<'.,.,', 'parser.y', 39)
387
+ def _reduce_21(val, _values, result)
388
+ @handler.push(val[0])
389
+ result
390
+ end
391
+ .,.,
392
+
393
+ # reduce 22 omitted
394
+
395
+ module_eval(<<'.,.,', 'parser.y', 43)
396
+ def _reduce_23(val, _values, result)
397
+ result = StringUtils.replace_escaped_chars(val[0])
398
+ result
399
+ end
400
+ .,.,
401
+
402
+ # reduce 24 omitted
403
+
404
+ # reduce 25 omitted
405
+
406
+ # reduce 26 omitted
407
+
408
+ # reduce 27 omitted
409
+
410
+ # reduce 28 omitted
411
+
412
+ # reduce 29 omitted
413
+
414
+ # reduce 30 omitted
415
+
416
+ module_eval(<<'.,.,', 'parser.y', 55)
417
+ def _reduce_31(val, _values, result)
418
+ @handler.start_(:inline)
419
+ result
420
+ end
421
+ .,.,
422
+
423
+ module_eval(<<'.,.,', 'parser.y', 59)
424
+ def _reduce_32(val, _values, result)
425
+ array = @handler.end_(:inline)
426
+ @handler.push_inline(array)
427
+
428
+ result
429
+ end
430
+ .,.,
431
+
432
+ # reduce 33 omitted
433
+
434
+ # reduce 34 omitted
435
+
436
+ # reduce 35 omitted
437
+
438
+ module_eval(<<'.,.,', 'parser.y', 72)
439
+ def _reduce_36(val, _values, result)
440
+ keys = @handler.end_(:inline_keys)
441
+ @handler.push(keys)
442
+
443
+ result
444
+ end
445
+ .,.,
446
+
447
+ module_eval(<<'.,.,', 'parser.y', 78)
448
+ def _reduce_37(val, _values, result)
449
+ @handler.push(val[2])
450
+
451
+ result
452
+ end
453
+ .,.,
454
+
455
+ module_eval(<<'.,.,', 'parser.y', 80)
456
+ def _reduce_38(val, _values, result)
457
+ val[2].split('.').each { |k| @handler.push(k) }
458
+ result
459
+ end
460
+ .,.,
461
+
462
+ module_eval(<<'.,.,', 'parser.y', 82)
463
+ def _reduce_39(val, _values, result)
464
+ keys = val[0].split('.')
465
+ @handler.start_(:inline_keys)
466
+ keys.each { |key| @handler.push(key) }
467
+
468
+ result
469
+ end
470
+ .,.,
471
+
472
+ module_eval(<<'.,.,', 'parser.y', 87)
473
+ def _reduce_40(val, _values, result)
474
+ @handler.start_(:inline_keys)
475
+ @handler.push(val[0])
476
+
477
+ result
478
+ end
479
+ .,.,
480
+
481
+ module_eval(<<'.,.,', 'parser.y', 93)
482
+ def _reduce_41(val, _values, result)
483
+ keys = @handler.end_(:keys)
484
+ value = keys.pop
485
+ @handler.validate_value(value)
486
+ @handler.push(value)
487
+ @handler.assign(keys)
488
+
489
+ result
490
+ end
491
+ .,.,
492
+
493
+ module_eval(<<'.,.,', 'parser.y', 100)
494
+ def _reduce_42(val, _values, result)
495
+ keys = @handler.end_(:keys)
496
+ value = keys.pop
497
+ @handler.validate_value(value)
498
+ @handler.push(value)
499
+ @handler.assign(keys)
500
+
501
+ result
502
+ end
503
+ .,.,
504
+
505
+ module_eval(<<'.,.,', 'parser.y', 108)
506
+ def _reduce_43(val, _values, result)
507
+ @handler.push(val[2])
508
+ result
509
+ end
510
+ .,.,
511
+
512
+ module_eval(<<'.,.,', 'parser.y', 109)
513
+ def _reduce_44(val, _values, result)
514
+ val[2].split('.').each { |k| @handler.push(k) }
515
+ result
516
+ end
517
+ .,.,
518
+
519
+ module_eval(<<'.,.,', 'parser.y', 111)
520
+ def _reduce_45(val, _values, result)
521
+ keys = val[0].split('.')
522
+ @handler.start_(:keys)
523
+ keys.each { |key| @handler.push(key) }
524
+
525
+ result
526
+ end
527
+ .,.,
528
+
529
+ module_eval(<<'.,.,', 'parser.y', 115)
530
+ def _reduce_46(val, _values, result)
531
+ @handler.start_(:keys); @handler.push(val[0])
532
+ result
533
+ end
534
+ .,.,
535
+
536
+ # reduce 47 omitted
537
+
538
+ module_eval(<<'.,.,', 'parser.y', 119)
539
+ def _reduce_48(val, _values, result)
540
+ result = StringUtils.replace_escaped_chars(val[0])
541
+ result
542
+ end
543
+ .,.,
544
+
545
+ # reduce 49 omitted
546
+
547
+ # reduce 50 omitted
548
+
549
+ # reduce 51 omitted
550
+
551
+ # reduce 52 omitted
552
+
553
+ # reduce 53 omitted
554
+
555
+ # reduce 54 omitted
556
+
557
+ module_eval(<<'.,.,', 'parser.y', 130)
558
+ def _reduce_55(val, _values, result)
559
+ array = @handler.end_(:array); @handler.push(array.compact)
560
+ result
561
+ end
562
+ .,.,
563
+
564
+ # reduce 56 omitted
565
+
566
+ # reduce 57 omitted
567
+
568
+ module_eval(<<'.,.,', 'parser.y', 135)
569
+ def _reduce_58(val, _values, result)
570
+ array = @handler.end_(:array); @handler.push(array.compact)
571
+ result
572
+ end
573
+ .,.,
574
+
575
+ # reduce 59 omitted
576
+
577
+ # reduce 60 omitted
578
+
579
+ module_eval(<<'.,.,', 'parser.y', 140)
580
+ def _reduce_61(val, _values, result)
581
+ @handler.start_(:array)
582
+ result
583
+ end
584
+ .,.,
585
+
586
+ module_eval(<<'.,.,', 'parser.y', 143)
587
+ def _reduce_62(val, _values, result)
588
+ @handler.push(val[0])
589
+ result
590
+ end
591
+ .,.,
592
+
593
+ # reduce 63 omitted
594
+
595
+ # reduce 64 omitted
596
+
597
+ # reduce 65 omitted
598
+
599
+ # reduce 66 omitted
600
+
601
+ # reduce 67 omitted
602
+
603
+ module_eval(<<'.,.,', 'parser.y', 152)
604
+ def _reduce_68(val, _values, result)
605
+ result = val[0].to_f
606
+ result
607
+ end
608
+ .,.,
609
+
610
+ module_eval(<<'.,.,', 'parser.y', 154)
611
+ def _reduce_69(val, _values, result)
612
+ v = val[0]
613
+ result = if v.end_with?('nan')
614
+ Float::NAN
615
+ else
616
+ (v[0] == '-' ? -1 : 1) * Float::INFINITY
617
+ end
618
+
619
+ result
620
+ end
621
+ .,.,
622
+
623
+ module_eval(<<'.,.,', 'parser.y', 161)
624
+ def _reduce_70(val, _values, result)
625
+ result = val[0].to_i
626
+ result
627
+ end
628
+ .,.,
629
+
630
+ module_eval(<<'.,.,', 'parser.y', 163)
631
+ def _reduce_71(val, _values, result)
632
+ base = case val[0][1]
633
+ when 'x' then 16
634
+ when 'o' then 8
635
+ when 'b' then 2
636
+ end
637
+ result = val[0].to_i(base)
638
+
639
+ result
640
+ end
641
+ .,.,
642
+
643
+ module_eval(<<'.,.,', 'parser.y', 170)
644
+ def _reduce_72(val, _values, result)
645
+ result = val[0] == 'true' ? true : false
646
+ result
647
+ end
648
+ .,.,
649
+
650
+ module_eval(<<'.,.,', 'parser.y', 172)
651
+ def _reduce_73(val, _values, result)
652
+ v = val[0]
653
+ result = if v[6].nil?
654
+ if v[4].nil?
655
+ LocalDate.new(v[0], v[1], v[2])
656
+ else
657
+ LocalDateTime.new(v[0], v[1], v[2], v[3] || 0, v[4] || 0, v[5].to_f)
658
+ end
659
+ else
660
+ # Patch for 24:00:00 which Ruby parses
661
+ if v[3].to_i == 24 && v[4].to_i == 0 && v[5].to_i == 0
662
+ v[3] = (v[3].to_i + 1).to_s
663
+ end
664
+
665
+ Time.new(v[0], v[1], v[2], v[3] || 0, v[4] || 0, v[5].to_f, v[6])
666
+ end
667
+
668
+ result
669
+ end
670
+ .,.,
671
+
672
+ module_eval(<<'.,.,', 'parser.y', 188)
673
+ def _reduce_74(val, _values, result)
674
+ result = LocalTime.new(*val[0])
675
+ result
676
+ end
677
+ .,.,
678
+
679
+ module_eval(<<'.,.,', 'parser.y', 191)
680
+ def _reduce_75(val, _values, result)
681
+ result = StringUtils.replace_escaped_chars(StringUtils.multiline_replacements(val[0]))
682
+ result
683
+ end
684
+ .,.,
685
+
686
+ module_eval(<<'.,.,', 'parser.y', 192)
687
+ def _reduce_76(val, _values, result)
688
+ result = StringUtils.replace_escaped_chars(val[0])
689
+ result
690
+ end
691
+ .,.,
692
+
693
+ module_eval(<<'.,.,', 'parser.y', 193)
694
+ def _reduce_77(val, _values, result)
695
+ result = StringUtils.strip_spaces(val[0])
696
+ result
697
+ end
698
+ .,.,
699
+
700
+ module_eval(<<'.,.,', 'parser.y', 194)
701
+ def _reduce_78(val, _values, result)
702
+ result = val[0]
703
+ result
704
+ end
705
+ .,.,
706
+
707
+ def _reduce_none(val, _values, result)
708
+ val[0]
709
+ end
710
+
711
+ end # class GeneratedParser
712
+ end # module Tomlrb