rouge 3.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (429) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +40 -0
  3. data/LICENSE +186 -0
  4. data/bin/rougify +18 -0
  5. data/lib/rouge.rb +93 -0
  6. data/lib/rouge/cli.rb +498 -0
  7. data/lib/rouge/demos/abap +6 -0
  8. data/lib/rouge/demos/actionscript +4 -0
  9. data/lib/rouge/demos/ada +26 -0
  10. data/lib/rouge/demos/apache +21 -0
  11. data/lib/rouge/demos/apex +9 -0
  12. data/lib/rouge/demos/apiblueprint +33 -0
  13. data/lib/rouge/demos/applescript +2 -0
  14. data/lib/rouge/demos/armasm +12 -0
  15. data/lib/rouge/demos/awk +4 -0
  16. data/lib/rouge/demos/batchfile +3 -0
  17. data/lib/rouge/demos/bbcbasic +6 -0
  18. data/lib/rouge/demos/biml +38 -0
  19. data/lib/rouge/demos/bpf +7 -0
  20. data/lib/rouge/demos/brainfuck +5 -0
  21. data/lib/rouge/demos/bsl +7 -0
  22. data/lib/rouge/demos/c +8 -0
  23. data/lib/rouge/demos/ceylon +7 -0
  24. data/lib/rouge/demos/cfscript +18 -0
  25. data/lib/rouge/demos/clean +6 -0
  26. data/lib/rouge/demos/clojure +5 -0
  27. data/lib/rouge/demos/cmake +7 -0
  28. data/lib/rouge/demos/cmhg +8 -0
  29. data/lib/rouge/demos/coffeescript +5 -0
  30. data/lib/rouge/demos/common_lisp +1 -0
  31. data/lib/rouge/demos/conf +4 -0
  32. data/lib/rouge/demos/console +6 -0
  33. data/lib/rouge/demos/coq +13 -0
  34. data/lib/rouge/demos/cpp +8 -0
  35. data/lib/rouge/demos/crystal +45 -0
  36. data/lib/rouge/demos/csharp +5 -0
  37. data/lib/rouge/demos/css +4 -0
  38. data/lib/rouge/demos/csvs +8 -0
  39. data/lib/rouge/demos/cuda +11 -0
  40. data/lib/rouge/demos/cython +6 -0
  41. data/lib/rouge/demos/d +16 -0
  42. data/lib/rouge/demos/dart +6 -0
  43. data/lib/rouge/demos/diff +7 -0
  44. data/lib/rouge/demos/digdag +19 -0
  45. data/lib/rouge/demos/docker +9 -0
  46. data/lib/rouge/demos/dot +5 -0
  47. data/lib/rouge/demos/ecl +18 -0
  48. data/lib/rouge/demos/eex +1 -0
  49. data/lib/rouge/demos/eiffel +30 -0
  50. data/lib/rouge/demos/elixir +1 -0
  51. data/lib/rouge/demos/elm +4 -0
  52. data/lib/rouge/demos/epp +4 -0
  53. data/lib/rouge/demos/erb +1 -0
  54. data/lib/rouge/demos/erlang +7 -0
  55. data/lib/rouge/demos/escape +3 -0
  56. data/lib/rouge/demos/factor +5 -0
  57. data/lib/rouge/demos/fortran +22 -0
  58. data/lib/rouge/demos/freefem +16 -0
  59. data/lib/rouge/demos/fsharp +12 -0
  60. data/lib/rouge/demos/gdscript +18 -0
  61. data/lib/rouge/demos/ghc-core +26 -0
  62. data/lib/rouge/demos/gherkin +17 -0
  63. data/lib/rouge/demos/glsl +14 -0
  64. data/lib/rouge/demos/go +7 -0
  65. data/lib/rouge/demos/gradle +10 -0
  66. data/lib/rouge/demos/graphql +17 -0
  67. data/lib/rouge/demos/groovy +9 -0
  68. data/lib/rouge/demos/hack +5 -0
  69. data/lib/rouge/demos/haml +5 -0
  70. data/lib/rouge/demos/handlebars +7 -0
  71. data/lib/rouge/demos/haskell +6 -0
  72. data/lib/rouge/demos/haxe +5 -0
  73. data/lib/rouge/demos/hcl +7 -0
  74. data/lib/rouge/demos/hocon +8 -0
  75. data/lib/rouge/demos/hql +5 -0
  76. data/lib/rouge/demos/html +8 -0
  77. data/lib/rouge/demos/http +14 -0
  78. data/lib/rouge/demos/hylang +10 -0
  79. data/lib/rouge/demos/idlang +8 -0
  80. data/lib/rouge/demos/igorpro +9 -0
  81. data/lib/rouge/demos/ini +4 -0
  82. data/lib/rouge/demos/io +11 -0
  83. data/lib/rouge/demos/irb +4 -0
  84. data/lib/rouge/demos/irb_output +2 -0
  85. data/lib/rouge/demos/java +5 -0
  86. data/lib/rouge/demos/javascript +1 -0
  87. data/lib/rouge/demos/jinja +9 -0
  88. data/lib/rouge/demos/jsl +3 -0
  89. data/lib/rouge/demos/json +1 -0
  90. data/lib/rouge/demos/json-doc +1 -0
  91. data/lib/rouge/demos/jsonnet +28 -0
  92. data/lib/rouge/demos/jsp +29 -0
  93. data/lib/rouge/demos/jsx +17 -0
  94. data/lib/rouge/demos/julia +11 -0
  95. data/lib/rouge/demos/kotlin +3 -0
  96. data/lib/rouge/demos/lasso +12 -0
  97. data/lib/rouge/demos/liquid +10 -0
  98. data/lib/rouge/demos/literate_coffeescript +3 -0
  99. data/lib/rouge/demos/literate_haskell +7 -0
  100. data/lib/rouge/demos/llvm +20 -0
  101. data/lib/rouge/demos/lua +12 -0
  102. data/lib/rouge/demos/lustre +6 -0
  103. data/lib/rouge/demos/lutin +18 -0
  104. data/lib/rouge/demos/m68k +16 -0
  105. data/lib/rouge/demos/magik +6 -0
  106. data/lib/rouge/demos/make +6 -0
  107. data/lib/rouge/demos/markdown +4 -0
  108. data/lib/rouge/demos/mason +22 -0
  109. data/lib/rouge/demos/mathematica +8 -0
  110. data/lib/rouge/demos/matlab +6 -0
  111. data/lib/rouge/demos/minizinc +23 -0
  112. data/lib/rouge/demos/moonscript +16 -0
  113. data/lib/rouge/demos/mosel +10 -0
  114. data/lib/rouge/demos/msgtrans +4 -0
  115. data/lib/rouge/demos/mxml +22 -0
  116. data/lib/rouge/demos/nasm +26 -0
  117. data/lib/rouge/demos/nesasm +11 -0
  118. data/lib/rouge/demos/nginx +5 -0
  119. data/lib/rouge/demos/nim +27 -0
  120. data/lib/rouge/demos/nix +19 -0
  121. data/lib/rouge/demos/objective_c +18 -0
  122. data/lib/rouge/demos/objective_cpp +17 -0
  123. data/lib/rouge/demos/ocaml +12 -0
  124. data/lib/rouge/demos/openedge +4 -0
  125. data/lib/rouge/demos/opentype_feature_file +6 -0
  126. data/lib/rouge/demos/pascal +14 -0
  127. data/lib/rouge/demos/perl +5 -0
  128. data/lib/rouge/demos/php +3 -0
  129. data/lib/rouge/demos/plaintext +1 -0
  130. data/lib/rouge/demos/plist +11 -0
  131. data/lib/rouge/demos/pony +17 -0
  132. data/lib/rouge/demos/powershell +13 -0
  133. data/lib/rouge/demos/praat +26 -0
  134. data/lib/rouge/demos/prolog +9 -0
  135. data/lib/rouge/demos/prometheus +9 -0
  136. data/lib/rouge/demos/properties +7 -0
  137. data/lib/rouge/demos/protobuf +5 -0
  138. data/lib/rouge/demos/puppet +6 -0
  139. data/lib/rouge/demos/python +6 -0
  140. data/lib/rouge/demos/q +8 -0
  141. data/lib/rouge/demos/qml +9 -0
  142. data/lib/rouge/demos/r +8 -0
  143. data/lib/rouge/demos/racket +24 -0
  144. data/lib/rouge/demos/reasonml +12 -0
  145. data/lib/rouge/demos/robot_framework +27 -0
  146. data/lib/rouge/demos/ruby +9 -0
  147. data/lib/rouge/demos/rust +12 -0
  148. data/lib/rouge/demos/sas +13 -0
  149. data/lib/rouge/demos/sass +3 -0
  150. data/lib/rouge/demos/scala +3 -0
  151. data/lib/rouge/demos/scheme +4 -0
  152. data/lib/rouge/demos/scss +5 -0
  153. data/lib/rouge/demos/sed +4 -0
  154. data/lib/rouge/demos/shell +2 -0
  155. data/lib/rouge/demos/sieve +10 -0
  156. data/lib/rouge/demos/slice +10 -0
  157. data/lib/rouge/demos/slim +17 -0
  158. data/lib/rouge/demos/smalltalk +6 -0
  159. data/lib/rouge/demos/smarty +12 -0
  160. data/lib/rouge/demos/sml +4 -0
  161. data/lib/rouge/demos/sparql +6 -0
  162. data/lib/rouge/demos/sqf +14 -0
  163. data/lib/rouge/demos/sql +1 -0
  164. data/lib/rouge/demos/supercollider +11 -0
  165. data/lib/rouge/demos/swift +5 -0
  166. data/lib/rouge/demos/tap +5 -0
  167. data/lib/rouge/demos/tcl +1 -0
  168. data/lib/rouge/demos/terraform +16 -0
  169. data/lib/rouge/demos/tex +1 -0
  170. data/lib/rouge/demos/toml +9 -0
  171. data/lib/rouge/demos/tsx +17 -0
  172. data/lib/rouge/demos/ttcn3 +6 -0
  173. data/lib/rouge/demos/tulip +13 -0
  174. data/lib/rouge/demos/turtle +26 -0
  175. data/lib/rouge/demos/twig +9 -0
  176. data/lib/rouge/demos/typescript +1 -0
  177. data/lib/rouge/demos/vala +8 -0
  178. data/lib/rouge/demos/vb +4 -0
  179. data/lib/rouge/demos/vcl +12 -0
  180. data/lib/rouge/demos/verilog +27 -0
  181. data/lib/rouge/demos/vhdl +23 -0
  182. data/lib/rouge/demos/viml +14 -0
  183. data/lib/rouge/demos/vue +11 -0
  184. data/lib/rouge/demos/wollok +11 -0
  185. data/lib/rouge/demos/xml +2 -0
  186. data/lib/rouge/demos/xojo +14 -0
  187. data/lib/rouge/demos/xpath +2 -0
  188. data/lib/rouge/demos/xquery +22 -0
  189. data/lib/rouge/demos/yaml +4 -0
  190. data/lib/rouge/formatter.rb +112 -0
  191. data/lib/rouge/formatters/html.rb +56 -0
  192. data/lib/rouge/formatters/html_inline.rb +31 -0
  193. data/lib/rouge/formatters/html_legacy.rb +45 -0
  194. data/lib/rouge/formatters/html_line_table.rb +53 -0
  195. data/lib/rouge/formatters/html_linewise.rb +23 -0
  196. data/lib/rouge/formatters/html_pygments.rb +18 -0
  197. data/lib/rouge/formatters/html_table.rb +51 -0
  198. data/lib/rouge/formatters/null.rb +20 -0
  199. data/lib/rouge/formatters/terminal256.rb +198 -0
  200. data/lib/rouge/formatters/terminal_truecolor.rb +37 -0
  201. data/lib/rouge/formatters/tex.rb +92 -0
  202. data/lib/rouge/guesser.rb +57 -0
  203. data/lib/rouge/guessers/disambiguation.rb +136 -0
  204. data/lib/rouge/guessers/filename.rb +27 -0
  205. data/lib/rouge/guessers/glob_mapping.rb +45 -0
  206. data/lib/rouge/guessers/mimetype.rb +16 -0
  207. data/lib/rouge/guessers/modeline.rb +46 -0
  208. data/lib/rouge/guessers/source.rb +31 -0
  209. data/lib/rouge/guessers/util.rb +34 -0
  210. data/lib/rouge/lexer.rb +516 -0
  211. data/lib/rouge/lexers/abap.rb +240 -0
  212. data/lib/rouge/lexers/actionscript.rb +196 -0
  213. data/lib/rouge/lexers/ada.rb +162 -0
  214. data/lib/rouge/lexers/apache.rb +73 -0
  215. data/lib/rouge/lexers/apache/keywords.yml +764 -0
  216. data/lib/rouge/lexers/apex.rb +126 -0
  217. data/lib/rouge/lexers/apiblueprint.rb +49 -0
  218. data/lib/rouge/lexers/apple_script.rb +370 -0
  219. data/lib/rouge/lexers/armasm.rb +145 -0
  220. data/lib/rouge/lexers/awk.rb +162 -0
  221. data/lib/rouge/lexers/batchfile.rb +164 -0
  222. data/lib/rouge/lexers/bbcbasic.rb +112 -0
  223. data/lib/rouge/lexers/biml.rb +43 -0
  224. data/lib/rouge/lexers/bpf.rb +118 -0
  225. data/lib/rouge/lexers/brainfuck.rb +53 -0
  226. data/lib/rouge/lexers/bsl.rb +82 -0
  227. data/lib/rouge/lexers/c.rb +190 -0
  228. data/lib/rouge/lexers/ceylon.rb +96 -0
  229. data/lib/rouge/lexers/cfscript.rb +154 -0
  230. data/lib/rouge/lexers/clean.rb +156 -0
  231. data/lib/rouge/lexers/clojure.rb +113 -0
  232. data/lib/rouge/lexers/cmake.rb +207 -0
  233. data/lib/rouge/lexers/cmhg.rb +34 -0
  234. data/lib/rouge/lexers/coffeescript.rb +215 -0
  235. data/lib/rouge/lexers/common_lisp.rb +346 -0
  236. data/lib/rouge/lexers/conf.rb +25 -0
  237. data/lib/rouge/lexers/console.rb +174 -0
  238. data/lib/rouge/lexers/coq.rb +191 -0
  239. data/lib/rouge/lexers/cpp.rb +82 -0
  240. data/lib/rouge/lexers/crystal.rb +430 -0
  241. data/lib/rouge/lexers/csharp.rb +114 -0
  242. data/lib/rouge/lexers/css.rb +274 -0
  243. data/lib/rouge/lexers/csvs.rb +44 -0
  244. data/lib/rouge/lexers/cuda.rb +35 -0
  245. data/lib/rouge/lexers/cython.rb +151 -0
  246. data/lib/rouge/lexers/d.rb +177 -0
  247. data/lib/rouge/lexers/dart.rb +105 -0
  248. data/lib/rouge/lexers/diff.rb +37 -0
  249. data/lib/rouge/lexers/digdag.rb +70 -0
  250. data/lib/rouge/lexers/docker.rb +51 -0
  251. data/lib/rouge/lexers/dot.rb +69 -0
  252. data/lib/rouge/lexers/ecl.rb +175 -0
  253. data/lib/rouge/lexers/eex.rb +52 -0
  254. data/lib/rouge/lexers/eiffel.rb +66 -0
  255. data/lib/rouge/lexers/elixir.rb +149 -0
  256. data/lib/rouge/lexers/elm.rb +90 -0
  257. data/lib/rouge/lexers/epp.rb +51 -0
  258. data/lib/rouge/lexers/erb.rb +53 -0
  259. data/lib/rouge/lexers/erlang.rb +115 -0
  260. data/lib/rouge/lexers/escape.rb +58 -0
  261. data/lib/rouge/lexers/factor.rb +303 -0
  262. data/lib/rouge/lexers/fortran.rb +178 -0
  263. data/lib/rouge/lexers/freefem.rb +240 -0
  264. data/lib/rouge/lexers/fsharp.rb +119 -0
  265. data/lib/rouge/lexers/gdscript.rb +171 -0
  266. data/lib/rouge/lexers/ghc_core.rb +151 -0
  267. data/lib/rouge/lexers/gherkin.rb +140 -0
  268. data/lib/rouge/lexers/gherkin/keywords.rb +16 -0
  269. data/lib/rouge/lexers/glsl.rb +132 -0
  270. data/lib/rouge/lexers/go.rb +175 -0
  271. data/lib/rouge/lexers/gradle.rb +38 -0
  272. data/lib/rouge/lexers/graphql.rb +261 -0
  273. data/lib/rouge/lexers/groovy.rb +111 -0
  274. data/lib/rouge/lexers/hack.rb +49 -0
  275. data/lib/rouge/lexers/haml.rb +226 -0
  276. data/lib/rouge/lexers/handlebars.rb +91 -0
  277. data/lib/rouge/lexers/haskell.rb +199 -0
  278. data/lib/rouge/lexers/haxe.rb +246 -0
  279. data/lib/rouge/lexers/hcl.rb +163 -0
  280. data/lib/rouge/lexers/hocon.rb +86 -0
  281. data/lib/rouge/lexers/hql.rb +139 -0
  282. data/lib/rouge/lexers/html.rb +141 -0
  283. data/lib/rouge/lexers/http.rb +81 -0
  284. data/lib/rouge/lexers/hylang.rb +94 -0
  285. data/lib/rouge/lexers/idlang.rb +312 -0
  286. data/lib/rouge/lexers/igorpro.rb +664 -0
  287. data/lib/rouge/lexers/ini.rb +54 -0
  288. data/lib/rouge/lexers/io.rb +69 -0
  289. data/lib/rouge/lexers/irb.rb +67 -0
  290. data/lib/rouge/lexers/java.rb +91 -0
  291. data/lib/rouge/lexers/javascript.rb +279 -0
  292. data/lib/rouge/lexers/jinja.rb +154 -0
  293. data/lib/rouge/lexers/jsl.rb +55 -0
  294. data/lib/rouge/lexers/json.rb +69 -0
  295. data/lib/rouge/lexers/json_doc.rb +25 -0
  296. data/lib/rouge/lexers/jsonnet.rb +152 -0
  297. data/lib/rouge/lexers/jsp.rb +120 -0
  298. data/lib/rouge/lexers/jsx.rb +104 -0
  299. data/lib/rouge/lexers/julia.rb +290 -0
  300. data/lib/rouge/lexers/kotlin.rb +127 -0
  301. data/lib/rouge/lexers/lasso.rb +215 -0
  302. data/lib/rouge/lexers/lasso/keywords.yml +446 -0
  303. data/lib/rouge/lexers/liquid.rb +285 -0
  304. data/lib/rouge/lexers/literate_coffeescript.rb +34 -0
  305. data/lib/rouge/lexers/literate_haskell.rb +37 -0
  306. data/lib/rouge/lexers/llvm.rb +97 -0
  307. data/lib/rouge/lexers/lua.rb +164 -0
  308. data/lib/rouge/lexers/lua/builtins.rb +24 -0
  309. data/lib/rouge/lexers/lustre.rb +79 -0
  310. data/lib/rouge/lexers/lutin.rb +33 -0
  311. data/lib/rouge/lexers/m68k.rb +143 -0
  312. data/lib/rouge/lexers/magik.rb +127 -0
  313. data/lib/rouge/lexers/make.rb +135 -0
  314. data/lib/rouge/lexers/markdown.rb +182 -0
  315. data/lib/rouge/lexers/mason.rb +110 -0
  316. data/lib/rouge/lexers/mathematica.rb +96 -0
  317. data/lib/rouge/lexers/mathematica/builtins.rb +13 -0
  318. data/lib/rouge/lexers/matlab.rb +81 -0
  319. data/lib/rouge/lexers/matlab/builtins.yml +3515 -0
  320. data/lib/rouge/lexers/minizinc.rb +87 -0
  321. data/lib/rouge/lexers/moonscript.rb +115 -0
  322. data/lib/rouge/lexers/mosel.rb +232 -0
  323. data/lib/rouge/lexers/msgtrans.rb +26 -0
  324. data/lib/rouge/lexers/mxml.rb +69 -0
  325. data/lib/rouge/lexers/nasm.rb +72 -0
  326. data/lib/rouge/lexers/nesasm.rb +78 -0
  327. data/lib/rouge/lexers/nginx.rb +72 -0
  328. data/lib/rouge/lexers/nim.rb +154 -0
  329. data/lib/rouge/lexers/nix.rb +211 -0
  330. data/lib/rouge/lexers/objective_c.rb +21 -0
  331. data/lib/rouge/lexers/objective_c/common.rb +184 -0
  332. data/lib/rouge/lexers/objective_cpp.rb +31 -0
  333. data/lib/rouge/lexers/ocaml.rb +65 -0
  334. data/lib/rouge/lexers/ocaml/common.rb +53 -0
  335. data/lib/rouge/lexers/openedge.rb +429 -0
  336. data/lib/rouge/lexers/opentype_feature_file.rb +113 -0
  337. data/lib/rouge/lexers/pascal.rb +67 -0
  338. data/lib/rouge/lexers/perl.rb +231 -0
  339. data/lib/rouge/lexers/php.rb +216 -0
  340. data/lib/rouge/lexers/php/builtins.rb +203 -0
  341. data/lib/rouge/lexers/plain_text.rb +27 -0
  342. data/lib/rouge/lexers/plist.rb +47 -0
  343. data/lib/rouge/lexers/pony.rb +94 -0
  344. data/lib/rouge/lexers/powershell.rb +230 -0
  345. data/lib/rouge/lexers/praat.rb +351 -0
  346. data/lib/rouge/lexers/prolog.rb +67 -0
  347. data/lib/rouge/lexers/prometheus.rb +123 -0
  348. data/lib/rouge/lexers/properties.rb +52 -0
  349. data/lib/rouge/lexers/protobuf.rb +71 -0
  350. data/lib/rouge/lexers/puppet.rb +129 -0
  351. data/lib/rouge/lexers/python.rb +248 -0
  352. data/lib/rouge/lexers/q.rb +126 -0
  353. data/lib/rouge/lexers/qml.rb +74 -0
  354. data/lib/rouge/lexers/r.rb +89 -0
  355. data/lib/rouge/lexers/racket.rb +545 -0
  356. data/lib/rouge/lexers/reasonml.rb +65 -0
  357. data/lib/rouge/lexers/robot_framework.rb +249 -0
  358. data/lib/rouge/lexers/ruby.rb +444 -0
  359. data/lib/rouge/lexers/rust.rb +193 -0
  360. data/lib/rouge/lexers/sas.rb +563 -0
  361. data/lib/rouge/lexers/sass.rb +75 -0
  362. data/lib/rouge/lexers/sass/common.rb +181 -0
  363. data/lib/rouge/lexers/scala.rb +169 -0
  364. data/lib/rouge/lexers/scheme.rb +113 -0
  365. data/lib/rouge/lexers/scss.rb +35 -0
  366. data/lib/rouge/lexers/sed.rb +173 -0
  367. data/lib/rouge/lexers/shell.rb +201 -0
  368. data/lib/rouge/lexers/sieve.rb +97 -0
  369. data/lib/rouge/lexers/slice.rb +32 -0
  370. data/lib/rouge/lexers/slim.rb +229 -0
  371. data/lib/rouge/lexers/smalltalk.rb +117 -0
  372. data/lib/rouge/lexers/smarty.rb +81 -0
  373. data/lib/rouge/lexers/sml.rb +345 -0
  374. data/lib/rouge/lexers/sparql.rb +129 -0
  375. data/lib/rouge/lexers/sqf.rb +109 -0
  376. data/lib/rouge/lexers/sqf/commands.rb +15 -0
  377. data/lib/rouge/lexers/sql.rb +161 -0
  378. data/lib/rouge/lexers/supercollider.rb +116 -0
  379. data/lib/rouge/lexers/swift.rb +186 -0
  380. data/lib/rouge/lexers/tap.rb +89 -0
  381. data/lib/rouge/lexers/tcl.rb +193 -0
  382. data/lib/rouge/lexers/terraform.rb +113 -0
  383. data/lib/rouge/lexers/tex.rb +70 -0
  384. data/lib/rouge/lexers/toml.rb +106 -0
  385. data/lib/rouge/lexers/tsx.rb +20 -0
  386. data/lib/rouge/lexers/ttcn3.rb +119 -0
  387. data/lib/rouge/lexers/tulip.rb +108 -0
  388. data/lib/rouge/lexers/turtle.rb +61 -0
  389. data/lib/rouge/lexers/twig.rb +40 -0
  390. data/lib/rouge/lexers/typescript.rb +30 -0
  391. data/lib/rouge/lexers/typescript/common.rb +34 -0
  392. data/lib/rouge/lexers/vala.rb +78 -0
  393. data/lib/rouge/lexers/varnish.rb +168 -0
  394. data/lib/rouge/lexers/vb.rb +165 -0
  395. data/lib/rouge/lexers/verilog.rb +163 -0
  396. data/lib/rouge/lexers/vhdl.rb +98 -0
  397. data/lib/rouge/lexers/viml.rb +102 -0
  398. data/lib/rouge/lexers/viml/keywords.rb +14 -0
  399. data/lib/rouge/lexers/vue.rb +124 -0
  400. data/lib/rouge/lexers/wollok.rb +104 -0
  401. data/lib/rouge/lexers/xml.rb +54 -0
  402. data/lib/rouge/lexers/xojo.rb +61 -0
  403. data/lib/rouge/lexers/xpath.rb +332 -0
  404. data/lib/rouge/lexers/xquery.rb +145 -0
  405. data/lib/rouge/lexers/yaml.rb +376 -0
  406. data/lib/rouge/plugins/redcarpet.rb +37 -0
  407. data/lib/rouge/regex_lexer.rb +443 -0
  408. data/lib/rouge/template_lexer.rb +21 -0
  409. data/lib/rouge/tex_theme_renderer.rb +132 -0
  410. data/lib/rouge/text_analyzer.rb +50 -0
  411. data/lib/rouge/theme.rb +218 -0
  412. data/lib/rouge/themes/base16.rb +131 -0
  413. data/lib/rouge/themes/bw.rb +41 -0
  414. data/lib/rouge/themes/colorful.rb +68 -0
  415. data/lib/rouge/themes/github.rb +72 -0
  416. data/lib/rouge/themes/gruvbox.rb +168 -0
  417. data/lib/rouge/themes/igor_pro.rb +21 -0
  418. data/lib/rouge/themes/magritte.rb +78 -0
  419. data/lib/rouge/themes/molokai.rb +83 -0
  420. data/lib/rouge/themes/monokai.rb +93 -0
  421. data/lib/rouge/themes/monokai_sublime.rb +93 -0
  422. data/lib/rouge/themes/pastie.rb +70 -0
  423. data/lib/rouge/themes/thankful_eyes.rb +75 -0
  424. data/lib/rouge/themes/tulip.rb +70 -0
  425. data/lib/rouge/token.rb +191 -0
  426. data/lib/rouge/util.rb +102 -0
  427. data/lib/rouge/version.rb +8 -0
  428. data/rouge.gemspec +26 -0
  429. metadata +476 -0
