nano-clean-pkg 0.0.1

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 (540) hide show
  1. checksums.yaml +7 -0
  2. data/nano-clean-pkg.gemspec +11 -0
  3. data/rouge-5.0.0/Gemfile +48 -0
  4. data/rouge-5.0.0/LICENSE +187 -0
  5. data/rouge-5.0.0/bin/rougify +17 -0
  6. data/rouge-5.0.0/lib/rouge/cli.rb +527 -0
  7. data/rouge-5.0.0/lib/rouge/demos/abap +32 -0
  8. data/rouge-5.0.0/lib/rouge/demos/actionscript +4 -0
  9. data/rouge-5.0.0/lib/rouge/demos/ada +26 -0
  10. data/rouge-5.0.0/lib/rouge/demos/apache +21 -0
  11. data/rouge-5.0.0/lib/rouge/demos/apex +9 -0
  12. data/rouge-5.0.0/lib/rouge/demos/apiblueprint +33 -0
  13. data/rouge-5.0.0/lib/rouge/demos/applescript +2 -0
  14. data/rouge-5.0.0/lib/rouge/demos/armasm +12 -0
  15. data/rouge-5.0.0/lib/rouge/demos/augeas +16 -0
  16. data/rouge-5.0.0/lib/rouge/demos/awk +4 -0
  17. data/rouge-5.0.0/lib/rouge/demos/batchfile +3 -0
  18. data/rouge-5.0.0/lib/rouge/demos/bbcbasic +6 -0
  19. data/rouge-5.0.0/lib/rouge/demos/bibtex +12 -0
  20. data/rouge-5.0.0/lib/rouge/demos/bicep +10 -0
  21. data/rouge-5.0.0/lib/rouge/demos/biml +38 -0
  22. data/rouge-5.0.0/lib/rouge/demos/bpf +7 -0
  23. data/rouge-5.0.0/lib/rouge/demos/brainfuck +5 -0
  24. data/rouge-5.0.0/lib/rouge/demos/brightscript +6 -0
  25. data/rouge-5.0.0/lib/rouge/demos/bsl +7 -0
  26. data/rouge-5.0.0/lib/rouge/demos/c +8 -0
  27. data/rouge-5.0.0/lib/rouge/demos/ceylon +7 -0
  28. data/rouge-5.0.0/lib/rouge/demos/cfscript +18 -0
  29. data/rouge-5.0.0/lib/rouge/demos/cisco_ios +19 -0
  30. data/rouge-5.0.0/lib/rouge/demos/clean +6 -0
  31. data/rouge-5.0.0/lib/rouge/demos/clojure +5 -0
  32. data/rouge-5.0.0/lib/rouge/demos/cmake +7 -0
  33. data/rouge-5.0.0/lib/rouge/demos/cmhg +8 -0
  34. data/rouge-5.0.0/lib/rouge/demos/cobol +103 -0
  35. data/rouge-5.0.0/lib/rouge/demos/codeowners +6 -0
  36. data/rouge-5.0.0/lib/rouge/demos/coffeescript +5 -0
  37. data/rouge-5.0.0/lib/rouge/demos/common_lisp +1 -0
  38. data/rouge-5.0.0/lib/rouge/demos/conf +4 -0
  39. data/rouge-5.0.0/lib/rouge/demos/console +6 -0
  40. data/rouge-5.0.0/lib/rouge/demos/cpp +8 -0
  41. data/rouge-5.0.0/lib/rouge/demos/crystal +45 -0
  42. data/rouge-5.0.0/lib/rouge/demos/csharp +5 -0
  43. data/rouge-5.0.0/lib/rouge/demos/css +4 -0
  44. data/rouge-5.0.0/lib/rouge/demos/csvs +8 -0
  45. data/rouge-5.0.0/lib/rouge/demos/cuda +11 -0
  46. data/rouge-5.0.0/lib/rouge/demos/cypher +5 -0
  47. data/rouge-5.0.0/lib/rouge/demos/cython +6 -0
  48. data/rouge-5.0.0/lib/rouge/demos/d +16 -0
  49. data/rouge-5.0.0/lib/rouge/demos/dafny +16 -0
  50. data/rouge-5.0.0/lib/rouge/demos/dart +6 -0
  51. data/rouge-5.0.0/lib/rouge/demos/datastudio +20 -0
  52. data/rouge-5.0.0/lib/rouge/demos/diff +7 -0
  53. data/rouge-5.0.0/lib/rouge/demos/digdag +19 -0
  54. data/rouge-5.0.0/lib/rouge/demos/docker +9 -0
  55. data/rouge-5.0.0/lib/rouge/demos/dot +5 -0
  56. data/rouge-5.0.0/lib/rouge/demos/dylan +8 -0
  57. data/rouge-5.0.0/lib/rouge/demos/ecl +17 -0
  58. data/rouge-5.0.0/lib/rouge/demos/eex +1 -0
  59. data/rouge-5.0.0/lib/rouge/demos/eiffel +30 -0
  60. data/rouge-5.0.0/lib/rouge/demos/elixir +1 -0
  61. data/rouge-5.0.0/lib/rouge/demos/elm +4 -0
  62. data/rouge-5.0.0/lib/rouge/demos/email +11 -0
  63. data/rouge-5.0.0/lib/rouge/demos/epp +4 -0
  64. data/rouge-5.0.0/lib/rouge/demos/erb +1 -0
  65. data/rouge-5.0.0/lib/rouge/demos/erlang +7 -0
  66. data/rouge-5.0.0/lib/rouge/demos/escape +3 -0
  67. data/rouge-5.0.0/lib/rouge/demos/factor +5 -0
  68. data/rouge-5.0.0/lib/rouge/demos/fluent +13 -0
  69. data/rouge-5.0.0/lib/rouge/demos/fortran +22 -0
  70. data/rouge-5.0.0/lib/rouge/demos/freefem +16 -0
  71. data/rouge-5.0.0/lib/rouge/demos/fsharp +12 -0
  72. data/rouge-5.0.0/lib/rouge/demos/gdscript +18 -0
  73. data/rouge-5.0.0/lib/rouge/demos/ghc-cmm +23 -0
  74. data/rouge-5.0.0/lib/rouge/demos/ghc-core +26 -0
  75. data/rouge-5.0.0/lib/rouge/demos/gherkin +17 -0
  76. data/rouge-5.0.0/lib/rouge/demos/gjs +23 -0
  77. data/rouge-5.0.0/lib/rouge/demos/glsl +14 -0
  78. data/rouge-5.0.0/lib/rouge/demos/go +7 -0
  79. data/rouge-5.0.0/lib/rouge/demos/gradle +10 -0
  80. data/rouge-5.0.0/lib/rouge/demos/graphql +17 -0
  81. data/rouge-5.0.0/lib/rouge/demos/groovy +9 -0
  82. data/rouge-5.0.0/lib/rouge/demos/gts +36 -0
  83. data/rouge-5.0.0/lib/rouge/demos/hack +5 -0
  84. data/rouge-5.0.0/lib/rouge/demos/haml +5 -0
  85. data/rouge-5.0.0/lib/rouge/demos/handlebars +7 -0
  86. data/rouge-5.0.0/lib/rouge/demos/haskell +6 -0
  87. data/rouge-5.0.0/lib/rouge/demos/haxe +4 -0
  88. data/rouge-5.0.0/lib/rouge/demos/hcl +7 -0
  89. data/rouge-5.0.0/lib/rouge/demos/hlsl +20 -0
  90. data/rouge-5.0.0/lib/rouge/demos/hocon +8 -0
  91. data/rouge-5.0.0/lib/rouge/demos/hql +5 -0
  92. data/rouge-5.0.0/lib/rouge/demos/html +8 -0
  93. data/rouge-5.0.0/lib/rouge/demos/http +14 -0
  94. data/rouge-5.0.0/lib/rouge/demos/hylang +10 -0
  95. data/rouge-5.0.0/lib/rouge/demos/idlang +8 -0
  96. data/rouge-5.0.0/lib/rouge/demos/idris +13 -0
  97. data/rouge-5.0.0/lib/rouge/demos/iecst +21 -0
  98. data/rouge-5.0.0/lib/rouge/demos/igorpro +9 -0
  99. data/rouge-5.0.0/lib/rouge/demos/ini +4 -0
  100. data/rouge-5.0.0/lib/rouge/demos/io +11 -0
  101. data/rouge-5.0.0/lib/rouge/demos/irb +4 -0
  102. data/rouge-5.0.0/lib/rouge/demos/irb_output +2 -0
  103. data/rouge-5.0.0/lib/rouge/demos/isabelle +16 -0
  104. data/rouge-5.0.0/lib/rouge/demos/isbl +4 -0
  105. data/rouge-5.0.0/lib/rouge/demos/j +12 -0
  106. data/rouge-5.0.0/lib/rouge/demos/janet +3 -0
  107. data/rouge-5.0.0/lib/rouge/demos/java +5 -0
  108. data/rouge-5.0.0/lib/rouge/demos/javascript +1 -0
  109. data/rouge-5.0.0/lib/rouge/demos/jinja +9 -0
  110. data/rouge-5.0.0/lib/rouge/demos/jsl +3 -0
  111. data/rouge-5.0.0/lib/rouge/demos/json +1 -0
  112. data/rouge-5.0.0/lib/rouge/demos/json-doc +1 -0
  113. data/rouge-5.0.0/lib/rouge/demos/json5 +12 -0
  114. data/rouge-5.0.0/lib/rouge/demos/jsonnet +28 -0
  115. data/rouge-5.0.0/lib/rouge/demos/jsp +29 -0
  116. data/rouge-5.0.0/lib/rouge/demos/jsx +17 -0
  117. data/rouge-5.0.0/lib/rouge/demos/julia +11 -0
  118. data/rouge-5.0.0/lib/rouge/demos/kick_assembler +14 -0
  119. data/rouge-5.0.0/lib/rouge/demos/kotlin +3 -0
  120. data/rouge-5.0.0/lib/rouge/demos/lasso +12 -0
  121. data/rouge-5.0.0/lib/rouge/demos/lean +8 -0
  122. data/rouge-5.0.0/lib/rouge/demos/liquid +10 -0
  123. data/rouge-5.0.0/lib/rouge/demos/literate_coffeescript +3 -0
  124. data/rouge-5.0.0/lib/rouge/demos/literate_haskell +7 -0
  125. data/rouge-5.0.0/lib/rouge/demos/livescript +15 -0
  126. data/rouge-5.0.0/lib/rouge/demos/llvm +20 -0
  127. data/rouge-5.0.0/lib/rouge/demos/lua +12 -0
  128. data/rouge-5.0.0/lib/rouge/demos/lustre +6 -0
  129. data/rouge-5.0.0/lib/rouge/demos/lutin +18 -0
  130. data/rouge-5.0.0/lib/rouge/demos/m68k +16 -0
  131. data/rouge-5.0.0/lib/rouge/demos/magik +6 -0
  132. data/rouge-5.0.0/lib/rouge/demos/make +6 -0
  133. data/rouge-5.0.0/lib/rouge/demos/markdown +4 -0
  134. data/rouge-5.0.0/lib/rouge/demos/mason +22 -0
  135. data/rouge-5.0.0/lib/rouge/demos/mathematica +8 -0
  136. data/rouge-5.0.0/lib/rouge/demos/matlab +6 -0
  137. data/rouge-5.0.0/lib/rouge/demos/meson +10 -0
  138. data/rouge-5.0.0/lib/rouge/demos/minizinc +23 -0
  139. data/rouge-5.0.0/lib/rouge/demos/mojo +10 -0
  140. data/rouge-5.0.0/lib/rouge/demos/moonscript +16 -0
  141. data/rouge-5.0.0/lib/rouge/demos/mosel +10 -0
  142. data/rouge-5.0.0/lib/rouge/demos/msgtrans +4 -0
  143. data/rouge-5.0.0/lib/rouge/demos/mxml +22 -0
  144. data/rouge-5.0.0/lib/rouge/demos/nasm +26 -0
  145. data/rouge-5.0.0/lib/rouge/demos/nesasm +11 -0
  146. data/rouge-5.0.0/lib/rouge/demos/nginx +5 -0
  147. data/rouge-5.0.0/lib/rouge/demos/nial +35 -0
  148. data/rouge-5.0.0/lib/rouge/demos/nim +27 -0
  149. data/rouge-5.0.0/lib/rouge/demos/nix +19 -0
  150. data/rouge-5.0.0/lib/rouge/demos/objective_c +18 -0
  151. data/rouge-5.0.0/lib/rouge/demos/objective_cpp +17 -0
  152. data/rouge-5.0.0/lib/rouge/demos/ocaml +12 -0
  153. data/rouge-5.0.0/lib/rouge/demos/ocl +4 -0
  154. data/rouge-5.0.0/lib/rouge/demos/openedge +4 -0
  155. data/rouge-5.0.0/lib/rouge/demos/opentype_feature_file +5 -0
  156. data/rouge-5.0.0/lib/rouge/demos/p4 +99 -0
  157. data/rouge-5.0.0/lib/rouge/demos/pascal +14 -0
  158. data/rouge-5.0.0/lib/rouge/demos/pdf +29 -0
  159. data/rouge-5.0.0/lib/rouge/demos/perl +5 -0
  160. data/rouge-5.0.0/lib/rouge/demos/php +3 -0
  161. data/rouge-5.0.0/lib/rouge/demos/plaintext +1 -0
  162. data/rouge-5.0.0/lib/rouge/demos/plist +11 -0
  163. data/rouge-5.0.0/lib/rouge/demos/plsql +2 -0
  164. data/rouge-5.0.0/lib/rouge/demos/pony +17 -0
  165. data/rouge-5.0.0/lib/rouge/demos/postscript +9 -0
  166. data/rouge-5.0.0/lib/rouge/demos/powershell +13 -0
  167. data/rouge-5.0.0/lib/rouge/demos/praat +26 -0
  168. data/rouge-5.0.0/lib/rouge/demos/prolog +9 -0
  169. data/rouge-5.0.0/lib/rouge/demos/prometheus +9 -0
  170. data/rouge-5.0.0/lib/rouge/demos/properties +7 -0
  171. data/rouge-5.0.0/lib/rouge/demos/protobuf +5 -0
  172. data/rouge-5.0.0/lib/rouge/demos/puppet +6 -0
  173. data/rouge-5.0.0/lib/rouge/demos/python +6 -0
  174. data/rouge-5.0.0/lib/rouge/demos/q +8 -0
  175. data/rouge-5.0.0/lib/rouge/demos/qml +9 -0
  176. data/rouge-5.0.0/lib/rouge/demos/r +8 -0
  177. data/rouge-5.0.0/lib/rouge/demos/racket +24 -0
  178. data/rouge-5.0.0/lib/rouge/demos/reasonml +12 -0
  179. data/rouge-5.0.0/lib/rouge/demos/rego +8 -0
  180. data/rouge-5.0.0/lib/rouge/demos/rescript +26 -0
  181. data/rouge-5.0.0/lib/rouge/demos/rml +33 -0
  182. data/rouge-5.0.0/lib/rouge/demos/robot_framework +27 -0
  183. data/rouge-5.0.0/lib/rouge/demos/rocq +16 -0
  184. data/rouge-5.0.0/lib/rouge/demos/ruby +9 -0
  185. data/rouge-5.0.0/lib/rouge/demos/rust +12 -0
  186. data/rouge-5.0.0/lib/rouge/demos/sas +13 -0
  187. data/rouge-5.0.0/lib/rouge/demos/sass +3 -0
  188. data/rouge-5.0.0/lib/rouge/demos/scala +3 -0
  189. data/rouge-5.0.0/lib/rouge/demos/scheme +4 -0
  190. data/rouge-5.0.0/lib/rouge/demos/scss +5 -0
  191. data/rouge-5.0.0/lib/rouge/demos/sed +4 -0
  192. data/rouge-5.0.0/lib/rouge/demos/shell +2 -0
  193. data/rouge-5.0.0/lib/rouge/demos/sieve +10 -0
  194. data/rouge-5.0.0/lib/rouge/demos/slice +10 -0
  195. data/rouge-5.0.0/lib/rouge/demos/slim +17 -0
  196. data/rouge-5.0.0/lib/rouge/demos/smalltalk +6 -0
  197. data/rouge-5.0.0/lib/rouge/demos/smarty +11 -0
  198. data/rouge-5.0.0/lib/rouge/demos/sml +4 -0
  199. data/rouge-5.0.0/lib/rouge/demos/sparql +6 -0
  200. data/rouge-5.0.0/lib/rouge/demos/sqf +14 -0
  201. data/rouge-5.0.0/lib/rouge/demos/sql +1 -0
  202. data/rouge-5.0.0/lib/rouge/demos/ssh +4 -0
  203. data/rouge-5.0.0/lib/rouge/demos/stan +13 -0
  204. data/rouge-5.0.0/lib/rouge/demos/stata +14 -0
  205. data/rouge-5.0.0/lib/rouge/demos/supercollider +11 -0
  206. data/rouge-5.0.0/lib/rouge/demos/svelte +29 -0
  207. data/rouge-5.0.0/lib/rouge/demos/swift +5 -0
  208. data/rouge-5.0.0/lib/rouge/demos/systemd +4 -0
  209. data/rouge-5.0.0/lib/rouge/demos/syzlang +15 -0
  210. data/rouge-5.0.0/lib/rouge/demos/syzprog +8 -0
  211. data/rouge-5.0.0/lib/rouge/demos/tap +5 -0
  212. data/rouge-5.0.0/lib/rouge/demos/tcl +1 -0
  213. data/rouge-5.0.0/lib/rouge/demos/terraform +16 -0
  214. data/rouge-5.0.0/lib/rouge/demos/tex +1 -0
  215. data/rouge-5.0.0/lib/rouge/demos/thrift +15 -0
  216. data/rouge-5.0.0/lib/rouge/demos/toml +9 -0
  217. data/rouge-5.0.0/lib/rouge/demos/tsx +17 -0
  218. data/rouge-5.0.0/lib/rouge/demos/ttcn3 +6 -0
  219. data/rouge-5.0.0/lib/rouge/demos/tulip +13 -0
  220. data/rouge-5.0.0/lib/rouge/demos/turtle +26 -0
  221. data/rouge-5.0.0/lib/rouge/demos/twig +9 -0
  222. data/rouge-5.0.0/lib/rouge/demos/typescript +1 -0
  223. data/rouge-5.0.0/lib/rouge/demos/vala +8 -0
  224. data/rouge-5.0.0/lib/rouge/demos/vb +4 -0
  225. data/rouge-5.0.0/lib/rouge/demos/vcl +12 -0
  226. data/rouge-5.0.0/lib/rouge/demos/velocity +9 -0
  227. data/rouge-5.0.0/lib/rouge/demos/verilog +27 -0
  228. data/rouge-5.0.0/lib/rouge/demos/veryl +24 -0
  229. data/rouge-5.0.0/lib/rouge/demos/vhdl +23 -0
  230. data/rouge-5.0.0/lib/rouge/demos/viml +14 -0
  231. data/rouge-5.0.0/lib/rouge/demos/vue +11 -0
  232. data/rouge-5.0.0/lib/rouge/demos/wollok +11 -0
  233. data/rouge-5.0.0/lib/rouge/demos/xml +2 -0
  234. data/rouge-5.0.0/lib/rouge/demos/xojo +14 -0
  235. data/rouge-5.0.0/lib/rouge/demos/xpath +2 -0
  236. data/rouge-5.0.0/lib/rouge/demos/xquery +22 -0
  237. data/rouge-5.0.0/lib/rouge/demos/yaml +4 -0
  238. data/rouge-5.0.0/lib/rouge/demos/yang +17 -0
  239. data/rouge-5.0.0/lib/rouge/demos/zig +6 -0
  240. data/rouge-5.0.0/lib/rouge/eager.rb +3 -0
  241. data/rouge-5.0.0/lib/rouge/formatter.rb +112 -0
  242. data/rouge-5.0.0/lib/rouge/formatters/html.rb +64 -0
  243. data/rouge-5.0.0/lib/rouge/formatters/html_debug.rb +16 -0
  244. data/rouge-5.0.0/lib/rouge/formatters/html_inline.rb +30 -0
  245. data/rouge-5.0.0/lib/rouge/formatters/html_legacy.rb +56 -0
  246. data/rouge-5.0.0/lib/rouge/formatters/html_legacy_table.rb +57 -0
  247. data/rouge-5.0.0/lib/rouge/formatters/html_line_highlighter.rb +31 -0
  248. data/rouge-5.0.0/lib/rouge/formatters/html_line_table.rb +56 -0
  249. data/rouge-5.0.0/lib/rouge/formatters/html_linewise.rb +31 -0
  250. data/rouge-5.0.0/lib/rouge/formatters/html_pygments.rb +23 -0
  251. data/rouge-5.0.0/lib/rouge/formatters/html_table.rb +77 -0
  252. data/rouge-5.0.0/lib/rouge/formatters/null.rb +20 -0
  253. data/rouge-5.0.0/lib/rouge/formatters/terminal256.rb +198 -0
  254. data/rouge-5.0.0/lib/rouge/formatters/terminal_truecolor.rb +37 -0
  255. data/rouge-5.0.0/lib/rouge/formatters/tex.rb +92 -0
  256. data/rouge-5.0.0/lib/rouge/guesser.rb +57 -0
  257. data/rouge-5.0.0/lib/rouge/guessers/disambiguation.rb +172 -0
  258. data/rouge-5.0.0/lib/rouge/guessers/filename.rb +27 -0
  259. data/rouge-5.0.0/lib/rouge/guessers/glob_mapping.rb +45 -0
  260. data/rouge-5.0.0/lib/rouge/guessers/mimetype.rb +16 -0
  261. data/rouge-5.0.0/lib/rouge/guessers/modeline.rb +46 -0
  262. data/rouge-5.0.0/lib/rouge/guessers/source.rb +31 -0
  263. data/rouge-5.0.0/lib/rouge/guessers/util.rb +34 -0
  264. data/rouge-5.0.0/lib/rouge/lexer.rb +556 -0
  265. data/rouge-5.0.0/lib/rouge/lexers/abap/builtins.rb +187 -0
  266. data/rouge-5.0.0/lib/rouge/lexers/abap.rb +132 -0
  267. data/rouge-5.0.0/lib/rouge/lexers/actionscript.rb +196 -0
  268. data/rouge-5.0.0/lib/rouge/lexers/ada.rb +162 -0
  269. data/rouge-5.0.0/lib/rouge/lexers/apache/keywords.rb +16 -0
  270. data/rouge-5.0.0/lib/rouge/lexers/apache.rb +84 -0
  271. data/rouge-5.0.0/lib/rouge/lexers/apex.rb +128 -0
  272. data/rouge-5.0.0/lib/rouge/lexers/apiblueprint.rb +49 -0
  273. data/rouge-5.0.0/lib/rouge/lexers/apple_script.rb +370 -0
  274. data/rouge-5.0.0/lib/rouge/lexers/armasm.rb +145 -0
  275. data/rouge-5.0.0/lib/rouge/lexers/augeas.rb +93 -0
  276. data/rouge-5.0.0/lib/rouge/lexers/awk.rb +162 -0
  277. data/rouge-5.0.0/lib/rouge/lexers/batchfile.rb +165 -0
  278. data/rouge-5.0.0/lib/rouge/lexers/bbcbasic.rb +112 -0
  279. data/rouge-5.0.0/lib/rouge/lexers/bibtex.rb +115 -0
  280. data/rouge-5.0.0/lib/rouge/lexers/bicep.rb +111 -0
  281. data/rouge-5.0.0/lib/rouge/lexers/biml.rb +70 -0
  282. data/rouge-5.0.0/lib/rouge/lexers/bpf.rb +118 -0
  283. data/rouge-5.0.0/lib/rouge/lexers/brainfuck.rb +54 -0
  284. data/rouge-5.0.0/lib/rouge/lexers/brightscript.rb +146 -0
  285. data/rouge-5.0.0/lib/rouge/lexers/bsl.rb +82 -0
  286. data/rouge-5.0.0/lib/rouge/lexers/c.rb +204 -0
  287. data/rouge-5.0.0/lib/rouge/lexers/ceylon.rb +96 -0
  288. data/rouge-5.0.0/lib/rouge/lexers/cfscript.rb +154 -0
  289. data/rouge-5.0.0/lib/rouge/lexers/cisco_ios.rb +83 -0
  290. data/rouge-5.0.0/lib/rouge/lexers/clean.rb +156 -0
  291. data/rouge-5.0.0/lib/rouge/lexers/clojure.rb +113 -0
  292. data/rouge-5.0.0/lib/rouge/lexers/cmake.rb +218 -0
  293. data/rouge-5.0.0/lib/rouge/lexers/cmhg.rb +34 -0
  294. data/rouge-5.0.0/lib/rouge/lexers/cobol.rb +137 -0
  295. data/rouge-5.0.0/lib/rouge/lexers/codeowners.rb +30 -0
  296. data/rouge-5.0.0/lib/rouge/lexers/coffeescript.rb +215 -0
  297. data/rouge-5.0.0/lib/rouge/lexers/common_lisp.rb +346 -0
  298. data/rouge-5.0.0/lib/rouge/lexers/conf.rb +25 -0
  299. data/rouge-5.0.0/lib/rouge/lexers/console.rb +196 -0
  300. data/rouge-5.0.0/lib/rouge/lexers/cpp.rb +102 -0
  301. data/rouge-5.0.0/lib/rouge/lexers/crystal.rb +435 -0
  302. data/rouge-5.0.0/lib/rouge/lexers/csharp.rb +118 -0
  303. data/rouge-5.0.0/lib/rouge/lexers/css.rb +337 -0
  304. data/rouge-5.0.0/lib/rouge/lexers/csvs.rb +44 -0
  305. data/rouge-5.0.0/lib/rouge/lexers/cuda.rb +35 -0
  306. data/rouge-5.0.0/lib/rouge/lexers/cypher.rb +116 -0
  307. data/rouge-5.0.0/lib/rouge/lexers/cython.rb +127 -0
  308. data/rouge-5.0.0/lib/rouge/lexers/d.rb +177 -0
  309. data/rouge-5.0.0/lib/rouge/lexers/dafny.rb +128 -0
  310. data/rouge-5.0.0/lib/rouge/lexers/dart.rb +108 -0
  311. data/rouge-5.0.0/lib/rouge/lexers/datastudio.rb +138 -0
  312. data/rouge-5.0.0/lib/rouge/lexers/diff.rb +47 -0
  313. data/rouge-5.0.0/lib/rouge/lexers/digdag.rb +69 -0
  314. data/rouge-5.0.0/lib/rouge/lexers/docker.rb +55 -0
  315. data/rouge-5.0.0/lib/rouge/lexers/dot.rb +70 -0
  316. data/rouge-5.0.0/lib/rouge/lexers/dylan.rb +109 -0
  317. data/rouge-5.0.0/lib/rouge/lexers/ecl.rb +175 -0
  318. data/rouge-5.0.0/lib/rouge/lexers/eex.rb +52 -0
  319. data/rouge-5.0.0/lib/rouge/lexers/eiffel.rb +65 -0
  320. data/rouge-5.0.0/lib/rouge/lexers/elixir.rb +158 -0
  321. data/rouge-5.0.0/lib/rouge/lexers/elm.rb +90 -0
  322. data/rouge-5.0.0/lib/rouge/lexers/email.rb +39 -0
  323. data/rouge-5.0.0/lib/rouge/lexers/epp.rb +51 -0
  324. data/rouge-5.0.0/lib/rouge/lexers/erb.rb +53 -0
  325. data/rouge-5.0.0/lib/rouge/lexers/erlang.rb +115 -0
  326. data/rouge-5.0.0/lib/rouge/lexers/escape.rb +58 -0
  327. data/rouge-5.0.0/lib/rouge/lexers/factor.rb +303 -0
  328. data/rouge-5.0.0/lib/rouge/lexers/fluent.rb +74 -0
  329. data/rouge-5.0.0/lib/rouge/lexers/fortran.rb +178 -0
  330. data/rouge-5.0.0/lib/rouge/lexers/freefem.rb +240 -0
  331. data/rouge-5.0.0/lib/rouge/lexers/fsharp.rb +120 -0
  332. data/rouge-5.0.0/lib/rouge/lexers/gdscript.rb +171 -0
  333. data/rouge-5.0.0/lib/rouge/lexers/ghc_cmm.rb +340 -0
  334. data/rouge-5.0.0/lib/rouge/lexers/ghc_core.rb +152 -0
  335. data/rouge-5.0.0/lib/rouge/lexers/gherkin/keywords.rb +23 -0
  336. data/rouge-5.0.0/lib/rouge/lexers/gherkin.rb +142 -0
  337. data/rouge-5.0.0/lib/rouge/lexers/gjs.rb +39 -0
  338. data/rouge-5.0.0/lib/rouge/lexers/glsl/builtins.rb +17 -0
  339. data/rouge-5.0.0/lib/rouge/lexers/glsl.rb +69 -0
  340. data/rouge-5.0.0/lib/rouge/lexers/go.rb +177 -0
  341. data/rouge-5.0.0/lib/rouge/lexers/gradle.rb +38 -0
  342. data/rouge-5.0.0/lib/rouge/lexers/graphql.rb +261 -0
  343. data/rouge-5.0.0/lib/rouge/lexers/groovy.rb +119 -0
  344. data/rouge-5.0.0/lib/rouge/lexers/gts.rb +39 -0
  345. data/rouge-5.0.0/lib/rouge/lexers/hack.rb +47 -0
  346. data/rouge-5.0.0/lib/rouge/lexers/haml.rb +226 -0
  347. data/rouge-5.0.0/lib/rouge/lexers/handlebars.rb +91 -0
  348. data/rouge-5.0.0/lib/rouge/lexers/haskell.rb +207 -0
  349. data/rouge-5.0.0/lib/rouge/lexers/haxe.rb +265 -0
  350. data/rouge-5.0.0/lib/rouge/lexers/hcl.rb +166 -0
  351. data/rouge-5.0.0/lib/rouge/lexers/hlsl.rb +166 -0
  352. data/rouge-5.0.0/lib/rouge/lexers/hocon.rb +86 -0
  353. data/rouge-5.0.0/lib/rouge/lexers/hql.rb +135 -0
  354. data/rouge-5.0.0/lib/rouge/lexers/html.rb +141 -0
  355. data/rouge-5.0.0/lib/rouge/lexers/http.rb +87 -0
  356. data/rouge-5.0.0/lib/rouge/lexers/hylang.rb +93 -0
  357. data/rouge-5.0.0/lib/rouge/lexers/idlang.rb +312 -0
  358. data/rouge-5.0.0/lib/rouge/lexers/idris.rb +210 -0
  359. data/rouge-5.0.0/lib/rouge/lexers/iecst.rb +92 -0
  360. data/rouge-5.0.0/lib/rouge/lexers/igorpro/builtins.rb +1530 -0
  361. data/rouge-5.0.0/lib/rouge/lexers/igorpro.rb +193 -0
  362. data/rouge-5.0.0/lib/rouge/lexers/ini.rb +56 -0
  363. data/rouge-5.0.0/lib/rouge/lexers/io.rb +69 -0
  364. data/rouge-5.0.0/lib/rouge/lexers/irb.rb +73 -0
  365. data/rouge-5.0.0/lib/rouge/lexers/isabelle.rb +251 -0
  366. data/rouge-5.0.0/lib/rouge/lexers/isbl.rb +61 -0
  367. data/rouge-5.0.0/lib/rouge/lexers/j.rb +244 -0
  368. data/rouge-5.0.0/lib/rouge/lexers/janet.rb +218 -0
  369. data/rouge-5.0.0/lib/rouge/lexers/java.rb +92 -0
  370. data/rouge-5.0.0/lib/rouge/lexers/javascript.rb +315 -0
  371. data/rouge-5.0.0/lib/rouge/lexers/jinja.rb +169 -0
  372. data/rouge-5.0.0/lib/rouge/lexers/jsl.rb +66 -0
  373. data/rouge-5.0.0/lib/rouge/lexers/json.rb +72 -0
  374. data/rouge-5.0.0/lib/rouge/lexers/json5.rb +74 -0
  375. data/rouge-5.0.0/lib/rouge/lexers/json_doc.rb +26 -0
  376. data/rouge-5.0.0/lib/rouge/lexers/jsonnet.rb +153 -0
  377. data/rouge-5.0.0/lib/rouge/lexers/jsp.rb +119 -0
  378. data/rouge-5.0.0/lib/rouge/lexers/jsx.rb +91 -0
  379. data/rouge-5.0.0/lib/rouge/lexers/julia.rb +293 -0
  380. data/rouge-5.0.0/lib/rouge/lexers/kick_assembler.rb +100 -0
  381. data/rouge-5.0.0/lib/rouge/lexers/kotlin.rb +150 -0
  382. data/rouge-5.0.0/lib/rouge/lexers/lasso/keywords.rb +20 -0
  383. data/rouge-5.0.0/lib/rouge/lexers/lasso.rb +212 -0
  384. data/rouge-5.0.0/lib/rouge/lexers/lean.rb +164 -0
  385. data/rouge-5.0.0/lib/rouge/lexers/liquid.rb +284 -0
  386. data/rouge-5.0.0/lib/rouge/lexers/literate_coffeescript.rb +34 -0
  387. data/rouge-5.0.0/lib/rouge/lexers/literate_haskell.rb +37 -0
  388. data/rouge-5.0.0/lib/rouge/lexers/livescript.rb +310 -0
  389. data/rouge-5.0.0/lib/rouge/lexers/llvm/keywords.rb +16 -0
  390. data/rouge-5.0.0/lib/rouge/lexers/llvm.rb +59 -0
  391. data/rouge-5.0.0/lib/rouge/lexers/lua/keywords.rb +26 -0
  392. data/rouge-5.0.0/lib/rouge/lexers/lua.rb +186 -0
  393. data/rouge-5.0.0/lib/rouge/lexers/lustre.rb +79 -0
  394. data/rouge-5.0.0/lib/rouge/lexers/lutin.rb +34 -0
  395. data/rouge-5.0.0/lib/rouge/lexers/m68k.rb +143 -0
  396. data/rouge-5.0.0/lib/rouge/lexers/magik.rb +127 -0
  397. data/rouge-5.0.0/lib/rouge/lexers/make.rb +148 -0
  398. data/rouge-5.0.0/lib/rouge/lexers/markdown.rb +183 -0
  399. data/rouge-5.0.0/lib/rouge/lexers/mason.rb +110 -0
  400. data/rouge-5.0.0/lib/rouge/lexers/mathematica/keywords.rb +15 -0
  401. data/rouge-5.0.0/lib/rouge/lexers/mathematica.rb +95 -0
  402. data/rouge-5.0.0/lib/rouge/lexers/matlab/keywords.rb +15 -0
  403. data/rouge-5.0.0/lib/rouge/lexers/matlab.rb +81 -0
  404. data/rouge-5.0.0/lib/rouge/lexers/meson.rb +158 -0
  405. data/rouge-5.0.0/lib/rouge/lexers/minizinc.rb +87 -0
  406. data/rouge-5.0.0/lib/rouge/lexers/mojo.rb +39 -0
  407. data/rouge-5.0.0/lib/rouge/lexers/moonscript.rb +117 -0
  408. data/rouge-5.0.0/lib/rouge/lexers/mosel.rb +228 -0
  409. data/rouge-5.0.0/lib/rouge/lexers/msgtrans.rb +26 -0
  410. data/rouge-5.0.0/lib/rouge/lexers/mxml.rb +69 -0
  411. data/rouge-5.0.0/lib/rouge/lexers/nasm.rb +73 -0
  412. data/rouge-5.0.0/lib/rouge/lexers/nesasm.rb +78 -0
  413. data/rouge-5.0.0/lib/rouge/lexers/nginx.rb +73 -0
  414. data/rouge-5.0.0/lib/rouge/lexers/nial.rb +165 -0
  415. data/rouge-5.0.0/lib/rouge/lexers/nim.rb +154 -0
  416. data/rouge-5.0.0/lib/rouge/lexers/nix.rb +213 -0
  417. data/rouge-5.0.0/lib/rouge/lexers/objective_c/common.rb +182 -0
  418. data/rouge-5.0.0/lib/rouge/lexers/objective_c.rb +21 -0
  419. data/rouge-5.0.0/lib/rouge/lexers/objective_cpp.rb +32 -0
  420. data/rouge-5.0.0/lib/rouge/lexers/ocaml/common.rb +53 -0
  421. data/rouge-5.0.0/lib/rouge/lexers/ocaml.rb +65 -0
  422. data/rouge-5.0.0/lib/rouge/lexers/ocl.rb +84 -0
  423. data/rouge-5.0.0/lib/rouge/lexers/openedge.rb +632 -0
  424. data/rouge-5.0.0/lib/rouge/lexers/opentype_feature_file.rb +97 -0
  425. data/rouge-5.0.0/lib/rouge/lexers/p4.rb +81 -0
  426. data/rouge-5.0.0/lib/rouge/lexers/pascal.rb +68 -0
  427. data/rouge-5.0.0/lib/rouge/lexers/pdf.rb +109 -0
  428. data/rouge-5.0.0/lib/rouge/lexers/perl.rb +251 -0
  429. data/rouge-5.0.0/lib/rouge/lexers/php/keywords.rb +150 -0
  430. data/rouge-5.0.0/lib/rouge/lexers/php.rb +470 -0
  431. data/rouge-5.0.0/lib/rouge/lexers/plain_text.rb +27 -0
  432. data/rouge-5.0.0/lib/rouge/lexers/plist.rb +47 -0
  433. data/rouge-5.0.0/lib/rouge/lexers/plsql.rb +577 -0
  434. data/rouge-5.0.0/lib/rouge/lexers/pony.rb +94 -0
  435. data/rouge-5.0.0/lib/rouge/lexers/postscript.rb +93 -0
  436. data/rouge-5.0.0/lib/rouge/lexers/powershell.rb +248 -0
  437. data/rouge-5.0.0/lib/rouge/lexers/praat.rb +438 -0
  438. data/rouge-5.0.0/lib/rouge/lexers/prolog.rb +67 -0
  439. data/rouge-5.0.0/lib/rouge/lexers/prometheus.rb +122 -0
  440. data/rouge-5.0.0/lib/rouge/lexers/properties.rb +52 -0
  441. data/rouge-5.0.0/lib/rouge/lexers/protobuf.rb +71 -0
  442. data/rouge-5.0.0/lib/rouge/lexers/puppet.rb +129 -0
  443. data/rouge-5.0.0/lib/rouge/lexers/python.rb +340 -0
  444. data/rouge-5.0.0/lib/rouge/lexers/q.rb +125 -0
  445. data/rouge-5.0.0/lib/rouge/lexers/qml.rb +74 -0
  446. data/rouge-5.0.0/lib/rouge/lexers/r.rb +89 -0
  447. data/rouge-5.0.0/lib/rouge/lexers/racket.rb +568 -0
  448. data/rouge-5.0.0/lib/rouge/lexers/reasonml.rb +66 -0
  449. data/rouge-5.0.0/lib/rouge/lexers/rego.rb +60 -0
  450. data/rouge-5.0.0/lib/rouge/lexers/rescript.rb +119 -0
  451. data/rouge-5.0.0/lib/rouge/lexers/rml.rb +142 -0
  452. data/rouge-5.0.0/lib/rouge/lexers/robot_framework.rb +249 -0
  453. data/rouge-5.0.0/lib/rouge/lexers/rocq.rb +264 -0
  454. data/rouge-5.0.0/lib/rouge/lexers/ruby.rb +481 -0
  455. data/rouge-5.0.0/lib/rouge/lexers/rust.rb +261 -0
  456. data/rouge-5.0.0/lib/rouge/lexers/sas.rb +562 -0
  457. data/rouge-5.0.0/lib/rouge/lexers/sass/common.rb +182 -0
  458. data/rouge-5.0.0/lib/rouge/lexers/sass.rb +75 -0
  459. data/rouge-5.0.0/lib/rouge/lexers/scala.rb +172 -0
  460. data/rouge-5.0.0/lib/rouge/lexers/scheme.rb +113 -0
  461. data/rouge-5.0.0/lib/rouge/lexers/scss.rb +35 -0
  462. data/rouge-5.0.0/lib/rouge/lexers/sed.rb +173 -0
  463. data/rouge-5.0.0/lib/rouge/lexers/shell.rb +205 -0
  464. data/rouge-5.0.0/lib/rouge/lexers/sieve.rb +97 -0
  465. data/rouge-5.0.0/lib/rouge/lexers/slice.rb +32 -0
  466. data/rouge-5.0.0/lib/rouge/lexers/slim.rb +229 -0
  467. data/rouge-5.0.0/lib/rouge/lexers/smalltalk.rb +117 -0
  468. data/rouge-5.0.0/lib/rouge/lexers/smarty.rb +81 -0
  469. data/rouge-5.0.0/lib/rouge/lexers/sml.rb +345 -0
  470. data/rouge-5.0.0/lib/rouge/lexers/sparql.rb +131 -0
  471. data/rouge-5.0.0/lib/rouge/lexers/sqf/keywords.rb +14 -0
  472. data/rouge-5.0.0/lib/rouge/lexers/sqf.rb +108 -0
  473. data/rouge-5.0.0/lib/rouge/lexers/sql.rb +161 -0
  474. data/rouge-5.0.0/lib/rouge/lexers/ssh.rb +33 -0
  475. data/rouge-5.0.0/lib/rouge/lexers/stan.rb +445 -0
  476. data/rouge-5.0.0/lib/rouge/lexers/stata.rb +165 -0
  477. data/rouge-5.0.0/lib/rouge/lexers/supercollider.rb +115 -0
  478. data/rouge-5.0.0/lib/rouge/lexers/svelte.rb +91 -0
  479. data/rouge-5.0.0/lib/rouge/lexers/swift.rb +202 -0
  480. data/rouge-5.0.0/lib/rouge/lexers/systemd.rb +34 -0
  481. data/rouge-5.0.0/lib/rouge/lexers/syzlang.rb +316 -0
  482. data/rouge-5.0.0/lib/rouge/lexers/syzprog.rb +122 -0
  483. data/rouge-5.0.0/lib/rouge/lexers/tap.rb +88 -0
  484. data/rouge-5.0.0/lib/rouge/lexers/tcl.rb +198 -0
  485. data/rouge-5.0.0/lib/rouge/lexers/terraform.rb +121 -0
  486. data/rouge-5.0.0/lib/rouge/lexers/tex.rb +70 -0
  487. data/rouge-5.0.0/lib/rouge/lexers/thrift.rb +120 -0
  488. data/rouge-5.0.0/lib/rouge/lexers/toml.rb +124 -0
  489. data/rouge-5.0.0/lib/rouge/lexers/tsx.rb +33 -0
  490. data/rouge-5.0.0/lib/rouge/lexers/ttcn3.rb +117 -0
  491. data/rouge-5.0.0/lib/rouge/lexers/tulip.rb +107 -0
  492. data/rouge-5.0.0/lib/rouge/lexers/turtle.rb +61 -0
  493. data/rouge-5.0.0/lib/rouge/lexers/twig.rb +40 -0
  494. data/rouge-5.0.0/lib/rouge/lexers/typescript/common.rb +60 -0
  495. data/rouge-5.0.0/lib/rouge/lexers/typescript.rb +23 -0
  496. data/rouge-5.0.0/lib/rouge/lexers/vala.rb +78 -0
  497. data/rouge-5.0.0/lib/rouge/lexers/varnish.rb +168 -0
  498. data/rouge-5.0.0/lib/rouge/lexers/vb.rb +165 -0
  499. data/rouge-5.0.0/lib/rouge/lexers/velocity.rb +71 -0
  500. data/rouge-5.0.0/lib/rouge/lexers/verilog.rb +163 -0
  501. data/rouge-5.0.0/lib/rouge/lexers/veryl.rb +109 -0
  502. data/rouge-5.0.0/lib/rouge/lexers/vhdl.rb +98 -0
  503. data/rouge-5.0.0/lib/rouge/lexers/viml/keywords.rb +19 -0
  504. data/rouge-5.0.0/lib/rouge/lexers/viml.rb +68 -0
  505. data/rouge-5.0.0/lib/rouge/lexers/vue.rb +127 -0
  506. data/rouge-5.0.0/lib/rouge/lexers/wollok.rb +107 -0
  507. data/rouge-5.0.0/lib/rouge/lexers/xml.rb +56 -0
  508. data/rouge-5.0.0/lib/rouge/lexers/xojo.rb +61 -0
  509. data/rouge-5.0.0/lib/rouge/lexers/xpath.rb +332 -0
  510. data/rouge-5.0.0/lib/rouge/lexers/xquery.rb +146 -0
  511. data/rouge-5.0.0/lib/rouge/lexers/yaml.rb +388 -0
  512. data/rouge-5.0.0/lib/rouge/lexers/yang.rb +115 -0
  513. data/rouge-5.0.0/lib/rouge/lexers/zig.rb +139 -0
  514. data/rouge-5.0.0/lib/rouge/plugins/redcarpet.rb +38 -0
  515. data/rouge-5.0.0/lib/rouge/regex_lexer.rb +522 -0
  516. data/rouge-5.0.0/lib/rouge/template_lexer.rb +21 -0
  517. data/rouge-5.0.0/lib/rouge/tex_theme_renderer.rb +132 -0
  518. data/rouge-5.0.0/lib/rouge/text_analyzer.rb +50 -0
  519. data/rouge-5.0.0/lib/rouge/theme.rb +218 -0
  520. data/rouge-5.0.0/lib/rouge/themes/base16.rb +137 -0
  521. data/rouge-5.0.0/lib/rouge/themes/bw.rb +43 -0
  522. data/rouge-5.0.0/lib/rouge/themes/colorful.rb +70 -0
  523. data/rouge-5.0.0/lib/rouge/themes/github.rb +149 -0
  524. data/rouge-5.0.0/lib/rouge/themes/gruvbox.rb +176 -0
  525. data/rouge-5.0.0/lib/rouge/themes/igor_pro.rb +25 -0
  526. data/rouge-5.0.0/lib/rouge/themes/magritte.rb +80 -0
  527. data/rouge-5.0.0/lib/rouge/themes/molokai.rb +84 -0
  528. data/rouge-5.0.0/lib/rouge/themes/monokai.rb +95 -0
  529. data/rouge-5.0.0/lib/rouge/themes/monokai_sublime.rb +94 -0
  530. data/rouge-5.0.0/lib/rouge/themes/pastie.rb +72 -0
  531. data/rouge-5.0.0/lib/rouge/themes/thankful_eyes.rb +77 -0
  532. data/rouge-5.0.0/lib/rouge/themes/tulip.rb +72 -0
  533. data/rouge-5.0.0/lib/rouge/token.rb +192 -0
  534. data/rouge-5.0.0/lib/rouge/util.rb +102 -0
  535. data/rouge-5.0.0/lib/rouge/version.rb +8 -0
  536. data/rouge-5.0.0/lib/rouge.rb +117 -0
  537. data/rouge-5.0.0/lib/rubocop/cop/rouge/no_building_alternation_pattern_in_regexp.rb +71 -0
  538. data/rouge-5.0.0/lib/rubocop/cop/rouge/no_huge_collections.rb +37 -0
  539. data/rouge-5.0.0/rouge.gemspec +29 -0
  540. metadata +578 -0
