rouge_ecl 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 (319) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +26 -0
  3. data/LICENSE +186 -0
  4. data/bin/rougify +17 -0
  5. data/lib/rouge.rb +82 -0
  6. data/lib/rouge/cli.rb +429 -0
  7. data/lib/rouge/demos/abap +6 -0
  8. data/lib/rouge/demos/actionscript +4 -0
  9. data/lib/rouge/demos/apache +21 -0
  10. data/lib/rouge/demos/apiblueprint +33 -0
  11. data/lib/rouge/demos/applescript +2 -0
  12. data/lib/rouge/demos/awk +4 -0
  13. data/lib/rouge/demos/biml +38 -0
  14. data/lib/rouge/demos/bsl +7 -0
  15. data/lib/rouge/demos/c +8 -0
  16. data/lib/rouge/demos/ceylon +7 -0
  17. data/lib/rouge/demos/cfscript +18 -0
  18. data/lib/rouge/demos/clojure +5 -0
  19. data/lib/rouge/demos/cmake +7 -0
  20. data/lib/rouge/demos/coffeescript +5 -0
  21. data/lib/rouge/demos/common_lisp +1 -0
  22. data/lib/rouge/demos/conf +4 -0
  23. data/lib/rouge/demos/console +6 -0
  24. data/lib/rouge/demos/coq +13 -0
  25. data/lib/rouge/demos/cpp +8 -0
  26. data/lib/rouge/demos/csharp +5 -0
  27. data/lib/rouge/demos/css +4 -0
  28. data/lib/rouge/demos/d +16 -0
  29. data/lib/rouge/demos/dart +6 -0
  30. data/lib/rouge/demos/diff +7 -0
  31. data/lib/rouge/demos/digdag +19 -0
  32. data/lib/rouge/demos/docker +9 -0
  33. data/lib/rouge/demos/dot +5 -0
  34. data/lib/rouge/demos/ecl +1 -0
  35. data/lib/rouge/demos/eiffel +30 -0
  36. data/lib/rouge/demos/elixir +1 -0
  37. data/lib/rouge/demos/elm +4 -0
  38. data/lib/rouge/demos/erb +1 -0
  39. data/lib/rouge/demos/erlang +7 -0
  40. data/lib/rouge/demos/factor +5 -0
  41. data/lib/rouge/demos/fortran +22 -0
  42. data/lib/rouge/demos/fsharp +12 -0
  43. data/lib/rouge/demos/gherkin +17 -0
  44. data/lib/rouge/demos/glsl +14 -0
  45. data/lib/rouge/demos/go +7 -0
  46. data/lib/rouge/demos/gradle +10 -0
  47. data/lib/rouge/demos/graphql +17 -0
  48. data/lib/rouge/demos/groovy +9 -0
  49. data/lib/rouge/demos/hack +5 -0
  50. data/lib/rouge/demos/haml +5 -0
  51. data/lib/rouge/demos/handlebars +7 -0
  52. data/lib/rouge/demos/haskell +6 -0
  53. data/lib/rouge/demos/html +8 -0
  54. data/lib/rouge/demos/http +14 -0
  55. data/lib/rouge/demos/hylang +10 -0
  56. data/lib/rouge/demos/idlang +8 -0
  57. data/lib/rouge/demos/igorpro +9 -0
  58. data/lib/rouge/demos/ini +4 -0
  59. data/lib/rouge/demos/io +11 -0
  60. data/lib/rouge/demos/irb +4 -0
  61. data/lib/rouge/demos/irb_output +2 -0
  62. data/lib/rouge/demos/java +5 -0
  63. data/lib/rouge/demos/javascript +1 -0
  64. data/lib/rouge/demos/jinja +9 -0
  65. data/lib/rouge/demos/json +1 -0
  66. data/lib/rouge/demos/json-doc +1 -0
  67. data/lib/rouge/demos/jsonnet +28 -0
  68. data/lib/rouge/demos/jsx +17 -0
  69. data/lib/rouge/demos/julia +11 -0
  70. data/lib/rouge/demos/kotlin +3 -0
  71. data/lib/rouge/demos/lasso +12 -0
  72. data/lib/rouge/demos/liquid +11 -0
  73. data/lib/rouge/demos/literate_coffeescript +3 -0
  74. data/lib/rouge/demos/literate_haskell +7 -0
  75. data/lib/rouge/demos/llvm +20 -0
  76. data/lib/rouge/demos/lua +12 -0
  77. data/lib/rouge/demos/make +6 -0
  78. data/lib/rouge/demos/markdown +4 -0
  79. data/lib/rouge/demos/matlab +6 -0
  80. data/lib/rouge/demos/moonscript +16 -0
  81. data/lib/rouge/demos/mosel +10 -0
  82. data/lib/rouge/demos/mxml +22 -0
  83. data/lib/rouge/demos/nasm +26 -0
  84. data/lib/rouge/demos/nginx +5 -0
  85. data/lib/rouge/demos/nim +27 -0
  86. data/lib/rouge/demos/nix +19 -0
  87. data/lib/rouge/demos/objective_c +18 -0
  88. data/lib/rouge/demos/ocaml +12 -0
  89. data/lib/rouge/demos/pascal +14 -0
  90. data/lib/rouge/demos/perl +5 -0
  91. data/lib/rouge/demos/php +3 -0
  92. data/lib/rouge/demos/plaintext +1 -0
  93. data/lib/rouge/demos/plist +142 -0
  94. data/lib/rouge/demos/pony +17 -0
  95. data/lib/rouge/demos/powershell +49 -0
  96. data/lib/rouge/demos/praat +26 -0
  97. data/lib/rouge/demos/prolog +9 -0
  98. data/lib/rouge/demos/prometheus +9 -0
  99. data/lib/rouge/demos/properties +7 -0
  100. data/lib/rouge/demos/protobuf +5 -0
  101. data/lib/rouge/demos/puppet +6 -0
  102. data/lib/rouge/demos/python +6 -0
  103. data/lib/rouge/demos/q +2 -0
  104. data/lib/rouge/demos/qml +9 -0
  105. data/lib/rouge/demos/r +8 -0
  106. data/lib/rouge/demos/racket +24 -0
  107. data/lib/rouge/demos/ruby +9 -0
  108. data/lib/rouge/demos/rust +12 -0
  109. data/lib/rouge/demos/sass +3 -0
  110. data/lib/rouge/demos/scala +3 -0
  111. data/lib/rouge/demos/scheme +4 -0
  112. data/lib/rouge/demos/scss +5 -0
  113. data/lib/rouge/demos/sed +4 -0
  114. data/lib/rouge/demos/shell +2 -0
  115. data/lib/rouge/demos/sieve +10 -0
  116. data/lib/rouge/demos/slim +17 -0
  117. data/lib/rouge/demos/smalltalk +6 -0
  118. data/lib/rouge/demos/smarty +12 -0
  119. data/lib/rouge/demos/sml +4 -0
  120. data/lib/rouge/demos/sql +1 -0
  121. data/lib/rouge/demos/swift +5 -0
  122. data/lib/rouge/demos/tap +5 -0
  123. data/lib/rouge/demos/tcl +1 -0
  124. data/lib/rouge/demos/tex +1 -0
  125. data/lib/rouge/demos/toml +9 -0
  126. data/lib/rouge/demos/tsx +17 -0
  127. data/lib/rouge/demos/tulip +13 -0
  128. data/lib/rouge/demos/turtle +26 -0
  129. data/lib/rouge/demos/twig +9 -0
  130. data/lib/rouge/demos/typescript +1 -0
  131. data/lib/rouge/demos/vala +8 -0
  132. data/lib/rouge/demos/vb +4 -0
  133. data/lib/rouge/demos/verilog +27 -0
  134. data/lib/rouge/demos/vhdl +23 -0
  135. data/lib/rouge/demos/viml +14 -0
  136. data/lib/rouge/demos/vue +11 -0
  137. data/lib/rouge/demos/wollok +11 -0
  138. data/lib/rouge/demos/xml +2 -0
  139. data/lib/rouge/demos/yaml +4 -0
  140. data/lib/rouge/formatter.rb +75 -0
  141. data/lib/rouge/formatters/html.rb +37 -0
  142. data/lib/rouge/formatters/html_inline.rb +30 -0
  143. data/lib/rouge/formatters/html_legacy.rb +44 -0
  144. data/lib/rouge/formatters/html_linewise.rb +27 -0
  145. data/lib/rouge/formatters/html_pygments.rb +16 -0
  146. data/lib/rouge/formatters/html_table.rb +61 -0
  147. data/lib/rouge/formatters/null.rb +19 -0
  148. data/lib/rouge/formatters/terminal256.rb +180 -0
  149. data/lib/rouge/guesser.rb +55 -0
  150. data/lib/rouge/guessers/disambiguation.rb +101 -0
  151. data/lib/rouge/guessers/filename.rb +25 -0
  152. data/lib/rouge/guessers/glob_mapping.rb +43 -0
  153. data/lib/rouge/guessers/mimetype.rb +14 -0
  154. data/lib/rouge/guessers/modeline.rb +44 -0
  155. data/lib/rouge/guessers/source.rb +29 -0
  156. data/lib/rouge/guessers/util.rb +32 -0
  157. data/lib/rouge/lexer.rb +461 -0
  158. data/lib/rouge/lexers/abap.rb +238 -0
  159. data/lib/rouge/lexers/actionscript.rb +195 -0
  160. data/lib/rouge/lexers/apache.rb +71 -0
  161. data/lib/rouge/lexers/apache/keywords.yml +764 -0
  162. data/lib/rouge/lexers/apiblueprint.rb +47 -0
  163. data/lib/rouge/lexers/apple_script.rb +367 -0
  164. data/lib/rouge/lexers/awk.rb +161 -0
  165. data/lib/rouge/lexers/biml.rb +41 -0
  166. data/lib/rouge/lexers/bsl.rb +81 -0
  167. data/lib/rouge/lexers/c.rb +212 -0
  168. data/lib/rouge/lexers/ceylon.rb +123 -0
  169. data/lib/rouge/lexers/cfscript.rb +153 -0
  170. data/lib/rouge/lexers/clojure.rb +112 -0
  171. data/lib/rouge/lexers/cmake.rb +206 -0
  172. data/lib/rouge/lexers/coffeescript.rb +174 -0
  173. data/lib/rouge/lexers/common_lisp.rb +345 -0
  174. data/lib/rouge/lexers/conf.rb +24 -0
  175. data/lib/rouge/lexers/console.rb +136 -0
  176. data/lib/rouge/lexers/coq.rb +187 -0
  177. data/lib/rouge/lexers/cpp.rb +78 -0
  178. data/lib/rouge/lexers/csharp.rb +114 -0
  179. data/lib/rouge/lexers/css.rb +273 -0
  180. data/lib/rouge/lexers/d.rb +176 -0
  181. data/lib/rouge/lexers/dart.rb +104 -0
  182. data/lib/rouge/lexers/diff.rb +31 -0
  183. data/lib/rouge/lexers/digdag.rb +68 -0
  184. data/lib/rouge/lexers/docker.rb +50 -0
  185. data/lib/rouge/lexers/dot.rb +68 -0
  186. data/lib/rouge/lexers/ecl.rb +138 -0
  187. data/lib/rouge/lexers/eiffel.rb +65 -0
  188. data/lib/rouge/lexers/elixir.rb +133 -0
  189. data/lib/rouge/lexers/elm.rb +89 -0
  190. data/lib/rouge/lexers/erb.rb +52 -0
  191. data/lib/rouge/lexers/erlang.rb +114 -0
  192. data/lib/rouge/lexers/factor.rb +302 -0
  193. data/lib/rouge/lexers/fortran.rb +176 -0
  194. data/lib/rouge/lexers/fsharp.rb +118 -0
  195. data/lib/rouge/lexers/gherkin.rb +137 -0
  196. data/lib/rouge/lexers/gherkin/keywords.rb +14 -0
  197. data/lib/rouge/lexers/glsl.rb +135 -0
  198. data/lib/rouge/lexers/go.rb +174 -0
  199. data/lib/rouge/lexers/gradle.rb +37 -0
  200. data/lib/rouge/lexers/graphql.rb +243 -0
  201. data/lib/rouge/lexers/groovy.rb +112 -0
  202. data/lib/rouge/lexers/hack.rb +48 -0
  203. data/lib/rouge/lexers/haml.rb +229 -0
  204. data/lib/rouge/lexers/handlebars.rb +79 -0
  205. data/lib/rouge/lexers/haskell.rb +182 -0
  206. data/lib/rouge/lexers/html.rb +139 -0
  207. data/lib/rouge/lexers/http.rb +80 -0
  208. data/lib/rouge/lexers/hylang.rb +93 -0
  209. data/lib/rouge/lexers/idlang.rb +310 -0
  210. data/lib/rouge/lexers/igorpro.rb +408 -0
  211. data/lib/rouge/lexers/ini.rb +53 -0
  212. data/lib/rouge/lexers/io.rb +68 -0
  213. data/lib/rouge/lexers/irb.rb +66 -0
  214. data/lib/rouge/lexers/java.rb +87 -0
  215. data/lib/rouge/lexers/javascript.rb +281 -0
  216. data/lib/rouge/lexers/jinja.rb +137 -0
  217. data/lib/rouge/lexers/json.rb +29 -0
  218. data/lib/rouge/lexers/json_doc.rb +23 -0
  219. data/lib/rouge/lexers/jsonnet.rb +151 -0
  220. data/lib/rouge/lexers/jsx.rb +102 -0
  221. data/lib/rouge/lexers/julia.rb +172 -0
  222. data/lib/rouge/lexers/kotlin.rb +79 -0
  223. data/lib/rouge/lexers/lasso.rb +214 -0
  224. data/lib/rouge/lexers/lasso/keywords.yml +446 -0
  225. data/lib/rouge/lexers/liquid.rb +287 -0
  226. data/lib/rouge/lexers/literate_coffeescript.rb +33 -0
  227. data/lib/rouge/lexers/literate_haskell.rb +36 -0
  228. data/lib/rouge/lexers/llvm.rb +80 -0
  229. data/lib/rouge/lexers/lua.rb +125 -0
  230. data/lib/rouge/lexers/lua/builtins.rb +22 -0
  231. data/lib/rouge/lexers/make.rb +112 -0
  232. data/lib/rouge/lexers/markdown.rb +154 -0
  233. data/lib/rouge/lexers/matlab.rb +71 -0
  234. data/lib/rouge/lexers/matlab/builtins.rb +11 -0
  235. data/lib/rouge/lexers/moonscript.rb +114 -0
  236. data/lib/rouge/lexers/mosel.rb +231 -0
  237. data/lib/rouge/lexers/mxml.rb +68 -0
  238. data/lib/rouge/lexers/nasm.rb +198 -0
  239. data/lib/rouge/lexers/nginx.rb +71 -0
  240. data/lib/rouge/lexers/nim.rb +152 -0
  241. data/lib/rouge/lexers/nix.rb +205 -0
  242. data/lib/rouge/lexers/objective_c.rb +194 -0
  243. data/lib/rouge/lexers/ocaml.rb +100 -0
  244. data/lib/rouge/lexers/pascal.rb +66 -0
  245. data/lib/rouge/lexers/perl.rb +196 -0
  246. data/lib/rouge/lexers/php.rb +193 -0
  247. data/lib/rouge/lexers/php/builtins.rb +194 -0
  248. data/lib/rouge/lexers/plain_text.rb +26 -0
  249. data/lib/rouge/lexers/plist.rb +45 -0
  250. data/lib/rouge/lexers/pony.rb +93 -0
  251. data/lib/rouge/lexers/powershell.rb +678 -0
  252. data/lib/rouge/lexers/praat.rb +350 -0
  253. data/lib/rouge/lexers/prolog.rb +59 -0
  254. data/lib/rouge/lexers/prometheus.rb +121 -0
  255. data/lib/rouge/lexers/properties.rb +51 -0
  256. data/lib/rouge/lexers/protobuf.rb +70 -0
  257. data/lib/rouge/lexers/puppet.rb +128 -0
  258. data/lib/rouge/lexers/python.rb +232 -0
  259. data/lib/rouge/lexers/q.rb +123 -0
  260. data/lib/rouge/lexers/qml.rb +73 -0
  261. data/lib/rouge/lexers/r.rb +89 -0
  262. data/lib/rouge/lexers/racket.rb +543 -0
  263. data/lib/rouge/lexers/ruby.rb +437 -0
  264. data/lib/rouge/lexers/rust.rb +192 -0
  265. data/lib/rouge/lexers/sass.rb +74 -0
  266. data/lib/rouge/lexers/sass/common.rb +180 -0
  267. data/lib/rouge/lexers/scala.rb +142 -0
  268. data/lib/rouge/lexers/scheme.rb +112 -0
  269. data/lib/rouge/lexers/scss.rb +34 -0
  270. data/lib/rouge/lexers/sed.rb +172 -0
  271. data/lib/rouge/lexers/shell.rb +189 -0
  272. data/lib/rouge/lexers/sieve.rb +96 -0
  273. data/lib/rouge/lexers/slim.rb +228 -0
  274. data/lib/rouge/lexers/smalltalk.rb +116 -0
  275. data/lib/rouge/lexers/smarty.rb +80 -0
  276. data/lib/rouge/lexers/sml.rb +344 -0
  277. data/lib/rouge/lexers/sql.rb +140 -0
  278. data/lib/rouge/lexers/swift.rb +181 -0
  279. data/lib/rouge/lexers/tap.rb +87 -0
  280. data/lib/rouge/lexers/tcl.rb +192 -0
  281. data/lib/rouge/lexers/tex.rb +69 -0
  282. data/lib/rouge/lexers/toml.rb +67 -0
  283. data/lib/rouge/lexers/tsx.rb +19 -0
  284. data/lib/rouge/lexers/tulip.rb +106 -0
  285. data/lib/rouge/lexers/turtle.rb +63 -0
  286. data/lib/rouge/lexers/twig.rb +39 -0
  287. data/lib/rouge/lexers/typescript.rb +22 -0
  288. data/lib/rouge/lexers/typescript/common.rb +33 -0
  289. data/lib/rouge/lexers/vala.rb +77 -0
  290. data/lib/rouge/lexers/vb.rb +164 -0
  291. data/lib/rouge/lexers/verilog.rb +164 -0
  292. data/lib/rouge/lexers/vhdl.rb +97 -0
  293. data/lib/rouge/lexers/viml.rb +101 -0
  294. data/lib/rouge/lexers/viml/keywords.rb +12 -0
  295. data/lib/rouge/lexers/vue.rb +122 -0
  296. data/lib/rouge/lexers/wollok.rb +103 -0
  297. data/lib/rouge/lexers/xml.rb +57 -0
  298. data/lib/rouge/lexers/yaml.rb +373 -0
  299. data/lib/rouge/plugins/redcarpet.rb +30 -0
  300. data/lib/rouge/regex_lexer.rb +441 -0
  301. data/lib/rouge/template_lexer.rb +20 -0
  302. data/lib/rouge/text_analyzer.rb +49 -0
  303. data/lib/rouge/theme.rb +213 -0
  304. data/lib/rouge/themes/base16.rb +130 -0
  305. data/lib/rouge/themes/colorful.rb +67 -0
  306. data/lib/rouge/themes/github.rb +71 -0
  307. data/lib/rouge/themes/gruvbox.rb +167 -0
  308. data/lib/rouge/themes/igor_pro.rb +20 -0
  309. data/lib/rouge/themes/molokai.rb +82 -0
  310. data/lib/rouge/themes/monokai.rb +92 -0
  311. data/lib/rouge/themes/monokai_sublime.rb +90 -0
  312. data/lib/rouge/themes/pastie.rb +69 -0
  313. data/lib/rouge/themes/thankful_eyes.rb +74 -0
  314. data/lib/rouge/themes/tulip.rb +69 -0
  315. data/lib/rouge/token.rb +182 -0
  316. data/lib/rouge/util.rb +101 -0
  317. data/lib/rouge/version.rb +7 -0
  318. data/rouge.gemspec +23 -0
  319. metadata +365 -0
