@fugood/llama.node 0.6.3 → 1.0.0-beta.2

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 (377) hide show
  1. package/CMakeLists.txt +40 -30
  2. package/README.md +4 -1
  3. package/lib/binding.js +41 -29
  4. package/lib/binding.ts +26 -25
  5. package/package.json +40 -7
  6. package/scripts/build.js +47 -0
  7. package/scripts/llama.cpp.patch +109 -0
  8. package/src/anyascii.c +22223 -0
  9. package/src/anyascii.h +42 -0
  10. package/src/tts_utils.cpp +20 -7
  11. package/src/tts_utils.h +2 -0
  12. package/bin/darwin/arm64/llama-node.node +0 -0
  13. package/bin/darwin/x64/llama-node.node +0 -0
  14. package/bin/linux/arm64/llama-node.node +0 -0
  15. package/bin/linux/x64/llama-node.node +0 -0
  16. package/bin/linux-cuda/arm64/llama-node.node +0 -0
  17. package/bin/linux-cuda/x64/llama-node.node +0 -0
  18. package/bin/linux-vulkan/arm64/llama-node.node +0 -0
  19. package/bin/linux-vulkan/x64/llama-node.node +0 -0
  20. package/bin/win32/x64/llama-node.node +0 -0
  21. package/bin/win32/x64/node.lib +0 -0
  22. package/bin/win32-vulkan/arm64/llama-node.node +0 -0
  23. package/bin/win32-vulkan/arm64/node.lib +0 -0
  24. package/bin/win32-vulkan/x64/llama-node.node +0 -0
  25. package/bin/win32-vulkan/x64/node.lib +0 -0
  26. package/src/llama.cpp/.github/workflows/build-linux-cross.yml +0 -233
  27. package/src/llama.cpp/.github/workflows/build.yml +0 -1078
  28. package/src/llama.cpp/.github/workflows/close-issue.yml +0 -28
  29. package/src/llama.cpp/.github/workflows/docker.yml +0 -178
  30. package/src/llama.cpp/.github/workflows/editorconfig.yml +0 -29
  31. package/src/llama.cpp/.github/workflows/gguf-publish.yml +0 -44
  32. package/src/llama.cpp/.github/workflows/labeler.yml +0 -17
  33. package/src/llama.cpp/.github/workflows/python-check-requirements.yml +0 -33
  34. package/src/llama.cpp/.github/workflows/python-lint.yml +0 -30
  35. package/src/llama.cpp/.github/workflows/python-type-check.yml +0 -40
  36. package/src/llama.cpp/.github/workflows/release.yml +0 -739
  37. package/src/llama.cpp/.github/workflows/server.yml +0 -237
  38. package/src/llama.cpp/.github/workflows/winget.yml +0 -42
  39. package/src/llama.cpp/cmake/arm64-apple-clang.cmake +0 -16
  40. package/src/llama.cpp/cmake/arm64-windows-llvm.cmake +0 -16
  41. package/src/llama.cpp/cmake/build-info.cmake +0 -64
  42. package/src/llama.cpp/cmake/common.cmake +0 -35
  43. package/src/llama.cpp/cmake/git-vars.cmake +0 -22
  44. package/src/llama.cpp/cmake/x64-windows-llvm.cmake +0 -5
  45. package/src/llama.cpp/common/build-info.cpp.in +0 -4
  46. package/src/llama.cpp/docs/build.md +0 -561
  47. package/src/llama.cpp/examples/CMakeLists.txt +0 -43
  48. package/src/llama.cpp/examples/batched/CMakeLists.txt +0 -5
  49. package/src/llama.cpp/examples/batched/batched.cpp +0 -246
  50. package/src/llama.cpp/examples/chat-13B.bat +0 -57
  51. package/src/llama.cpp/examples/convert-llama2c-to-ggml/CMakeLists.txt +0 -5
  52. package/src/llama.cpp/examples/convert-llama2c-to-ggml/convert-llama2c-to-ggml.cpp +0 -941
  53. package/src/llama.cpp/examples/deprecation-warning/deprecation-warning.cpp +0 -35
  54. package/src/llama.cpp/examples/embedding/CMakeLists.txt +0 -5
  55. package/src/llama.cpp/examples/embedding/embedding.cpp +0 -323
  56. package/src/llama.cpp/examples/eval-callback/CMakeLists.txt +0 -10
  57. package/src/llama.cpp/examples/eval-callback/eval-callback.cpp +0 -194
  58. package/src/llama.cpp/examples/gen-docs/CMakeLists.txt +0 -5
  59. package/src/llama.cpp/examples/gen-docs/gen-docs.cpp +0 -83
  60. package/src/llama.cpp/examples/gguf/CMakeLists.txt +0 -5
  61. package/src/llama.cpp/examples/gguf/gguf.cpp +0 -265
  62. package/src/llama.cpp/examples/gguf-hash/CMakeLists.txt +0 -22
  63. package/src/llama.cpp/examples/gguf-hash/deps/rotate-bits/rotate-bits.h +0 -46
  64. package/src/llama.cpp/examples/gguf-hash/deps/sha1/sha1.c +0 -295
  65. package/src/llama.cpp/examples/gguf-hash/deps/sha1/sha1.h +0 -52
  66. package/src/llama.cpp/examples/gguf-hash/deps/sha256/sha256.c +0 -221
  67. package/src/llama.cpp/examples/gguf-hash/deps/sha256/sha256.h +0 -24
  68. package/src/llama.cpp/examples/gguf-hash/deps/xxhash/xxhash.c +0 -42
  69. package/src/llama.cpp/examples/gguf-hash/deps/xxhash/xxhash.h +0 -7093
  70. package/src/llama.cpp/examples/gguf-hash/gguf-hash.cpp +0 -694
  71. package/src/llama.cpp/examples/gritlm/CMakeLists.txt +0 -5
  72. package/src/llama.cpp/examples/gritlm/gritlm.cpp +0 -229
  73. package/src/llama.cpp/examples/jeopardy/questions.txt +0 -100
  74. package/src/llama.cpp/examples/llama.android/app/build.gradle.kts +0 -65
  75. package/src/llama.cpp/examples/llama.android/build.gradle.kts +0 -6
  76. package/src/llama.cpp/examples/llama.android/llama/build.gradle.kts +0 -71
  77. package/src/llama.cpp/examples/llama.android/llama/src/main/cpp/CMakeLists.txt +0 -53
  78. package/src/llama.cpp/examples/llama.android/llama/src/main/cpp/llama-android.cpp +0 -452
  79. package/src/llama.cpp/examples/llama.android/settings.gradle.kts +0 -18
  80. package/src/llama.cpp/examples/lookahead/CMakeLists.txt +0 -5
  81. package/src/llama.cpp/examples/lookahead/lookahead.cpp +0 -472
  82. package/src/llama.cpp/examples/lookup/CMakeLists.txt +0 -23
  83. package/src/llama.cpp/examples/lookup/lookup-create.cpp +0 -40
  84. package/src/llama.cpp/examples/lookup/lookup-merge.cpp +0 -47
  85. package/src/llama.cpp/examples/lookup/lookup-stats.cpp +0 -157
  86. package/src/llama.cpp/examples/lookup/lookup.cpp +0 -242
  87. package/src/llama.cpp/examples/parallel/CMakeLists.txt +0 -5
  88. package/src/llama.cpp/examples/parallel/parallel.cpp +0 -492
  89. package/src/llama.cpp/examples/passkey/CMakeLists.txt +0 -5
  90. package/src/llama.cpp/examples/passkey/passkey.cpp +0 -277
  91. package/src/llama.cpp/examples/retrieval/CMakeLists.txt +0 -5
  92. package/src/llama.cpp/examples/retrieval/retrieval.cpp +0 -304
  93. package/src/llama.cpp/examples/save-load-state/CMakeLists.txt +0 -5
  94. package/src/llama.cpp/examples/save-load-state/save-load-state.cpp +0 -246
  95. package/src/llama.cpp/examples/simple/CMakeLists.txt +0 -5
  96. package/src/llama.cpp/examples/simple/simple.cpp +0 -206
  97. package/src/llama.cpp/examples/simple-chat/CMakeLists.txt +0 -5
  98. package/src/llama.cpp/examples/simple-chat/simple-chat.cpp +0 -206
  99. package/src/llama.cpp/examples/simple-cmake-pkg/CMakeLists.txt +0 -11
  100. package/src/llama.cpp/examples/speculative/CMakeLists.txt +0 -5
  101. package/src/llama.cpp/examples/speculative/speculative.cpp +0 -644
  102. package/src/llama.cpp/examples/speculative-simple/CMakeLists.txt +0 -5
  103. package/src/llama.cpp/examples/speculative-simple/speculative-simple.cpp +0 -261
  104. package/src/llama.cpp/examples/sycl/CMakeLists.txt +0 -9
  105. package/src/llama.cpp/examples/sycl/build.sh +0 -23
  106. package/src/llama.cpp/examples/sycl/ls-sycl-device.cpp +0 -13
  107. package/src/llama.cpp/examples/sycl/run-llama2.sh +0 -27
  108. package/src/llama.cpp/examples/sycl/run-llama3.sh +0 -28
  109. package/src/llama.cpp/examples/sycl/win-build-sycl.bat +0 -33
  110. package/src/llama.cpp/examples/sycl/win-run-llama2.bat +0 -9
  111. package/src/llama.cpp/examples/sycl/win-run-llama3.bat +0 -9
  112. package/src/llama.cpp/examples/training/CMakeLists.txt +0 -5
  113. package/src/llama.cpp/examples/training/finetune.cpp +0 -96
  114. package/src/llama.cpp/ggml/cmake/GitVars.cmake +0 -22
  115. package/src/llama.cpp/ggml/cmake/common.cmake +0 -26
  116. package/src/llama.cpp/ggml/src/ggml-alloc.c +0 -1042
  117. package/src/llama.cpp/ggml/src/ggml-backend-impl.h +0 -255
  118. package/src/llama.cpp/ggml/src/ggml-backend-reg.cpp +0 -586
  119. package/src/llama.cpp/ggml/src/ggml-backend.cpp +0 -2008
  120. package/src/llama.cpp/ggml/src/ggml-blas/CMakeLists.txt +0 -87
  121. package/src/llama.cpp/ggml/src/ggml-blas/ggml-blas.cpp +0 -517
  122. package/src/llama.cpp/ggml/src/ggml-cann/CMakeLists.txt +0 -74
  123. package/src/llama.cpp/ggml/src/ggml-cann/acl_tensor.cpp +0 -179
  124. package/src/llama.cpp/ggml/src/ggml-cann/acl_tensor.h +0 -258
  125. package/src/llama.cpp/ggml/src/ggml-cann/aclnn_ops.cpp +0 -2863
  126. package/src/llama.cpp/ggml/src/ggml-cann/aclnn_ops.h +0 -1110
  127. package/src/llama.cpp/ggml/src/ggml-cann/common.h +0 -420
  128. package/src/llama.cpp/ggml/src/ggml-cann/ggml-cann.cpp +0 -2570
  129. package/src/llama.cpp/ggml/src/ggml-common.h +0 -1857
  130. package/src/llama.cpp/ggml/src/ggml-cpu/cmake/FindSIMD.cmake +0 -100
  131. package/src/llama.cpp/ggml/src/ggml-cuda/CMakeLists.txt +0 -184
  132. package/src/llama.cpp/ggml/src/ggml-cuda/vendors/cuda.h +0 -15
  133. package/src/llama.cpp/ggml/src/ggml-cuda/vendors/hip.h +0 -243
  134. package/src/llama.cpp/ggml/src/ggml-cuda/vendors/musa.h +0 -140
  135. package/src/llama.cpp/ggml/src/ggml-hip/CMakeLists.txt +0 -131
  136. package/src/llama.cpp/ggml/src/ggml-impl.h +0 -601
  137. package/src/llama.cpp/ggml/src/ggml-kompute/CMakeLists.txt +0 -166
  138. package/src/llama.cpp/ggml/src/ggml-kompute/ggml-kompute.cpp +0 -2251
  139. package/src/llama.cpp/ggml/src/ggml-metal/CMakeLists.txt +0 -120
  140. package/src/llama.cpp/ggml/src/ggml-metal/ggml-metal-impl.h +0 -622
  141. package/src/llama.cpp/ggml/src/ggml-musa/CMakeLists.txt +0 -113
  142. package/src/llama.cpp/ggml/src/ggml-opencl/CMakeLists.txt +0 -96
  143. package/src/llama.cpp/ggml/src/ggml-opencl/ggml-opencl.cpp +0 -5124
  144. package/src/llama.cpp/ggml/src/ggml-opt.cpp +0 -1037
  145. package/src/llama.cpp/ggml/src/ggml-quants.c +0 -5232
  146. package/src/llama.cpp/ggml/src/ggml-quants.h +0 -100
  147. package/src/llama.cpp/ggml/src/ggml-rpc/CMakeLists.txt +0 -9
  148. package/src/llama.cpp/ggml/src/ggml-rpc/ggml-rpc.cpp +0 -1813
  149. package/src/llama.cpp/ggml/src/ggml-sycl/CMakeLists.txt +0 -189
  150. package/src/llama.cpp/ggml/src/ggml-sycl/backend.hpp +0 -37
  151. package/src/llama.cpp/ggml/src/ggml-sycl/binbcast.cpp +0 -239
  152. package/src/llama.cpp/ggml/src/ggml-sycl/binbcast.hpp +0 -39
  153. package/src/llama.cpp/ggml/src/ggml-sycl/common.cpp +0 -83
  154. package/src/llama.cpp/ggml/src/ggml-sycl/common.hpp +0 -493
  155. package/src/llama.cpp/ggml/src/ggml-sycl/concat.cpp +0 -197
  156. package/src/llama.cpp/ggml/src/ggml-sycl/concat.hpp +0 -20
  157. package/src/llama.cpp/ggml/src/ggml-sycl/conv.cpp +0 -100
  158. package/src/llama.cpp/ggml/src/ggml-sycl/conv.hpp +0 -20
  159. package/src/llama.cpp/ggml/src/ggml-sycl/convert.cpp +0 -623
  160. package/src/llama.cpp/ggml/src/ggml-sycl/convert.hpp +0 -34
  161. package/src/llama.cpp/ggml/src/ggml-sycl/cpy.cpp +0 -701
  162. package/src/llama.cpp/ggml/src/ggml-sycl/cpy.hpp +0 -11
  163. package/src/llama.cpp/ggml/src/ggml-sycl/dequantize.hpp +0 -791
  164. package/src/llama.cpp/ggml/src/ggml-sycl/dmmv.cpp +0 -1160
  165. package/src/llama.cpp/ggml/src/ggml-sycl/dmmv.hpp +0 -27
  166. package/src/llama.cpp/ggml/src/ggml-sycl/dpct/helper.hpp +0 -2957
  167. package/src/llama.cpp/ggml/src/ggml-sycl/element_wise.cpp +0 -1536
  168. package/src/llama.cpp/ggml/src/ggml-sycl/element_wise.hpp +0 -75
  169. package/src/llama.cpp/ggml/src/ggml-sycl/gemm.hpp +0 -99
  170. package/src/llama.cpp/ggml/src/ggml-sycl/getrows.cpp +0 -311
  171. package/src/llama.cpp/ggml/src/ggml-sycl/getrows.hpp +0 -20
  172. package/src/llama.cpp/ggml/src/ggml-sycl/ggml-sycl.cpp +0 -4443
  173. package/src/llama.cpp/ggml/src/ggml-sycl/gla.cpp +0 -105
  174. package/src/llama.cpp/ggml/src/ggml-sycl/gla.hpp +0 -8
  175. package/src/llama.cpp/ggml/src/ggml-sycl/im2col.cpp +0 -136
  176. package/src/llama.cpp/ggml/src/ggml-sycl/im2col.hpp +0 -21
  177. package/src/llama.cpp/ggml/src/ggml-sycl/mmq.cpp +0 -3030
  178. package/src/llama.cpp/ggml/src/ggml-sycl/mmq.hpp +0 -33
  179. package/src/llama.cpp/ggml/src/ggml-sycl/mmvq.cpp +0 -1108
  180. package/src/llama.cpp/ggml/src/ggml-sycl/mmvq.hpp +0 -27
  181. package/src/llama.cpp/ggml/src/ggml-sycl/norm.cpp +0 -474
  182. package/src/llama.cpp/ggml/src/ggml-sycl/norm.hpp +0 -26
  183. package/src/llama.cpp/ggml/src/ggml-sycl/outprod.cpp +0 -46
  184. package/src/llama.cpp/ggml/src/ggml-sycl/outprod.hpp +0 -10
  185. package/src/llama.cpp/ggml/src/ggml-sycl/presets.hpp +0 -74
  186. package/src/llama.cpp/ggml/src/ggml-sycl/quants.hpp +0 -83
  187. package/src/llama.cpp/ggml/src/ggml-sycl/rope.cpp +0 -362
  188. package/src/llama.cpp/ggml/src/ggml-sycl/rope.hpp +0 -20
  189. package/src/llama.cpp/ggml/src/ggml-sycl/softmax.cpp +0 -264
  190. package/src/llama.cpp/ggml/src/ggml-sycl/softmax.hpp +0 -20
  191. package/src/llama.cpp/ggml/src/ggml-sycl/sycl_hw.cpp +0 -13
  192. package/src/llama.cpp/ggml/src/ggml-sycl/sycl_hw.hpp +0 -23
  193. package/src/llama.cpp/ggml/src/ggml-sycl/tsembd.cpp +0 -73
  194. package/src/llama.cpp/ggml/src/ggml-sycl/tsembd.hpp +0 -20
  195. package/src/llama.cpp/ggml/src/ggml-sycl/vecdotq.hpp +0 -1215
  196. package/src/llama.cpp/ggml/src/ggml-sycl/wkv.cpp +0 -305
  197. package/src/llama.cpp/ggml/src/ggml-sycl/wkv.hpp +0 -10
  198. package/src/llama.cpp/ggml/src/ggml-threading.cpp +0 -12
  199. package/src/llama.cpp/ggml/src/ggml-threading.h +0 -14
  200. package/src/llama.cpp/ggml/src/ggml-vulkan/CMakeLists.txt +0 -196
  201. package/src/llama.cpp/ggml/src/ggml-vulkan/ggml-vulkan.cpp +0 -10699
  202. package/src/llama.cpp/ggml/src/ggml-vulkan/vulkan-shaders/CMakeLists.txt +0 -39
  203. package/src/llama.cpp/ggml/src/ggml-vulkan/vulkan-shaders/vulkan-shaders-gen.cpp +0 -751
  204. package/src/llama.cpp/ggml/src/ggml.c +0 -6550
  205. package/src/llama.cpp/ggml/src/gguf.cpp +0 -1330
  206. package/src/llama.cpp/models/.editorconfig +0 -1
  207. package/src/llama.cpp/models/ggml-vocab-aquila.gguf +0 -0
  208. package/src/llama.cpp/models/ggml-vocab-baichuan.gguf +0 -0
  209. package/src/llama.cpp/models/ggml-vocab-bert-bge.gguf +0 -0
  210. package/src/llama.cpp/models/ggml-vocab-bert-bge.gguf.inp +0 -112
  211. package/src/llama.cpp/models/ggml-vocab-bert-bge.gguf.out +0 -46
  212. package/src/llama.cpp/models/ggml-vocab-chameleon.gguf.inp +0 -112
  213. package/src/llama.cpp/models/ggml-vocab-chameleon.gguf.out +0 -46
  214. package/src/llama.cpp/models/ggml-vocab-command-r.gguf +0 -0
  215. package/src/llama.cpp/models/ggml-vocab-command-r.gguf.inp +0 -112
  216. package/src/llama.cpp/models/ggml-vocab-command-r.gguf.out +0 -46
  217. package/src/llama.cpp/models/ggml-vocab-deepseek-coder.gguf +0 -0
  218. package/src/llama.cpp/models/ggml-vocab-deepseek-coder.gguf.inp +0 -112
  219. package/src/llama.cpp/models/ggml-vocab-deepseek-coder.gguf.out +0 -46
  220. package/src/llama.cpp/models/ggml-vocab-deepseek-llm.gguf +0 -0
  221. package/src/llama.cpp/models/ggml-vocab-deepseek-llm.gguf.inp +0 -112
  222. package/src/llama.cpp/models/ggml-vocab-deepseek-llm.gguf.out +0 -46
  223. package/src/llama.cpp/models/ggml-vocab-deepseek-r1-qwen.gguf.inp +0 -112
  224. package/src/llama.cpp/models/ggml-vocab-deepseek-r1-qwen.gguf.out +0 -46
  225. package/src/llama.cpp/models/ggml-vocab-falcon.gguf +0 -0
  226. package/src/llama.cpp/models/ggml-vocab-falcon.gguf.inp +0 -112
  227. package/src/llama.cpp/models/ggml-vocab-falcon.gguf.out +0 -46
  228. package/src/llama.cpp/models/ggml-vocab-gpt-2.gguf +0 -0
  229. package/src/llama.cpp/models/ggml-vocab-gpt-2.gguf.inp +0 -112
  230. package/src/llama.cpp/models/ggml-vocab-gpt-2.gguf.out +0 -46
  231. package/src/llama.cpp/models/ggml-vocab-gpt-4o.gguf.inp +0 -112
  232. package/src/llama.cpp/models/ggml-vocab-gpt-4o.gguf.out +0 -46
  233. package/src/llama.cpp/models/ggml-vocab-gpt-neox.gguf +0 -0
  234. package/src/llama.cpp/models/ggml-vocab-llama-bpe.gguf +0 -0
  235. package/src/llama.cpp/models/ggml-vocab-llama-bpe.gguf.inp +0 -112
  236. package/src/llama.cpp/models/ggml-vocab-llama-bpe.gguf.out +0 -46
  237. package/src/llama.cpp/models/ggml-vocab-llama-spm.gguf +0 -0
  238. package/src/llama.cpp/models/ggml-vocab-llama-spm.gguf.inp +0 -112
  239. package/src/llama.cpp/models/ggml-vocab-llama-spm.gguf.out +0 -46
  240. package/src/llama.cpp/models/ggml-vocab-llama4.gguf.inp +0 -112
  241. package/src/llama.cpp/models/ggml-vocab-llama4.gguf.out +0 -46
  242. package/src/llama.cpp/models/ggml-vocab-mpt.gguf +0 -0
  243. package/src/llama.cpp/models/ggml-vocab-mpt.gguf.inp +0 -112
  244. package/src/llama.cpp/models/ggml-vocab-mpt.gguf.out +0 -46
  245. package/src/llama.cpp/models/ggml-vocab-phi-3.gguf +0 -0
  246. package/src/llama.cpp/models/ggml-vocab-phi-3.gguf.inp +0 -112
  247. package/src/llama.cpp/models/ggml-vocab-phi-3.gguf.out +0 -46
  248. package/src/llama.cpp/models/ggml-vocab-pixtral.gguf.inp +0 -112
  249. package/src/llama.cpp/models/ggml-vocab-pixtral.gguf.out +0 -46
  250. package/src/llama.cpp/models/ggml-vocab-qwen2.gguf +0 -0
  251. package/src/llama.cpp/models/ggml-vocab-qwen2.gguf.inp +0 -112
  252. package/src/llama.cpp/models/ggml-vocab-qwen2.gguf.out +0 -46
  253. package/src/llama.cpp/models/ggml-vocab-refact.gguf +0 -0
  254. package/src/llama.cpp/models/ggml-vocab-refact.gguf.inp +0 -112
  255. package/src/llama.cpp/models/ggml-vocab-refact.gguf.out +0 -46
  256. package/src/llama.cpp/models/ggml-vocab-roberta-bpe.gguf.inp +0 -112
  257. package/src/llama.cpp/models/ggml-vocab-roberta-bpe.gguf.out +0 -46
  258. package/src/llama.cpp/models/ggml-vocab-starcoder.gguf +0 -0
  259. package/src/llama.cpp/models/ggml-vocab-starcoder.gguf.inp +0 -112
  260. package/src/llama.cpp/models/ggml-vocab-starcoder.gguf.out +0 -46
  261. package/src/llama.cpp/pocs/CMakeLists.txt +0 -14
  262. package/src/llama.cpp/pocs/vdot/CMakeLists.txt +0 -9
  263. package/src/llama.cpp/pocs/vdot/q8dot.cpp +0 -173
  264. package/src/llama.cpp/pocs/vdot/vdot.cpp +0 -311
  265. package/src/llama.cpp/prompts/LLM-questions.txt +0 -49
  266. package/src/llama.cpp/prompts/alpaca.txt +0 -1
  267. package/src/llama.cpp/prompts/assistant.txt +0 -31
  268. package/src/llama.cpp/prompts/chat-with-baichuan.txt +0 -4
  269. package/src/llama.cpp/prompts/chat-with-bob.txt +0 -7
  270. package/src/llama.cpp/prompts/chat-with-qwen.txt +0 -1
  271. package/src/llama.cpp/prompts/chat-with-vicuna-v0.txt +0 -7
  272. package/src/llama.cpp/prompts/chat-with-vicuna-v1.txt +0 -7
  273. package/src/llama.cpp/prompts/chat.txt +0 -28
  274. package/src/llama.cpp/prompts/dan-modified.txt +0 -1
  275. package/src/llama.cpp/prompts/dan.txt +0 -1
  276. package/src/llama.cpp/prompts/mnemonics.txt +0 -93
  277. package/src/llama.cpp/prompts/parallel-questions.txt +0 -43
  278. package/src/llama.cpp/prompts/reason-act.txt +0 -18
  279. package/src/llama.cpp/requirements/requirements-all.txt +0 -15
  280. package/src/llama.cpp/requirements/requirements-compare-llama-bench.txt +0 -2
  281. package/src/llama.cpp/requirements/requirements-convert_hf_to_gguf.txt +0 -7
  282. package/src/llama.cpp/requirements/requirements-convert_hf_to_gguf_update.txt +0 -7
  283. package/src/llama.cpp/requirements/requirements-convert_legacy_llama.txt +0 -5
  284. package/src/llama.cpp/requirements/requirements-convert_llama_ggml_to_gguf.txt +0 -1
  285. package/src/llama.cpp/requirements/requirements-convert_lora_to_gguf.txt +0 -4
  286. package/src/llama.cpp/requirements/requirements-gguf_editor_gui.txt +0 -3
  287. package/src/llama.cpp/requirements/requirements-pydantic.txt +0 -3
  288. package/src/llama.cpp/requirements/requirements-test-tokenizer-random.txt +0 -1
  289. package/src/llama.cpp/requirements/requirements-tool_bench.txt +0 -12
  290. package/src/llama.cpp/requirements.txt +0 -13
  291. package/src/llama.cpp/scripts/build-info.sh +0 -30
  292. package/src/llama.cpp/scripts/install-oneapi.bat +0 -19
  293. package/src/llama.cpp/scripts/xxd.cmake +0 -16
  294. package/src/llama.cpp/tests/CMakeLists.txt +0 -177
  295. package/src/llama.cpp/tests/get-model.cpp +0 -21
  296. package/src/llama.cpp/tests/get-model.h +0 -2
  297. package/src/llama.cpp/tests/test-arg-parser.cpp +0 -178
  298. package/src/llama.cpp/tests/test-autorelease.cpp +0 -24
  299. package/src/llama.cpp/tests/test-backend-ops.cpp +0 -4793
  300. package/src/llama.cpp/tests/test-barrier.cpp +0 -94
  301. package/src/llama.cpp/tests/test-c.c +0 -7
  302. package/src/llama.cpp/tests/test-chat-template.cpp +0 -417
  303. package/src/llama.cpp/tests/test-chat.cpp +0 -985
  304. package/src/llama.cpp/tests/test-double-float.cpp +0 -57
  305. package/src/llama.cpp/tests/test-gbnf-validator.cpp +0 -109
  306. package/src/llama.cpp/tests/test-gguf.cpp +0 -1338
  307. package/src/llama.cpp/tests/test-grammar-integration.cpp +0 -1308
  308. package/src/llama.cpp/tests/test-grammar-llguidance.cpp +0 -1201
  309. package/src/llama.cpp/tests/test-grammar-parser.cpp +0 -519
  310. package/src/llama.cpp/tests/test-json-schema-to-grammar.cpp +0 -1304
  311. package/src/llama.cpp/tests/test-llama-grammar.cpp +0 -408
  312. package/src/llama.cpp/tests/test-log.cpp +0 -39
  313. package/src/llama.cpp/tests/test-model-load-cancel.cpp +0 -27
  314. package/src/llama.cpp/tests/test-mtmd-c-api.c +0 -63
  315. package/src/llama.cpp/tests/test-opt.cpp +0 -904
  316. package/src/llama.cpp/tests/test-quantize-fns.cpp +0 -186
  317. package/src/llama.cpp/tests/test-quantize-perf.cpp +0 -365
  318. package/src/llama.cpp/tests/test-quantize-stats.cpp +0 -424
  319. package/src/llama.cpp/tests/test-regex-partial.cpp +0 -288
  320. package/src/llama.cpp/tests/test-rope.cpp +0 -262
  321. package/src/llama.cpp/tests/test-sampling.cpp +0 -399
  322. package/src/llama.cpp/tests/test-tokenizer-0.cpp +0 -312
  323. package/src/llama.cpp/tests/test-tokenizer-1-bpe.cpp +0 -155
  324. package/src/llama.cpp/tests/test-tokenizer-1-spm.cpp +0 -125
  325. package/src/llama.cpp/tools/CMakeLists.txt +0 -39
  326. package/src/llama.cpp/tools/batched-bench/CMakeLists.txt +0 -5
  327. package/src/llama.cpp/tools/batched-bench/batched-bench.cpp +0 -204
  328. package/src/llama.cpp/tools/cvector-generator/CMakeLists.txt +0 -5
  329. package/src/llama.cpp/tools/cvector-generator/completions.txt +0 -582
  330. package/src/llama.cpp/tools/cvector-generator/cvector-generator.cpp +0 -508
  331. package/src/llama.cpp/tools/cvector-generator/mean.hpp +0 -48
  332. package/src/llama.cpp/tools/cvector-generator/negative.txt +0 -4
  333. package/src/llama.cpp/tools/cvector-generator/pca.hpp +0 -315
  334. package/src/llama.cpp/tools/cvector-generator/positive.txt +0 -4
  335. package/src/llama.cpp/tools/export-lora/CMakeLists.txt +0 -5
  336. package/src/llama.cpp/tools/export-lora/export-lora.cpp +0 -434
  337. package/src/llama.cpp/tools/gguf-split/CMakeLists.txt +0 -5
  338. package/src/llama.cpp/tools/gguf-split/gguf-split.cpp +0 -583
  339. package/src/llama.cpp/tools/imatrix/CMakeLists.txt +0 -5
  340. package/src/llama.cpp/tools/imatrix/imatrix.cpp +0 -667
  341. package/src/llama.cpp/tools/llama-bench/CMakeLists.txt +0 -5
  342. package/src/llama.cpp/tools/llama-bench/llama-bench.cpp +0 -2024
  343. package/src/llama.cpp/tools/main/CMakeLists.txt +0 -5
  344. package/src/llama.cpp/tools/main/main.cpp +0 -977
  345. package/src/llama.cpp/tools/mtmd/CMakeLists.txt +0 -58
  346. package/src/llama.cpp/tools/mtmd/clip-impl.h +0 -462
  347. package/src/llama.cpp/tools/mtmd/clip.cpp +0 -4024
  348. package/src/llama.cpp/tools/mtmd/clip.h +0 -101
  349. package/src/llama.cpp/tools/mtmd/deprecation-warning.cpp +0 -22
  350. package/src/llama.cpp/tools/mtmd/miniaudio.h +0 -93468
  351. package/src/llama.cpp/tools/mtmd/mtmd-audio.cpp +0 -855
  352. package/src/llama.cpp/tools/mtmd/mtmd-audio.h +0 -62
  353. package/src/llama.cpp/tools/mtmd/mtmd-cli.cpp +0 -377
  354. package/src/llama.cpp/tools/mtmd/mtmd-helper.cpp +0 -297
  355. package/src/llama.cpp/tools/mtmd/mtmd.cpp +0 -942
  356. package/src/llama.cpp/tools/mtmd/mtmd.h +0 -362
  357. package/src/llama.cpp/tools/mtmd/requirements.txt +0 -5
  358. package/src/llama.cpp/tools/perplexity/CMakeLists.txt +0 -5
  359. package/src/llama.cpp/tools/perplexity/perplexity.cpp +0 -2063
  360. package/src/llama.cpp/tools/quantize/CMakeLists.txt +0 -6
  361. package/src/llama.cpp/tools/quantize/quantize.cpp +0 -519
  362. package/src/llama.cpp/tools/rpc/CMakeLists.txt +0 -4
  363. package/src/llama.cpp/tools/rpc/rpc-server.cpp +0 -322
  364. package/src/llama.cpp/tools/run/CMakeLists.txt +0 -16
  365. package/src/llama.cpp/tools/run/linenoise.cpp/linenoise.cpp +0 -1995
  366. package/src/llama.cpp/tools/run/linenoise.cpp/linenoise.h +0 -137
  367. package/src/llama.cpp/tools/run/run.cpp +0 -1261
  368. package/src/llama.cpp/tools/server/CMakeLists.txt +0 -51
  369. package/src/llama.cpp/tools/server/bench/requirements.txt +0 -2
  370. package/src/llama.cpp/tools/server/httplib.h +0 -10506
  371. package/src/llama.cpp/tools/server/server.cpp +0 -4966
  372. package/src/llama.cpp/tools/server/tests/requirements.txt +0 -8
  373. package/src/llama.cpp/tools/server/utils.hpp +0 -1337
  374. package/src/llama.cpp/tools/tokenize/CMakeLists.txt +0 -5
  375. package/src/llama.cpp/tools/tokenize/tokenize.cpp +0 -416
  376. package/src/llama.cpp/tools/tts/CMakeLists.txt +0 -5
  377. package/src/llama.cpp/tools/tts/tts.cpp +0 -1092
