rouge 3.2.0 → 3.18.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 (316) hide show
  1. checksums.yaml +5 -5
  2. data/Gemfile +17 -3
  3. data/bin/rougify +1 -0
  4. data/lib/rouge.rb +67 -43
  5. data/lib/rouge/cli.rb +84 -17
  6. data/lib/rouge/demos/ada +26 -0
  7. data/lib/rouge/demos/apex +9 -0
  8. data/lib/rouge/demos/armasm +12 -0
  9. data/lib/rouge/demos/batchfile +3 -0
  10. data/lib/rouge/demos/bbcbasic +6 -0
  11. data/lib/rouge/demos/bpf +7 -0
  12. data/lib/rouge/demos/brainfuck +5 -0
  13. data/lib/rouge/demos/clean +6 -0
  14. data/lib/rouge/demos/cmhg +8 -0
  15. data/lib/rouge/demos/csvs +8 -0
  16. data/lib/rouge/demos/cuda +11 -0
  17. data/lib/rouge/demos/cypher +5 -0
  18. data/lib/rouge/demos/cython +6 -0
  19. data/lib/rouge/demos/datastudio +21 -0
  20. data/lib/rouge/demos/ecl +18 -0
  21. data/lib/rouge/demos/eex +1 -0
  22. data/lib/rouge/demos/epp +4 -0
  23. data/lib/rouge/demos/escape +3 -0
  24. data/lib/rouge/demos/freefem +16 -0
  25. data/lib/rouge/demos/gdscript +18 -0
  26. data/lib/rouge/demos/ghc-cmm +23 -0
  27. data/lib/rouge/demos/ghc-core +26 -0
  28. data/lib/rouge/demos/haxe +5 -0
  29. data/lib/rouge/demos/hocon +8 -0
  30. data/lib/rouge/demos/hql +5 -0
  31. data/lib/rouge/demos/isbl +4 -0
  32. data/lib/rouge/demos/jsl +3 -0
  33. data/lib/rouge/demos/jsp +29 -0
  34. data/lib/rouge/demos/liquid +0 -1
  35. data/lib/rouge/demos/lustre +6 -0
  36. data/lib/rouge/demos/lutin +18 -0
  37. data/lib/rouge/demos/m68k +16 -0
  38. data/lib/rouge/demos/magik +6 -0
  39. data/lib/rouge/demos/mason +22 -0
  40. data/lib/rouge/demos/mathematica +8 -0
  41. data/lib/rouge/demos/minizinc +23 -0
  42. data/lib/rouge/demos/msgtrans +4 -0
  43. data/lib/rouge/demos/nasm +6 -6
  44. data/lib/rouge/demos/nesasm +11 -0
  45. data/lib/rouge/demos/objective_cpp +17 -0
  46. data/lib/rouge/demos/openedge +4 -0
  47. data/lib/rouge/demos/opentype_feature_file +6 -0
  48. data/lib/rouge/demos/plist +1 -132
  49. data/lib/rouge/demos/powershell +12 -48
  50. data/lib/rouge/demos/q +6 -0
  51. data/lib/rouge/demos/reasonml +12 -0
  52. data/lib/rouge/demos/rego +8 -0
  53. data/lib/rouge/demos/robot_framework +27 -0
  54. data/lib/rouge/demos/sas +13 -0
  55. data/lib/rouge/demos/slice +10 -0
  56. data/lib/rouge/demos/solidity +13 -0
  57. data/lib/rouge/demos/sparql +6 -0
  58. data/lib/rouge/demos/sqf +14 -0
  59. data/lib/rouge/demos/supercollider +11 -0
  60. data/lib/rouge/demos/terraform +0 -15
  61. data/lib/rouge/demos/ttcn3 +6 -0
  62. data/lib/rouge/demos/vcl +12 -0
  63. data/lib/rouge/demos/xojo +14 -0
  64. data/lib/rouge/demos/xpath +2 -0
  65. data/lib/rouge/demos/xquery +22 -0
  66. data/lib/rouge/demos/yang +17 -0
  67. data/lib/rouge/formatter.rb +39 -2
  68. data/lib/rouge/formatters/html.rb +21 -2
  69. data/lib/rouge/formatters/html_inline.rb +1 -0
  70. data/lib/rouge/formatters/html_legacy.rb +1 -0
  71. data/lib/rouge/formatters/html_line_table.rb +53 -0
  72. data/lib/rouge/formatters/html_linewise.rb +7 -11
  73. data/lib/rouge/formatters/html_pygments.rb +2 -0
  74. data/lib/rouge/formatters/html_table.rb +21 -31
  75. data/lib/rouge/formatters/null.rb +1 -0
  76. data/lib/rouge/formatters/terminal256.rb +23 -5
  77. data/lib/rouge/formatters/terminal_truecolor.rb +37 -0
  78. data/lib/rouge/formatters/tex.rb +92 -0
  79. data/lib/rouge/guesser.rb +2 -0
  80. data/lib/rouge/guessers/disambiguation.rb +35 -0
  81. data/lib/rouge/guessers/filename.rb +2 -0
  82. data/lib/rouge/guessers/glob_mapping.rb +3 -1
  83. data/lib/rouge/guessers/mimetype.rb +2 -0
  84. data/lib/rouge/guessers/modeline.rb +3 -1
  85. data/lib/rouge/guessers/source.rb +3 -1
  86. data/lib/rouge/guessers/util.rb +2 -0
  87. data/lib/rouge/lexer.rb +71 -15
  88. data/lib/rouge/lexers/abap.rb +13 -11
  89. data/lib/rouge/lexers/actionscript.rb +35 -34
  90. data/lib/rouge/lexers/ada.rb +162 -0
  91. data/lib/rouge/lexers/apache.rb +13 -15
  92. data/lib/rouge/lexers/apache/keywords.rb +15 -0
  93. data/lib/rouge/lexers/apex.rb +126 -0
  94. data/lib/rouge/lexers/apiblueprint.rb +2 -0
  95. data/lib/rouge/lexers/apple_script.rb +17 -14
  96. data/lib/rouge/lexers/armasm.rb +145 -0
  97. data/lib/rouge/lexers/awk.rb +26 -25
  98. data/lib/rouge/lexers/batchfile.rb +164 -0
  99. data/lib/rouge/lexers/bbcbasic.rb +112 -0
  100. data/lib/rouge/lexers/biml.rb +6 -4
  101. data/lib/rouge/lexers/bpf.rb +118 -0
  102. data/lib/rouge/lexers/brainfuck.rb +53 -0
  103. data/lib/rouge/lexers/bsl.rb +13 -12
  104. data/lib/rouge/lexers/c.rb +35 -57
  105. data/lib/rouge/lexers/ceylon.rb +7 -34
  106. data/lib/rouge/lexers/cfscript.rb +27 -26
  107. data/lib/rouge/lexers/clean.rb +156 -0
  108. data/lib/rouge/lexers/clojure.rb +15 -14
  109. data/lib/rouge/lexers/cmake.rb +16 -14
  110. data/lib/rouge/lexers/cmhg.rb +34 -0
  111. data/lib/rouge/lexers/coffeescript.rb +90 -49
  112. data/lib/rouge/lexers/common_lisp.rb +39 -38
  113. data/lib/rouge/lexers/conf.rb +7 -6
  114. data/lib/rouge/lexers/console.rb +92 -38
  115. data/lib/rouge/lexers/coq.rb +27 -23
  116. data/lib/rouge/lexers/cpp.rb +24 -13
  117. data/lib/rouge/lexers/crystal.rb +71 -70
  118. data/lib/rouge/lexers/csharp.rb +29 -29
  119. data/lib/rouge/lexers/css.rb +24 -23
  120. data/lib/rouge/lexers/csvs.rb +44 -0
  121. data/lib/rouge/lexers/cuda.rb +35 -0
  122. data/lib/rouge/lexers/cypher.rb +108 -0
  123. data/lib/rouge/lexers/cython.rb +151 -0
  124. data/lib/rouge/lexers/d.rb +64 -63
  125. data/lib/rouge/lexers/dart.rb +34 -33
  126. data/lib/rouge/lexers/datastudio.rb +138 -0
  127. data/lib/rouge/lexers/diff.rb +10 -4
  128. data/lib/rouge/lexers/digdag.rb +3 -1
  129. data/lib/rouge/lexers/docker.rb +12 -11
  130. data/lib/rouge/lexers/dot.rb +19 -18
  131. data/lib/rouge/lexers/ecl.rb +175 -0
  132. data/lib/rouge/lexers/eex.rb +52 -0
  133. data/lib/rouge/lexers/eiffel.rb +21 -20
  134. data/lib/rouge/lexers/elixir.rb +52 -36
  135. data/lib/rouge/lexers/elm.rb +30 -29
  136. data/lib/rouge/lexers/epp.rb +51 -0
  137. data/lib/rouge/lexers/erb.rb +5 -4
  138. data/lib/rouge/lexers/erlang.rb +1 -0
  139. data/lib/rouge/lexers/escape.rb +58 -0
  140. data/lib/rouge/lexers/factor.rb +41 -40
  141. data/lib/rouge/lexers/fortran.rb +34 -32
  142. data/lib/rouge/lexers/freefem.rb +240 -0
  143. data/lib/rouge/lexers/fsharp.rb +33 -31
  144. data/lib/rouge/lexers/gdscript.rb +171 -0
  145. data/lib/rouge/lexers/ghc_cmm.rb +340 -0
  146. data/lib/rouge/lexers/ghc_core.rb +151 -0
  147. data/lib/rouge/lexers/gherkin.rb +17 -14
  148. data/lib/rouge/lexers/gherkin/keywords.rb +2 -0
  149. data/lib/rouge/lexers/glsl.rb +2 -5
  150. data/lib/rouge/lexers/go.rb +3 -2
  151. data/lib/rouge/lexers/gradle.rb +1 -0
  152. data/lib/rouge/lexers/graphql.rb +78 -60
  153. data/lib/rouge/lexers/groovy.rb +24 -25
  154. data/lib/rouge/lexers/hack.rb +2 -1
  155. data/lib/rouge/lexers/haml.rb +26 -29
  156. data/lib/rouge/lexers/handlebars.rb +32 -20
  157. data/lib/rouge/lexers/haskell.rb +67 -65
  158. data/lib/rouge/lexers/haxe.rb +246 -0
  159. data/lib/rouge/lexers/hcl.rb +26 -25
  160. data/lib/rouge/lexers/hocon.rb +86 -0
  161. data/lib/rouge/lexers/hql.rb +139 -0
  162. data/lib/rouge/lexers/html.rb +33 -31
  163. data/lib/rouge/lexers/http.rb +10 -9
  164. data/lib/rouge/lexers/hylang.rb +15 -14
  165. data/lib/rouge/lexers/idlang.rb +34 -32
  166. data/lib/rouge/lexers/igorpro.rb +32 -31
  167. data/lib/rouge/lexers/ini.rb +13 -12
  168. data/lib/rouge/lexers/io.rb +10 -9
  169. data/lib/rouge/lexers/irb.rb +6 -5
  170. data/lib/rouge/lexers/isbl.rb +97 -0
  171. data/lib/rouge/lexers/isbl/builtins.rb +17 -0
  172. data/lib/rouge/lexers/java.rb +29 -25
  173. data/lib/rouge/lexers/javascript.rb +58 -61
  174. data/lib/rouge/lexers/jinja.rb +39 -22
  175. data/lib/rouge/lexers/jsl.rb +55 -0
  176. data/lib/rouge/lexers/json.rb +54 -11
  177. data/lib/rouge/lexers/json_doc.rb +8 -5
  178. data/lib/rouge/lexers/jsonnet.rb +19 -18
  179. data/lib/rouge/lexers/jsp.rb +120 -0
  180. data/lib/rouge/lexers/jsx.rb +18 -16
  181. data/lib/rouge/lexers/julia.rb +182 -58
  182. data/lib/rouge/lexers/kotlin.rb +78 -26
  183. data/lib/rouge/lexers/lasso.rb +54 -58
  184. data/lib/rouge/lexers/lasso/keywords.rb +14 -0
  185. data/lib/rouge/lexers/liquid.rb +116 -118
  186. data/lib/rouge/lexers/literate_coffeescript.rb +3 -2
  187. data/lib/rouge/lexers/literate_haskell.rb +6 -5
  188. data/lib/rouge/lexers/llvm.rb +66 -49
  189. data/lib/rouge/lexers/lua.rb +43 -4
  190. data/lib/rouge/lexers/lua/builtins.rb +2 -0
  191. data/lib/rouge/lexers/lustre.rb +79 -0
  192. data/lib/rouge/lexers/lutin.rb +33 -0
  193. data/lib/rouge/lexers/m68k.rb +143 -0
  194. data/lib/rouge/lexers/magik.rb +127 -0
  195. data/lib/rouge/lexers/make.rb +57 -34
  196. data/lib/rouge/lexers/markdown.rb +67 -39
  197. data/lib/rouge/lexers/mason.rb +110 -0
  198. data/lib/rouge/lexers/mathematica.rb +96 -0
  199. data/lib/rouge/lexers/mathematica/builtins.rb +13 -0
  200. data/lib/rouge/lexers/matlab.rb +26 -17
  201. data/lib/rouge/lexers/matlab/builtins.rb +4 -4
  202. data/lib/rouge/lexers/minizinc.rb +87 -0
  203. data/lib/rouge/lexers/moonscript.rb +4 -3
  204. data/lib/rouge/lexers/mosel.rb +64 -63
  205. data/lib/rouge/lexers/msgtrans.rb +26 -0
  206. data/lib/rouge/lexers/mxml.rb +19 -18
  207. data/lib/rouge/lexers/nasm.rb +43 -169
  208. data/lib/rouge/lexers/nesasm.rb +78 -0
  209. data/lib/rouge/lexers/nginx.rb +15 -14
  210. data/lib/rouge/lexers/nim.rb +4 -2
  211. data/lib/rouge/lexers/nix.rb +44 -43
  212. data/lib/rouge/lexers/objective_c.rb +5 -178
  213. data/lib/rouge/lexers/objective_c/common.rb +184 -0
  214. data/lib/rouge/lexers/objective_cpp.rb +31 -0
  215. data/lib/rouge/lexers/ocaml.rb +29 -64
  216. data/lib/rouge/lexers/ocaml/common.rb +53 -0
  217. data/lib/rouge/lexers/openedge.rb +429 -0
  218. data/lib/rouge/lexers/opentype_feature_file.rb +113 -0
  219. data/lib/rouge/lexers/pascal.rb +6 -5
  220. data/lib/rouge/lexers/perl.rb +102 -67
  221. data/lib/rouge/lexers/php.rb +91 -53
  222. data/lib/rouge/lexers/php/builtins.rb +183 -174
  223. data/lib/rouge/lexers/plain_text.rb +2 -1
  224. data/lib/rouge/lexers/plist.rb +16 -14
  225. data/lib/rouge/lexers/pony.rb +21 -20
  226. data/lib/rouge/lexers/powershell.rb +190 -638
  227. data/lib/rouge/lexers/praat.rb +76 -75
  228. data/lib/rouge/lexers/prolog.rb +27 -19
  229. data/lib/rouge/lexers/prometheus.rb +32 -30
  230. data/lib/rouge/lexers/properties.rb +13 -12
  231. data/lib/rouge/lexers/protobuf.rb +23 -22
  232. data/lib/rouge/lexers/puppet.rb +33 -32
  233. data/lib/rouge/lexers/python.rb +124 -99
  234. data/lib/rouge/lexers/q.rb +17 -14
  235. data/lib/rouge/lexers/qml.rb +13 -12
  236. data/lib/rouge/lexers/r.rb +13 -13
  237. data/lib/rouge/lexers/racket.rb +47 -22
  238. data/lib/rouge/lexers/reasonml.rb +65 -0
  239. data/lib/rouge/lexers/rego.rb +45 -0
  240. data/lib/rouge/lexers/robot_framework.rb +249 -0
  241. data/lib/rouge/lexers/ruby.rb +88 -71
  242. data/lib/rouge/lexers/rust.rb +45 -44
  243. data/lib/rouge/lexers/sas.rb +563 -0
  244. data/lib/rouge/lexers/sass.rb +9 -8
  245. data/lib/rouge/lexers/sass/common.rb +41 -40
  246. data/lib/rouge/lexers/scala.rb +67 -40
  247. data/lib/rouge/lexers/scheme.rb +19 -18
  248. data/lib/rouge/lexers/scss.rb +4 -3
  249. data/lib/rouge/lexers/sed.rb +31 -30
  250. data/lib/rouge/lexers/shell.rb +67 -55
  251. data/lib/rouge/lexers/sieve.rb +10 -9
  252. data/lib/rouge/lexers/slice.rb +32 -0
  253. data/lib/rouge/lexers/slim.rb +27 -26
  254. data/lib/rouge/lexers/smalltalk.rb +34 -33
  255. data/lib/rouge/lexers/smarty.rb +20 -19
  256. data/lib/rouge/lexers/sml.rb +68 -67
  257. data/lib/rouge/lexers/solidity.rb +185 -0
  258. data/lib/rouge/lexers/sparql.rb +129 -0
  259. data/lib/rouge/lexers/sqf.rb +109 -0
  260. data/lib/rouge/lexers/sqf/commands.rb +15 -0
  261. data/lib/rouge/lexers/sql.rb +47 -26
  262. data/lib/rouge/lexers/supercollider.rb +116 -0
  263. data/lib/rouge/lexers/swift.rb +49 -44
  264. data/lib/rouge/lexers/tap.rb +22 -20
  265. data/lib/rouge/lexers/tcl.rb +28 -27
  266. data/lib/rouge/lexers/terraform.rb +37 -13
  267. data/lib/rouge/lexers/tex.rb +20 -19
  268. data/lib/rouge/lexers/toml.rb +59 -20
  269. data/lib/rouge/lexers/tsx.rb +1 -0
  270. data/lib/rouge/lexers/ttcn3.rb +119 -0
  271. data/lib/rouge/lexers/tulip.rb +38 -36
  272. data/lib/rouge/lexers/turtle.rb +36 -38
  273. data/lib/rouge/lexers/twig.rb +1 -0
  274. data/lib/rouge/lexers/typescript.rb +12 -0
  275. data/lib/rouge/lexers/typescript/common.rb +1 -0
  276. data/lib/rouge/lexers/vala.rb +19 -18
  277. data/lib/rouge/lexers/varnish.rb +168 -0
  278. data/lib/rouge/lexers/vb.rb +28 -27
  279. data/lib/rouge/lexers/verilog.rb +27 -28
  280. data/lib/rouge/lexers/vhdl.rb +12 -11
  281. data/lib/rouge/lexers/viml.rb +15 -14
  282. data/lib/rouge/lexers/viml/keywords.rb +2 -0
  283. data/lib/rouge/lexers/vue.rb +15 -10
  284. data/lib/rouge/lexers/wollok.rb +27 -26
  285. data/lib/rouge/lexers/xml.rb +18 -21
  286. data/lib/rouge/lexers/xojo.rb +61 -0
  287. data/lib/rouge/lexers/xpath.rb +332 -0
  288. data/lib/rouge/lexers/xquery.rb +145 -0
  289. data/lib/rouge/lexers/yaml.rb +64 -61
  290. data/lib/rouge/lexers/yang.rb +147 -0
  291. data/lib/rouge/plugins/redcarpet.rb +9 -2
  292. data/lib/rouge/regex_lexer.rb +27 -25
  293. data/lib/rouge/template_lexer.rb +1 -0
  294. data/lib/rouge/tex_theme_renderer.rb +132 -0
  295. data/lib/rouge/text_analyzer.rb +1 -0
  296. data/lib/rouge/theme.rb +5 -0
  297. data/lib/rouge/themes/base16.rb +1 -0
  298. data/lib/rouge/themes/bw.rb +41 -0
  299. data/lib/rouge/themes/colorful.rb +1 -0
  300. data/lib/rouge/themes/github.rb +1 -0
  301. data/lib/rouge/themes/gruvbox.rb +1 -0
  302. data/lib/rouge/themes/igor_pro.rb +1 -0
  303. data/lib/rouge/themes/magritte.rb +78 -0
  304. data/lib/rouge/themes/molokai.rb +1 -0
  305. data/lib/rouge/themes/monokai.rb +1 -0
  306. data/lib/rouge/themes/monokai_sublime.rb +4 -1
  307. data/lib/rouge/themes/pastie.rb +2 -1
  308. data/lib/rouge/themes/thankful_eyes.rb +2 -1
  309. data/lib/rouge/themes/tulip.rb +2 -1
  310. data/lib/rouge/token.rb +31 -22
  311. data/lib/rouge/util.rb +3 -2
  312. data/lib/rouge/version.rb +2 -1
  313. data/rouge.gemspec +6 -3
  314. metadata +130 -8
  315. data/lib/rouge/lexers/apache/keywords.yml +0 -764
  316. data/lib/rouge/lexers/lasso/keywords.yml +0 -446