@@ -0,0 +1,244 @@
1
+ # -*- coding: utf-8 -*- #
2
+ # frozen_string_literal: true
3
+
4
+ module Rouge
5
+ module Lexers
6
+ class J < RegexLexer
7
+ title 'J'
8
+ desc "The J programming language (jsoftware.com)"
9
+ tag 'j'
10
+ filenames '*.ijs', '*.ijt'
11
+
12
+ # For J-specific terms we use, see:
13
+ # https://code.jsoftware.com/wiki/Vocabulary/AET
14
+ # https://code.jsoftware.com/wiki/Vocabulary/Glossary
15
+
16
+ # https://code.jsoftware.com/wiki/Vocabulary/PartsOfSpeech
17
+ def self.token_map
18
+ @token_map ||= {
19
+ noun: Keyword::Constant,
20
+ verb: Name::Function,
21
+ modifier: Operator,
22
+ name: Name,
23
+ param: Name::Builtin::Pseudo,
24
+ other: Punctuation,
25
+ nil => Error,
26
+ }
27
+ end
28
+
29
+ # https://code.jsoftware.com/wiki/NuVoc
30
+ def self.inflection_list
31
+ @inflection_list ||= ['', '.', ':', '..', '.:', ':.', '::']
32
+ end
33
+
34
+ def self.primitive_table
35
+ @primitive_table ||= Hash.new([:name].freeze).tap do |h|
36
+ {
37
+ '()' => [:other],
38
+ '=' => [:verb, :other, :other],
39
+ '<>+-*%$|,#' => [:verb, :verb, :verb],
40
+ '^' => [:verb, :verb, :modifier],
41
+ '~"' => [:modifier, :verb, :verb],
42
+ '.:@' => [:modifier, :modifier, :modifier],
43
+ ';' => [:verb, :modifier, :verb],
44
+ '!' => [:verb, :modifier, :modifier],
45
+ '/\\' => [:modifier, :modifier, :verb],
46
+ '[' => [:verb, nil, :verb],
47
+ ']' => [:verb],
48
+ '{' => [:verb, :verb, :verb, nil, nil, nil, :verb],
49
+ '}' => [:modifier, :verb, :verb, nil, nil, nil, :modifier],
50
+ '`' => [:modifier, nil, :modifier],
51
+ '&' => [:modifier, :modifier, :modifier, nil, :modifier],
52
+ '?' => [:verb, :verb],
53
+ 'a' => [:name, :noun, :noun],
54
+ 'ACeEIjorv' => [:name, :verb],
55
+ 'bdfHMT' => [:name, :modifier],
56
+ 'Dt' => [:name, :modifier, :modifier],
57
+ 'F' => [:name, :modifier, :modifier, :modifier, :modifier,
58
+ :modifier, :modifier],
59
+ 'iu' => [:name, :verb, :verb],
60
+ 'L' => [:name, :verb, :modifier],
61
+ 'mny' => [:param],
62
+ 'p' => [:name, :verb, :verb, :verb],
63
+ 'qsZ' => [:name, nil, :verb],
64
+ 'S' => [:name, nil, :modifier],
65
+ 'u' => [:param, :verb, :verb],
66
+ 'v' => [:param, :verb],
67
+ 'x' => [:param, nil, :verb],
68
+ }.each {|k, v| k.each_char {|c| h[c] = v } }
69
+ end
70
+ end
71
+
72
+ def self.primitive(char, inflection)
73
+ i = inflection_list.index(inflection) or return Error
74
+ token_map[primitive_table[char][i]]
75
+ end
76
+
77
+ def self.control_words
78
+ @control_words ||= Set.new %w(
79
+ assert break case catch catchd catcht continue do else elseif end
80
+ fcase for if return select throw try while whilst
81
+ )
82
+ end
83
+
84
+ def self.control_words_id
85
+ @control_words_id ||= Set.new %w(for goto label)
86
+ end
87
+
88
+ state :expr do
89
+ rule %r/\s+/, Text
90
+
91
+ rule %r'([!-&(-/:-@\[-^`{-~]|[A-Za-z]\b)([.:]*)' do |m|
92
+ token J.primitive(m[1], m[2])
93
+ end
94
+
95
+ rule %r/(?:\d|_\d?):([.:]*)/ do |m|
96
+ token m[1].empty? ? J.token_map[:verb] : Error
97
+ end
98
+
99
+ rule %r/[\d_][\w.]*([.:]*)/ do |m|
100
+ token m[1].empty? ? Num : Error
101
+ end
102
+
103
+ rule %r/'/, Str::Single, :str
104
+
105
+ rule %r/NB\.(?![.:]).*/, Comment::Single
106
+
107
+ rule %r/([A-Za-z]\w*)([.:]*)/ do |m|
108
+ if m[2] == '.'
109
+ word, sep, id = m[1].partition '_'
110
+ list = if sep.empty?
111
+ J.control_words
112
+ elsif not id.empty?
113
+ J.control_words_id
114
+ end
115
+ if list and list.include? word
116
+ token Keyword, word + sep
117
+ token((word == 'for' ? Name : Name::Label), id)
118
+ token Keyword, m[2]
119
+ else
120
+ token Error
121
+ end
122
+ else
123
+ token m[2].empty? ? Name : Error
124
+ end
125
+ end
126
+ end
127
+
128
+ state :str do
129
+ rule %r/''/, Str::Escape
130
+ rule %r/[^'\n]+/, Str::Single
131
+ rule %r/'|$/, Str::Single, :pop!
132
+ end
133
+
134
+ start do
135
+ @note_next = false
136
+ end
137
+
138
+ state :root do
139
+ rule %r/\n/ do
140
+ token Text
141
+ if @note_next
142
+ push :note
143
+ @note_next = false
144
+ end
145
+ end
146
+
147
+ # https://code.jsoftware.com/wiki/Vocabulary/com
148
+ # https://code.jsoftware.com/wiki/Vocabulary/NounExplicitDefinition
149
+ rule %r/
150
+ ([0-4]|13|adverb|conjunction|dyad|monad|noun|verb)([\ \t]+)
151
+ (def(?:ine)?\b|:)(?![.:])([\ \t]*)
152
+ /x do |m|
153
+ groups Keyword::Pseudo, Text, Keyword::Pseudo, Text
154
+ @def_body = (m[1] == '0' || m[1] == 'noun') ? :noun : :code
155
+ if m[3] == 'define'
156
+ # stack: [:root]
157
+ # or [:root, ..., :def_next]
158
+ pop! if stack.size > 1
159
+ push @def_body
160
+ push :def_next # [:root, ..., @def_body, :def_next]
161
+ else
162
+ push :expl_def
163
+ end
164
+ end
165
+
166
+ rule %r/^([ \t]*)(Note\b(?![.:]))([ \t\r]*)(?!=[.:]|$)/ do
167
+ groups Text, Name, Text
168
+ @note_next = true
169
+ end
170
+
171
+ rule %r/[mnuvxy]\b(?![.:])/, Name
172
+ mixin :expr
173
+ end
174
+
175
+ state :def_next do
176
+ rule %r/\n/, Text, :pop!
177
+ mixin :root
178
+ end
179
+
180
+ state :expl_def do
181
+ rule %r/0\b(?![.:])/ do
182
+ token Keyword::Pseudo
183
+ # stack: [:root, :expl_def]
184
+ # or [:root, ..., :def_next, :expl_def]
185
+ pop! if stack.size > 2
186
+ goto @def_body
187
+ push :def_next # [:root, ..., @def_body, :def_next]
188
+ end
189
+ rule %r/'/ do
190
+ if @def_body == :noun
191
+ token Str::Single
192
+ goto :str
193
+ else
194
+ token Punctuation
195
+ goto :q_expr
196
+ end
197
+ end
198
+ rule(//) { pop! }
199
+ end
200
+
201
+ # `q_expr` lexes the content of a string literal which is a part of an
202
+ # explicit definition.
203
+ # e.g. dyad def 'x + y'
204
+ state :q_expr do
205
+ rule %r/''/, Str::Single, :q_str
206
+ rule %r/'|$/, Punctuation, :pop!
207
+ rule %r/NB\.(?![.:])([^'\n]|'')*/, Comment::Single
208
+ mixin :expr
209
+ end
210
+
211
+ state :q_str do
212
+ rule %r/''''/, Str::Escape
213
+ rule %r/[^'\n]+/, Str::Single
214
+ rule %r/''/, Str::Single, :pop!
215
+ rule(/'|$/) { token Punctuation; pop! 2 }
216
+ end
217
+
218
+ state :note do
219
+ mixin :delimiter
220
+ rule %r/.+\n?/, Comment::Multiline
221
+ end
222
+
223
+ state :noun do
224
+ mixin :delimiter
225
+ rule %r/.+\n?/, Str::Heredoc
226
+ end
227
+
228
+ state :code do
229
+ mixin :delimiter
230
+ rule %r/^([ \t]*)(:)([ \t\r]*)$/ do
231
+ groups Text, Punctuation, Text
232
+ end
233
+ mixin :expr
234
+ end
235
+
236
+ state :delimiter do
237
+ rule %r/^([ \t]*)(\))([ \t\r]*$\n?)/ do
238
+ groups Text, Punctuation, Text
239
+ pop!
240
+ end
241
+ end
242
+ end
243
+ end
244
+ end
@@ -0,0 +1,218 @@
1
+ # -*- coding: utf-8 -*- #
2
+ # frozen_string_literal: true
3
+
4
+ module Rouge
5
+ module Lexers
6
+ class Janet < RegexLexer
7
+ title "Janet"
8
+ desc "The Janet programming language (janet-lang.org)"
9
+
10
+ tag 'janet'
11
+ aliases 'jdn'
12
+
13
+ filenames '*.janet', '*.jdn'
14
+
15
+ mimetypes 'text/x-janet', 'application/x-janet'
16
+
17
+ def self.specials
18
+ @specials ||= Set.new %w(
19
+ break def do fn if quote quasiquote splice set unquote var while
20
+ )
21
+ end
22
+
23
+ def self.bundled
24
+ @bundled ||= Set.new %w(
25
+ % %= * *= + ++ += - -- -= -> ->> -?> -?>> / /= < <= = > >=
26
+ abstract? accumulate accumulate2 all all-bindings
27
+ all-dynamics and apply array array/concat array/ensure
28
+ array/fill array/insert array/new array/new-filled
29
+ array/peek array/pop array/push array/remove array/slice
30
+ array? as-> as?-> asm assert bad-compile bad-parse band
31
+ blshift bnot boolean? bor brshift brushift buffer buffer/bit
32
+ buffer/bit-clear buffer/bit-set buffer/bit-toggle
33
+ buffer/blit buffer/clear buffer/fill buffer/format
34
+ buffer/new buffer/new-filled buffer/popn buffer/push-byte
35
+ buffer/push-string buffer/push-word buffer/slice buffer?
36
+ bxor bytes? case cfunction? chr cli-main comment comp
37
+ compare compare= compare< compare<= compare> compare>=
38
+ compile complement comptime cond coro count debug
39
+ debug/arg-stack debug/break debug/fbreak debug/lineage
40
+ debug/stack debug/stacktrace debug/step debug/unbreak
41
+ debug/unfbreak debugger-env dec deep-not= deep= default
42
+ default-peg-grammar def- defer defmacro defmacro- defn defn-
43
+ defglobal describe dictionary? disasm distinct doc doc*
44
+ doc-format dofile drop drop-until drop-while dyn each eachk
45
+ eachp eachy edefer eflush empty? env-lookup eprin eprinf
46
+ eprint eprintf error errorf eval eval-string even? every?
47
+ extreme false? fiber/can-resume? fiber/current fiber/getenv
48
+ fiber/maxstack fiber/new fiber/root fiber/setenv
49
+ fiber/setmaxstack fiber/status fiber? file/close file/flush
50
+ file/open file/popen file/read file/seek file/temp
51
+ file/write filter find find-index first flatten flatten-into
52
+ flush for forv freeze frequencies function? gccollect
53
+ gcinterval gcsetinterval generate gensym get get-in getline
54
+ hash idempotent? identity import import* if-let if-not
55
+ if-with in inc indexed? int/s64 int/u64 int? interleave
56
+ interpose invert janet/build janet/config-bits janet/version
57
+ juxt juxt* keep keys keyword keyword? kvs label last length
58
+ let load-image load-image-dict loop macex macex1 make-env
59
+ make-image make-image-dict map mapcat marshal math/-inf
60
+ math/abs math/acos math/acosh math/asin math/asinh math/atan
61
+ math/atan2 math/atanh math/cbrt math/ceil math/cos math/cosh
62
+ math/e math/erf math/erfc math/exp math/exp2 math/expm1
63
+ math/floor math/gamma math/hypot math/inf math/log
64
+ math/log10 math/log1p math/log2 math/next math/pi math/pow
65
+ math/random math/rng math/rng-buffer math/rng-int
66
+ math/rng-uniform math/round math/seedrandom math/sin
67
+ math/sinh math/sqrt math/tan math/tanh math/trunc match max
68
+ mean merge merge-into min mod module/add-paths module/cache
69
+ module/expand-path module/find module/loaders module/loading
70
+ module/paths nan? nat? native neg? net/chunk net/close
71
+ net/connect net/read net/server net/write next nil? not not=
72
+ number? odd? one? or os/arch os/cd os/chmod os/clock
73
+ os/cryptorand os/cwd os/date os/dir os/environ os/execute
74
+ os/exit os/getenv os/link os/lstat os/mkdir os/mktime
75
+ os/perm-int os/perm-string os/readlink os/realpath os/rename
76
+ os/rm os/rmdir os/setenv os/shell os/sleep os/stat
77
+ os/symlink os/time os/touch os/umask os/which pairs parse
78
+ parser/byte parser/clone parser/consume parser/eof
79
+ parser/error parser/flush parser/has-more parser/insert
80
+ parser/new parser/produce parser/state parser/status
81
+ parser/where partial partition peg/compile peg/match pos?
82
+ postwalk pp prewalk prin prinf print printf product prompt
83
+ propagate protect put put-in quit range reduce reduce2
84
+ repeat repl require resume return reverse reversed root-env
85
+ run-context scan-number seq setdyn shortfn signal slice
86
+ slurp some sort sort-by sorted sorted-by spit stderr stdin
87
+ stdout string string/ascii-lower string/ascii-upper
88
+ string/bytes string/check-set string/find string/find-all
89
+ string/format string/from-bytes string/has-prefix?
90
+ string/has-suffix? string/join string/repeat string/replace
91
+ string/replace-all string/reverse string/slice string/split
92
+ string/trim string/triml string/trimr string? struct struct?
93
+ sum symbol symbol? table table/clone table/getproto
94
+ table/new table/rawget table/setproto table/to-struct table?
95
+ take take-until take-while tarray/buffer tarray/copy-bytes
96
+ tarray/length tarray/new tarray/properties tarray/slice
97
+ tarray/swap-bytes thread/close thread/current thread/new
98
+ thread/receive thread/send trace tracev true? truthy? try
99
+ tuple tuple/brackets tuple/setmap tuple/slice
100
+ tuple/sourcemap tuple/type tuple? type unless unmarshal
101
+ untrace update update-in use values var- varfn varglobal
102
+ walk walk-ind walk-dict when when-let when-with with
103
+ with-dyns with-syms with-vars yield zero? zipcoll
104
+ )
105
+ end
106
+
107
+ def name_token(name)
108
+ if self.class.specials.include? name
109
+ Keyword
110
+ elsif self.class.bundled.include? name
111
+ Keyword::Reserved
112
+ else
113
+ Name::Function
114
+ end
115
+ end
116
+
117
+ punctuation = %r/[_!$%^&*+=~<>.?\/-]/o
118
+ symbol = %r/([[:alpha:]]|#{punctuation})([[:word:]]|#{punctuation}|:)*/o
119
+
120
+ state :root do
121
+ rule %r/#.*?$/, Comment::Single
122
+ rule %r/\s+/m, Text::Whitespace
123
+
124
+ rule %r/(true|false|nil)\b/, Name::Constant
125
+ rule %r/(['~])(#{symbol})/ do
126
+ groups Operator, Str::Symbol
127
+ end
128
+ rule %r/:([[:word:]]|#{punctuation}|:)*/, Keyword::Constant
129
+
130
+ # radix-specified numbers
131
+ rule %r/[+-]?\d{1,2}r[\w.]+(&[+-]?\w+)?/, Num::Float
132
+
133
+ # hex numbers
134
+ rule %r/[+-]?0x\h[\h_]*(\.\h[\h_]*)?/, Num::Hex
135
+ rule %r/[+-]?0x\.\h[\h_]*/, Num::Hex
136
+
137
+ # decimal numbers (Janet treats all decimals as floats)
138
+ rule %r/[+-]?\d[\d_]*(\.\d[\d_]*)?([e][+-]?\d+)?/i, Num::Float
139
+ rule %r/[+-]?\.\d[\d_]*([e][+-]?\d+)?/i, Num::Float
140
+
141
+ rule %r/@?"/, Str::Double, :string
142
+ rule %r/@?(`+).*?\1/m, Str::Heredoc
143
+
144
+ rule %r/\(/, Punctuation, :function
145
+
146
+ rule %r/(')(@?[(\[{])/ do
147
+ groups Operator, Punctuation
148
+ push :quote
149
+ end
150
+
151
+ rule %r/(~)(@?[(\[{])/ do
152
+ groups Operator, Punctuation
153
+ push :quasiquote
154
+ end
155
+
156
+ rule %r/[\#~,';\|]/, Operator
157
+
158
+ rule %r/@?[(){}\[\]]/, Punctuation
159
+
160
+ rule symbol, Name
161
+ end
162
+
163
+ state :string do
164
+ rule %r/"/, Str::Double, :pop!
165
+ rule %r/\\(u\h{4}|U\h{6})/, Str::Escape
166
+ rule %r/\\./, Str::Escape
167
+ rule %r/[^"\\]+/, Str::Double
168
+ end
169
+
170
+ state :function do
171
+ rule %r/[\)]/, Punctuation, :pop!
172
+
173
+ rule symbol do |m|
174
+ case m[0]
175
+ when "quote"
176
+ token Keyword
177
+ goto :quote
178
+ when "quasiquote"
179
+ token Keyword
180
+ goto :quasiquote
181
+ else
182
+ token name_token(m[0])
183
+ goto :root
184
+ end
185
+ end
186
+
187
+ mixin :root
188
+ end
189
+
190
+ state :quote do
191
+ rule %r/[(\[{]/, Punctuation, :push
192
+ rule %r/[)\]}]/, Punctuation, :pop!
193
+ rule symbol, Str::Escape
194
+ mixin :root
195
+ end
196
+
197
+ state :quasiquote do
198
+ rule %r/(,)(\()/ do
199
+ groups Operator, Punctuation
200
+ push :function
201
+ end
202
+ rule %r/(\()(\s*)(unquote)(\s+)(\()/ do
203
+ groups Punctuation, Text, Keyword, Text, Punctuation
204
+ push :function
205
+ end
206
+
207
+ rule %r/(,)(#{symbol})/ do
208
+ groups Operator, Name
209
+ end
210
+ rule %r/(\()(\s*)(unquote)(\s+)(#{symbol})/ do
211
+ groups Punctuation, Text, Keyword, Text, Name
212
+ end
213
+
214
+ mixin :quote
215
+ end
216
+ end
217
+ end
218
+ end
@@ -0,0 +1,92 @@
1
+ # -*- coding: utf-8 -*- #
2
+ # frozen_string_literal: true
3
+
4
+ module Rouge
5
+ module Lexers
6
+ class Java < RegexLexer
7
+ title "Java"
8
+ desc "The Java programming language (java.com)"
9
+
10
+ tag 'java'
11
+ filenames '*.java'
12
+ mimetypes 'text/x-java'
13
+
14
+ keywords = %w(
15
+ assert break case catch continue default do else finally for
16
+ if goto instanceof new return switch this throw try while
17
+ )
18
+
19
+ declarations = %w(
20
+ abstract const enum extends final implements native private protected
21
+ public static strictfp super synchronized throws transient volatile
22
+ )
23
+
24
+ types = %w(boolean byte char double float int long short var void)
25
+
26
+ id = /[[:alpha:]_][[:word:]]*/
27
+ const_name = /[[:upper:]][[:upper:][:digit:]_]*\b/
28
+ class_name = /[[:upper:]][[:alnum:]]*\b/
29
+
30
+ state :root do
31
+ rule %r/[^\S\n]+/, Text
32
+ rule %r(//.*?$), Comment::Single
33
+ rule %r(/\*.*?\*/)m, Comment::Multiline
34
+ # keywords: go before method names to avoid lexing "throw new XYZ"
35
+ # as a method signature
36
+ rule %r/(?:#{keywords.join('|')})\b/, Keyword
37
+
38
+ rule %r(
39
+ (\s*(?:[a-zA-Z_][a-zA-Z0-9_.\[\]<>]*\s+)+?) # return arguments
40
+ ([a-zA-Z_][a-zA-Z0-9_]*) # method name
41
+ (\s*)(\() # signature start
42
+ )mx do |m|
43
+ # TODO: do this better, this shouldn't need a delegation
44
+ delegate Java, m[1]
45
+ token Name::Function, m[2]
46
+ token Text, m[3]
47
+ token Operator, m[4]
48
+ end
49
+
50
+ rule %r/@#{id}/, Name::Decorator
51
+ rule %r/(?:#{declarations.join('|')})\b/, Keyword::Declaration
52
+ rule %r/(?:#{types.join('|')})\b/, Keyword::Type
53
+ rule %r/(?:true|false|null)\b/, Keyword::Constant
54
+ rule %r/(?:class|interface|record)\b/, Keyword::Declaration, :class
55
+ rule %r/(?:import|package)\b/, Keyword::Namespace, :import
56
+ rule %r/"""\s*\n.*?(?<!\\)"""/m, Str::Heredoc
57
+ rule %r/"(\\\\|\\"|[^"])*"/, Str
58
+ rule %r/'(?:\\.|[^\\]|\\u[0-9a-f]{4})'/, Str::Char
59
+ rule %r/(\.)(#{id})/ do
60
+ groups Operator, Name::Attribute
61
+ end
62
+
63
+ rule %r/#{id}:/, Name::Label
64
+ rule const_name, Name::Constant
65
+ rule class_name, Name::Class
66
+ rule %r/\$?#{id}/, Name
67
+ rule %r/[~^*!%&\[\](){}<>\|+=:;,.\/?-]/, Operator
68
+
69
+ digit = /[0-9]_+[0-9]|[0-9]/
70
+ bin_digit = /[01]_+[01]|[01]/
71
+ oct_digit = /[0-7]_+[0-7]|[0-7]/
72
+ hex_digit = /[0-9a-f]_+[0-9a-f]|[0-9a-f]/i
73
+ rule %r/#{digit}+\.#{digit}+([eE]#{digit}+)?[fd]?/, Num::Float
74
+ rule %r/0b#{bin_digit}+/i, Num::Bin
75
+ rule %r/0x#{hex_digit}+/i, Num::Hex
76
+ rule %r/0#{oct_digit}+/, Num::Oct
77
+ rule %r/#{digit}+L?/, Num::Integer
78
+ rule %r/\n/, Text
79
+ end
80
+
81
+ state :class do
82
+ rule %r/\s+/m, Text
83
+ rule id, Name::Class, :pop!
84
+ end
85
+
86
+ state :import do
87
+ rule %r/\s+/m, Text
88
+ rule %r/[a-z0-9_.]+\*?/i, Name::Namespace, :pop!
89
+ end
90
+ end
91
+ end
92
+ end