@@ -0,0 +1,312 @@
1
+ # -*- coding: utf-8 -*- #
2
+ # frozen_string_literal: true
3
+
4
+ # vim: set ts=2 sw=2 et:
5
+
6
+ module Rouge
7
+ module Lexers
8
+ class IDLang < RegexLexer
9
+ title "IDL"
10
+ desc "Interactive Data Language"
11
+
12
+ tag 'idlang'
13
+ filenames '*.idl'
14
+
15
+ name = /[_A-Z]\w*/i
16
+ kind_param = /(\d+|#{name})/
17
+ exponent = /[dDeE][+-]\d+/
18
+
19
+ def self.exec_unit
20
+ @exec_unit ||= Set.new %w(
21
+ PRO FUNCTION
22
+ )
23
+ end
24
+
25
+ def self.keywords
26
+ @keywords ||= Set.new %w(
27
+ STRUCT INHERITS
28
+ RETURN CONTINUE BEGIN END BREAK GOTO
29
+ )
30
+ end
31
+
32
+ def self.standalone_statements
33
+ # Must not have a comma afterwards
34
+ @standalone_statements ||= Set.new %w(
35
+ COMMON FORWARD_FUNCTION
36
+ )
37
+ end
38
+
39
+ def self.decorators
40
+ # Must not have a comma afterwards
41
+ @decorators ||= Set.new %w(
42
+ COMPILE_OPT
43
+ )
44
+ end
45
+
46
+ def self.operators
47
+ @operators ||= Set.new %w(
48
+ AND= EQ= GE= GT= LE= LT= MOD= NE= OR= XOR= NOT=
49
+ )
50
+ end
51
+
52
+ def self.conditionals
53
+ @conditionals ||= Set.new %w(
54
+ OF DO ENDIF ENDELSE ENDFOR ENDFOREACH ENDWHILE ENDREP ENDCASE ENDSWITCH
55
+ IF THEN ELSE FOR FOREACH WHILE REPEAT UNTIL CASE SWITCH
56
+ AND EQ GE GT LE LT MOD NE OR XOR NOT
57
+ )
58
+ end
59
+
60
+ def self.routines
61
+ @routines ||= Set.new %w(
62
+ A_CORRELATE ABS ACOS ADAPT_HIST_EQUAL ALOG ALOG10
63
+ AMOEBA ANNOTATE ARG_PRESENT ARRAY_EQUAL
64
+ ARRAY_INDICES ARROW ASCII_TEMPLATE ASIN ASSOC ATAN
65
+ AXIS BAR_PLOT BESELI BESELJ BESELK BESELY BETA
66
+ BILINEAR BIN_DATE BINARY_TEMPLATE BINDGEN BINOMIAL
67
+ BLAS_AXPY BLK_CON BOX_CURSOR BREAK BREAKPOINT
68
+ BROYDEN BYTARR BYTE BYTEORDER BYTSCL C_CORRELATE
69
+ CALDAT CALENDAR CALL_EXTERNAL CALL_FUNCTION
70
+ CALL_METHOD CALL_PROCEDURE CATCH CD CEIL CHEBYSHEV
71
+ CHECK_MATH CHISQR_CVF CHISQR_PDF CHOLDC CHOLSOL
72
+ CINDGEN CIR_3PNT CLOSE CLUST_WTS CLUSTER
73
+ COLOR_CONVERT COLOR_QUAN COLORMAP_APPLICABLE COMFIT
74
+ COMPLEX COMPLEXARR COMPLEXROUND
75
+ COMPUTE_MESH_NORMALS COND CONGRID CONJ
76
+ CONSTRAINED_MIN CONTOUR CONVERT_COORD CONVOL
77
+ COORD2TO3 CORRELATE COS COSH CRAMER CREATE_STRUCT
78
+ CREATE_VIEW CROSSP CRVLENGTH CT_LUMINANCE CTI_TEST
79
+ CURSOR CURVEFIT CV_COORD CVTTOBM CW_ANIMATE
80
+ CW_ANIMATE_GETP CW_ANIMATE_LOAD CW_ANIMATE_RUN
81
+ CW_ARCBALL CW_BGROUP CW_CLR_INDEX CW_COLORSEL
82
+ CW_DEFROI CW_FIELD CW_FILESEL CW_FORM CW_FSLIDER
83
+ CW_LIGHT_EDITOR CW_LIGHT_EDITOR_GET
84
+ CW_LIGHT_EDITOR_SET CW_ORIENT CW_PALETTE_EDITOR
85
+ CW_PALETTE_EDITOR_GET CW_PALETTE_EDITOR_SET
86
+ CW_PDMENU CW_RGBSLIDER CW_TMPL CW_ZOOM DBLARR
87
+ DCINDGEN DCOMPLEX DCOMPLEXARR DEFINE_KEY DEFROI
88
+ DEFSYSV DELETE_SYMBOL DELLOG DELVAR DERIV DERIVSIG
89
+ DETERM DEVICE DFPMIN DIALOG_MESSAGE
90
+ DIALOG_PICKFILE DIALOG_PRINTERSETUP
91
+ DIALOG_PRINTJOB DIALOG_READ_IMAGE
92
+ DIALOG_WRITE_IMAGE DICTIONARY DIGITAL_FILTER DILATE DINDGEN
93
+ DISSOLVE DIST DLM_LOAD DLM_REGISTER
94
+ DO_APPLE_SCRIPT DOC_LIBRARY DOUBLE DRAW_ROI EFONT
95
+ EIGENQL EIGENVEC ELMHES EMPTY ENABLE_SYSRTN EOF
96
+ ERASE ERODE ERRORF ERRPLOT EXECUTE EXIT EXP EXPAND
97
+ EXPAND_PATH EXPINT EXTRAC EXTRACT_SLICE F_CVF
98
+ F_PDF FACTORIAL FFT FILE_CHMOD FILE_DELETE
99
+ FILE_EXPAND_PATH FILE_MKDIR FILE_TEST FILE_WHICH
100
+ FILE_SEARCH PATH_SEP FILE_DIRNAME FILE_BASENAME
101
+ FILE_INFO FILE_MOVE FILE_COPY FILE_LINK FILE_POLL_INPUT
102
+ FILEPATH FINDFILE FINDGEN FINITE FIX FLICK FLOAT
103
+ FLOOR FLOW3 FLTARR FLUSH FORMAT_AXIS_VALUES
104
+ FORWARD_FUNCTION FREE_LUN FSTAT FULSTR FUNCT
105
+ FV_TEST FX_ROOT FZ_ROOTS GAMMA GAMMA_CT
106
+ GAUSS_CVF GAUSS_PDF GAUSS2DFIT GAUSSFIT GAUSSINT
107
+ GET_DRIVE_LIST GET_KBRD GET_LUN GET_SCREEN_SIZE
108
+ GET_SYMBOL GETENV GOTO GREG2JUL GRID_TPS GRID3 GS_ITER
109
+ H_EQ_CT H_EQ_INT HANNING HASH HEAP_GC HELP HILBERT
110
+ HIST_2D HIST_EQUAL HISTOGRAM HLS HOUGH HQR HSV
111
+ IBETA IDENTITY IDL_CONTAINER IDLANROI
112
+ IDLANROIGROUP IDLFFDICOM IDLFFDXF IDLFFLANGUAGECAT
113
+ IDLFFSHAPE IDLGRAXIS IDLGRBUFFER IDLGRCLIPBOARD
114
+ IDLGRCOLORBAR IDLGRCONTOUR IDLGRFONT IDLGRIMAGE
115
+ IDLGRLEGEND IDLGRLIGHT IDLGRMODEL IDLGRMPEG
116
+ IDLGRPALETTE IDLGRPATTERN IDLGRPLOT IDLGRPOLYGON
117
+ IDLGRPOLYLINE IDLGRPRINTER IDLGRROI IDLGRROIGROUP
118
+ IDLGRSCENE IDLGRSURFACE IDLGRSYMBOL
119
+ IDLGRTESSELLATOR IDLGRTEXT IDLGRVIEW
120
+ IDLGRVIEWGROUP IDLGRVOLUME IDLGRVRML IDLGRWINDOW
121
+ IGAMMA IMAGE_CONT IMAGE_STATISTICS IMAGINARY
122
+ INDGEN INT_2D INT_3D INT_TABULATED INTARR INTERPOL
123
+ INTERPOLATE INVERT IOCTL ISA ISHFT ISOCONTOUR
124
+ ISOSURFACE JOURNAL JUL2GREG JULDAY KEYWORD_SET KRIG2D
125
+ KURTOSIS KW_TEST L64INDGEN LABEL_DATE LABEL_REGION
126
+ LADFIT LAGUERRE LEEFILT LEGENDRE LINBCG LINDGEN
127
+ LINFIT LINKIMAGE LIST LIVE_CONTOUR LIVE_CONTROL
128
+ LIVE_DESTROY LIVE_EXPORT LIVE_IMAGE LIVE_INFO
129
+ LIVE_LINE LIVE_LOAD LIVE_OPLOT LIVE_PLOT
130
+ LIVE_PRINT LIVE_RECT LIVE_STYLE LIVE_SURFACE
131
+ LIVE_TEXT LJLCT LL_ARC_DISTANCE LMFIT LMGR LNGAMMA
132
+ LNP_TEST LOADCT LOCALE_GET LON64ARR LONARR LONG
133
+ LONG64 LSODE LU_COMPLEX LUDC LUMPROVE LUSOL
134
+ M_CORRELATE MACHAR MAKE_ARRAY MAKE_DLL MAP_2POINTS
135
+ MAP_CONTINENTS MAP_GRID MAP_IMAGE MAP_PATCH
136
+ MAP_PROJ_INFO MAP_SET MAX MATRIX_MULTIPLY MD_TEST MEAN
137
+ MEANABSDEV MEDIAN MEMORY MESH_CLIP MESH_DECIMATE
138
+ MESH_ISSOLID MESH_MERGE MESH_NUMTRIANGLES MESH_OBJ
139
+ MESH_SMOOTH MESH_SURFACEAREA MESH_VALIDATE
140
+ MESH_VOLUME MESSAGE MIN MIN_CURVE_SURF MK_HTML_HELP
141
+ MODIFYCT MOMENT MORPH_CLOSE MORPH_DISTANCE
142
+ MORPH_GRADIENT MORPH_HITORMISS MORPH_OPEN
143
+ MORPH_THIN MORPH_TOPHAT MPEG_CLOSE MPEG_OPEN
144
+ MPEG_PUT MPEG_SAVE MSG_CAT_CLOSE MSG_CAT_COMPILE
145
+ MSG_CAT_OPEN MULTI N_ELEMENTS N_PARAMS N_TAGS
146
+ NEWTON NORM OBJ_CLASS OBJ_DESTROY OBJ_ISA OBJ_NEW
147
+ OBJ_VALID OBJARR ON_ERROR ON_IOERROR ONLINE_HELP
148
+ OPEN OPENR OPENW OPENU OPLOT OPLOTERR ORDEREDHASH P_CORRELATE
149
+ PARTICLE_TRACE PCOMP PLOT PLOT_3DBOX PLOT_FIELD
150
+ PLOTERR PLOTS PNT_LINE POINT_LUN POLAR_CONTOUR
151
+ POLAR_SURFACE POLY POLY_2D POLY_AREA POLY_FIT
152
+ POLYFILL POLYFILLV POLYSHADE POLYWARP POPD POWELL
153
+ PRIMES PRINT PRINTF PRINTD PRODUCT PROFILE PROFILER
154
+ PROFILES PROJECT_VOL PS_SHOW_FONTS PSAFM PSEUDO
155
+ PTR_FREE PTR_NEW PTR_VALID PTRARR PUSHD QROMB
156
+ QROMO QSIMP QUERY_CSV R_CORRELATE R_TEST RADON RANDOMN
157
+ RANDOMU RANKS RDPIX READ READF READ_ASCII
158
+ READ_BINARY READ_BMP READ_CSV READ_DICOM READ_IMAGE
159
+ READ_INTERFILE READ_JPEG READ_PICT READ_PNG
160
+ READ_PPM READ_SPR READ_SRF READ_SYLK READ_TIFF
161
+ READ_WAV READ_WAVE READ_X11_BITMAP READ_XWD READS
162
+ READU REBIN RECALL_COMMANDS RECON3 REDUCE_COLORS
163
+ REFORM REGRESS REPLICATE REPLICATE_INPLACE
164
+ RESOLVE_ALL RESOLVE_ROUTINE RESTORE RETALL
165
+ REVERSE REWIND RK4 ROBERTS ROT ROTATE ROUND
166
+ ROUTINE_INFO RS_TEST S_TEST SAVE SAVGOL SCALE3
167
+ SCALE3D SCOPE_LEVEL SCOPE_TRACEBACK SCOPE_VARFETCH
168
+ SCOPE_VARNAME SEARCH2D SEARCH3D SET_PLOT SET_SHADING
169
+ SET_SYMBOL SETENV SETLOG SETUP_KEYS SFIT
170
+ SHADE_SURF SHADE_SURF_IRR SHADE_VOLUME SHIFT SHOW3
171
+ SHOWFONT SIGNUM SIN SINDGEN SINH SIZE SKEWNESS SKIPF
172
+ SLICER3 SLIDE_IMAGE SMOOTH SOBEL SOCKET SORT SPAWN
173
+ SPH_4PNT SPH_SCAT SPHER_HARM SPL_INIT SPL_INTERP
174
+ SPLINE SPLINE_P SPRSAB SPRSAX SPRSIN SPRSTP SQRT
175
+ STANDARDIZE STDDEV STOP STRARR STRCMP STRCOMPRESS
176
+ STREAMLINE STREGEX STRETCH STRING STRJOIN STRLEN
177
+ STRLOWCASE STRMATCH STRMESSAGE STRMID STRPOS
178
+ STRPUT STRSPLIT STRTRIM STRUCT_ASSIGN STRUCT_HIDE
179
+ STRUPCASE SURFACE SURFR SVDC SVDFIT SVSOL
180
+ SWAP_ENDIAN SWITCH SYSTIME T_CVF T_PDF T3D
181
+ TAG_NAMES TAN TANH TAPRD TAPWRT TEK_COLOR
182
+ TEMPORARY TETRA_CLIP TETRA_SURFACE TETRA_VOLUME
183
+ THIN THREED TIME_TEST2 TIMEGEN TM_TEST TOTAL TRACE
184
+ TRANSPOSE TRI_SURF TRIANGULATE TRIGRID TRIQL
185
+ TRIRED TRISOL TRNLOG TS_COEF TS_DIFF TS_FCAST
186
+ TS_SMOOTH TV TVCRS TVLCT TVRD TVSCL TYPENAME UINDGEN UINT
187
+ UINTARR UL64INDGEN ULINDGEN ULON64ARR ULONARR
188
+ ULONG ULONG64 UNIQ USERSYM VALUE_LOCATE VARIANCE
189
+ VAX_FLOAT VECTOR_FIELD VEL VELOVECT VERT_T3D VOIGT
190
+ VORONOI VOXEL_PROJ WAIT WARP_TRI WATERSHED WDELETE
191
+ WEOF WF_DRAW WHERE WIDGET_BASE WIDGET_BUTTON
192
+ WIDGET_CONTROL WIDGET_DRAW WIDGET_DROPLIST
193
+ WIDGET_EVENT WIDGET_INFO WIDGET_LABEL WIDGET_LIST
194
+ WIDGET_SLIDER WIDGET_TABLE WIDGET_TEXT WINDOW
195
+ WRITE_BMP WRITE_CSV WRITE_IMAGE WRITE_JPEG WRITE_NRIF
196
+ WRITE_PICT WRITE_PNG WRITE_PPM WRITE_SPR WRITE_SRF
197
+ WRITE_SYLK WRITE_TIFF WRITE_WAV WRITE_WAVE WRITEU
198
+ WSET WSHOW WTN WV_APPLET WV_CW_WAVELET WV_CWT
199
+ WV_DENOISE WV_DWT WV_FN_COIFLET WV_FN_DAUBECHIES
200
+ WV_FN_GAUSSIAN WV_FN_HAAR WV_FN_MORLET WV_FN_PAUL
201
+ WV_FN_SYMLET WV_IMPORT_DATA WV_IMPORT_WAVELET
202
+ WV_PLOT3D_WPS WV_PLOT_MULTIRES WV_PWT
203
+ WV_TOOL_DENOISE XBM_EDIT XDISPLAYFILE XDXF XFONT
204
+ XINTERANIMATE XLOADCT XMANAGER XMNG_TMPL XMTOOL
205
+ XOBJVIEW XPALETTE XPCOLOR XPLOT3D XREGISTERED XROI
206
+ XSQ_TEST XSURFACE XVAREDIT XVOLUME XVOLUME_ROTATE
207
+ XVOLUME_WRITE_IMAGE XYOUTS ZOOM ZOOM_24
208
+ )
209
+ end
210
+
211
+ state :root do
212
+ rule %r/\s+/, Text::Whitespace
213
+ # Normal comments
214
+ rule %r/;.*$/, Comment::Single
215
+ rule %r/\,\s*\,/, Error
216
+ rule %r/\!#{name}/, Name::Variable::Global
217
+
218
+ rule %r/[(),:\&\$]/, Punctuation
219
+
220
+ ## Format statements are quite a strange beast.
221
+ ## Better process them in their own state.
222
+ #rule %r/\b(FORMAT)(\s*)(\()/mi do |m|
223
+ # token Keyword, m[1]
224
+ # token Text::Whitespace, m[2]
225
+ # token Punctuation, m[3]
226
+ # push :format_spec
227
+ #end
228
+
229
+ rule %r(
230
+ [+-]? # sign
231
+ (
232
+ (\d+[.]\d*|[.]\d+)(#{exponent})?
233
+ | \d+#{exponent} # exponent is mandatory
234
+ )
235
+ (_#{kind_param})? # kind parameter
236
+ )xi, Num::Float
237
+
238
+ rule %r/\d+(B|S|U|US|LL|L|ULL|UL)?/i, Num::Integer
239
+ rule %r/"[0-7]+(B|O|U|ULL|UL|LL|L)?/i, Num::Oct
240
+ rule %r/'[0-9A-F]+'X(B|S|US|ULL|UL|U|LL|L)?/i, Num::Hex
241
+ rule %r/(#{kind_param}_)?'/, Str::Single, :string_single
242
+ rule %r/(#{kind_param}_)?"/, Str::Double, :string_double
243
+
244
+ rule %r{\#\#|\#|\&\&|\|\||/=|<=|>=|->|\@|\?|[-+*/<=~^{}]}, Operator
245
+ # Structures and the like
246
+ rule %r/(#{name})(\.)([^\s,]*)/i do
247
+ groups Name, Operator, Name
248
+ #delegate IDLang, m[3]
249
+ end
250
+
251
+ rule %r/(function|pro)((?:\s|\$\s)+)/i do
252
+ groups Keyword, Text::Whitespace
253
+ push :funcname
254
+ end
255
+
256
+ rule %r/#{name}/m do |m|
257
+ match = m[0].upcase
258
+ if self.class.keywords.include? match
259
+ token Keyword
260
+ elsif self.class.conditionals.include? match
261
+ token Keyword
262
+ elsif self.class.decorators.include? match
263
+ token Name::Decorator
264
+ elsif self.class.standalone_statements.include? match
265
+ token Keyword::Reserved
266
+ elsif self.class.operators.include? match
267
+ token Operator::Word
268
+ elsif self.class.routines.include? match
269
+ token Name::Builtin
270
+ else
271
+ token Name
272
+ end
273
+ end
274
+
275
+ end
276
+
277
+ state :funcname do
278
+ rule %r/#{name}/, Name::Function
279
+
280
+ rule %r/\s+/, Text::Whitespace
281
+ rule %r/(:+|\$)/, Operator
282
+ rule %r/;.*/, Comment::Single
283
+
284
+ # Be done with this state if we hit EOL or comma
285
+ rule %r/$/, Text::Whitespace, :pop!
286
+ rule %r/,/, Operator, :pop!
287
+ end
288
+
289
+ state :string_single do
290
+ rule %r/[^']+/, Str::Single
291
+ rule %r/''/, Str::Escape
292
+ rule %r/'/, Str::Single, :pop!
293
+ end
294
+
295
+ state :string_double do
296
+ rule %r/[^"]+/, Str::Double
297
+ rule %r/"/, Str::Double, :pop!
298
+ end
299
+
300
+ state :format_spec do
301
+ rule %r/'/, Str::Single, :string_single
302
+ rule %r/"/, Str::Double, :string_double
303
+ rule %r/\(/, Punctuation, :format_spec
304
+ rule %r/\)/, Punctuation, :pop!
305
+ rule %r/,/, Punctuation
306
+ rule %r/\s+/, Text::Whitespace
307
+ # Edit descriptors could be seen as a kind of "format literal".
308
+ rule %r/[^\s'"(),]+/, Literal
309
+ end
310
+ end
311
+ end
312
+ end
@@ -0,0 +1,664 @@
1
+ # -*- coding: utf-8 -*- #
2
+ # frozen_string_literal: true
3
+
4
+ module Rouge
5
+ module Lexers
6
+ class IgorPro < RegexLexer
7
+ tag 'igorpro'
8
+ filenames '*.ipf'
9
+ mimetypes 'text/x-igorpro'
10
+
11
+ title "IgorPro"
12
+ desc "WaveMetrics Igor Pro"
13
+
14
+ def self.keywords
15
+ @keywords ||= Set.new %w(
16
+ structure endstructure
17
+ threadsafe static
18
+ macro proc window menu function end
19
+ if else elseif endif switch strswitch endswitch
20
+ break return continue
21
+ for endfor do while
22
+ case default
23
+ try catch endtry
24
+ abortonrte
25
+ )
26
+ end
27
+
28
+ def self.preprocessor
29
+ @preprocessor ||= Set.new %w(
30
+ pragma include
31
+ define ifdef ifndef undef
32
+ if elif else endif
33
+ )
34
+ end
35
+
36
+ def self.igorDeclarations
37
+ @igorDeclarations ||= Set.new %w(
38
+ variable string wave strconstant constant
39
+ nvar svar dfref funcref struct
40
+ char uchar int16 uint16 int32 uint32 int64 uint64 float double
41
+ )
42
+ end
43
+
44
+ def self.igorConstants
45
+ @igorConstants ||= Set.new %w(
46
+ nan inf
47
+ )
48
+ end
49
+
50
+ def self.igorFunction
51
+ @igorFunction ||= Set.new %w(
52
+ AddListItem AiryA AiryAD AiryB AiryBD AnnotationInfo
53
+ AnnotationList AxisInfo AxisList AxisValFromPixel
54
+ AxonTelegraphAGetDataNum AxonTelegraphAGetDataString
55
+ AxonTelegraphAGetDataStruct AxonTelegraphGetDataNum
56
+ AxonTelegraphGetDataString AxonTelegraphGetDataStruct
57
+ AxonTelegraphGetTimeoutMs AxonTelegraphSetTimeoutMs
58
+ Base64Decode Base64Encode Besseli Besselj Besselk
59
+ Bessely BinarySearch BinarySearchInterp CTabList
60
+ CaptureHistory CaptureHistoryStart CheckName
61
+ ChildWindowList CleanupName ContourInfo ContourNameList
62
+ ContourNameToWaveRef ContourZ ControlNameList
63
+ ConvertTextEncoding CountObjects CountObjectsDFR
64
+ CreationDate CsrInfo CsrWave CsrWaveRef CsrXWave
65
+ CsrXWaveRef DataFolderDir DataFolderExists
66
+ DataFolderRefStatus DataFolderRefsEqual DateToJulian
67
+ Dawson DimDelta DimOffset DimSize Faddeeva FetchURL
68
+ FindDimLabel FindListItem FontList FontSizeHeight
69
+ FontSizeStringWidth FresnelCos FresnelSin FuncRefInfo
70
+ FunctionInfo FunctionList FunctionPath
71
+ GISGetAllFileFormats GISSRefsAreEqual Gauss Gauss1D
72
+ Gauss2D GetBrowserLine GetBrowserSelection
73
+ GetDataFolder GetDataFolderDFR GetDefaultFont
74
+ GetDefaultFontSize GetDefaultFontStyle GetDimLabel
75
+ GetEnvironmentVariable GetErrMessage GetFormula
76
+ GetIndependentModuleName GetIndexedObjName
77
+ GetIndexedObjNameDFR GetKeyState GetRTErrMessage
78
+ GetRTError GetRTLocInfo GetRTLocation GetRTStackInfo
79
+ GetScrapText GetUserData GetWavesDataFolder
80
+ GetWavesDataFolderDFR GizmoInfo GizmoScale GrepList
81
+ GrepString GuideInfo GuideNameList HDF5AttributeInfo
82
+ HDF5DatasetInfo HDF5LibraryInfo HDF5TypeInfo Hash
83
+ HyperG0F1 HyperG1F1 HyperG2F1 HyperGNoise HyperGPFQ
84
+ IgorInfo IgorVersion ImageInfo ImageNameList
85
+ ImageNameToWaveRef IndependentModuleList IndexToScale
86
+ IndexedDir IndexedFile Inf Integrate1D Interp2D
87
+ Interp3D ItemsInList JacobiCn JacobiSn JulianToDate
88
+ Laguerre LaguerreA LaguerreGauss LambertW LayoutInfo
89
+ LegendreA ListMatch ListToTextWave ListToWaveRefWave
90
+ LowerStr MCC_AutoBridgeBal MCC_AutoFastComp
91
+ MCC_AutoPipetteOffset MCC_AutoSlowComp
92
+ MCC_AutoWholeCellComp MCC_GetBridgeBalEnable
93
+ MCC_GetBridgeBalResist MCC_GetFastCompCap
94
+ MCC_GetFastCompTau MCC_GetHolding MCC_GetHoldingEnable
95
+ MCC_GetMode MCC_GetNeutralizationCap
96
+ MCC_GetNeutralizationEnable MCC_GetOscKillerEnable
97
+ MCC_GetPipetteOffset MCC_GetPrimarySignalGain
98
+ MCC_GetPrimarySignalHPF MCC_GetPrimarySignalLPF
99
+ MCC_GetRsCompBandwidth MCC_GetRsCompCorrection
100
+ MCC_GetRsCompEnable MCC_GetRsCompPrediction
101
+ MCC_GetSecondarySignalGain MCC_GetSecondarySignalLPF
102
+ MCC_GetSlowCompCap MCC_GetSlowCompTau
103
+ MCC_GetSlowCompTauX20Enable MCC_GetSlowCurrentInjEnable
104
+ MCC_GetSlowCurrentInjLevel
105
+ MCC_GetSlowCurrentInjSetlTime MCC_GetWholeCellCompCap
106
+ MCC_GetWholeCellCompEnable MCC_GetWholeCellCompResist
107
+ MCC_SelectMultiClamp700B MCC_SetBridgeBalEnable
108
+ MCC_SetBridgeBalResist MCC_SetFastCompCap
109
+ MCC_SetFastCompTau MCC_SetHolding MCC_SetHoldingEnable
110
+ MCC_SetMode MCC_SetNeutralizationCap
111
+ MCC_SetNeutralizationEnable MCC_SetOscKillerEnable
112
+ MCC_SetPipetteOffset MCC_SetPrimarySignalGain
113
+ MCC_SetPrimarySignalHPF MCC_SetPrimarySignalLPF
114
+ MCC_SetRsCompBandwidth MCC_SetRsCompCorrection
115
+ MCC_SetRsCompEnable MCC_SetRsCompPrediction
116
+ MCC_SetSecondarySignalGain MCC_SetSecondarySignalLPF
117
+ MCC_SetSlowCompCap MCC_SetSlowCompTau
118
+ MCC_SetSlowCompTauX20Enable MCC_SetSlowCurrentInjEnable
119
+ MCC_SetSlowCurrentInjLevel
120
+ MCC_SetSlowCurrentInjSetlTime MCC_SetTimeoutMs
121
+ MCC_SetWholeCellCompCap MCC_SetWholeCellCompEnable
122
+ MCC_SetWholeCellCompResist MPFXEMGPeak
123
+ MPFXExpConvExpPeak MPFXGaussPeak MPFXLorenzianPeak
124
+ MPFXVoigtPeak MacroList MandelbrotPoint MarcumQ
125
+ MatrixCondition MatrixDet MatrixDot MatrixRank
126
+ MatrixTrace ModDate NVAR_Exists NaN NameOfWave
127
+ NewFreeDataFolder NewFreeWave NormalizeUnicode
128
+ NumVarOrDefault NumberByKey OperationList PICTInfo
129
+ PICTList PadString PanelResolution ParamIsDefault
130
+ ParseFilePath PathList Pi PixelFromAxisVal PolygonArea
131
+ PossiblyQuoteName ProcedureText RemoveByKey
132
+ RemoveEnding RemoveFromList RemoveListItem
133
+ ReplaceNumberByKey ReplaceString ReplaceStringByKey
134
+ SQL2DBinaryWaveToTextWave SQLAllocHandle SQLAllocStmt
135
+ SQLBinaryWavesToTextWave SQLBindCol SQLBindParameter
136
+ SQLBrowseConnect SQLBulkOperations SQLCancel
137
+ SQLCloseCursor SQLColAttributeNum SQLColAttributeStr
138
+ SQLColumnPrivileges SQLColumns SQLConnect
139
+ SQLDataSources SQLDescribeCol SQLDescribeParam
140
+ SQLDisconnect SQLDriverConnect SQLDrivers SQLEndTran
141
+ SQLError SQLExecDirect SQLExecute SQLFetch
142
+ SQLFetchScroll SQLForeignKeys SQLFreeConnect SQLFreeEnv
143
+ SQLFreeHandle SQLFreeStmt SQLGetConnectAttrNum
144
+ SQLGetConnectAttrStr SQLGetCursorName SQLGetDataNum
145
+ SQLGetDataStr SQLGetDescFieldNum SQLGetDescFieldStr
146
+ SQLGetDescRec SQLGetDiagFieldNum SQLGetDiagFieldStr
147
+ SQLGetDiagRec SQLGetEnvAttrNum SQLGetEnvAttrStr
148
+ SQLGetFunctions SQLGetInfoNum SQLGetInfoStr
149
+ SQLGetStmtAttrNum SQLGetStmtAttrStr SQLGetTypeInfo
150
+ SQLMoreResults SQLNativeSql SQLNumParams
151
+ SQLNumResultCols SQLNumResultRowsIfKnown
152
+ SQLNumRowsFetched SQLParamData SQLPrepare
153
+ SQLPrimaryKeys SQLProcedureColumns SQLProcedures
154
+ SQLPutData SQLReinitialize SQLRowCount
155
+ SQLSetConnectAttrNum SQLSetConnectAttrStr
156
+ SQLSetCursorName SQLSetDescFieldNum SQLSetDescFieldStr
157
+ SQLSetDescRec SQLSetEnvAttrNum SQLSetEnvAttrStr
158
+ SQLSetPos SQLSetStmtAttrNum SQLSetStmtAttrStr
159
+ SQLSpecialColumns SQLStatistics SQLTablePrivileges
160
+ SQLTables SQLTextWaveTo2DBinaryWave
161
+ SQLTextWaveToBinaryWaves SQLUpdateBoundValues
162
+ SQLXOPCheckState SVAR_Exists ScreenResolution Secs2Date
163
+ Secs2Time SelectNumber SelectString
164
+ SetEnvironmentVariable SortList SpecialCharacterInfo
165
+ SpecialCharacterList SpecialDirPath SphericalBessJ
166
+ SphericalBessJD SphericalBessY SphericalBessYD
167
+ SphericalHarmonics StartMSTimer StatsBetaCDF
168
+ StatsBetaPDF StatsBinomialCDF StatsBinomialPDF
169
+ StatsCMSSDCDF StatsCauchyCDF StatsCauchyPDF StatsChiCDF
170
+ StatsChiPDF StatsCorrelation StatsDExpCDF StatsDExpPDF
171
+ StatsEValueCDF StatsEValuePDF StatsErlangCDF
172
+ StatsErlangPDF StatsErrorPDF StatsExpCDF StatsExpPDF
173
+ StatsFCDF StatsFPDF StatsFriedmanCDF StatsGEVCDF
174
+ StatsGEVPDF StatsGammaCDF StatsGammaPDF
175
+ StatsGeometricCDF StatsGeometricPDF StatsHyperGCDF
176
+ StatsHyperGPDF StatsInvBetaCDF StatsInvBinomialCDF
177
+ StatsInvCMSSDCDF StatsInvCauchyCDF StatsInvChiCDF
178
+ StatsInvDExpCDF StatsInvEValueCDF StatsInvExpCDF
179
+ StatsInvFCDF StatsInvFriedmanCDF StatsInvGammaCDF
180
+ StatsInvGeometricCDF StatsInvKuiperCDF
181
+ StatsInvLogNormalCDF StatsInvLogisticCDF
182
+ StatsInvMaxwellCDF StatsInvMooreCDF
183
+ StatsInvNBinomialCDF StatsInvNCChiCDF StatsInvNCFCDF
184
+ StatsInvNormalCDF StatsInvParetoCDF StatsInvPoissonCDF
185
+ StatsInvPowerCDF StatsInvQCDF StatsInvQpCDF
186
+ StatsInvRayleighCDF StatsInvRectangularCDF
187
+ StatsInvSpearmanCDF StatsInvStudentCDF
188
+ StatsInvTopDownCDF StatsInvTriangularCDF
189
+ StatsInvUsquaredCDF StatsInvVonMisesCDF
190
+ StatsInvWeibullCDF StatsKuiperCDF StatsLogNormalCDF
191
+ StatsLogNormalPDF StatsLogisticCDF StatsLogisticPDF
192
+ StatsMaxwellCDF StatsMaxwellPDF StatsMedian
193
+ StatsMooreCDF StatsNBinomialCDF StatsNBinomialPDF
194
+ StatsNCChiCDF StatsNCChiPDF StatsNCFCDF StatsNCFPDF
195
+ StatsNCTCDF StatsNCTPDF StatsNormalCDF StatsNormalPDF
196
+ StatsParetoCDF StatsParetoPDF StatsPermute
197
+ StatsPoissonCDF StatsPoissonPDF StatsPowerCDF
198
+ StatsPowerNoise StatsPowerPDF StatsQCDF StatsQpCDF
199
+ StatsRayleighCDF StatsRayleighPDF StatsRectangularCDF
200
+ StatsRectangularPDF StatsRunsCDF StatsSpearmanRhoCDF
201
+ StatsStudentCDF StatsStudentPDF StatsTopDownCDF
202
+ StatsTriangularCDF StatsTriangularPDF StatsTrimmedMean
203
+ StatsUSquaredCDF StatsVonMisesCDF StatsVonMisesNoise
204
+ StatsVonMisesPDF StatsWaldCDF StatsWaldPDF
205
+ StatsWeibullCDF StatsWeibullPDF StopMSTimer
206
+ StrVarOrDefault StringByKey StringFromList StringList
207
+ StudentA StudentT TDMAddChannel TDMAddGroup
208
+ TDMAppendDataValues TDMAppendDataValuesTime
209
+ TDMChannelPropertyExists TDMCloseChannel TDMCloseFile
210
+ TDMCloseGroup TDMCreateChannelProperty TDMCreateFile
211
+ TDMCreateFileProperty TDMCreateGroupProperty
212
+ TDMFilePropertyExists TDMGetChannelPropertyNames
213
+ TDMGetChannelPropertyNum TDMGetChannelPropertyStr
214
+ TDMGetChannelPropertyTime TDMGetChannelPropertyType
215
+ TDMGetChannelStringPropertyLen TDMGetChannels
216
+ TDMGetDataType TDMGetDataValues TDMGetDataValuesTime
217
+ TDMGetFilePropertyNames TDMGetFilePropertyNum
218
+ TDMGetFilePropertyStr TDMGetFilePropertyTime
219
+ TDMGetFilePropertyType TDMGetFileStringPropertyLen
220
+ TDMGetGroupPropertyNames TDMGetGroupPropertyNum
221
+ TDMGetGroupPropertyStr TDMGetGroupPropertyTime
222
+ TDMGetGroupPropertyType TDMGetGroupStringPropertyLen
223
+ TDMGetGroups TDMGetLibraryErrorDescription
224
+ TDMGetNumChannelProperties TDMGetNumChannels
225
+ TDMGetNumDataValues TDMGetNumFileProperties
226
+ TDMGetNumGroupProperties TDMGetNumGroups
227
+ TDMGroupPropertyExists TDMOpenFile TDMOpenFileEx
228
+ TDMRemoveChannel TDMRemoveGroup TDMReplaceDataValues
229
+ TDMReplaceDataValuesTime TDMSaveFile
230
+ TDMSetChannelPropertyNum TDMSetChannelPropertyStr
231
+ TDMSetChannelPropertyTime TDMSetDataValues
232
+ TDMSetDataValuesTime TDMSetFilePropertyNum
233
+ TDMSetFilePropertyStr TDMSetFilePropertyTime
234
+ TDMSetGroupPropertyNum TDMSetGroupPropertyStr
235
+ TDMSetGroupPropertyTime TableInfo TagVal TagWaveRef
236
+ TextEncodingCode TextEncodingName TextFile
237
+ ThreadGroupCreate ThreadGroupGetDF ThreadGroupGetDFR
238
+ ThreadGroupRelease ThreadGroupWait ThreadProcessorCount
239
+ ThreadReturnValue TraceFromPixel TraceInfo
240
+ TraceNameList TraceNameToWaveRef TrimString URLDecode
241
+ URLEncode UnPadString UniqueName
242
+ UnsetEnvironmentVariable UpperStr VariableList Variance
243
+ VoigtFunc VoigtPeak WaveCRC WaveDims WaveExists
244
+ WaveHash WaveInfo WaveList WaveMax WaveMin WaveName
245
+ WaveRefIndexed WaveRefIndexedDFR WaveRefWaveToList
246
+ WaveRefsEqual WaveTextEncoding WaveType WaveUnits
247
+ WhichListItem WinList WinName WinRecreation WinType
248
+ XWaveName XWaveRefFromTrace ZernikeR abs acos acosh
249
+ alog area areaXY asin asinh atan atan2 atanh beta betai
250
+ binomial binomialNoise binomialln cabs ceil cequal
251
+ char2num chebyshev chebyshevU cmplx cmpstr conj cos
252
+ cosIntegral cosh cot coth cpowi csc csch date date2secs
253
+ datetime defined deltax digamma dilogarithm ei enoise
254
+ equalWaves erf erfc erfcw exists exp expInt
255
+ expIntegralE1 expNoise fDAQmx_AI_GetReader
256
+ fDAQmx_AO_UpdateOutputs fDAQmx_CTR_Finished
257
+ fDAQmx_CTR_IsFinished fDAQmx_CTR_IsPulseFinished
258
+ fDAQmx_CTR_ReadCounter fDAQmx_CTR_ReadWithOptions
259
+ fDAQmx_CTR_SetPulseFrequency fDAQmx_CTR_Start
260
+ fDAQmx_ConnectTerminals fDAQmx_DIO_Finished
261
+ fDAQmx_DIO_PortWidth fDAQmx_DIO_Read fDAQmx_DIO_Write
262
+ fDAQmx_DeviceNames fDAQmx_DisconnectTerminals
263
+ fDAQmx_ErrorString fDAQmx_ExternalCalDate
264
+ fDAQmx_NumAnalogInputs fDAQmx_NumAnalogOutputs
265
+ fDAQmx_NumCounters fDAQmx_NumDIOPorts fDAQmx_ReadChan
266
+ fDAQmx_ReadNamedChan fDAQmx_ResetDevice
267
+ fDAQmx_ScanGetAvailable fDAQmx_ScanGetNextIndex
268
+ fDAQmx_ScanStart fDAQmx_ScanStop fDAQmx_ScanWait
269
+ fDAQmx_ScanWaitWithTimeout fDAQmx_SelfCalDate
270
+ fDAQmx_SelfCalibration fDAQmx_WF_IsFinished
271
+ fDAQmx_WF_WaitUntilFinished fDAQmx_WaveformStart
272
+ fDAQmx_WaveformStop fDAQmx_WriteChan factorial fakedata
273
+ faverage faverageXY floor gamma gammaEuler gammaInc
274
+ gammaNoise gammln gammp gammq gcd gnoise hcsr hermite
275
+ hermiteGauss imag interp inverseERF inverseERFC leftx
276
+ limit ln log logNormalNoise lorentzianNoise magsqr max
277
+ mean median min mod norm note num2char num2istr num2str
278
+ numpnts numtype p2rect pcsr pnt2x poissonNoise poly
279
+ poly2D qcsr r2polar real rightx round sawtooth
280
+ scaleToIndex sec sech sign sin sinIntegral sinc sinh
281
+ sqrt str2num stringCRC stringmatch strlen strsearch sum
282
+ tan tango_close_device tango_command_inout
283
+ tango_compute_image_proj tango_get_dev_attr_list
284
+ tango_get_dev_black_box tango_get_dev_cmd_list
285
+ tango_get_dev_status tango_get_dev_timeout
286
+ tango_get_error_stack tango_open_device
287
+ tango_ping_device tango_read_attribute
288
+ tango_read_attributes tango_reload_dev_interface
289
+ tango_resume_attr_monitor tango_set_attr_monitor_period
290
+ tango_set_dev_timeout tango_start_attr_monitor
291
+ tango_stop_attr_monitor tango_suspend_attr_monitor
292
+ tango_write_attribute tango_write_attributes tanh ticks
293
+ time trunc vcsr viAssertIntrSignal viAssertTrigger
294
+ viAssertUtilSignal viClear viClose viDisableEvent
295
+ viDiscardEvents viEnableEvent viFindNext viFindRsrc
296
+ viGetAttribute viGetAttributeString viGpibCommand
297
+ viGpibControlATN viGpibControlREN viGpibPassControl
298
+ viGpibSendIFC viIn16 viIn32 viIn8 viLock viMapAddress
299
+ viMapTrigger viMemAlloc viMemFree viMoveIn16 viMoveIn32
300
+ viMoveIn8 viMoveOut16 viMoveOut32 viMoveOut8 viOpen
301
+ viOpenDefaultRM viOut16 viOut32 viOut8 viPeek16
302
+ viPeek32 viPeek8 viPoke16 viPoke32 viPoke8 viRead
303
+ viReadSTB viSetAttribute viSetAttributeString
304
+ viStatusDesc viTerminate viUnlock viUnmapAddress
305
+ viUnmapTrigger viUsbControlIn viUsbControlOut
306
+ viVxiCommandQuery viWaitOnEvent viWrite wnoise x2pnt
307
+ xcsr zcsr zeromq_client_connect zeromq_client_connect
308
+ zeromq_client_recv zeromq_client_recv
309
+ zeromq_client_send zeromq_client_send
310
+ zeromq_handler_start zeromq_handler_start
311
+ zeromq_handler_stop zeromq_handler_stop
312
+ zeromq_server_bind zeromq_server_bind
313
+ zeromq_server_recv zeromq_server_recv
314
+ zeromq_server_send zeromq_server_send zeromq_set
315
+ zeromq_set zeromq_stop zeromq_stop
316
+ zeromq_test_callfunction zeromq_test_callfunction
317
+ zeromq_test_serializeWave zeromq_test_serializeWave
318
+ zeta
319
+ )
320
+ end
321
+
322
+ def self.igorOperation
323
+ @igorOperation ||= Set.new %w(
324
+ APMath Abort AddFIFOData AddFIFOVectData AddMovieAudio
325
+ AddMovieFrame AddWavesToBoxPlot AddWavesToViolinPlot
326
+ AdoptFiles Append AppendBoxPlot AppendImage
327
+ AppendLayoutObject AppendMatrixContour AppendText
328
+ AppendToGizmo AppendToGraph AppendToLayout
329
+ AppendToTable AppendViolinPlot AppendXYZContour
330
+ AutoPositionWindow AxonTelegraphFindServers
331
+ BackgroundInfo Beep BoundingBall BoxSmooth BrowseURL
332
+ BuildMenu Button CWT Chart CheckBox CheckDisplayed
333
+ ChooseColor Close CloseHelp CloseMovie CloseProc
334
+ ColorScale ColorTab2Wave Concatenate ControlBar
335
+ ControlInfo ControlUpdate
336
+ ConvertGlobalStringTextEncoding ConvexHull Convolve
337
+ CopyDimLabels CopyFile CopyFolder CopyScales Correlate
338
+ CreateAliasShortcut CreateBrowser Cross CtrlBackground
339
+ CtrlFIFO CtrlNamedBackground Cursor CurveFit
340
+ CustomControl DAQmx_AI_SetupReader DAQmx_AO_SetOutputs
341
+ DAQmx_CTR_CountEdges DAQmx_CTR_OutputPulse
342
+ DAQmx_CTR_Period DAQmx_CTR_PulseWidth DAQmx_DIO_Config
343
+ DAQmx_DIO_WriteNewData DAQmx_Scan DAQmx_WaveformGen
344
+ DPSS DSPDetrend DSPPeriodogram DWT Debugger
345
+ DebuggerOptions DefaultFont DefaultGuiControls
346
+ DefaultGuiFont DefaultTextEncoding DefineGuide
347
+ DelayUpdate DeleteAnnotations DeleteFile DeleteFolder
348
+ DeletePoints Differentiate Display DisplayHelpTopic
349
+ DisplayProcedure DoAlert DoIgorMenu DoUpdate DoWindow
350
+ DoXOPIdle DrawAction DrawArc DrawBezier DrawLine
351
+ DrawOval DrawPICT DrawPoly DrawRRect DrawRect DrawText
352
+ DrawUserShape Duplicate DuplicateDataFolder EdgeStats
353
+ Edit ErrorBars EstimatePeakSizes Execute
354
+ ExecuteScriptText ExperimentInfo ExperimentModified
355
+ ExportGizmo Extract FBinRead FBinWrite FFT FGetPos
356
+ FIFO2Wave FIFOStatus FMaxFlat FPClustering FReadLine
357
+ FSetPos FStatus FTPCreateDirectory FTPDelete
358
+ FTPDownload FTPUpload FastGaussTransform FastOp
359
+ FilterFIR FilterIIR FindAPeak FindContour
360
+ FindDuplicates FindLevel FindLevels FindPeak
361
+ FindPointsInPoly FindRoots FindSequence FindValue
362
+ FuncFit FuncFitMD GBLoadWave GISCreateVectorLayer
363
+ GISGetRasterInfo GISGetRegisteredFileInfo
364
+ GISGetVectorLayerInfo GISLoadRasterData
365
+ GISLoadVectorData GISRasterizeVectorData
366
+ GISRegisterFile GISTransformCoords GISUnRegisterFile
367
+ GISWriteFieldData GISWriteGeometryData GISWriteRaster
368
+ GPIB2 GPIBRead2 GPIBReadBinary2 GPIBReadBinaryWave2
369
+ GPIBReadWave2 GPIBWrite2 GPIBWriteBinary2
370
+ GPIBWriteBinaryWave2 GPIBWriteWave2 GetAxis GetCamera
371
+ GetFileFolderInfo GetGizmo GetLastUserMenuInfo
372
+ GetMarquee GetMouse GetSelection GetWindow GraphNormal
373
+ GraphWaveDraw GraphWaveEdit Grep GroupBox
374
+ HDF5CloseFile HDF5CloseGroup HDF5ConvertColors
375
+ HDF5CreateFile HDF5CreateGroup HDF5CreateLink HDF5Dump
376
+ HDF5DumpErrors HDF5DumpState HDF5FlushFile
377
+ HDF5ListAttributes HDF5ListGroup HDF5LoadData
378
+ HDF5LoadGroup HDF5LoadImage HDF5OpenFile HDF5OpenGroup
379
+ HDF5SaveData HDF5SaveGroup HDF5SaveImage
380
+ HDF5TestOperation HDF5UnlinkObject HDFInfo
381
+ HDFReadImage HDFReadSDS HDFReadVset Hanning
382
+ HideIgorMenus HideInfo HideProcedures HideTools
383
+ HilbertTransform Histogram ICA IFFT ITCCloseAll2
384
+ ITCCloseDevice2 ITCConfigAllChannels2
385
+ ITCConfigChannel2 ITCConfigChannelReset2
386
+ ITCConfigChannelUpload2 ITCFIFOAvailable2
387
+ ITCFIFOAvailableAll2 ITCGetAllChannelsConfig2
388
+ ITCGetChannelConfig2 ITCGetCurrentDevice2
389
+ ITCGetDeviceInfo2 ITCGetDevices2 ITCGetErrorString2
390
+ ITCGetSerialNumber2 ITCGetState2 ITCGetVersions2
391
+ ITCInitialize2 ITCOpenDevice2 ITCReadADC2
392
+ ITCReadDigital2 ITCReadTimer2 ITCSelectDevice2
393
+ ITCSetDAC2 ITCSetGlobals2 ITCSetModes2 ITCSetState2
394
+ ITCStartAcq2 ITCStopAcq2 ITCUpdateFIFOPosition2
395
+ ITCUpdateFIFOPositionAll2 ITCWriteDigital2
396
+ ImageAnalyzeParticles ImageBlend ImageBoundaryToMask
397
+ ImageComposite ImageEdgeDetection ImageFileInfo
398
+ ImageFilter ImageFocus ImageFromXYZ ImageGLCM
399
+ ImageGenerateROIMask ImageHistModification
400
+ ImageHistogram ImageInterpolate ImageLineProfile
401
+ ImageLoad ImageMorphology ImageRegistration
402
+ ImageRemoveBackground ImageRestore ImageRotate
403
+ ImageSave ImageSeedFill ImageSkeleton3d ImageSnake
404
+ ImageStats ImageThreshold ImageTransform
405
+ ImageUnwrapPhase ImageWindow IndexSort InsertPoints
406
+ Integrate Integrate2D IntegrateODE Interp3DPath
407
+ Interpolate2 Interpolate3D JCAMPLoadWave
408
+ JointHistogram KMeans KillBackground KillControl
409
+ KillDataFolder KillFIFO KillFreeAxis KillPICTs
410
+ KillPath KillStrings KillVariables KillWaves
411
+ KillWindow Label Layout LayoutPageAction
412
+ LayoutSlideShow Legend LinearFeedbackShiftRegister
413
+ ListBox LoadData LoadPICT LoadPackagePreferences
414
+ LoadWave Loess LombPeriodogram MCC_FindServers
415
+ MFR_CheckForNewBricklets MFR_CloseResultFile
416
+ MFR_CreateOverviewTable MFR_GetBrickletCount
417
+ MFR_GetBrickletData MFR_GetBrickletDeployData
418
+ MFR_GetBrickletMetaData MFR_GetBrickletRawData
419
+ MFR_GetReportTemplate MFR_GetResultFileMetaData
420
+ MFR_GetResultFileName MFR_GetVernissageVersion
421
+ MFR_GetVersion MFR_GetXOPErrorMessage
422
+ MFR_OpenResultFile
423
+ MLLoadWave Make MakeIndex MarkPerfTestTime
424
+ MatrixConvolve MatrixCorr MatrixEigenV MatrixFilter
425
+ MatrixGLM MatrixGaussJ MatrixInverse MatrixLLS
426
+ MatrixLUBkSub MatrixLUD MatrixLUDTD MatrixLinearSolve
427
+ MatrixLinearSolveTD MatrixMultiply MatrixOP
428
+ MatrixSVBkSub MatrixSVD MatrixSchur MatrixSolve
429
+ MatrixTranspose MeasureStyledText Modify ModifyBoxPlot
430
+ ModifyBrowser ModifyCamera ModifyContour ModifyControl
431
+ ModifyControlList ModifyFreeAxis ModifyGizmo
432
+ ModifyGraph ModifyImage ModifyLayout ModifyPanel
433
+ ModifyTable ModifyViolinPlot ModifyWaterfall
434
+ MoveDataFolder MoveFile MoveFolder MoveString
435
+ MoveSubwindow MoveVariable MoveWave MoveWindow
436
+ MultiTaperPSD MultiThreadingControl NC_CloseFile
437
+ NC_DumpErrors NC_Inquire NC_ListAttributes
438
+ NC_ListObjects NC_LoadData NC_OpenFile NI4882
439
+ NILoadWave NeuralNetworkRun NeuralNetworkTrain
440
+ NewCamera NewDataFolder NewFIFO NewFIFOChan
441
+ NewFreeAxis NewGizmo NewImage NewLayout NewMovie
442
+ NewNotebook NewPanel NewPath NewWaterfall Note
443
+ Notebook NotebookAction Open OpenHelp OpenNotebook
444
+ Optimize PCA ParseOperationTemplate PathInfo
445
+ PauseForUser PauseUpdate PlayMovie PlayMovieAction
446
+ PlaySound PopupContextualMenu PopupMenu Preferences
447
+ PrimeFactors Print PrintGraphs PrintLayout
448
+ PrintNotebook PrintSettings PrintTable Project
449
+ PulseStats PutScrapText Quit RatioFromNumber
450
+ Redimension Remez Remove RemoveContour RemoveFromGizmo
451
+ RemoveFromGraph RemoveFromLayout RemoveFromTable
452
+ RemoveImage RemoveLayoutObjects RemovePath Rename
453
+ RenameDataFolder RenamePICT RenamePath RenameWindow
454
+ ReorderImages ReorderTraces ReplaceText ReplaceWave
455
+ Resample ResumeUpdate Reverse Rotate SQLHighLevelOp
456
+ STFT Save SaveData SaveExperiment SaveGizmoCopy
457
+ SaveGraphCopy SaveNotebook SavePICT
458
+ SavePackagePreferences SaveTableCopy
459
+ SetActiveSubwindow SetAxis SetBackground
460
+ SetDashPattern SetDataFolder SetDimLabel SetDrawEnv
461
+ SetDrawLayer SetFileFolderInfo SetFormula
462
+ SetIdlePeriod SetIgorHook SetIgorMenuMode
463
+ SetIgorOption SetMarquee SetProcessSleep SetRandomSeed
464
+ SetScale SetVariable SetWaveLock SetWaveTextEncoding
465
+ SetWindow ShowIgorMenus ShowInfo ShowTools Silent
466
+ Sleep Slider Smooth SmoothCustom Sort SortColumns
467
+ SoundInRecord SoundInSet SoundInStartChart
468
+ SoundInStatus SoundInStopChart SoundLoadWave
469
+ SoundSaveWave SphericalInterpolate
470
+ SphericalTriangulate SplitString SplitWave Stack
471
+ StackWindows StatsANOVA1Test StatsANOVA2NRTest
472
+ StatsANOVA2RMTest StatsANOVA2Test
473
+ StatsAngularDistanceTest StatsChiTest
474
+ StatsCircularCorrelationTest StatsCircularMeans
475
+ StatsCircularMoments StatsCircularTwoSampleTest
476
+ StatsCochranTest StatsContingencyTable StatsDIPTest
477
+ StatsDunnettTest StatsFTest StatsFriedmanTest
478
+ StatsHodgesAjneTest StatsJBTest StatsKDE StatsKSTest
479
+ StatsKWTest StatsKendallTauTest
480
+ StatsLinearCorrelationTest StatsLinearRegression
481
+ StatsMultiCorrelationTest StatsNPMCTest
482
+ StatsNPNominalSRTest StatsQuantiles
483
+ StatsRankCorrelationTest StatsResample StatsSRTest
484
+ StatsSample StatsScheffeTest StatsShapiroWilkTest
485
+ StatsSignTest StatsTTest StatsTukeyTest
486
+ StatsVariancesTest StatsWRCorrelationTest
487
+ StatsWatsonUSquaredTest StatsWatsonWilliamsTest
488
+ StatsWheelerWatsonTest StatsWilcoxonRankTest String
489
+ StructFill StructGet StructPut SumDimension SumSeries
490
+ TDMLoadData TDMSaveData TabControl Tag TextBox
491
+ ThreadGroupPutDF ThreadStart TickWavesFromAxis Tile
492
+ TileWindows TitleBox ToCommandLine ToolsGrid
493
+ Triangulate3d URLRequest Unwrap VDT2 VDTClosePort2
494
+ VDTGetPortList2 VDTGetStatus2 VDTOpenPort2
495
+ VDTOperationsPort2 VDTRead2 VDTReadBinary2
496
+ VDTReadBinaryWave2 VDTReadHex2 VDTReadHexWave2
497
+ VDTReadWave2 VDTTerminalPort2 VDTWrite2
498
+ VDTWriteBinary2 VDTWriteBinaryWave2 VDTWriteHex2
499
+ VDTWriteHexWave2 VDTWriteWave2 VISAControl VISARead
500
+ VISAReadBinary VISAReadBinaryWave VISAReadWave
501
+ VISAWrite VISAWriteBinary VISAWriteBinaryWave
502
+ VISAWriteWave ValDisplay Variable WaveMeanStdv
503
+ WaveStats WaveTransform WignerTransform WindowFunction
504
+ XLLoadWave cd dir fprintf printf pwd sprintf sscanf
505
+ wfprintf
506
+ )
507
+ end
508
+
509
+ def self.object_name
510
+ /\b[a-z][a-z0-9_\.]*?\b/i
511
+ end
512
+
513
+ object = self.object_name
514
+ noLineBreak = /(?:[ \t]|(?:\\\s*[\r\n]))+/
515
+ operator = %r([\#$~!%^&*+=\|?:<>/-])
516
+ punctuation = /[{}()\[\],.;]/
517
+ number_float= /0x[a-f0-9]+/i
518
+ number_hex = /\d+\.\d+(e[\+\-]?\d+)?/
519
+ number_int = /[\d]+(?:_\d+)*/
520
+
521
+ state :root do
522
+ rule %r(//), Comment, :comments
523
+
524
+ rule %r/#{object}/ do |m|
525
+ if m[0].downcase =~ /function/
526
+ token Keyword::Declaration
527
+ push :parse_function
528
+ elsif self.class.igorDeclarations.include? m[0].downcase
529
+ token Keyword::Declaration
530
+ push :parse_variables
531
+ elsif self.class.keywords.include? m[0].downcase
532
+ token Keyword
533
+ elsif self.class.igorConstants.include? m[0].downcase
534
+ token Keyword::Constant
535
+ elsif self.class.igorFunction.include? m[0].downcase
536
+ token Name::Builtin
537
+ elsif self.class.igorOperation.include? m[0].downcase
538
+ token Keyword::Reserved
539
+ push :operationFlags
540
+ elsif m[0].downcase =~ /\b(v|s|w)_[a-z]+[a-z0-9]*/
541
+ token Name::Constant
542
+ else
543
+ token Name
544
+ end
545
+ end
546
+
547
+ mixin :preprocessor
548
+ mixin :waveFlag
549
+
550
+ mixin :characters
551
+ mixin :numbers
552
+ mixin :whitespace
553
+ end
554
+
555
+ state :preprocessor do
556
+ rule %r((\#)(#{object})) do |m|
557
+ if self.class.preprocessor.include? m[2].downcase
558
+ token Comment::Preproc
559
+ else
560
+ token Punctuation, m[1] #i.e. ModuleFunctions
561
+ token Name, m[2]
562
+ end
563
+
564
+
565
+ end
566
+ end
567
+
568
+ state :assignment do
569
+ mixin :whitespace
570
+ rule %r/\"/, Literal::String::Double, :string1 #punctuation for string
571
+ mixin :string2
572
+ rule %r/#{number_float}/, Literal::Number::Float, :pop!
573
+ rule %r/#{number_int}/, Literal::Number::Integer, :pop!
574
+ rule %r/[\(\[\{][^\)\]\}]+[\)\]\}]/, Generic, :pop!
575
+ rule %r/[^\s\/\(]+/, Generic, :pop!
576
+ rule(//) { pop! }
577
+ end
578
+
579
+ state :parse_variables do
580
+ mixin :whitespace
581
+ rule %r/[=]/, Punctuation, :assignment
582
+ rule object, Name::Variable
583
+ rule %r/[\[\]]/, Punctuation # optional variables in functions
584
+ rule %r/[,]/, Punctuation, :parse_variables
585
+ rule %r/\)/, Punctuation, :pop! # end of function
586
+ rule %r([/][a-z]+)i, Keyword::Pseudo, :parse_variables
587
+ rule(//) { pop! }
588
+ end
589
+
590
+ state :parse_function do
591
+ rule %r([/][a-z]+)i, Keyword::Pseudo # only one flag
592
+ mixin :whitespace
593
+ rule object, Name::Function
594
+ rule %r/[\(]/, Punctuation, :parse_variables
595
+ rule(//) { pop! }
596
+ end
597
+
598
+ state :operationFlags do
599
+ rule %r/#{noLineBreak}/, Text
600
+ rule %r/[=]/, Punctuation, :assignment
601
+ rule %r([/][a-z]+)i, Keyword::Pseudo, :operationFlags
602
+ rule %r/(as)(\s*)(#{object})/i do
603
+ groups Keyword::Type, Text, Name::Label
604
+ end
605
+ rule(//) { pop! }
606
+ end
607
+
608
+ # inline variable assignments (i.e. for Make) with strict syntax
609
+ state :waveFlag do
610
+ rule %r(
611
+ (/(?:wave|X|Y))
612
+ (\s*)(=)(\s*)
613
+ (#{object})
614
+ )ix do |m|
615
+ token Keyword::Pseudo, m[1]
616
+ token Text, m[2]
617
+ token Punctuation, m[3]
618
+ token Text, m[4]
619
+ token Name::Variable, m[5]
620
+ end
621
+ end
622
+
623
+ state :characters do
624
+ rule %r/\s/, Text
625
+ rule %r/#{operator}/, Operator
626
+ rule %r/#{punctuation}/, Punctuation
627
+ rule %r/\"/, Literal::String::Double, :string1 #punctuation for string
628
+ mixin :string2
629
+ end
630
+
631
+ state :numbers do
632
+ rule %r/#{number_float}/, Literal::Number::Float
633
+ rule %r/#{number_hex}/, Literal::Number::Hex
634
+ rule %r/#{number_int}/, Literal::Number::Integer
635
+ end
636
+
637
+ state :whitespace do
638
+ rule %r/#{noLineBreak}/, Text
639
+ end
640
+
641
+ state :string1 do
642
+ rule %r/%\w\b/, Literal::String::Other
643
+ rule %r/\\\\/, Literal::String::Escape
644
+ rule %r/\\\"/, Literal::String::Escape
645
+ rule %r/\\/, Literal::String::Escape
646
+ rule %r/[^"]/, Literal::String
647
+ rule %r/\"/, Literal::String::Double, :pop! #punctuation for string
648
+ end
649
+
650
+ state :string2 do
651
+ rule %r/\'[^']*\'/, Literal::String::Single
652
+ end
653
+
654
+ state :comments do
655
+ rule %r{([/]\s*)([@]\w+\b)}i do
656
+ # doxygen comments
657
+ groups Comment, Comment::Special
658
+ end
659
+ rule %r/[^\r\n]/, Comment
660
+ rule(//) { pop! }
661
+ end
662
+ end
663
+ end
664
+ end