@@ -1,4 +1,5 @@
1
1
  # -*- coding: utf-8 -*- #
2
+ # frozen_string_literal: true
2
3
 
3
4
  module Rouge
4
5
  module Lexers
@@ -100,84 +101,84 @@ module Rouge
100
101
  )
101
102
 
102
103
  state :root do
103
- rule /(\s+)(#.*?$)/ do
104
+ rule %r/(\s+)(#.*?$)/ do
104
105
  groups Text, Comment::Single
105
106
  end
106
107
 
107
- rule /^#.*?$/, Comment::Single
108
- rule /;[^\n]*/, Comment::Single
109
- rule /\s+/, Text
108
+ rule %r/^#.*?$/, Comment::Single
109
+ rule %r/;[^\n]*/, Comment::Single
110
+ rule %r/\s+/, Text
110
111
 
111
- rule /(\bprocedure)(\s+)/ do
112
+ rule %r/(\bprocedure)(\s+)/ do
112
113
  groups Keyword, Text
113
114
  push :procedure_definition
114
115
  end
115
116
 
116
- rule /(\bcall)(\s+)/ do
117
+ rule %r/(\bcall)(\s+)/ do
117
118
  groups Keyword, Text
118
119
  push :procedure_call
119
120
  end
120
121
 
121
- rule /@/, Name::Function, :procedure_call
122
+ rule %r/@/, Name::Function, :procedure_call
122
123
 
123
124
  mixin :function_call
124
125
 
125
- rule /\b(?:select all)\b/, Keyword
126
- rule /\b(?:#{keywords.join('|')})\b/, Keyword
126
+ rule %r/\b(?:select all)\b/, Keyword
127
+ rule %r/\b(?:#{keywords.join('|')})\b/, Keyword
127
128
 
128
- rule /(\bform\b)(\s+)([^\n]+)/ do
129
+ rule %r/(\bform\b)(\s+)([^\n]+)/ do
129
130
  groups Keyword, Text, Literal::String
130
131
  push :old_form
131
132
  end
132
133
 
133
- rule /(print(?:line|tab)?|echo|exit|asserterror|pause|send(?:praat|socket)|include|execute|system(?:_nocheck)?)(\s+)/ do
134
+ rule %r/(print(?:line|tab)?|echo|exit|asserterror|pause|send(?:praat|socket)|include|execute|system(?:_nocheck)?)(\s+)/ do
134
135
  groups Keyword, Text
135
136
  push :string_unquoted
136
137
  end
137
138
 
138
- rule /(goto|label)(\s+)(\w+)/ do
139
+ rule %r/(goto|label)(\s+)(\w+)/ do
139
140
  groups Keyword, Text, Name::Label
140
141
  end
141
142
 
142
143
  mixin :variable_name
143
144
  mixin :number
144
145
 
145
- rule /"/, Literal::String, :string
146
+ rule %r/"/, Literal::String, :string
146
147
 
147
- rule /\b(?:#{objects.join('|')})(?=\s+\S+\n)/, Name::Class, :string_unquoted
148
+ rule %r/\b(?:#{objects.join('|')})(?=\s+\S+\n)/, Name::Class, :string_unquoted
148
149
 
149
- rule /\b(?=[A-Z])/, Text, :command
150
- rule /(\.{3}|[)(,\$])/, Punctuation
150
+ rule %r/\b(?=[A-Z])/, Text, :command
151
+ rule %r/(\.{3}|[)(,\$])/, Punctuation
151
152
  end
152
153
 
153
154
  state :command do
154
- rule /( ?([^\s:\.'])+ ?)/, Keyword
155
+ rule %r/( ?([^\s:\.'])+ ?)/, Keyword
155
156
  mixin :string_interpolated
156
157
 
157
- rule /\.{3}/ do
158
+ rule %r/\.{3}/ do
158
159
  token Keyword
159
160
  pop!
160
161
  push :old_arguments
161
162
  end
162
163
 
163
- rule /:/ do
164
+ rule %r/:/ do
164
165
  token Keyword
165
166
  pop!
166
167
  push :comma_list
167
168
  end
168
169
 
169
- rule /[\s]/, Text, :pop!
170
+ rule %r/[\s]/, Text, :pop!
170
171
  end
171
172
 
172
173
  state :procedure_call do
173
174
  mixin :string_interpolated
174
175
 
175
- rule /(:|\s*\()/, Punctuation, :pop!
176
+ rule %r/(:|\s*\()/, Punctuation, :pop!
176
177
 
177
- rule /'/, Name::Function
178
- rule /[^:\('\s]+/, Name::Function
178
+ rule %r/'/, Name::Function
179
+ rule %r/[^:\('\s]+/, Name::Function
179
180
 
180
- rule /(?=\s+)/ do
181
+ rule %r/(?=\s+)/ do
181
182
  token Text
182
183
  pop!
183
184
  push :old_arguments
@@ -185,23 +186,23 @@ module Rouge
185
186
  end
186
187
 
187
188
  state :procedure_definition do
188
- rule /(:|\s*\()/, Punctuation, :pop!
189
+ rule %r/(:|\s*\()/, Punctuation, :pop!
189
190
 
190
- rule /[^:\(\s]+/, Name::Function
191
+ rule %r/[^:\(\s]+/, Name::Function
191
192
 
192
- rule /(\s+)/, Text, :pop!
193
+ rule %r/(\s+)/, Text, :pop!
193
194
  end
194
195
 
195
196
  state :function_call do
196
- rule /\b(#{functions_string.join('|')})\$(?=\s*[:(])/, Name::Function, :function
197
- rule /\b(#{functions_array.join('|')})#(?=\s*[:(])/, Name::Function, :function
198
- rule /\b(#{functions_numeric.join('|')})(?=\s*[:(])/, Name::Function, :function
197
+ rule %r/\b(#{functions_string.join('|')})\$(?=\s*[:(])/, Name::Function, :function
198
+ rule %r/\b(#{functions_array.join('|')})#(?=\s*[:(])/, Name::Function, :function
199
+ rule %r/\b(#{functions_numeric.join('|')})(?=\s*[:(])/, Name::Function, :function
199
200
  end
200
201
 
201
202
  state :function do
202
- rule /\s+/, Text
203
+ rule %r/\s+/, Text
203
204
 
204
- rule /(?::|\s*\()/ do
205
+ rule %r/(?::|\s*\()/ do
205
206
  token Text
206
207
  pop!
207
208
  push :comma_list
@@ -209,140 +210,140 @@ module Rouge
209
210
  end
210
211
 
211
212
  state :comma_list do
212
- rule /(\s*\n\s*)(\.{3})/ do
213
+ rule %r/(\s*\n\s*)(\.{3})/ do
213
214
  groups Text, Punctuation
214
215
  end
215
216
 
216
- rule /\s*[\])\n]/, Text, :pop!
217
+ rule %r/\s*[\])\n]/, Text, :pop!
217
218
 
218
- rule /\s+/, Text
219
- rule /"/, Literal::String, :string
220
- rule /\b(if|then|else|fi|endif)\b/, Keyword
219
+ rule %r/\s+/, Text
220
+ rule %r/"/, Literal::String, :string
221
+ rule %r/\b(if|then|else|fi|endif)\b/, Keyword
221
222
 
222
223
  mixin :function_call
223
224
  mixin :variable_name
224
225
  mixin :operator
225
226
  mixin :number
226
227
 
227
- rule /[()]/, Text
228
- rule /,/, Punctuation
228
+ rule %r/[()]/, Text
229
+ rule %r/,/, Punctuation
229
230
  end
230
231
 
231
232
  state :old_arguments do
232
- rule /\n/, Text, :pop!
233
+ rule %r/\n/, Text, :pop!
233
234
 
234
235
  mixin :variable_name
235
236
  mixin :operator
236
237
  mixin :number
237
238
 
238
- rule /"/, Literal::String, :string
239
- rule /[^\n]/, Text
239
+ rule %r/"/, Literal::String, :string
240
+ rule %r/[^\n]/, Text
240
241
  end
241
242
 
242
243
  state :number do
243
- rule /\n/, Text, :pop!
244
- rule /\b\d+(\.\d*)?([eE][-+]?\d+)?%?/, Literal::Number
244
+ rule %r/\n/, Text, :pop!
245
+ rule %r/\b\d+(\.\d*)?([eE][-+]?\d+)?%?/, Literal::Number
245
246
  end
246
247
 
247
248
  state :variable_name do
248
249
  mixin :operator
249
250
  mixin :number
250
251
 
251
- rule /\b(?:#{variables_string.join('|')})\$/, Name::Builtin
252
- rule /\b(?:#{variables_numeric.join('|')})(?!\$)\b/, Name::Builtin
252
+ rule %r/\b(?:#{variables_string.join('|')})\$/, Name::Builtin
253
+ rule %r/\b(?:#{variables_numeric.join('|')})(?!\$)\b/, Name::Builtin
253
254
 
254
- rule /\b(Object|#{objects.join('|')})_/ do
255
+ rule %r/\b(Object|#{objects.join('|')})_/ do
255
256
  token Name::Builtin
256
257
  push :object_reference
257
258
  end
258
259
 
259
- rule /\.?[a-z][a-zA-Z0-9_.]*(\$|#)?/, Text
260
- rule /[\[\]]/, Text, :comma_list
260
+ rule %r/\.?[a-z][a-zA-Z0-9_.]*(\$|#)?/, Text
261
+ rule %r/[\[\]]/, Text, :comma_list
261
262
  mixin :string_interpolated
262
263
  end
263
264
 
264
265
  state :object_reference do
265
266
  mixin :string_interpolated
266
- rule /([a-z][a-zA-Z0-9_]*|\d+)/, Name::Builtin
267
+ rule %r/([a-z][a-zA-Z0-9_]*|\d+)/, Name::Builtin
267
268
 
268
- rule /\.(#{object_attributes.join('|')})\b/, Name::Builtin, :pop!
269
+ rule %r/\.(#{object_attributes.join('|')})\b/, Name::Builtin, :pop!
269
270
 
270
- rule /\$/, Name::Builtin
271
- rule /\[/, Text, :pop!
271
+ rule %r/\$/, Name::Builtin
272
+ rule %r/\[/, Text, :pop!
272
273
  end
273
274
 
274
275
  state :operator do
275
276
  # This rule incorrectly matches === or +++++, which are not operators
276
- rule /([+\/*<>=!-]=?|[&*|][&*|]?|\^|<>)/, Operator
277
- rule /(?<![\w.])(and|or|not|div|mod)(?![\w.])/, Operator::Word
277
+ rule %r/([+\/*<>=!-]=?|[&*|][&*|]?|\^|<>)/, Operator
278
+ rule %r/(?<![\w.])(and|or|not|div|mod)(?![\w.])/, Operator::Word
278
279
  end
279
280
 
280
281
  state :string_interpolated do
281
- rule /'[\._a-z][^\[\]'":]*(\[([\d,]+|"[\w\d,]+")\])?(:[0-9]+)?'/, Literal::String::Interpol
282
+ rule %r/'[\._a-z][^\[\]'":]*(\[([\d,]+|"[\w,]+")\])?(:[0-9]+)?'/, Literal::String::Interpol
282
283
  end
283
284
 
284
285
  state :string_unquoted do
285
- rule /\n\s*\.{3}/, Punctuation
286
- rule /\n/, Text, :pop!
287
- rule /\s/, Text
286
+ rule %r/\n\s*\.{3}/, Punctuation
287
+ rule %r/\n/, Text, :pop!
288
+ rule %r/\s/, Text
288
289
 
289
290
  mixin :string_interpolated
290
291
 
291
- rule /'/, Literal::String
292
- rule /[^'\n]+/, Literal::String
292
+ rule %r/'/, Literal::String
293
+ rule %r/[^'\n]+/, Literal::String
293
294
  end
294
295
 
295
296
  state :string do
296
- rule /\n\s*\.{3}/, Punctuation
297
- rule /"/, Literal::String, :pop!
297
+ rule %r/\n\s*\.{3}/, Punctuation
298
+ rule %r/"/, Literal::String, :pop!
298
299
 
299
300
  mixin :string_interpolated
300
301
 
301
- rule /'/, Literal::String
302
- rule /[^'"\n]+/, Literal::String
302
+ rule %r/'/, Literal::String
303
+ rule %r/[^'"\n]+/, Literal::String
303
304
  end
304
305
 
305
306
  state :old_form do
306
- rule /(\s+)(#.*?$)/ do
307
+ rule %r/(\s+)(#.*?$)/ do
307
308
  groups Text, Comment::Single
308
309
  end
309
310
 
310
- rule /\s+/, Text
311
+ rule %r/\s+/, Text
311
312
 
312
- rule /(optionmenu|choice)([ \t]+\S+:[ \t]+)/ do
313
+ rule %r/(optionmenu|choice)([ \t]+\S+:[ \t]+)/ do
313
314
  groups Keyword, Text
314
315
  push :number
315
316
  end
316
317
 
317
- rule /(option|button)([ \t]+)/ do
318
+ rule %r/(option|button)([ \t]+)/ do
318
319
  groups Keyword, Text
319
320
  push :string_unquoted
320
321
  end
321
322
 
322
- rule /(sentence|text)([ \t]+\S+)/ do
323
+ rule %r/(sentence|text)([ \t]+\S+)/ do
323
324
  groups Keyword, Text
324
325
  push :string_unquoted
325
326
  end
326
327
 
327
- rule /(word)([ \t]+\S+[ \t]*)(\S+)?([ \t]+.*)?/ do
328
+ rule %r/(word)([ \t]+\S+[ \t]*)(\S+)?([ \t]+.*)?/ do
328
329
  groups Keyword, Text, Literal::String, Text
329
330
  end
330
331
 
331
- rule /(boolean)(\s+\S+\s*)(0|1|"?(?:yes|no)"?)/ do
332
+ rule %r/(boolean)(\s+\S+\s*)(0|1|"?(?:yes|no)"?)/ do
332
333
  groups Keyword, Text, Name::Variable
333
334
  end
334
335
 
335
- rule /(real|natural|positive|integer)([ \t]+\S+[ \t]*)([+-]?)/ do
336
+ rule %r/(real|natural|positive|integer)([ \t]+\S+[ \t]*)([+-]?)/ do
336
337
  groups Keyword, Text, Operator
337
338
  push :number
338
339
  end
339
340
 
340
- rule /(comment)(\s+)/ do
341
+ rule %r/(comment)(\s+)/ do
341
342
  groups Keyword, Text
342
343
  push :string_unquoted
343
344
  end
344
345
 
345
- rule /\bendform\b/, Keyword, :pop!
346
+ rule %r/\bendform\b/, Keyword, :pop!
346
347
  end
347
348
 
348
349
  end
@@ -1,4 +1,5 @@
1
1
  # -*- coding: utf-8 -*- #
2
+ # frozen_string_literal: true
2
3
 
3
4
  module Rouge
4
5
  module Lexers
@@ -10,36 +11,43 @@ module Rouge
10
11
  filenames '*.pro', '*.P', '*.prolog', '*.pl'
11
12
  mimetypes 'text/x-prolog'
12
13
 
14
+ start { push :bol }
15
+
16
+ state :bol do
17
+ rule %r/#.*/, Comment::Single
18
+ rule(//) { pop! }
19
+ end
20
+
13
21
  state :basic do
14
- rule /\s+/, Text
15
- rule /^#.*/, Comment::Single
16
- rule /\/\*/, Comment::Multiline, :nested_comment
22
+ rule %r/\s+/, Text
23
+ rule %r/%.*/, Comment::Single
24
+ rule %r/\/\*/, Comment::Multiline, :nested_comment
17
25
 
18
- rule /[\[\](){}|.,;!]/, Punctuation
19
- rule /:-|-->/, Punctuation
26
+ rule %r/[\[\](){}|.,;!]/, Punctuation
27
+ rule %r/:-|-->/, Punctuation
20
28
 
21
- rule /"[^"]*"/, Str::Double
29
+ rule %r/"[^"]*"/, Str::Double
22
30
 
23
- rule /\d+\.\d+/, Num::Float
24
- rule /\d+/, Num
31
+ rule %r/\d+\.\d+/, Num::Float
32
+ rule %r/\d+/, Num
25
33
  end
26
34
 
27
35
  state :atoms do
28
- rule /[[:lower:]]([_[:word:][:digit:]])*/, Str::Symbol
29
- rule /'[^']*'/, Str::Symbol
36
+ rule %r/[[:lower:]]([[:word:]])*/, Str::Symbol
37
+ rule %r/'[^']*'/, Str::Symbol
30
38
  end
31
39
 
32
40
  state :operators do
33
- rule /(<|>|=<|>=|==|=:=|=|\/|\/\/|\*|\+|-)(?=\s|[a-zA-Z0-9\[])/,
41
+ rule %r/(<|>|=<|>=|==|=:=|=|\/|\/\/|\*|\+|-)(?=\s|[a-zA-Z0-9\[])/,
34
42
  Operator
35
- rule /is/, Operator
36
- rule /(mod|div|not)/, Operator
37
- rule /[#&*+-.\/:<=>?@^~]+/, Operator
43
+ rule %r/is/, Operator
44
+ rule %r/(mod|div|not)/, Operator
45
+ rule %r/[#&*+-.\/:<=>?@^~]+/, Operator
38
46
  end
39
47
 
40
48
  state :variables do
41
- rule /[A-Z]+\w*/, Name::Variable
42
- rule /_[[:word:]]*/, Name::Variable
49
+ rule %r/[A-Z]+\w*/, Name::Variable
50
+ rule %r/_[[:word:]]*/, Name::Variable
43
51
  end
44
52
 
45
53
  state :root do
@@ -50,9 +58,9 @@ module Rouge
50
58
  end
51
59
 
52
60
  state :nested_comment do
53
- rule /\/\*/, Comment::Multiline, :push
54
- rule /\s*\*[^*\/]+/, Comment::Multiline
55
- rule /\*\//, Comment::Multiline, :pop!
61
+ rule %r(/\*), Comment::Multiline, :push
62
+ rule %r/\s*\*[^*\/]+/, Comment::Multiline
63
+ rule %r(\*/), Comment::Multiline, :pop!
56
64
  end
57
65
  end
58
66
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Rouge
2
4
  module Lexers
3
5
  class Prometheus < RegexLexer
@@ -24,21 +26,21 @@ module Rouge
24
26
  mixin :strings
25
27
  mixin :whitespace
26
28
 
27
- rule /-?\d+\.\d+/, Num::Float
28
- rule /-?\d+[smhdwy]?/, Num::Integer
29
+ rule %r/-?\d+\.\d+/, Num::Float
30
+ rule %r/-?\d+[smhdwy]?/, Num::Integer
29
31
 
30
32
  mixin :operators
31
33
 
32
- rule /(ignoring|on)(\()/ do
34
+ rule %r/(ignoring|on)(\()/ do
33
35
  groups Keyword::Pseudo, Punctuation
34
36
  push :label_list
35
37
  end
36
- rule /(group_left|group_right)(\()/ do
38
+ rule %r/(group_left|group_right)(\()/ do
37
39
  groups Keyword::Type, Punctuation
38
40
  end
39
- rule /(bool|offset)\b/, Keyword
40
- rule /(without|by)\b/, Keyword, :label_list
41
- rule /[\w:]+/ do |m|
41
+ rule %r/(bool|offset)\b/, Keyword
42
+ rule %r/(without|by)\b/, Keyword, :label_list
43
+ rule %r/[\w:]+/ do |m|
42
44
  if self.class.functions.include?(m[0])
43
45
  token Name::Builtin
44
46
  else
@@ -50,17 +52,17 @@ module Rouge
50
52
  end
51
53
 
52
54
  state :metrics do
53
- rule /[a-zA-Z0-9_-]+/, Name
55
+ rule %r/[a-zA-Z0-9_-]+/, Name
54
56
 
55
- rule /[\(\)\]:.,]/, Punctuation
56
- rule /\{/, Punctuation, :filters
57
- rule /\[/, Punctuation
57
+ rule %r/[\(\)\]:.,]/, Punctuation
58
+ rule %r/\{/, Punctuation, :filters
59
+ rule %r/\[/, Punctuation
58
60
  end
59
61
 
60
62
  state :strings do
61
- rule /"/, Str::Double, :double_string_escaped
62
- rule /'/, Str::Single, :single_string_escaped
63
- rule /`.*`/, Str::Backtick
63
+ rule %r/"/, Str::Double, :double_string_escaped
64
+ rule %r/'/, Str::Single, :single_string_escaped
65
+ rule %r/`.*`/, Str::Backtick
64
66
  end
65
67
 
66
68
  [
@@ -68,52 +70,52 @@ module Rouge
68
70
  [:single, Str::Single, "'"]
69
71
  ].each do |name, tok, fin|
70
72
  state :"#{name}_string_escaped" do
71
- rule /\\[\\abfnrtv#{fin}]/, Str::Escape
72
- rule /[^\\#{fin}]+/m, tok
73
- rule /#{fin}/, tok, :pop!
73
+ rule %r/\\[\\abfnrtv#{fin}]/, Str::Escape
74
+ rule %r/[^\\#{fin}]+/m, tok
75
+ rule %r/#{fin}/, tok, :pop!
74
76
  end
75
77
  end
76
78
 
77
79
  state :filters do
78
80
  mixin :inline_whitespace
79
- rule /,/, Punctuation
81
+ rule %r/,/, Punctuation
80
82
  mixin :labels
81
83
  mixin :filter_matching_operators
82
84
  mixin :strings
83
- rule /}/, Punctuation, :pop!
85
+ rule %r/}/, Punctuation, :pop!
84
86
  end
85
87
 
86
88
  state :label_list do
87
- rule /\(/, Punctuation
88
- rule /[a-zA-Z0-9_:-]+/, Name::Attribute
89
- rule /,/, Punctuation
89
+ rule %r/\(/, Punctuation
90
+ rule %r/[a-zA-Z0-9_:-]+/, Name::Attribute
91
+ rule %r/,/, Punctuation
90
92
  mixin :whitespace
91
- rule /\)/, Punctuation, :pop!
93
+ rule %r/\)/, Punctuation, :pop!
92
94
  end
93
95
 
94
96
  state :labels do
95
- rule /[a-zA-Z0-9_:-]+/, Name::Attribute
97
+ rule %r/[a-zA-Z0-9_:-]+/, Name::Attribute
96
98
  end
97
99
 
98
100
  state :operators do
99
101
  rule %r([+\-\*/%\^]), Operator # Arithmetic
100
102
  rule %r(=|==|!=|<|>|<=|>=), Operator # Comparison
101
- rule /and|or|unless/, Operator # Logical/Set
102
- rule /(sum|min|max|avg|stddev|stdvar|count|count_values|bottomk|topk)\b/, Name::Function
103
+ rule %r/and|or|unless/, Operator # Logical/Set
104
+ rule %r/(sum|min|max|avg|stddev|stdvar|count|count_values|bottomk|topk)\b/, Name::Function
103
105
  end
104
106
 
105
107
  state :filter_matching_operators do
106
- rule /!(=|~)|=~?/, Operator
108
+ rule %r/!(=|~)|=~?/, Operator
107
109
  end
108
110
 
109
111
  state :inline_whitespace do
110
- rule /[ \t\r]+/, Text
112
+ rule %r/[ \t\r]+/, Text
111
113
  end
112
114
 
113
115
  state :whitespace do
114
116
  mixin :inline_whitespace
115
- rule /\n\s*/m, Text
116
- rule /#.*?$/, Comment
117
+ rule %r/\n\s*/m, Text
118
+ rule %r/#.*?$/, Comment
117
119
  end
118
120
  end
119
121
  end