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,146 @@
1
+ # -*- coding: utf-8 -*- #
2
+ # frozen_string_literal: true
3
+
4
+ require_relative 'xpath'
5
+
6
+ module Rouge
7
+ module Lexers
8
+ class XQuery < XPath
9
+ title 'XQuery'
10
+ desc 'XQuery 3.1: An XML Query Language'
11
+ tag 'xquery'
12
+ filenames '*.xquery', '*.xq', '*.xqm'
13
+ mimetypes 'application/xquery'
14
+
15
+ def self.keywords
16
+ @keywords ||= Regexp.union super, Regexp.union(%w(
17
+ xquery encoding version declare module
18
+ namespace copy-namespaces boundary-space construction
19
+ default collation base-uri preserve strip
20
+ ordering ordered unordered order empty greatest least
21
+ preserve no-preserve inherit no-inherit
22
+ decimal-format decimal-separator grouping-separator
23
+ infinity minus-sign NaN percent per-mille
24
+ zero-digit digit pattern-separator exponent-separator
25
+ import schema at element option
26
+ function external context item
27
+ typeswitch switch case
28
+ try catch
29
+ validate lax strict type
30
+ document element attribute text comment processing-instruction
31
+ for let where order group by return
32
+ allowing tumbling stable sliding window
33
+ start end only when previous next count collation
34
+ ascending descending
35
+ ))
36
+ end
37
+
38
+ # Mixin states:
39
+
40
+ state :tags do
41
+ rule %r/<#{XPath.qName}/, Name::Tag, :start_tag
42
+ rule %r/<!--/, Comment, :xml_comment
43
+ rule %r/<\?.*?\?>/, Comment::Preproc
44
+ rule %r/<!\[CDATA\[.*?\]\]>/, Comment::Preproc
45
+ rule %r/&\S*?;/, Name::Entity
46
+ end
47
+
48
+ # Lexical states:
49
+
50
+ prepend :root do
51
+ mixin :tags
52
+
53
+ rule %r/\{/, Punctuation
54
+ rule %r/\}`?/ do
55
+ token Punctuation
56
+ if stack.length > 1
57
+ pop!
58
+ end
59
+ end
60
+
61
+ rule %r/(namespace)(\s+)(#{XPath.ncName})/ do
62
+ groups Keyword, Text::Whitespace, Name::Namespace
63
+ end
64
+
65
+ rule %r/(#{XQuery.keywords})\b/, Keyword
66
+ rule %r/;/, Punctuation
67
+ rule %r/%/, Keyword::Declaration, :annotation
68
+
69
+ rule %r/(\(#)(\s*)(#{XPath.eqName})/ do
70
+ groups Comment::Preproc, Text::Whitespace, Name::Tag
71
+ push :pragma
72
+ end
73
+
74
+ rule %r/``\[/, Str, :str_constructor
75
+ end
76
+
77
+ state :annotation do
78
+ mixin :commentsAndWhitespace
79
+ rule XPath.eqName, Keyword::Declaration, :pop!
80
+ end
81
+
82
+ state :pragma do
83
+ mixin :commentsAndWhitespace
84
+ rule %r/#\)/, Comment::Preproc, :pop!
85
+ rule %r/./, Comment::Preproc
86
+ end
87
+
88
+ # https://www.w3.org/TR/xquery-31/#id-string-constructors
89
+ state :str_constructor do
90
+ rule %r/`\{/, Punctuation, :root
91
+ rule %r/\]``/, Str, :pop!
92
+ rule %r/[^`\]]+/m, Str
93
+ rule %r/[`\]]/, Str
94
+ end
95
+
96
+ state :xml_comment do
97
+ rule %r/[^-]+/m, Comment
98
+ rule %r/-->/, Comment, :pop!
99
+ rule %r/-/, Comment
100
+ end
101
+
102
+ state :start_tag do
103
+ rule %r/\s+/m, Text::Whitespace
104
+ rule %r/([\w.:-]+\s*=)(")/m do
105
+ groups Name::Attribute, Str
106
+ push :quot_attr
107
+ end
108
+ rule %r/([\w.:-]+\s*=)(')/m do
109
+ groups Name::Attribute, Str
110
+ push :apos_attr
111
+ end
112
+ rule %r/>/, Name::Tag, :tag_content
113
+ rule %r(/>), Name::Tag, :pop!
114
+ end
115
+
116
+ state :quot_attr do
117
+ rule %r/"/, Str, :pop!
118
+ rule %r/\{\{/, Str
119
+ rule %r/\{/, Punctuation, :root
120
+ rule %r/[^"{>]+/m, Str
121
+ end
122
+
123
+ state :apos_attr do
124
+ rule %r/'/, Str, :pop!
125
+ rule %r/\{\{/, Str
126
+ rule %r/\{/, Punctuation, :root
127
+ rule %r/[^'{>]+/m, Str
128
+ end
129
+
130
+ state :tag_content do
131
+ rule %r/\s+/m, Text::Whitespace
132
+ mixin :tags
133
+
134
+ rule %r/(\{\{|\}\})/, Text
135
+ rule %r/\{/, Punctuation, :root
136
+
137
+ rule %r/[^{}<&]/, Text
138
+
139
+ rule %r(</#{XPath.qName}(\s*)>) do
140
+ token Name::Tag
141
+ pop! 2 # pop self and tag_start
142
+ end
143
+ end
144
+ end
145
+ end
146
+ end
@@ -0,0 +1,388 @@
1
+ # -*- coding: utf-8 -*- #
2
+ # frozen_string_literal: true
3
+
4
+ module Rouge
5
+ module Lexers
6
+ class YAML < RegexLexer
7
+ title "YAML"
8
+ desc "Yaml Ain't Markup Language (yaml.org)"
9
+ mimetypes 'text/x-yaml'
10
+ tag 'yaml'
11
+ aliases 'yml'
12
+ filenames '*.yaml', '*.yml'
13
+
14
+ # Documentation: https://yaml.org/spec/1.2/spec.html
15
+
16
+ def self.detect?(text)
17
+ # look for the %YAML directive
18
+ return true if text =~ /\A\s*%YAML/m
19
+ end
20
+
21
+ # NB: Tabs are forbidden in YAML, which is why you see things
22
+ # like /[ ]+/.
23
+
24
+ # reset the indentation levels
25
+ def reset_indent
26
+ puts " yaml: reset_indent" if @debug
27
+ @indent_stack = [0]
28
+ @next_indent = 0
29
+ @block_scalar_indent = nil
30
+ end
31
+
32
+ def indent
33
+ raise 'empty indent stack!' if @indent_stack.empty?
34
+ @indent_stack.last
35
+ end
36
+
37
+ def dedent?(level)
38
+ level < self.indent
39
+ end
40
+
41
+ def indent?(level)
42
+ level > self.indent
43
+ end
44
+
45
+ # Save a possible indentation level
46
+ def save_indent(match)
47
+ @next_indent = match.size
48
+ puts " yaml: indent: #{self.indent}/#@next_indent" if @debug
49
+ puts " yaml: popping indent stack - before: #@indent_stack" if @debug
50
+ if dedent?(@next_indent)
51
+ @indent_stack.pop while dedent?(@next_indent)
52
+ puts " yaml: popping indent stack - after: #@indent_stack" if @debug
53
+ puts " yaml: indent: #{self.indent}/#@next_indent" if @debug
54
+
55
+ # dedenting to a state not previously indented to is an error
56
+ [match[0...self.indent], match[self.indent..-1]]
57
+ else
58
+ [match, '']
59
+ end
60
+ end
61
+
62
+ def continue_indent(match)
63
+ puts " yaml: continue_indent" if @debug
64
+ @next_indent += match.size
65
+ end
66
+
67
+ def set_indent(match, opts={})
68
+ if indent < @next_indent
69
+ puts " yaml: indenting #{indent}/#{@next_indent}" if @debug
70
+ @indent_stack << @next_indent
71
+ end
72
+
73
+ @next_indent += match.size unless opts[:implicit]
74
+ end
75
+
76
+ plain_scalar_start = /[^ \t\n\r\f\v?:,\[\]{}#&*!\|>'"%@`]/
77
+
78
+ start { reset_indent }
79
+
80
+ state :basic do
81
+ rule %r/#.*$/, Comment::Single
82
+ end
83
+
84
+ state :root do
85
+ mixin :basic
86
+
87
+ rule %r/\n+/, Text
88
+
89
+ # trailing or pre-comment whitespace
90
+ rule %r/[ ]+(?=#|$)/, Text
91
+
92
+ rule %r/^%YAML\b/ do
93
+ token Name::Tag
94
+ reset_indent
95
+ push :yaml_directive
96
+ end
97
+
98
+ rule %r/^%TAG\b/ do
99
+ token Name::Tag
100
+ reset_indent
101
+ push :tag_directive
102
+ end
103
+
104
+ # doc-start and doc-end indicators
105
+ rule %r/^(?:---|\.\.\.)(?= |$)/ do
106
+ token Name::Namespace
107
+ reset_indent
108
+ push :block_line
109
+ end
110
+
111
+ # indentation spaces
112
+ rule %r/[ ]*(?!\s|$)/ do |m|
113
+ text, err = save_indent(m[0])
114
+ token Text, text
115
+ token Error, err
116
+ push :block_line; push :indentation
117
+ end
118
+ end
119
+
120
+ state :indentation do
121
+ rule(/\s*?\n/) { token Text; pop! 2 }
122
+ # whitespace preceding block collection indicators
123
+ rule %r/[ ]+(?=[-:?](?:[ ]|$))/ do |m|
124
+ token Text
125
+ continue_indent(m[0])
126
+ end
127
+
128
+ # block collection indicators
129
+ rule(/[?:-](?=[ ]|$)/) do |m|
130
+ set_indent m[0]
131
+ token Punctuation::Indicator
132
+ end
133
+
134
+ # the beginning of a block line
135
+ rule(/[ ]*/) { |m| token Text; continue_indent(m[0]); pop! }
136
+ end
137
+
138
+ # indented line in the block context
139
+ state :block_line do
140
+ # line end
141
+ rule %r/[ ]*(?=#|$)/, Text, :pop!
142
+ rule %r/[ ]+/, Text
143
+ # tags, anchors, and aliases
144
+ mixin :descriptors
145
+ # block collections and scalars
146
+ mixin :block_nodes
147
+ # flow collections and quoed scalars
148
+ mixin :flow_nodes
149
+
150
+ # a plain scalar
151
+ rule %r/(?=#{plain_scalar_start}|[?:-][^ \t\n\r\f\v])/ do
152
+ token Name::Variable
153
+ push :plain_scalar_in_block_context
154
+ end
155
+ end
156
+
157
+ state :descriptors do
158
+ # a full-form tag
159
+ rule %r/!<[0-9A-Za-z;\/?:@&=+$,_.!~*'()\[\]%-]+>/, Keyword::Type
160
+
161
+ # a tag in the form '!', '!suffix' or '!handle!suffix'
162
+ rule %r(
163
+ (?:![\w-]+)? # handle
164
+ !(?:[\w;/?:@&=+$,.!~*\'()\[\]%-]*) # suffix
165
+ )x, Keyword::Type
166
+
167
+ # an anchor
168
+ rule %r/&[\p{L}\p{Nl}\p{Nd}_-]+/, Name::Label
169
+
170
+ # an alias
171
+ rule %r/\*[\p{L}\p{Nl}\p{Nd}_-]+/, Name::Variable
172
+ end
173
+
174
+ state :block_nodes do
175
+ # implicit unquoted key
176
+ rule %r/([^#,?\[\]{}"'\n]+)(:)(?=\s|$)/ do |m|
177
+ groups Name::Attribute, Punctuation::Indicator
178
+ set_indent m[0], :implicit => true
179
+ end
180
+
181
+ # implicit double-quoted key
182
+ rule %r/("(?:[^\n"]|\\")*")(\s*)(:)(?=\s|$)/ do |m|
183
+ groups Name::Attribute, Text, Punctuation::Indicator
184
+ set_indent m[0], :implicit => true
185
+ end
186
+
187
+ # implicit single-quoted key
188
+ rule %r/('(?:[^\n']|\\')*')(\s*)(:)(?=\s|$)/ do |m|
189
+ groups Name::Attribute, Text, Punctuation::Indicator
190
+ set_indent m[0], :implicit => true
191
+ end
192
+
193
+ # literal and folded scalars
194
+ rule %r/[\|>][+-]?/ do
195
+ token Punctuation::Indicator
196
+ push :block_scalar_content
197
+ push :block_scalar_header
198
+ end
199
+ end
200
+
201
+ state :flow_nodes do
202
+ rule %r/\[/, Punctuation::Indicator, :flow_sequence
203
+ rule %r/\{/, Punctuation::Indicator, :flow_mapping
204
+ rule %r/'/, Str::Single, :single_quoted_scalar
205
+ rule %r/"/, Str::Double, :double_quoted_scalar
206
+ end
207
+
208
+ state :flow_collection do
209
+ rule %r/\s+/m, Text
210
+ mixin :basic
211
+ rule %r/[?:,]/, Punctuation::Indicator
212
+ mixin :descriptors
213
+ mixin :flow_nodes
214
+
215
+ rule %r/(?=#{plain_scalar_start})/ do
216
+ push :plain_scalar_in_flow_context
217
+ end
218
+ end
219
+
220
+ state :flow_sequence do
221
+ rule %r/\]/, Punctuation::Indicator, :pop!
222
+ mixin :flow_collection
223
+ end
224
+
225
+ state :flow_mapping do
226
+ rule %r/\}/, Punctuation::Indicator, :pop!
227
+ mixin :flow_collection
228
+ end
229
+
230
+ state :block_scalar_content do
231
+ rule %r/\n+/, Text
232
+
233
+ # empty lines never dedent, but they might be part of the scalar.
234
+ rule %r/^[ ]+$/ do |m|
235
+ text = m[0]
236
+ indent_size = text.size
237
+
238
+ indent_mark = @block_scalar_indent || indent_size
239
+
240
+ token Text, text[0...indent_mark]
241
+ token Name::Constant, text[indent_mark..-1]
242
+ end
243
+
244
+ # TODO: ^ doesn't actually seem to affect the match at all.
245
+ # Find a way to work around this limitation.
246
+ rule %r/^[ ]*/ do |m|
247
+ token Text
248
+
249
+ indent_size = m[0].size
250
+
251
+ dedent_level = @block_scalar_indent || self.indent
252
+ @block_scalar_indent ||= indent_size
253
+
254
+ if indent_size < dedent_level
255
+ save_indent m[0]
256
+ pop!
257
+ push :indentation
258
+ end
259
+ end
260
+
261
+ rule %r/[^\n\r\f\v]+/, Str
262
+ end
263
+
264
+ state :block_scalar_header do
265
+ # optional indentation indicator and chomping flag, in either order
266
+ rule %r(
267
+ (
268
+ ([1-9])[+-]? | [+-]?([1-9])?
269
+ )(?=[ ]|$)
270
+ )x do |m|
271
+ @block_scalar_indent = nil
272
+ goto :ignored_line
273
+ next if m[0].empty?
274
+
275
+ increment = m[1] || m[2]
276
+ if increment
277
+ @block_scalar_indent = indent + increment.to_i
278
+ end
279
+
280
+ token Punctuation::Indicator
281
+ end
282
+ end
283
+
284
+ state :ignored_line do
285
+ mixin :basic
286
+ rule %r/[ ]+/, Text
287
+ rule %r/\n/, Text, :pop!
288
+ end
289
+
290
+ state :quoted_scalar_whitespaces do
291
+ # leading and trailing whitespace is ignored
292
+ rule %r/^[ ]+/, Text
293
+ rule %r/[ ]+$/, Text
294
+
295
+ rule %r/\n+/m, Text
296
+
297
+ rule %r/[ ]+/, Name::Variable
298
+ end
299
+
300
+ state :single_quoted_scalar do
301
+ mixin :quoted_scalar_whitespaces
302
+ rule %r/\\'/, Str::Escape
303
+ rule %r/'/, Str, :pop!
304
+ rule %r/[^\s']+/, Str
305
+ end
306
+
307
+ state :double_quoted_scalar do
308
+ rule %r/"/, Str, :pop!
309
+ mixin :quoted_scalar_whitespaces
310
+ # escapes
311
+ rule %r/\\[0abt\tn\nvfre "\\N_LP]/, Str::Escape
312
+ rule %r/\\(?:x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,
313
+ Str::Escape
314
+ rule %r/[^ \t\n\r\f\v"\\]+/, Str
315
+ end
316
+
317
+ state :plain_scalar_in_block_context_new_line do
318
+ rule %r/^[ ]+\n/, Text
319
+ rule %r/\n+/m, Text
320
+ rule %r/^(?=---|\.\.\.)/ do
321
+ pop! 3
322
+ end
323
+
324
+ # dedent detection
325
+ rule %r/^[ ]*/ do |m|
326
+ token Text
327
+ pop!
328
+
329
+ indent_size = m[0].size
330
+
331
+ # dedent = end of scalar
332
+ if indent_size <= self.indent
333
+ pop!
334
+ save_indent(m[0])
335
+ push :indentation
336
+ end
337
+ end
338
+ end
339
+
340
+ state :plain_scalar_in_block_context do
341
+ # the : indicator ends a scalar
342
+ rule %r/[ ]*(?=:[ \n]|:$)/, Text, :pop!
343
+ rule %r/[ ]*:\S+/, Str
344
+ rule %r/[ ]+(?=#)/, Text, :pop!
345
+ rule %r/[ ]+$/, Text
346
+ # check for new documents or dedents at the new line
347
+ rule %r/\n+/ do
348
+ token Text
349
+ push :plain_scalar_in_block_context_new_line
350
+ end
351
+
352
+ rule %r/[ ]+/, Str
353
+ rule %r((true|false|null)\b), Keyword::Constant
354
+ rule %r/\d+(?:\.\d+)?(?=(\r?\n)| +#)/, Literal::Number, :pop!
355
+
356
+ # regular non-whitespace characters
357
+ rule %r/[^\s:]+/, Str
358
+ end
359
+
360
+ state :plain_scalar_in_flow_context do
361
+ rule %r/[ ]*(?=[,:?\[\]{}])/, Text, :pop!
362
+ rule %r/[ ]+(?=#)/, Text, :pop!
363
+ rule %r/^[ ]+/, Text
364
+ rule %r/[ ]+$/, Text
365
+ rule %r/\n+/, Text
366
+ rule %r/[ ]+/, Name::Variable
367
+ rule %r/[^\s,:?\[\]{}]+/, Name::Variable
368
+ end
369
+
370
+ state :yaml_directive do
371
+ rule %r/([ ]+)(\d+\.\d+)/ do
372
+ groups Text, Num
373
+ goto :ignored_line
374
+ end
375
+ end
376
+
377
+ state :tag_directive do
378
+ rule %r(
379
+ ([ ]+)(!|![\w-]*!) # prefix
380
+ ([ ]+)(!|!?[\w;/?:@&=+$,.!~*'()\[\]%-]+) # tag handle
381
+ )x do
382
+ groups Text, Keyword::Type, Text, Keyword::Type
383
+ goto :ignored_line
384
+ end
385
+ end
386
+ end
387
+ end
388
+ end
@@ -0,0 +1,115 @@
1
+ # -*- coding: utf-8 -*- #
2
+ # frozen_string_literal: true
3
+
4
+ module Rouge
5
+ module Lexers
6
+ class YANG < RegexLexer
7
+ title 'YANG'
8
+ desc "Lexer for the YANG 1.1 modeling language (RFC7950)"
9
+ tag 'yang'
10
+ filenames '*.yang'
11
+ mimetypes 'application/yang'
12
+
13
+ id = /[\w-]+(?=[^\w\-\:])\b/
14
+
15
+ #Keywords from RFC7950 ; oriented at BNF style
16
+ top_keywords = Set.new %w(module submodule)
17
+
18
+ module_header_keywords = Set.new %w(belongs-to namespace prefix yang-version)
19
+
20
+ meta_keywords = Set.new %w(contact description organization reference revision)
21
+
22
+ linkage_keywords = Set.new %w(import include revision-date)
23
+
24
+ body_keywords = Set.new %w(
25
+ action argument augment deviation extension feature grouping identity
26
+ if-feature input notification output rpc typedef
27
+ )
28
+
29
+ data_def_keywords = Set.new %w(
30
+ anydata anyxml case choice config container deviate leaf leaf-list
31
+ list must presence refine uses when
32
+ )
33
+
34
+ type_keywords = Set.new %w(
35
+ base bit default enum error-app-tag error-message fraction-digits
36
+ length max-elements min-elements modifier ordered-by path pattern
37
+ position range require-instance status type units value yin-element
38
+ )
39
+
40
+ list_keywords = Set.new %w(
41
+ key mandatory unique
42
+ )
43
+
44
+ #RFC7950 other keywords
45
+ CONSTANTS = Set.new %w(
46
+ add current delete deprecated false invert-match max min
47
+ not-supported obsolete replace true unbounded user
48
+ )
49
+
50
+ #RFC7950 Built-In Types
51
+ TYPES = Set.new %w(
52
+ binary bits boolean decimal64 empty enumeration identityref
53
+ instance-identifier int16 int32 int64 int8 leafref string uint16
54
+ uint32 uint64 uint8 union
55
+ )
56
+
57
+ DECLARATIONS =
58
+ top_keywords +
59
+ module_header_keywords +
60
+ meta_keywords +
61
+ linkage_keywords +
62
+ body_keywords +
63
+ data_def_keywords +
64
+ type_keywords +
65
+ list_keywords
66
+
67
+ state :comment do
68
+ rule %r/[^*\/]/, Comment
69
+ rule %r/\/\*/, Comment, :comment
70
+ rule %r/\*\//, Comment, :pop!
71
+ rule %r/[*\/]/, Comment
72
+ end
73
+
74
+ #Keyword::Reserved
75
+ #groups Name::Tag, Text::Whitespace
76
+ state :root do
77
+ rule %r/\s+/, Text::Whitespace
78
+ rule %r/[\{\}\;]+/, Punctuation
79
+ rule %r/(?<![\-\w])(and|or|not|\+|\.)(?![\-\w])/, Operator
80
+
81
+ rule %r/"(?:\\"|[^"])*?"/, Str::Double #for double quotes
82
+ rule %r/'(?:\\'|[^'])*?'/, Str::Single #for single quotes
83
+
84
+ rule %r/\/\*/, Comment, :comment
85
+ rule %r/\/\/.*?$/, Comment
86
+
87
+ #match BNF stmt for `node-identifier` with [ prefix ":"]
88
+ rule %r/(?:^|(?<=[\s{};]))([\w.-]+)(:)([\w.-]+)(?=[\s{};])/ do
89
+ groups Name::Namespace, Punctuation, Name
90
+ end
91
+
92
+ #match BNF stmt `date-arg-str`
93
+ rule %r/([0-9]{4}\-[0-9]{2}\-[0-9]{2})(?=[\s\{\}\;])/, Name::Label
94
+ rule %r/([0-9]+\.[0-9]+)(?=[\s\{\}\;])/, Num::Float
95
+ rule %r/([0-9]+)(?=[\s\{\}\;])/, Num::Integer
96
+
97
+ rule id do |m|
98
+ name = m[0].downcase
99
+
100
+ if DECLARATIONS.include?(name)
101
+ token Keyword::Declaration
102
+ elsif TYPES.include? name
103
+ token Keyword::Type
104
+ elsif CONSTANTS.include? name
105
+ token Name::Constant
106
+ else
107
+ token Name
108
+ end
109
+ end
110
+
111
+ rule %r/[^;{}\s'"]+/, Name
112
+ end
113
+ end
114
+ end
115
+ end