@@ -0,0 +1,231 @@
1
+ # -*- coding: utf-8 -*- #
2
+
3
+ module Rouge
4
+ module Lexers
5
+ class Mosel < RegexLexer
6
+ tag 'mosel'
7
+ filenames '*.mos'
8
+ title "Mosel"
9
+ desc "An optimization language used by Fico's Xpress."
10
+ # http://www.fico.com/en/products/fico-xpress-optimization-suite
11
+ filenames '*.mos'
12
+
13
+ mimetypes 'text/x-mosel'
14
+
15
+ def self.detect?(text)
16
+ return true if text =~ /^\s*(model|package)\s+/
17
+ end
18
+
19
+ id = /[a-zA-Z_][a-zA-Z0-9_]*/
20
+
21
+ ############################################################################################################################
22
+ # General language lements
23
+ ############################################################################################################################
24
+
25
+ core_keywords = %w(
26
+ and array as
27
+ boolean break
28
+ case count counter
29
+ declarations div do dynamic
30
+ elif else end evaluation exit
31
+ false forall forward from function
32
+ if imports in include initialisations initializations integer inter is_binary is_continuous is_free is_integer is_partint is_semcont is_semint is_sos1 is_sos2
33
+ linctr list
34
+ max min mod model mpvar
35
+ next not of options or
36
+ package parameters procedure
37
+ public prod range real record repeat requirements
38
+ set string sum
39
+ then to true
40
+ union until uses
41
+ version
42
+ while with
43
+ )
44
+
45
+ core_functions = %w(
46
+ abs arctan assert
47
+ bitflip bitneg bitset bitshift bittest bitval
48
+ ceil cos create currentdate currenttime cuthead cuttail
49
+ delcell exists exit exp exportprob
50
+ fclose fflush finalize findfirst findlast floor fopen fselect fskipline
51
+ getact getcoeff getcoeffs getdual getfid getfirst gethead getfname getlast getobjval getparam getrcost getreadcnt getreverse getsize getslack getsol gettail gettype getvars
52
+ iseof ishidden isodd ln log
53
+ makesos1 makesos2 maxlist minlist
54
+ publish
55
+ random read readln reset reverse round
56
+ setcoeff sethidden setioerr setname setparam setrandseed settype sin splithead splittail sqrt strfmt substr
57
+ timestamp
58
+ unpublish
59
+ write writeln
60
+ )
61
+
62
+ ############################################################################################################################
63
+ # mmxprs module elements
64
+ ############################################################################################################################
65
+
66
+ mmxprs_functions = %w(
67
+ addmipsol
68
+ basisstability
69
+ calcsolinfo clearmipdir clearmodcut command copysoltoinit
70
+ defdelayedrows defsecurevecs
71
+ estimatemarginals
72
+ fixglobal
73
+ getbstat getdualray getiis getiissense getiistype getinfcause getinfeas getlb getloadedlinctrs getloadedmpvars getname getprimalray getprobstat getrange getsensrng getsize getsol getub getvars
74
+ implies indicator isiisvalid isintegral loadbasis
75
+ loadmipsol loadprob
76
+ maximize minimize
77
+ postsolve
78
+ readbasis readdirs readsol refinemipsol rejectintsol repairinfeas resetbasis resetiis resetsol
79
+ savebasis savemipsol savesol savestate selectsol setbstat setcallback setcbcutoff setgndata setlb setmipdir setmodcut setsol setub setucbdata stopoptimize
80
+ unloadprob
81
+ writebasis writedirs writeprob writesol
82
+ xor
83
+ )
84
+
85
+ mmxpres_constants = %w(XPRS_OPT XPRS_UNF XPRS_INF XPRS_UNB XPRS_OTH)
86
+
87
+ mmxprs_parameters = %w(XPRS_colorder XPRS_enumduplpol XPRS_enummaxsol XPRS_enumsols XPRS_fullversion XPRS_loadnames XPRS_problem XPRS_probname XPRS_verbose)
88
+
89
+
90
+ ############################################################################################################################
91
+ # mmsystem module elements
92
+ ############################################################################################################################
93
+
94
+ mmsystem_functions = %w(
95
+ addmonths
96
+ copytext cuttext
97
+ deltext
98
+ endswith expandpath
99
+ fcopy fdelete findfiles findtext fmove
100
+ getasnumber getchar getcwd getdate getday getdaynum getdays getdirsep
101
+ getendparse setendparse
102
+ getenv getfsize getfstat getftime gethour getminute getmonth getmsec getpathsep
103
+ getqtype setqtype
104
+ getsecond
105
+ getsepchar setsepchar
106
+ getsize
107
+ getstart setstart
108
+ getsucc setsucc
109
+ getsysinfo getsysstat gettime
110
+ gettmpdir
111
+ gettrim settrim
112
+ getweekday getyear
113
+ inserttext isvalid
114
+ makedir makepath newtar
115
+ newzip nextfield
116
+ openpipe
117
+ parseextn parseint parsereal parsetext pastetext pathmatch pathsplit
118
+ qsort quote
119
+ readtextline regmatch regreplace removedir removefiles
120
+ setchar setdate setday setenv sethour
121
+ setminute setmonth setmsec setsecond settime setyear sleep startswith system
122
+ tarlist textfmt tolower toupper trim
123
+ untar unzip
124
+ ziplist
125
+ )
126
+
127
+ mmsystem_parameters = %w(datefmt datetimefmt monthnames sys_endparse sys_fillchar sys_pid sys_qtype sys_regcache sys_sepchar)
128
+
129
+ ############################################################################################################################
130
+ # mmjobs module elements
131
+ ############################################################################################################################
132
+
133
+ mmjobs_instance_mgmt_functions = %w(
134
+ clearaliases connect
135
+ disconnect
136
+ findxsrvs
137
+ getaliases getbanner gethostalias
138
+ sethostalias
139
+ )
140
+
141
+ mmjobs_model_mgmt_functions = %w(
142
+ compile
143
+ detach
144
+ getannidents getannotations getexitcode getgid getid getnode getrmtid getstatus getuid
145
+ load
146
+ reset resetmodpar run
147
+ setcontrol setdefstream setmodpar setworkdir stop
148
+ unload
149
+ )
150
+
151
+ mmjobs_synchornization_functions = %w(
152
+ dropnextevent
153
+ getclass getfromgid getfromid getfromuid getnextevent getvalue
154
+ isqueueempty
155
+ nullevent
156
+ peeknextevent
157
+ send setgid setuid
158
+ wait waitfor
159
+ )
160
+
161
+ mmjobs_functions = mmjobs_instance_mgmt_functions + mmjobs_model_mgmt_functions + mmjobs_synchornization_functions
162
+
163
+ mmjobs_parameters = %w(conntmpl defaultnode fsrvdelay fsrvnbiter fsrvport jobid keepalive nodenumber parentnumber)
164
+
165
+
166
+ state :whitespace do
167
+ # Spaces
168
+ rule /\s+/m, Text
169
+ # ! Comments
170
+ rule %r((!).*$\n?), Comment::Single
171
+ # (! Comments !)
172
+ rule %r(\(!.*?!\))m, Comment::Multiline
173
+
174
+ end
175
+
176
+
177
+ # From Mosel documentation:
178
+ # Constant strings of characters must be quoted with single (') or double quote (") and may extend over several lines. Strings enclosed in double quotes may contain C-like escape sequences introduced by the 'backslash'
179
+ # character (\a \b \f \n \r \t \v \xxx with xxx being the character code as an octal number).
180
+ # Each sequence is replaced by the corresponding control character (e.g. \n is the `new line' command) or, if no control character exists, by the second character of the sequence itself (e.g. \\ is replaced by '\').
181
+ # The escape sequences are not interpreted if they are contained in strings that are enclosed in single quotes.
182
+
183
+ state :single_quotes do
184
+ rule /'/, Str::Single, :pop!
185
+ rule /[^']+/, Str::Single
186
+ end
187
+
188
+ state :double_quotes do
189
+ rule /"/, Str::Double, :pop!
190
+ rule /(\\"|\\[0-7]{1,3}\D|\\[abfnrtv]|\\\\)/, Str::Escape
191
+ rule /[^"]/, Str::Double
192
+ end
193
+
194
+ state :base do
195
+
196
+ rule %r{"}, Str::Double, :double_quotes
197
+ rule %r{'}, Str::Single, :single_quotes
198
+
199
+ rule %r{((0(x|X)[0-9a-fA-F]*)|(([0-9]+\.?[0-9]*)|(\.[0-9]+))((e|E)(\+|-)?[0-9]+)?)(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?}, Num
200
+ rule %r{[~!@#\$%\^&\*\(\)\+`\-={}\[\]:;<>\?,\.\/\|\\]}, Punctuation
201
+ # rule %r{'([^']|'')*'}, Str
202
+ # rule /"(\\\\|\\"|[^"])*"/, Str
203
+
204
+
205
+
206
+ rule /(true|false)\b/i, Name::Builtin
207
+ rule /\b(#{core_keywords.join('|')})\b/i, Keyword
208
+ rule /\b(#{core_functions.join('|')})\b/, Name::Builtin
209
+
210
+
211
+
212
+ rule /\b(#{mmxprs_functions.join('|')})\b/, Name::Function
213
+ rule /\b(#{mmxpres_constants.join('|')})\b/, Name::Constant
214
+ rule /\b(#{mmxprs_parameters.join('|')})\b/i, Name::Property
215
+
216
+ rule /\b(#{mmsystem_functions.join('|')})\b/i, Name::Function
217
+ rule /\b(#{mmsystem_parameters.join('|')})\b/, Name::Property
218
+
219
+ rule /\b(#{mmjobs_functions.join('|')})\b/i, Name::Function
220
+ rule /\b(#{mmjobs_parameters.join('|')})\b/, Name::Property
221
+
222
+ rule id, Name
223
+ end
224
+
225
+ state :root do
226
+ mixin :whitespace
227
+ mixin :base
228
+ end
229
+ end
230
+ end
231
+ end
@@ -0,0 +1,68 @@
1
+ # -*- coding: utf-8 -*- #
2
+
3
+ module Rouge
4
+ module Lexers
5
+ class MXML < RegexLexer
6
+ title "MXML"
7
+ desc "MXML"
8
+ tag 'mxml'
9
+ filenames '*.mxml'
10
+ mimetypes 'application/xv+xml'
11
+
12
+ state :root do
13
+ rule /[^<&]+/, Text
14
+ rule /&\S*?;/, Name::Entity
15
+
16
+ rule /<!\[CDATA\[/m do
17
+ token Comment::Preproc
18
+ push :actionscript_content
19
+ end
20
+
21
+ rule /<!--/, Comment, :comment
22
+ rule /<\?.*?\?>/, Comment::Preproc
23
+ rule /<![^>]*>/, Comment::Preproc
24
+
25
+ rule %r(<\s*[\w:.-]+)m, Name::Tag, :tag # opening tags
26
+ rule %r(<\s*/\s*[\w:.-]+\s*>)m, Name::Tag # closing tags
27
+ end
28
+
29
+ state :comment do
30
+ rule /[^-]+/m, Comment
31
+ rule /-->/, Comment, :pop!
32
+ rule /-/, Comment
33
+ end
34
+
35
+ state :tag do
36
+ rule /\s+/m, Text
37
+ rule /[\w.:-]+\s*=/m, Name::Attribute, :attribute
38
+ rule %r(/?\s*>), Name::Tag, :root
39
+ end
40
+
41
+ state :attribute do
42
+ rule /\s+/m, Text
43
+ rule /(")({|@{)/m do
44
+ groups Str, Punctuation
45
+ push :actionscript_attribute
46
+ end
47
+ rule /".*?"|'.*?'|[^\s>]+/, Str, :tag
48
+ end
49
+
50
+ state :actionscript_content do
51
+ rule /\]\]\>/m, Comment::Preproc, :pop!
52
+ rule /.*?(?=\]\]\>)/m do
53
+ delegate Actionscript
54
+ end
55
+ end
56
+
57
+ state :actionscript_attribute do
58
+ rule /(})(")/m do
59
+ groups Punctuation, Str
60
+ push :tag
61
+ end
62
+ rule /.*?(?=}")/m do
63
+ delegate Actionscript
64
+ end
65
+ end
66
+ end
67
+ end
68
+ end
@@ -0,0 +1,198 @@
1
+ # -*- coding: utf-8 -*- #
2
+
3
+ module Rouge
4
+ module Lexers
5
+ class Nasm < RegexLexer
6
+ tag 'nasm'
7
+ filenames '*.asm'
8
+ #mimetypes 'text/x-chdr', 'text/x-csrc'
9
+
10
+ title "Nasm"
11
+ desc "Netwide Assembler"
12
+
13
+ ws = %r((?:\s|;.*?\n/)+)
14
+ id = /[a-zA-Z_][a-zA-Z0-9_]*/
15
+
16
+ #todo: pull more instructions from: http://www.nasm.us/doc/nasmdocb.html
17
+ #so far, we have sections 1.1 and 1.2
18
+
19
+ def self.keywords
20
+ @keywords ||= Set.new %w(
21
+ aaa aad aam aas adc add and arpl bb0_reset bb1_reset bound bsf bsr bswap bt btc btr bts
22
+ call cbw cdq cdqe clc cld cli clts cmc cmp cmpsb cmpsd cmpsq cmpsw cmpxchg
23
+ cmpxchg16b cmpxchg486 cmpxchg8b cpuid cpu_read cpu_write cqo cwd cwde daa das dec div
24
+ dmint emms enter equ f2xm1 fabs fadd faddp fbld fbstp fchs fclex fcmovb fcmovbe fcmove
25
+ fcmovnb fcmovnbe fcmovne fcmovnu fcmovu fcom fcomi fcomip fcomp fcompp fcos fdecstp
26
+ fdisi fdiv fdivp fdivr fdivrp femms feni ffree ffreep fiadd ficom ficomp fidiv fidivr
27
+ fild fimul fincstp finit fist fistp fisttp fisub fisubr fld fld1 fldcw fldenv fldl2e
28
+ fldl2t fldlg2 fldln2 fldpi fldz fmul fmulp fnclex fndisi fneni fninit fnop fnsave fnstcw
29
+ fnstenv fnstsw fpatan fprem fprem1 fptan frndint frstor fsave fscale fsetpm fsin fsincos
30
+ fsqrt fst fstcw fstenv fstp fstsw fsub fsubp fsubr fsubrp ftst fucom fucomi fucomip
31
+ fucomp fucompp fwait fxam fxch fxtract fyl2x fyl2xp1 hlt ibts icebp idiv imul in inc
32
+ incbin insb insd insw int int01 int03 int1 int3 into invd invlpg invlpga invpcid iret
33
+ iretd iretq iretw jcxz jecxz jmp jmpe jrcxz lahf lar lds lea leave les lfence lfs
34
+ lgdt lgs lidt lldt lmsw loadall loadall286 lodsb lodsd lodsq lodsw loop loope loopne
35
+ loopnz loopz lsl lss ltr mfence monitor monitorx mov movd movq movsb movsd movsq movsw
36
+ movsx movsxd movzx mul mwait mwaitx neg nop not or out outsb outsd outsw packssdw
37
+ packsswb packuswb paddb paddd paddsb paddsiw paddsw paddusb paddusw paddw pand pandn
38
+ pause paveb pavgusb pcmpeqb pcmpeqd pcmpeqw pcmpgtb pcmpgtd pcmpgtw pdistib pf2id pfacc
39
+ pfadd pfcmpeq pfcmpge pfcmpgt pfmax pfmin pfmul pfrcp pfrcpit1 pfrcpit2 pfrsqit1 pfrsqrt
40
+ pfsub pfsubr pi2fd pmachriw pmaddwd pmagw pmulhriw pmulhrwa pmulhrwc pmulhw pmullw
41
+ pmvgezb pmvlzb pmvnzb pmvzb pop popa popad popaw popf popfd popfq popfw por prefetch
42
+ prefetchw pslld psllq psllw psrad psraw psrld psrlq psrlw psubb psubd psubsb psubsiw
43
+ psubsw psubusb psubusw psubw punpckhbw punpckhdq punpckhwd punpcklbw punpckldq punpcklwd
44
+ push pusha pushad pushaw pushf pushfd pushfq pushfw pxor rcl rcr rdm rdmsr rdpmc rdshr
45
+ rdtsc rdtscp ret retf retn rol ror rsdc rsldt rsm rsts sahf sal salc sar sbb scasb scasd
46
+ scasq scasw sfence sgdt shl shld shr shrd sidt skinit sldt smi smint smintold smsw
47
+ stc std sti stosb stosd stosq stosw str sub svdc svldt svts swapgs syscall sysenter
48
+ sysexit sysret test ud0 ud1 ud2 ud2a ud2b umov verr verw wbinvd wrmsr wrshr xadd xbts
49
+ xchg xlat xlatb xor
50
+
51
+ cmova cmovae cmovb cmovbe cmovc cmove cmovg cmovge cmovl cmovle cmovna cmovnae cmovnb cmovnbe cmovnc cmovne cmovng cmovnge cmovnl cmovnle cmovno cmovnp cmovns cmovnz cmovo cmovp cmovpe cmovpo cmovs cmovz
52
+
53
+ ja jae jb jbe jc jcxz jecxz je jg jge jl jle jna jnae jnb jnbe jnc jne jng jnge jnl jnle jno jnp jns jnz jo jp jpe jpo js jz
54
+
55
+ seta setae setb setbe setc sete setg setge setl setle setna setnae setnb setnbe setnc setne setng setnge setnl setnle setno setnp setns setnz seto setp setpe setpo sets setz
56
+
57
+ AAA AAD AAM AAS ADC ADD AND ARPL BB0_RESET BB1_RESET BOUND BSF BSR BSWAP BT BTC BTR BTS
58
+ CALL CBW CDQ CDQE CLC CLD CLI CLTS CMC CMP CMPSB CMPSD CMPSQ CMPSW CMPXCHG
59
+ CMPXCHG16B CMPXCHG486 CMPXCHG8B CPUID CPU_READ CPU_WRITE CQO CWD CWDE DAA DAS DEC DIV
60
+ DMINT EMMS ENTER EQU F2XM1 FABS FADD FADDP FBLD FBSTP FCHS FCLEX FCMOVB FCMOVBE FCMOVE
61
+ FCMOVNB FCMOVNBE FCMOVNE FCMOVNU FCMOVU FCOM FCOMI FCOMIP FCOMP FCOMPP FCOS FDECSTP
62
+ FDISI FDIV FDIVP FDIVR FDIVRP FEMMS FENI FFREE FFREEP FIADD FICOM FICOMP FIDIV FIDIVR
63
+ FILD FIMUL FINCSTP FINIT FIST FISTP FISTTP FISUB FISUBR FLD FLD1 FLDCW FLDENV FLDL2E
64
+ FLDL2T FLDLG2 FLDLN2 FLDPI FLDZ FMUL FMULP FNCLEX FNDISI FNENI FNINIT FNOP FNSAVE FNSTCW
65
+ FNSTENV FNSTSW FPATAN FPREM FPREM1 FPTAN FRNDINT FRSTOR FSAVE FSCALE FSETPM FSIN FSINCOS
66
+ FSQRT FST FSTCW FSTENV FSTP FSTSW FSUB FSUBP FSUBR FSUBRP FTST FUCOM FUCOMI FUCOMIP
67
+ FUCOMP FUCOMPP FWAIT FXAM FXCH FXTRACT FYL2X FYL2XP1 HLT IBTS ICEBP IDIV IMUL IN INC
68
+ INCBIN INSB INSD INSW INT INT01 INT03 INT1 INT3 INTO INVD INVLPG INVLPGA INVPCID IRET
69
+ IRETD IRETQ IRETW JCXZ JECXZ JMP JMPE JRCXZ LAHF LAR LDS LEA LEAVE LES LFENCE LFS
70
+ LGDT LGS LIDT LLDT LMSW LOADALL LOADALL286 LODSB LODSD LODSQ LODSW LOOP LOOPE LOOPNE
71
+ LOOPNZ LOOPZ LSL LSS LTR MFENCE MONITOR MONITORX MOV MOVD MOVQ MOVSB MOVSD MOVSQ MOVSW
72
+ MOVSX MOVSXD MOVZX MUL MWAIT MWAITX NEG NOP NOT OR OUT OUTSB OUTSD OUTSW PACKSSDW
73
+ PACKSSWB PACKUSWB PADDB PADDD PADDSB PADDSIW PADDSW PADDUSB PADDUSW PADDW PAND PANDN
74
+ PAUSE PAVEB PAVGUSB PCMPEQB PCMPEQD PCMPEQW PCMPGTB PCMPGTD PCMPGTW PDISTIB PF2ID PFACC
75
+ PFADD PFCMPEQ PFCMPGE PFCMPGT PFMAX PFMIN PFMUL PFRCP PFRCPIT1 PFRCPIT2 PFRSQIT1 PFRSQRT
76
+ PFSUB PFSUBR PI2FD PMACHRIW PMADDWD PMAGW PMULHRIW PMULHRWA PMULHRWC PMULHW PMULLW
77
+ PMVGEZB PMVLZB PMVNZB PMVZB POP POPA POPAD POPAW POPF POPFD POPFQ POPFW POR PREFETCH
78
+ PREFETCHW PSLLD PSLLQ PSLLW PSRAD PSRAW PSRLD PSRLQ PSRLW PSUBB PSUBD PSUBSB PSUBSIW
79
+ PSUBSW PSUBUSB PSUBUSW PSUBW PUNPCKHBW PUNPCKHDQ PUNPCKHWD PUNPCKLBW PUNPCKLDQ PUNPCKLWD
80
+ PUSH PUSHA PUSHAD PUSHAW PUSHF PUSHFD PUSHFQ PUSHFW PXOR RCL RCR RDM RDMSR RDPMC RDSHR
81
+ RDTSC RDTSCP RET RETF RETN ROL ROR RSDC RSLDT RSM RSTS SAHF SAL SALC SAR SBB SCASB SCASD
82
+ SCASQ SCASW SFENCE SGDT SHL SHLD SHR SHRD SIDT SKINIT SLDT SMI SMINT SMINTOLD SMSW
83
+ STC STD STI STOSB STOSD STOSQ STOSW STR SUB SVDC SVLDT SVTS SWAPGS SYSCALL SYSENTER
84
+ SYSEXIT SYSRET TEST UD0 UD1 UD2 UD2A UD2B UMOV VERR VERW WBINVD WRMSR WRSHR XADD XBTS
85
+ XCHG XLAT XLATB XOR
86
+
87
+ CMOVA CMOVAE CMOVB CMOVBE CMOVC CMOVE CMOVG CMOVGE CMOVL CMOVLE CMOVNA CMOVNAE CMOVNB CMOVNBE CMOVNC CMOVNE CMOVNG CMOVNGE CMOVNL CMOVNLE CMOVNO CMOVNP CMOVNS CMOVNZ CMOVO CMOVP CMOVPE CMOVPO CMOVS CMOVZ
88
+
89
+ JA JAE JB JBE JC JCXZ JECXZ JE JG JGE JL JLE JNA JNAE JNB JNBE JNC JNE JNG JNGE JNL JNLE JNO JNP JNS JNZ JO JP JPE JPO JS JZ
90
+
91
+ SETA SETAE SETB SETBE SETC SETE SETG SETGE SETL SETLE SETNA SETNAE SETNB SETNBE SETNC SETNE SETNG SETNGE SETNL SETNLE SETNO SETNP SETNS SETNZ SETO SETP SETPE SETPO SETS SETZ
92
+ )
93
+ end
94
+
95
+ def self.keywords_type
96
+ @keywords_type ||= Set.new %w(
97
+ DB DW DD DQ DT DO DY DZ RESB RESW RESD RESQ REST RESO RESY RESZ
98
+ db dq dd dq dt do dy dz resb resw resd resq rest reso resy resz
99
+ )
100
+ end
101
+
102
+ def self.reserved
103
+ @reserved ||= Set.new %w(
104
+ global extern macro endmacro assign rep endrep section
105
+ GLOBAL EXTERN MACRO ENDMACRO ASSIGN REP ENDREP SECTION
106
+ )
107
+ end
108
+
109
+ def self.builtins
110
+ @builtins ||= []
111
+ end
112
+
113
+ start { push :expr_bol }
114
+
115
+ state :expr_bol do
116
+ mixin :inline_whitespace
117
+ rule(//) { pop! }
118
+ end
119
+
120
+ state :inline_whitespace do
121
+ rule /[ \t\r]+/, Text
122
+ end
123
+
124
+ state :whitespace do
125
+ rule /\n+/m, Text, :expr_bol
126
+ rule %r(//(\\.|.)*?\n), Comment::Single, :expr_bol
127
+ mixin :inline_whitespace
128
+ end
129
+
130
+ state :expr_whitespace do
131
+ rule /\n+/m, Text, :expr_bol
132
+ mixin :whitespace
133
+ end
134
+
135
+ state :root do
136
+ mixin :expr_whitespace
137
+ rule(//) { push :statement }
138
+ rule /^%[a-zA-Z0-9]+/, Comment::Preproc, :statement
139
+
140
+ rule(
141
+ %r(&=|[*]=|/=|\\=|\^=|\+=|-=|<<=|>>=|<<|>>|:=|<=|>=|<>|[-&*/\\^+=<>.]),
142
+ Operator
143
+ )
144
+ rule /;.*/, Comment, :statement
145
+ rule /^[a-zA-Z]+[a-zA-Z0-9]*:/, Name::Function
146
+ rule /;.*/, Comment
147
+ end
148
+
149
+ state :statement do
150
+ mixin :expr_whitespace
151
+ mixin :statements
152
+ rule /;.*/, Comment
153
+ rule /^%[a-zA-Z0-9]+/, Comment::Preproc
154
+ rule /[a-zA-Z]+%[0-9]+:/, Name::Function
155
+ end
156
+
157
+ state :statements do
158
+ mixin :whitespace
159
+ rule /L?"/, Str, :string
160
+ rule /[a-zA-Z]+%[0-9]+:/, Name::Function #labels/subroutines/functions
161
+ rule %r(L?'(\\.|\\[0-7]{1,3}|\\x[a-f0-9]{1,2}|[^\\'\n])')i, Str::Char
162
+ rule /0x[0-9a-f]+[lu]*/i, Num::Hex
163
+ rule /\d+[lu]*/i, Num::Integer
164
+ rule %r(\*/), Error
165
+ rule %r([~&*+=\|?:<>/-]), Operator
166
+ rule /[(),.]/, Punctuation
167
+ rule /\[[a-zA-Z0-9]*\]/, Punctuation
168
+ rule /%[0-9]+/, Keyword::Reserved
169
+ rule /[a-zA-Z]+%[0-9]+/, Name::Function #labels/subroutines/functions
170
+
171
+ #rule /(?<!\.)#{id}/ do |m|
172
+ rule id do |m|
173
+ name = m[0]
174
+
175
+ if self.class.keywords.include? name
176
+ token Keyword
177
+ elsif self.class.keywords_type.include? name
178
+ token Keyword::Type
179
+ elsif self.class.reserved.include? name
180
+ token Keyword::Reserved
181
+ elsif self.class.builtins.include? name
182
+ token Name::Builtin
183
+ else
184
+ token Name
185
+ end
186
+ end
187
+ end
188
+
189
+ state :string do
190
+ rule /"/, Str, :pop!
191
+ rule /\\([\\abfnrtv"']|x[a-fA-F0-9]{2,4}|[0-7]{1,3})/, Str::Escape
192
+ rule /[^\\"\n]+/, Str
193
+ rule /\\\n/, Str
194
+ rule /\\/, Str # stray backslash
195
+ end
196
+ end
197
+ end
198
+ end