@@ -1,519 +0,0 @@
1
- #ifdef NDEBUG
2
- #undef NDEBUG
3
- #endif
4
-
5
- #include "llama.h"
6
-
7
- // TODO: shold not include libllama sources
8
- #include "../src/llama-grammar.h"
9
-
10
- #include <cassert>
11
-
12
- static const char * type_str(llama_gretype type) {
13
- switch (type) {
14
- case LLAMA_GRETYPE_CHAR: return "LLAMA_GRETYPE_CHAR";
15
- case LLAMA_GRETYPE_CHAR_NOT: return "LLAMA_GRETYPE_CHAR_NOT";
16
- case LLAMA_GRETYPE_CHAR_ALT: return "LLAMA_GRETYPE_CHAR_ALT";
17
- case LLAMA_GRETYPE_CHAR_RNG_UPPER: return "LLAMA_GRETYPE_CHAR_RNG_UPPER";
18
- case LLAMA_GRETYPE_RULE_REF: return "LLAMA_GRETYPE_RULE_REF";
19
- case LLAMA_GRETYPE_ALT: return "LLAMA_GRETYPE_ALT";
20
- case LLAMA_GRETYPE_END: return "LLAMA_GRETYPE_END";
21
- default: return "?";
22
- }
23
- }
24
-
25
- static void verify_parsing(const char *grammar_bytes, const std::vector<std::pair<std::string, uint32_t>> expected, const std::vector<llama_grammar_element> &expected_rules) {
26
- uint32_t index = 0;
27
- llama_grammar_parser parsed_grammar;
28
- parsed_grammar.parse(grammar_bytes);
29
-
30
- std::map<uint32_t, std::string> symbol_names;
31
- for (auto it = parsed_grammar.symbol_ids.begin(); it != parsed_grammar.symbol_ids.end(); ++it) {
32
- symbol_names[it->second] = it->first;
33
- }
34
-
35
- auto print_all = [&]() {
36
- fprintf(stderr, " verify_parsing(R\"\"\"(%s)\"\"\", {\n", grammar_bytes);
37
- for (auto it = parsed_grammar.symbol_ids.begin(); it != parsed_grammar.symbol_ids.end(); ++it) {
38
- fprintf(stderr, " {\"%s\", %u},\n", it->first.c_str(), it->second);
39
- }
40
- fprintf(stderr, " }, {\n");
41
- for (size_t i_rule = 0; i_rule < parsed_grammar.rules.size(); i_rule++) {
42
- fprintf(stderr, " // %s (index %zu)\n", symbol_names[i_rule].c_str(), i_rule);
43
- auto & rule = parsed_grammar.rules[i_rule];
44
- for (uint32_t i = 0; i < rule.size(); i++) {
45
- std::string rule_str;
46
- fprintf(stderr, " {%s, ", type_str(rule[i].type));
47
- if (rule[i].type == LLAMA_GRETYPE_CHAR || rule[i].type == LLAMA_GRETYPE_CHAR_ALT ||
48
- rule[i].type == LLAMA_GRETYPE_CHAR_NOT || rule[i].type == LLAMA_GRETYPE_CHAR_RNG_UPPER) {
49
- char c = rule[i].value;
50
- if (c == '\n') {
51
- fprintf(stderr, "'\\n'");
52
- } else if (c == '\t') {
53
- fprintf(stderr, "'\\t'");
54
- } else if (c == '\r') {
55
- fprintf(stderr, "'\\r'");
56
- } else if (c == '\0') {
57
- fprintf(stderr, "'\\0'");
58
- } else {
59
- fprintf(stderr, "'%c'", c);
60
- }
61
- } else if (rule[i].type == LLAMA_GRETYPE_RULE_REF) {
62
- fprintf(stderr, "/* %s */ %u", symbol_names[rule[i].value].c_str(), rule[i].value);
63
- } else {
64
- fprintf(stderr, "%u", rule[i].value);
65
- }
66
- fprintf(stderr, "},\n");
67
- }
68
- }
69
- fprintf(stderr, " });\n");
70
- };
71
-
72
- if (getenv("TEST_GRAMMAR_PARSER_PRINT_ALL")) {
73
- print_all();
74
- fprintf(stderr, "\n");
75
- return;
76
- }
77
-
78
- fprintf(stderr, "Testing grammar:%s\n", grammar_bytes);
79
-
80
- if (parsed_grammar.symbol_ids.size() != expected.size()) {
81
- fprintf(stderr, "Code to update expectation (set TEST_GRAMMAR_PARSER_PRINT_ALL=1 to print all):\n");
82
- print_all();
83
- assert(parsed_grammar.symbol_ids.size() == expected.size());
84
- }
85
-
86
- for (auto it = parsed_grammar.symbol_ids.begin(); it != parsed_grammar.symbol_ids.end(); ++it)
87
- {
88
- std::string key = it->first;
89
- uint32_t value = it->second;
90
- std::pair<std::string, uint32_t> expected_pair = expected[index];
91
-
92
- // pretty print error message before asserting
93
- if (expected_pair.first != key || expected_pair.second != value)
94
- {
95
- fprintf(stderr, "index: %u\n", index);
96
- fprintf(stderr, "expected_pair: %s, %u\n", expected_pair.first.c_str(), expected_pair.second);
97
- fprintf(stderr, "actual_pair: %s, %u\n", key.c_str(), value);
98
- fprintf(stderr, "expected_pair != actual_pair\n");
99
- fprintf(stderr, "Code to update expectation (set TEST_GRAMMAR_PARSER_PRINT_ALL=1 to print all):\n");
100
- print_all();
101
- }
102
-
103
- assert(expected_pair.first == key && expected_pair.second == value);
104
-
105
- index++;
106
- }
107
-
108
- index = 0;
109
- for (auto rule : parsed_grammar.rules)
110
- {
111
- // compare rule to expected rule
112
- for (uint32_t i = 0; i < rule.size(); i++)
113
- {
114
- llama_grammar_element element = rule[i];
115
- llama_grammar_element expected_element = expected_rules[index];
116
-
117
- // pretty print error message before asserting
118
- if (expected_element.type != element.type || expected_element.value != element.value)
119
- {
120
- fprintf(stderr, "index: %u\n", index);
121
- fprintf(stderr, "expected_element: %s, %u\n", type_str(expected_element.type), expected_element.value);
122
- fprintf(stderr, "actual_element: %s, %u\n", type_str(element.type), element.value);
123
- fprintf(stderr, "expected_element != actual_element\n");
124
- fprintf(stderr, "all elements:\n");
125
- fprintf(stderr, "Code to update expectation (set TEST_GRAMMAR_PARSER_PRINT_ALL=1 to print all):\n");
126
- print_all();
127
- }
128
-
129
- assert(expected_element.type == element.type && expected_element.value == element.value);
130
- index++;
131
- }
132
- }
133
- }
134
-
135
- static void verify_failure(const char * grammar_bytes) {
136
- fprintf(stderr, "Testing expected failure:%s\n", grammar_bytes);
137
- llama_grammar_parser result;
138
- result.parse(grammar_bytes);
139
- assert(result.rules.empty() && "should have failed");
140
- }
141
-
142
- int main()
143
- {
144
- verify_failure(R"""(
145
- root ::= "a"{,}"
146
- )""");
147
-
148
- verify_failure(R"""(
149
- root ::= "a"{,10}"
150
- )""");
151
-
152
- verify_parsing(R"""(
153
- root ::= "a"
154
- )""", {
155
- {"root", 0},
156
- }, {
157
- // root (index 0)
158
- {LLAMA_GRETYPE_CHAR, 'a'},
159
- {LLAMA_GRETYPE_END, 0},
160
- });
161
-
162
- verify_parsing(R"""(
163
- root ::= "a" | [bdx-z] | [^1-3]
164
- )""", {
165
- {"root", 0},
166
- }, {
167
- // root (index 0)
168
- {LLAMA_GRETYPE_CHAR, 'a'},
169
- {LLAMA_GRETYPE_ALT, 0},
170
- {LLAMA_GRETYPE_CHAR, 'b'},
171
- {LLAMA_GRETYPE_CHAR_ALT, 'd'},
172
- {LLAMA_GRETYPE_CHAR_ALT, 'x'},
173
- {LLAMA_GRETYPE_CHAR_RNG_UPPER, 'z'},
174
- {LLAMA_GRETYPE_ALT, 0},
175
- {LLAMA_GRETYPE_CHAR_NOT, '1'},
176
- {LLAMA_GRETYPE_CHAR_RNG_UPPER, '3'},
177
- {LLAMA_GRETYPE_END, 0},
178
- });
179
-
180
- verify_parsing(R"""(
181
- root ::= a+
182
- a ::= "a"
183
- )""", {
184
- {"a", 1},
185
- {"root", 0},
186
- {"root_2", 2},
187
- }, {
188
- // root (index 0)
189
- {LLAMA_GRETYPE_RULE_REF, /* a */ 1},
190
- {LLAMA_GRETYPE_RULE_REF, /* root_2 */ 2},
191
- {LLAMA_GRETYPE_END, 0},
192
- // a (index 1)
193
- {LLAMA_GRETYPE_CHAR, 'a'},
194
- {LLAMA_GRETYPE_END, 0},
195
- // root_2 (index 2)
196
- {LLAMA_GRETYPE_RULE_REF, /* a */ 1},
197
- {LLAMA_GRETYPE_RULE_REF, /* root_2 */ 2},
198
- {LLAMA_GRETYPE_ALT, 0},
199
- {LLAMA_GRETYPE_END, 0},
200
- });
201
-
202
- verify_parsing(R"""(
203
- root ::= "a"+
204
- )""", {
205
- {"root", 0},
206
- {"root_1", 1},
207
- }, {
208
- // root (index 0)
209
- {LLAMA_GRETYPE_CHAR, 'a'},
210
- {LLAMA_GRETYPE_RULE_REF, /* root_1 */ 1},
211
- {LLAMA_GRETYPE_END, 0},
212
- // root_1 (index 1)
213
- {LLAMA_GRETYPE_CHAR, 'a'},
214
- {LLAMA_GRETYPE_RULE_REF, /* root_1 */ 1},
215
- {LLAMA_GRETYPE_ALT, 0},
216
- {LLAMA_GRETYPE_END, 0},
217
- });
218
-
219
- verify_parsing(R"""(
220
- root ::= a?
221
- a ::= "a"
222
- )""", {
223
- {"a", 1},
224
- {"root", 0},
225
- {"root_2", 2},
226
- }, {
227
- // root (index 0)
228
- {LLAMA_GRETYPE_RULE_REF, /* root_2 */ 2},
229
- {LLAMA_GRETYPE_END, 0},
230
- // a (index 1)
231
- {LLAMA_GRETYPE_CHAR, 'a'},
232
- {LLAMA_GRETYPE_END, 0},
233
- // root_2 (index 2)
234
- {LLAMA_GRETYPE_RULE_REF, /* a */ 1},
235
- {LLAMA_GRETYPE_ALT, 0},
236
- {LLAMA_GRETYPE_END, 0},
237
- });
238
-
239
- verify_parsing(R"""(
240
- root ::= "a"?
241
- )""", {
242
- {"root", 0},
243
- {"root_1", 1},
244
- }, {
245
- // root (index 0)
246
- {LLAMA_GRETYPE_RULE_REF, /* root_1 */ 1},
247
- {LLAMA_GRETYPE_END, 0},
248
- // root_1 (index 1)
249
- {LLAMA_GRETYPE_CHAR, 'a'},
250
- {LLAMA_GRETYPE_ALT, 0},
251
- {LLAMA_GRETYPE_END, 0},
252
- });
253
-
254
- verify_parsing(R"""(
255
- root ::= a*
256
- a ::= "a"
257
- )""", {
258
- {"a", 1},
259
- {"root", 0},
260
- {"root_2", 2},
261
- }, {
262
- // root (index 0)
263
- {LLAMA_GRETYPE_RULE_REF, /* root_2 */ 2},
264
- {LLAMA_GRETYPE_END, 0},
265
- // a (index 1)
266
- {LLAMA_GRETYPE_CHAR, 'a'},
267
- {LLAMA_GRETYPE_END, 0},
268
- // root_2 (index 2)
269
- {LLAMA_GRETYPE_RULE_REF, /* a */ 1},
270
- {LLAMA_GRETYPE_RULE_REF, /* root_2 */ 2},
271
- {LLAMA_GRETYPE_ALT, 0},
272
- {LLAMA_GRETYPE_END, 0},
273
- });
274
-
275
- verify_parsing(R"""(
276
- root ::= "a"*
277
- )""", {
278
- {"root", 0},
279
- {"root_1", 1},
280
- }, {
281
- // root (index 0)
282
- {LLAMA_GRETYPE_RULE_REF, /* root_1 */ 1},
283
- {LLAMA_GRETYPE_END, 0},
284
- // root_1 (index 1)
285
- {LLAMA_GRETYPE_CHAR, 'a'},
286
- {LLAMA_GRETYPE_RULE_REF, /* root_1 */ 1},
287
- {LLAMA_GRETYPE_ALT, 0},
288
- {LLAMA_GRETYPE_END, 0},
289
- });
290
-
291
- verify_parsing(R"""(
292
- root ::= "a"{2}
293
- )""", {
294
- {"root", 0},
295
- }, {
296
- // root (index 0)
297
- {LLAMA_GRETYPE_CHAR, 'a'},
298
- {LLAMA_GRETYPE_CHAR, 'a'},
299
- {LLAMA_GRETYPE_END, 0},
300
- });
301
-
302
- verify_parsing(R"""(
303
- root ::= "a"{2,}
304
- )""", {
305
- {"root", 0},
306
- {"root_1", 1},
307
- }, {
308
- // root (index 0)
309
- {LLAMA_GRETYPE_CHAR, 'a'},
310
- {LLAMA_GRETYPE_CHAR, 'a'},
311
- {LLAMA_GRETYPE_RULE_REF, /* root_1 */ 1},
312
- {LLAMA_GRETYPE_END, 0},
313
- // root_1 (index 1)
314
- {LLAMA_GRETYPE_CHAR, 'a'},
315
- {LLAMA_GRETYPE_RULE_REF, /* root_1 */ 1},
316
- {LLAMA_GRETYPE_ALT, 0},
317
- {LLAMA_GRETYPE_END, 0},
318
- });
319
-
320
- verify_parsing(R"""(
321
- root ::= "a"{ 4}
322
- )""", {
323
- {"root", 0},
324
- }, {
325
- // root (index 0)
326
- {LLAMA_GRETYPE_CHAR, 'a'},
327
- {LLAMA_GRETYPE_CHAR, 'a'},
328
- {LLAMA_GRETYPE_CHAR, 'a'},
329
- {LLAMA_GRETYPE_CHAR, 'a'},
330
- {LLAMA_GRETYPE_END, 0},
331
- });
332
-
333
- verify_parsing(R"""(
334
- root ::= "a"{2,4}
335
- )""", {
336
- {"root", 0},
337
- {"root_1", 1},
338
- {"root_2", 2},
339
- }, {
340
- // root (index 0)
341
- {LLAMA_GRETYPE_CHAR, 'a'},
342
- {LLAMA_GRETYPE_CHAR, 'a'},
343
- {LLAMA_GRETYPE_RULE_REF, /* root_2 */ 2},
344
- {LLAMA_GRETYPE_END, 0},
345
- // root_1 (index 1)
346
- {LLAMA_GRETYPE_CHAR, 'a'},
347
- {LLAMA_GRETYPE_ALT, 0},
348
- {LLAMA_GRETYPE_END, 0},
349
- // root_2 (index 2)
350
- {LLAMA_GRETYPE_CHAR, 'a'},
351
- {LLAMA_GRETYPE_RULE_REF, /* root_1 */ 1},
352
- {LLAMA_GRETYPE_ALT, 0},
353
- {LLAMA_GRETYPE_END, 0},
354
- });
355
-
356
- verify_parsing(R"""(
357
- root ::= (expr "=" term "\n")+
358
- expr ::= term ([-+*/] term)*
359
- term ::= [0-9]+
360
- )""", {
361
- {"expr", 2},
362
- {"expr_5", 5},
363
- {"expr_6", 6},
364
- {"root", 0},
365
- {"root_1", 1},
366
- {"root_4", 4},
367
- {"term", 3},
368
- {"term_7", 7},
369
- }, {
370
- // root (index 0)
371
- {LLAMA_GRETYPE_RULE_REF, /* root_1 */ 1},
372
- {LLAMA_GRETYPE_RULE_REF, /* root_4 */ 4},
373
- {LLAMA_GRETYPE_END, 0},
374
- // root_1 (index 1)
375
- {LLAMA_GRETYPE_RULE_REF, /* expr */ 2},
376
- {LLAMA_GRETYPE_CHAR, '='},
377
- {LLAMA_GRETYPE_RULE_REF, /* term */ 3},
378
- {LLAMA_GRETYPE_CHAR, '\n'},
379
- {LLAMA_GRETYPE_END, 0},
380
- // expr (index 2)
381
- {LLAMA_GRETYPE_RULE_REF, /* term */ 3},
382
- {LLAMA_GRETYPE_RULE_REF, /* expr_6 */ 6},
383
- {LLAMA_GRETYPE_END, 0},
384
- // term (index 3)
385
- {LLAMA_GRETYPE_CHAR, '0'},
386
- {LLAMA_GRETYPE_CHAR_RNG_UPPER, '9'},
387
- {LLAMA_GRETYPE_RULE_REF, /* term_7 */ 7},
388
- {LLAMA_GRETYPE_END, 0},
389
- // root_4 (index 4)
390
- {LLAMA_GRETYPE_RULE_REF, /* root_1 */ 1},
391
- {LLAMA_GRETYPE_RULE_REF, /* root_4 */ 4},
392
- {LLAMA_GRETYPE_ALT, 0},
393
- {LLAMA_GRETYPE_END, 0},
394
- // expr_5 (index 5)
395
- {LLAMA_GRETYPE_CHAR, '-'},
396
- {LLAMA_GRETYPE_CHAR_ALT, '+'},
397
- {LLAMA_GRETYPE_CHAR_ALT, '*'},
398
- {LLAMA_GRETYPE_CHAR_ALT, '/'},
399
- {LLAMA_GRETYPE_RULE_REF, /* term */ 3},
400
- {LLAMA_GRETYPE_END, 0},
401
- // expr_6 (index 6)
402
- {LLAMA_GRETYPE_RULE_REF, /* expr_5 */ 5},
403
- {LLAMA_GRETYPE_RULE_REF, /* expr_6 */ 6},
404
- {LLAMA_GRETYPE_ALT, 0},
405
- {LLAMA_GRETYPE_END, 0},
406
- // term_7 (index 7)
407
- {LLAMA_GRETYPE_CHAR, '0'},
408
- {LLAMA_GRETYPE_CHAR_RNG_UPPER, '9'},
409
- {LLAMA_GRETYPE_RULE_REF, /* term_7 */ 7},
410
- {LLAMA_GRETYPE_ALT, 0},
411
- {LLAMA_GRETYPE_END, 0},
412
- });
413
-
414
- verify_parsing(R"""(
415
- root ::= (expr "=" ws term "\n")+
416
- expr ::= term ([-+*/] term)*
417
- term ::= ident | num | "(" ws expr ")" ws
418
- ident ::= [a-z] [a-z0-9_]* ws
419
- num ::= [0-9]+ ws
420
- ws ::= [ \t\n]*
421
- )""", {
422
- {"expr", 2},
423
- {"expr_6", 6},
424
- {"expr_7", 7},
425
- {"ident", 8},
426
- {"ident_10", 10},
427
- {"num", 9},
428
- {"num_11", 11},
429
- {"root", 0},
430
- {"root_1", 1},
431
- {"root_5", 5},
432
- {"term", 4},
433
- {"ws", 3},
434
- {"ws_12", 12},
435
- }, {
436
- // root (index 0)
437
- {LLAMA_GRETYPE_RULE_REF, /* root_1 */ 1},
438
- {LLAMA_GRETYPE_RULE_REF, /* root_5 */ 5},
439
- {LLAMA_GRETYPE_END, 0},
440
- // root_1 (index 1)
441
- {LLAMA_GRETYPE_RULE_REF, /* expr */ 2},
442
- {LLAMA_GRETYPE_CHAR, '='},
443
- {LLAMA_GRETYPE_RULE_REF, /* ws */ 3},
444
- {LLAMA_GRETYPE_RULE_REF, /* term */ 4},
445
- {LLAMA_GRETYPE_CHAR, '\n'},
446
- {LLAMA_GRETYPE_END, 0},
447
- // expr (index 2)
448
- {LLAMA_GRETYPE_RULE_REF, /* term */ 4},
449
- {LLAMA_GRETYPE_RULE_REF, /* expr_7 */ 7},
450
- {LLAMA_GRETYPE_END, 0},
451
- // ws (index 3)
452
- {LLAMA_GRETYPE_RULE_REF, /* ws_12 */ 12},
453
- {LLAMA_GRETYPE_END, 0},
454
- // term (index 4)
455
- {LLAMA_GRETYPE_RULE_REF, /* ident */ 8},
456
- {LLAMA_GRETYPE_ALT, 0},
457
- {LLAMA_GRETYPE_RULE_REF, /* num */ 9},
458
- {LLAMA_GRETYPE_ALT, 0},
459
- {LLAMA_GRETYPE_CHAR, '('},
460
- {LLAMA_GRETYPE_RULE_REF, /* ws */ 3},
461
- {LLAMA_GRETYPE_RULE_REF, /* expr */ 2},
462
- {LLAMA_GRETYPE_CHAR, ')'},
463
- {LLAMA_GRETYPE_RULE_REF, /* ws */ 3},
464
- {LLAMA_GRETYPE_END, 0},
465
- // root_5 (index 5)
466
- {LLAMA_GRETYPE_RULE_REF, /* root_1 */ 1},
467
- {LLAMA_GRETYPE_RULE_REF, /* root_5 */ 5},
468
- {LLAMA_GRETYPE_ALT, 0},
469
- {LLAMA_GRETYPE_END, 0},
470
- // expr_6 (index 6)
471
- {LLAMA_GRETYPE_CHAR, '-'},
472
- {LLAMA_GRETYPE_CHAR_ALT, '+'},
473
- {LLAMA_GRETYPE_CHAR_ALT, '*'},
474
- {LLAMA_GRETYPE_CHAR_ALT, '/'},
475
- {LLAMA_GRETYPE_RULE_REF, /* term */ 4},
476
- {LLAMA_GRETYPE_END, 0},
477
- // expr_7 (index 7)
478
- {LLAMA_GRETYPE_RULE_REF, /* expr_6 */ 6},
479
- {LLAMA_GRETYPE_RULE_REF, /* expr_7 */ 7},
480
- {LLAMA_GRETYPE_ALT, 0},
481
- {LLAMA_GRETYPE_END, 0},
482
- // ident (index 8)
483
- {LLAMA_GRETYPE_CHAR, 'a'},
484
- {LLAMA_GRETYPE_CHAR_RNG_UPPER, 'z'},
485
- {LLAMA_GRETYPE_RULE_REF, /* ident_10 */ 10},
486
- {LLAMA_GRETYPE_RULE_REF, /* ws */ 3},
487
- {LLAMA_GRETYPE_END, 0},
488
- // num (index 9)
489
- {LLAMA_GRETYPE_CHAR, '0'},
490
- {LLAMA_GRETYPE_CHAR_RNG_UPPER, '9'},
491
- {LLAMA_GRETYPE_RULE_REF, /* num_11 */ 11},
492
- {LLAMA_GRETYPE_RULE_REF, /* ws */ 3},
493
- {LLAMA_GRETYPE_END, 0},
494
- // ident_10 (index 10)
495
- {LLAMA_GRETYPE_CHAR, 'a'},
496
- {LLAMA_GRETYPE_CHAR_RNG_UPPER, 'z'},
497
- {LLAMA_GRETYPE_CHAR_ALT, '0'},
498
- {LLAMA_GRETYPE_CHAR_RNG_UPPER, '9'},
499
- {LLAMA_GRETYPE_CHAR_ALT, '_'},
500
- {LLAMA_GRETYPE_RULE_REF, /* ident_10 */ 10},
501
- {LLAMA_GRETYPE_ALT, 0},
502
- {LLAMA_GRETYPE_END, 0},
503
- // num_11 (index 11)
504
- {LLAMA_GRETYPE_CHAR, '0'},
505
- {LLAMA_GRETYPE_CHAR_RNG_UPPER, '9'},
506
- {LLAMA_GRETYPE_RULE_REF, /* num_11 */ 11},
507
- {LLAMA_GRETYPE_ALT, 0},
508
- {LLAMA_GRETYPE_END, 0},
509
- // ws_12 (index 12)
510
- {LLAMA_GRETYPE_CHAR, ' '},
511
- {LLAMA_GRETYPE_CHAR_ALT, '\t'},
512
- {LLAMA_GRETYPE_CHAR_ALT, '\n'},
513
- {LLAMA_GRETYPE_RULE_REF, /* ws_12 */ 12},
514
- {LLAMA_GRETYPE_ALT, 0},
515
- {LLAMA_GRETYPE_END, 0},
516
- });
517
-
518
- return 0;
519
- }