rouge 3.3.0 → 3.8.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (216) hide show
  1. checksums.yaml +5 -5
  2. data/Gemfile +15 -3
  3. data/lib/rouge.rb +49 -41
  4. data/lib/rouge/cli.rb +64 -15
  5. data/lib/rouge/demos/ada +26 -0
  6. data/lib/rouge/demos/armasm +12 -0
  7. data/lib/rouge/demos/batchfile +3 -0
  8. data/lib/rouge/demos/bbcbasic +6 -0
  9. data/lib/rouge/demos/bpf +7 -0
  10. data/lib/rouge/demos/brainfuck +5 -0
  11. data/lib/rouge/demos/cmhg +8 -0
  12. data/lib/rouge/demos/cuda +11 -0
  13. data/lib/rouge/demos/cython +6 -0
  14. data/lib/rouge/demos/epp +4 -0
  15. data/lib/rouge/demos/escape +3 -0
  16. data/lib/rouge/demos/gdscript +18 -0
  17. data/lib/rouge/demos/hocon +8 -0
  18. data/lib/rouge/demos/magik +6 -0
  19. data/lib/rouge/demos/mason +22 -0
  20. data/lib/rouge/demos/msgtrans +4 -0
  21. data/lib/rouge/demos/openedge +4 -0
  22. data/lib/rouge/demos/opentype_feature_file +6 -0
  23. data/lib/rouge/demos/plist +1 -132
  24. data/lib/rouge/demos/powershell +12 -48
  25. data/lib/rouge/demos/reasonml +12 -0
  26. data/lib/rouge/demos/sas +13 -0
  27. data/lib/rouge/demos/supercollider +11 -0
  28. data/lib/rouge/demos/xojo +14 -0
  29. data/lib/rouge/demos/xpath +2 -0
  30. data/lib/rouge/demos/xquery +22 -0
  31. data/lib/rouge/formatter.rb +37 -1
  32. data/lib/rouge/formatters/html.rb +20 -2
  33. data/lib/rouge/formatters/html_line_table.rb +53 -0
  34. data/lib/rouge/formatters/html_linewise.rb +6 -11
  35. data/lib/rouge/formatters/html_table.rb +20 -31
  36. data/lib/rouge/formatters/terminal256.rb +1 -0
  37. data/lib/rouge/formatters/tex.rb +92 -0
  38. data/lib/rouge/guessers/disambiguation.rb +25 -0
  39. data/lib/rouge/guessers/glob_mapping.rb +1 -1
  40. data/lib/rouge/guessers/modeline.rb +1 -1
  41. data/lib/rouge/guessers/source.rb +1 -1
  42. data/lib/rouge/lexer.rb +64 -14
  43. data/lib/rouge/lexers/abap.rb +11 -11
  44. data/lib/rouge/lexers/actionscript.rb +34 -34
  45. data/lib/rouge/lexers/ada.rb +162 -0
  46. data/lib/rouge/lexers/apache.rb +8 -8
  47. data/lib/rouge/lexers/apple_script.rb +15 -14
  48. data/lib/rouge/lexers/armasm.rb +145 -0
  49. data/lib/rouge/lexers/awk.rb +25 -25
  50. data/lib/rouge/lexers/batchfile.rb +164 -0
  51. data/lib/rouge/lexers/bbcbasic.rb +112 -0
  52. data/lib/rouge/lexers/biml.rb +4 -4
  53. data/lib/rouge/lexers/bpf.rb +104 -0
  54. data/lib/rouge/lexers/brainfuck.rb +53 -0
  55. data/lib/rouge/lexers/bsl.rb +12 -12
  56. data/lib/rouge/lexers/c.rb +34 -57
  57. data/lib/rouge/lexers/ceylon.rb +6 -34
  58. data/lib/rouge/lexers/cfscript.rb +26 -26
  59. data/lib/rouge/lexers/clojure.rb +14 -14
  60. data/lib/rouge/lexers/cmake.rb +14 -14
  61. data/lib/rouge/lexers/cmhg.rb +34 -0
  62. data/lib/rouge/lexers/coffeescript.rb +43 -35
  63. data/lib/rouge/lexers/common_lisp.rb +37 -37
  64. data/lib/rouge/lexers/conf.rb +6 -6
  65. data/lib/rouge/lexers/console.rb +3 -3
  66. data/lib/rouge/lexers/coq.rb +18 -18
  67. data/lib/rouge/lexers/cpp.rb +12 -9
  68. data/lib/rouge/lexers/crystal.rb +70 -70
  69. data/lib/rouge/lexers/csharp.rb +28 -29
  70. data/lib/rouge/lexers/css.rb +23 -23
  71. data/lib/rouge/lexers/cuda.rb +35 -0
  72. data/lib/rouge/lexers/cython.rb +151 -0
  73. data/lib/rouge/lexers/d.rb +59 -59
  74. data/lib/rouge/lexers/dart.rb +33 -33
  75. data/lib/rouge/lexers/diff.rb +8 -4
  76. data/lib/rouge/lexers/digdag.rb +1 -1
  77. data/lib/rouge/lexers/docker.rb +11 -11
  78. data/lib/rouge/lexers/dot.rb +16 -16
  79. data/lib/rouge/lexers/eiffel.rb +20 -20
  80. data/lib/rouge/lexers/elixir.rb +34 -30
  81. data/lib/rouge/lexers/elm.rb +29 -29
  82. data/lib/rouge/lexers/epp.rb +51 -0
  83. data/lib/rouge/lexers/erb.rb +4 -4
  84. data/lib/rouge/lexers/escape.rb +58 -0
  85. data/lib/rouge/lexers/factor.rb +40 -40
  86. data/lib/rouge/lexers/fortran.rb +32 -32
  87. data/lib/rouge/lexers/fsharp.rb +30 -30
  88. data/lib/rouge/lexers/gdscript.rb +171 -0
  89. data/lib/rouge/lexers/gherkin.rb +16 -14
  90. data/lib/rouge/lexers/glsl.rb +1 -5
  91. data/lib/rouge/lexers/go.rb +2 -2
  92. data/lib/rouge/lexers/graphql.rb +77 -60
  93. data/lib/rouge/lexers/groovy.rb +23 -25
  94. data/lib/rouge/lexers/hack.rb +1 -1
  95. data/lib/rouge/lexers/haml.rb +25 -29
  96. data/lib/rouge/lexers/handlebars.rb +31 -20
  97. data/lib/rouge/lexers/haskell.rb +66 -65
  98. data/lib/rouge/lexers/hcl.rb +25 -25
  99. data/lib/rouge/lexers/hocon.rb +86 -0
  100. data/lib/rouge/lexers/html.rb +32 -31
  101. data/lib/rouge/lexers/http.rb +4 -4
  102. data/lib/rouge/lexers/hylang.rb +14 -14
  103. data/lib/rouge/lexers/idlang.rb +32 -32
  104. data/lib/rouge/lexers/igorpro.rb +31 -31
  105. data/lib/rouge/lexers/ini.rb +12 -12
  106. data/lib/rouge/lexers/io.rb +7 -7
  107. data/lib/rouge/lexers/irb.rb +5 -5
  108. data/lib/rouge/lexers/java.rb +28 -24
  109. data/lib/rouge/lexers/javascript.rb +57 -61
  110. data/lib/rouge/lexers/jinja.rb +34 -20
  111. data/lib/rouge/lexers/json.rb +50 -11
  112. data/lib/rouge/lexers/json_doc.rb +2 -2
  113. data/lib/rouge/lexers/jsonnet.rb +18 -18
  114. data/lib/rouge/lexers/jsp.rb +30 -30
  115. data/lib/rouge/lexers/jsx.rb +16 -16
  116. data/lib/rouge/lexers/julia.rb +181 -58
  117. data/lib/rouge/lexers/kotlin.rb +14 -7
  118. data/lib/rouge/lexers/lasso.rb +50 -50
  119. data/lib/rouge/lexers/liquid.rb +76 -53
  120. data/lib/rouge/lexers/literate_coffeescript.rb +2 -2
  121. data/lib/rouge/lexers/literate_haskell.rb +5 -5
  122. data/lib/rouge/lexers/llvm.rb +23 -16
  123. data/lib/rouge/lexers/lua.rb +3 -3
  124. data/lib/rouge/lexers/m68k.rb +18 -19
  125. data/lib/rouge/lexers/magik.rb +127 -0
  126. data/lib/rouge/lexers/make.rb +56 -34
  127. data/lib/rouge/lexers/markdown.rb +55 -38
  128. data/lib/rouge/lexers/mason.rb +115 -0
  129. data/lib/rouge/lexers/mathematica.rb +11 -11
  130. data/lib/rouge/lexers/matlab.rb +23 -16
  131. data/lib/rouge/lexers/moonscript.rb +3 -3
  132. data/lib/rouge/lexers/mosel.rb +63 -63
  133. data/lib/rouge/lexers/msgtrans.rb +26 -0
  134. data/lib/rouge/lexers/mxml.rb +18 -18
  135. data/lib/rouge/lexers/nasm.rb +24 -25
  136. data/lib/rouge/lexers/nginx.rb +14 -14
  137. data/lib/rouge/lexers/nim.rb +3 -2
  138. data/lib/rouge/lexers/nix.rb +43 -43
  139. data/lib/rouge/lexers/objective_c.rb +43 -48
  140. data/lib/rouge/lexers/ocaml.rb +28 -64
  141. data/lib/rouge/lexers/ocaml/common.rb +53 -0
  142. data/lib/rouge/lexers/openedge.rb +429 -0
  143. data/lib/rouge/lexers/opentype_feature_file.rb +113 -0
  144. data/lib/rouge/lexers/pascal.rb +4 -4
  145. data/lib/rouge/lexers/perl.rb +98 -68
  146. data/lib/rouge/lexers/php.rb +66 -44
  147. data/lib/rouge/lexers/php/builtins.rb +181 -174
  148. data/lib/rouge/lexers/plain_text.rb +1 -1
  149. data/lib/rouge/lexers/plist.rb +14 -14
  150. data/lib/rouge/lexers/pony.rb +19 -19
  151. data/lib/rouge/lexers/powershell.rb +184 -638
  152. data/lib/rouge/lexers/praat.rb +75 -75
  153. data/lib/rouge/lexers/prolog.rb +26 -20
  154. data/lib/rouge/lexers/prometheus.rb +30 -30
  155. data/lib/rouge/lexers/properties.rb +12 -12
  156. data/lib/rouge/lexers/protobuf.rb +22 -22
  157. data/lib/rouge/lexers/puppet.rb +32 -32
  158. data/lib/rouge/lexers/python.rb +52 -52
  159. data/lib/rouge/lexers/q.rb +12 -12
  160. data/lib/rouge/lexers/qml.rb +12 -12
  161. data/lib/rouge/lexers/r.rb +12 -13
  162. data/lib/rouge/lexers/racket.rb +22 -22
  163. data/lib/rouge/lexers/reasonml.rb +65 -0
  164. data/lib/rouge/lexers/ruby.rb +72 -70
  165. data/lib/rouge/lexers/rust.rb +38 -35
  166. data/lib/rouge/lexers/sas.rb +563 -0
  167. data/lib/rouge/lexers/sass.rb +8 -8
  168. data/lib/rouge/lexers/sass/common.rb +40 -40
  169. data/lib/rouge/lexers/scala.rb +63 -37
  170. data/lib/rouge/lexers/scheme.rb +18 -18
  171. data/lib/rouge/lexers/scss.rb +3 -3
  172. data/lib/rouge/lexers/sed.rb +30 -30
  173. data/lib/rouge/lexers/shell.rb +62 -53
  174. data/lib/rouge/lexers/sieve.rb +8 -8
  175. data/lib/rouge/lexers/slim.rb +26 -26
  176. data/lib/rouge/lexers/smalltalk.rb +33 -33
  177. data/lib/rouge/lexers/smarty.rb +19 -19
  178. data/lib/rouge/lexers/sml.rb +67 -67
  179. data/lib/rouge/lexers/sqf.rb +1 -1
  180. data/lib/rouge/lexers/sql.rb +21 -21
  181. data/lib/rouge/lexers/supercollider.rb +116 -0
  182. data/lib/rouge/lexers/swift.rb +46 -43
  183. data/lib/rouge/lexers/tap.rb +20 -20
  184. data/lib/rouge/lexers/tcl.rb +27 -27
  185. data/lib/rouge/lexers/terraform.rb +13 -13
  186. data/lib/rouge/lexers/tex.rb +19 -19
  187. data/lib/rouge/lexers/toml.rb +19 -19
  188. data/lib/rouge/lexers/tulip.rb +36 -36
  189. data/lib/rouge/lexers/turtle.rb +35 -38
  190. data/lib/rouge/lexers/vala.rb +18 -18
  191. data/lib/rouge/lexers/vb.rb +27 -27
  192. data/lib/rouge/lexers/verilog.rb +25 -27
  193. data/lib/rouge/lexers/vhdl.rb +11 -11
  194. data/lib/rouge/lexers/viml.rb +14 -14
  195. data/lib/rouge/lexers/vue.rb +9 -9
  196. data/lib/rouge/lexers/wollok.rb +26 -26
  197. data/lib/rouge/lexers/xml.rb +17 -21
  198. data/lib/rouge/lexers/xojo.rb +61 -0
  199. data/lib/rouge/lexers/xpath.rb +332 -0
  200. data/lib/rouge/lexers/xquery.rb +145 -0
  201. data/lib/rouge/lexers/yaml.rb +63 -61
  202. data/lib/rouge/plugins/redcarpet.rb +1 -1
  203. data/lib/rouge/regex_lexer.rb +26 -25
  204. data/lib/rouge/tex_theme_renderer.rb +132 -0
  205. data/lib/rouge/theme.rb +4 -0
  206. data/lib/rouge/themes/bw.rb +41 -0
  207. data/lib/rouge/themes/magritte.rb +78 -0
  208. data/lib/rouge/themes/monokai_sublime.rb +2 -1
  209. data/lib/rouge/themes/pastie.rb +1 -1
  210. data/lib/rouge/themes/thankful_eyes.rb +1 -1
  211. data/lib/rouge/themes/tulip.rb +1 -1
  212. data/lib/rouge/token.rb +30 -22
  213. data/lib/rouge/util.rb +2 -2
  214. data/lib/rouge/version.rb +1 -1
  215. data/rouge.gemspec +4 -3
  216. metadata +61 -6
@@ -0,0 +1,26 @@
1
+ # -*- coding: utf-8 -*- #
2
+ # frozen_string_literal: true
3
+
4
+ module Rouge
5
+ module Lexers
6
+ class MsgTrans < RegexLexer
7
+ title "MessageTrans"
8
+ desc "RISC OS message translator messages file"
9
+ tag 'msgtrans'
10
+ filenames 'Messages', 'Message[0-9]', 'Message[1-9][0-9]', 'Message[1-9][0-9][0-9]'
11
+
12
+ state :root do
13
+ rule %r/^#[^\n]*/, Comment
14
+ rule %r/[^\t\n\r ,):?\/]+/, Name::Variable
15
+ rule %r/[\n\/?]/, Operator
16
+ rule %r/:/, Operator, :value
17
+ end
18
+
19
+ state :value do
20
+ rule %r/\n/, Text, :pop!
21
+ rule %r/%[0-3%]/, Operator
22
+ rule %r/[^\n%]/, Literal::String
23
+ end
24
+ end
25
+ end
26
+ end
@@ -11,56 +11,56 @@ module Rouge
11
11
  mimetypes 'application/xv+xml'
12
12
 
13
13
  state :root do
14
- rule /[^<&]+/, Text
15
- rule /&\S*?;/, Name::Entity
14
+ rule %r/[^<&]+/, Text
15
+ rule %r/&\S*?;/, Name::Entity
16
16
 
17
- rule /<!\[CDATA\[/m do
17
+ rule %r/<!\[CDATA\[/m do
18
18
  token Comment::Preproc
19
19
  push :actionscript_content
20
20
  end
21
21
 
22
- rule /<!--/, Comment, :comment
23
- rule /<\?.*?\?>/, Comment::Preproc
24
- rule /<![^>]*>/, Comment::Preproc
22
+ rule %r/<!--/, Comment, :comment
23
+ rule %r/<\?.*?\?>/, Comment::Preproc
24
+ rule %r/<![^>]*>/, Comment::Preproc
25
25
 
26
26
  rule %r(<\s*[\w:.-]+)m, Name::Tag, :tag # opening tags
27
27
  rule %r(<\s*/\s*[\w:.-]+\s*>)m, Name::Tag # closing tags
28
28
  end
29
29
 
30
30
  state :comment do
31
- rule /[^-]+/m, Comment
32
- rule /-->/, Comment, :pop!
33
- rule /-/, Comment
31
+ rule %r/[^-]+/m, Comment
32
+ rule %r/-->/, Comment, :pop!
33
+ rule %r/-/, Comment
34
34
  end
35
35
 
36
36
  state :tag do
37
- rule /\s+/m, Text
38
- rule /[\w.:-]+\s*=/m, Name::Attribute, :attribute
37
+ rule %r/\s+/m, Text
38
+ rule %r/[\w.:-]+\s*=/m, Name::Attribute, :attribute
39
39
  rule %r(/?\s*>), Name::Tag, :root
40
40
  end
41
41
 
42
42
  state :attribute do
43
- rule /\s+/m, Text
44
- rule /(")({|@{)/m do
43
+ rule %r/\s+/m, Text
44
+ rule %r/(")({|@{)/m do
45
45
  groups Str, Punctuation
46
46
  push :actionscript_attribute
47
47
  end
48
- rule /".*?"|'.*?'|[^\s>]+/, Str, :tag
48
+ rule %r/".*?"|'.*?'|[^\s>]+/, Str, :tag
49
49
  end
50
50
 
51
51
  state :actionscript_content do
52
- rule /\]\]\>/m, Comment::Preproc, :pop!
53
- rule /.*?(?=\]\]\>)/m do
52
+ rule %r/\]\]\>/m, Comment::Preproc, :pop!
53
+ rule %r/.*?(?=\]\]\>)/m do
54
54
  delegate Actionscript
55
55
  end
56
56
  end
57
57
 
58
58
  state :actionscript_attribute do
59
- rule /(})(")/m do
59
+ rule %r/(})(")/m do
60
60
  groups Punctuation, Str
61
61
  push :tag
62
62
  end
63
- rule /.*?(?=}")/m do
63
+ rule %r/.*?(?=}")/m do
64
64
  delegate Actionscript
65
65
  end
66
66
  end
@@ -11,7 +11,6 @@ module Rouge
11
11
  title "Nasm"
12
12
  desc "Netwide Assembler"
13
13
 
14
- ws = %r((?:\s|;.*?\n/)+)
15
14
  id = /[a-zA-Z_][a-zA-Z0-9_]*/
16
15
 
17
16
  #todo: pull more instructions from: http://www.nasm.us/doc/nasmdocb.html
@@ -119,57 +118,57 @@ module Rouge
119
118
  end
120
119
 
121
120
  state :inline_whitespace do
122
- rule /[ \t\r]+/, Text
121
+ rule %r/[ \t\r]+/, Text
123
122
  end
124
123
 
125
124
  state :whitespace do
126
- rule /\n+/m, Text, :expr_bol
125
+ rule %r/\n+/m, Text, :expr_bol
127
126
  rule %r(//(\\.|.)*?\n), Comment::Single, :expr_bol
128
127
  mixin :inline_whitespace
129
128
  end
130
129
 
131
130
  state :expr_whitespace do
132
- rule /\n+/m, Text, :expr_bol
131
+ rule %r/\n+/m, Text, :expr_bol
133
132
  mixin :whitespace
134
133
  end
135
134
 
136
135
  state :root do
137
136
  mixin :expr_whitespace
138
137
  rule(//) { push :statement }
139
- rule /^%[a-zA-Z0-9]+/, Comment::Preproc, :statement
138
+ rule %r/^%[a-zA-Z0-9]+/, Comment::Preproc, :statement
140
139
 
141
140
  rule(
142
141
  %r(&=|[*]=|/=|\\=|\^=|\+=|-=|<<=|>>=|<<|>>|:=|<=|>=|<>|[-&*/\\^+=<>.]),
143
142
  Operator
144
143
  )
145
- rule /;.*/, Comment, :statement
146
- rule /^[a-zA-Z]+[a-zA-Z0-9]*:/, Name::Function
147
- rule /;.*/, Comment
144
+ rule %r/;.*/, Comment, :statement
145
+ rule %r/^[a-zA-Z]+[a-zA-Z0-9]*:/, Name::Function
146
+ rule %r/;.*/, Comment
148
147
  end
149
148
 
150
149
  state :statement do
151
150
  mixin :expr_whitespace
152
151
  mixin :statements
153
- rule /;.*/, Comment
154
- rule /^%[a-zA-Z0-9]+/, Comment::Preproc
155
- rule /[a-zA-Z]+%[0-9]+:/, Name::Function
152
+ rule %r/;.*/, Comment
153
+ rule %r/^%[a-zA-Z0-9]+/, Comment::Preproc
154
+ rule %r/[a-zA-Z]+%[0-9]+:/, Name::Function
156
155
  end
157
156
 
158
157
  state :statements do
159
158
  mixin :whitespace
160
- rule /L?"/, Str, :string
161
- rule /[a-zA-Z]+%[0-9]+:/, Name::Function #labels/subroutines/functions
159
+ rule %r/L?"/, Str, :string
160
+ rule %r/[a-zA-Z]+%[0-9]+:/, Name::Function #labels/subroutines/functions
162
161
  rule %r(L?'(\\.|\\[0-7]{1,3}|\\x[a-f0-9]{1,2}|[^\\'\n])')i, Str::Char
163
- rule /0x[0-9a-f]+[lu]*/i, Num::Hex
164
- rule /\d+[lu]*/i, Num::Integer
162
+ rule %r/0x[0-9a-f]+[lu]*/i, Num::Hex
163
+ rule %r/\d+[lu]*/i, Num::Integer
165
164
  rule %r(\*/), Error
166
165
  rule %r([~&*+=\|?:<>/-]), Operator
167
- rule /[(),.]/, Punctuation
168
- rule /\[[a-zA-Z0-9]*\]/, Punctuation
169
- rule /%[0-9]+/, Keyword::Reserved
170
- rule /[a-zA-Z]+%[0-9]+/, Name::Function #labels/subroutines/functions
166
+ rule %r/[(),.]/, Punctuation
167
+ rule %r/\[[a-zA-Z0-9]*\]/, Punctuation
168
+ rule %r/%[0-9]+/, Keyword::Reserved
169
+ rule %r/[a-zA-Z]+%[0-9]+/, Name::Function #labels/subroutines/functions
171
170
 
172
- #rule /(?<!\.)#{id}/ do |m|
171
+ #rule %r/(?<!\.)#{id}/ do |m|
173
172
  rule id do |m|
174
173
  name = m[0]
175
174
 
@@ -188,11 +187,11 @@ module Rouge
188
187
  end
189
188
 
190
189
  state :string do
191
- rule /"/, Str, :pop!
192
- rule /\\([\\abfnrtv"']|x[a-fA-F0-9]{2,4}|[0-7]{1,3})/, Str::Escape
193
- rule /[^\\"\n]+/, Str
194
- rule /\\\n/, Str
195
- rule /\\/, Str # stray backslash
190
+ rule %r/"/, Str, :pop!
191
+ rule %r/\\([\\abfnrtv"']|x[a-fA-F0-9]{2,4}|[0-7]{1,3})/, Str::Escape
192
+ rule %r/[^\\"\n]+/, Str
193
+ rule %r/\\\n/, Str
194
+ rule %r/\\/, Str # stray backslash
196
195
  end
197
196
  end
198
197
  end
@@ -13,7 +13,7 @@ module Rouge
13
13
  id = /[^\s$;{}()#]+/
14
14
 
15
15
  state :root do
16
- rule /(include)(\s+)([^\s;]+)/ do
16
+ rule %r/(include)(\s+)([^\s;]+)/ do
17
17
  groups Keyword, Text, Name
18
18
  end
19
19
 
@@ -23,49 +23,49 @@ module Rouge
23
23
  end
24
24
 
25
25
  state :block do
26
- rule /}/, Punctuation, :pop!
26
+ rule %r/}/, Punctuation, :pop!
27
27
  rule id, Keyword::Namespace, :statement
28
28
  mixin :base
29
29
  end
30
30
 
31
31
  state :statement do
32
- rule /{/ do
32
+ rule %r/{/ do
33
33
  token Punctuation; pop!; push :block
34
34
  end
35
35
 
36
- rule /;/, Punctuation, :pop!
36
+ rule %r/;/, Punctuation, :pop!
37
37
 
38
38
  mixin :base
39
39
  end
40
40
 
41
41
  state :base do
42
- rule /\s+/, Text
42
+ rule %r/\s+/, Text
43
43
 
44
- rule /#.*?\n/, Comment::Single
45
- rule /(?:on|off)\b/, Name::Constant
46
- rule /[$][\w-]+/, Name::Variable
44
+ rule %r/#.*?\n/, Comment::Single
45
+ rule %r/(?:on|off)\b/, Name::Constant
46
+ rule %r/[$][\w-]+/, Name::Variable
47
47
 
48
48
  # host/port
49
- rule /([a-z0-9.-]+)(:)([0-9]+)/i do
49
+ rule %r/([a-z0-9.-]+)(:)([0-9]+)/i do
50
50
  groups Name::Function, Punctuation, Num::Integer
51
51
  end
52
52
 
53
53
  # mimetype
54
54
  rule %r([a-z-]+/[a-z-]+)i, Name::Class
55
55
 
56
- rule /[0-9]+[kmg]?\b/i, Num::Integer
57
- rule /(~)(\s*)([^\s{]+)/ do
56
+ rule %r/[0-9]+[kmg]?\b/i, Num::Integer
57
+ rule %r/(~)(\s*)([^\s{]+)/ do
58
58
  groups Punctuation, Text, Str::Regex
59
59
  end
60
60
 
61
- rule /[:=~]/, Punctuation
61
+ rule %r/[:=~]/, Punctuation
62
62
 
63
63
  # pathname
64
64
  rule %r(/#{id}?), Name
65
65
 
66
- rule /[^#\s;{}$\\]+/, Str # catchall
66
+ rule %r/[^#\s;{}$\\]+/, Str # catchall
67
67
 
68
- rule /[$;]/, Text
68
+ rule %r/[$;]/, Text
69
69
  end
70
70
  end
71
71
  end
@@ -112,7 +112,7 @@ module Rouge
112
112
  Punctuation)
113
113
 
114
114
  # Strings
115
- rule(/(?:[\w]+)"/,Str, :rdqs)
115
+ rule(/(?:\w+)"/,Str, :rdqs)
116
116
  rule(/"""/, Str, :tdqs)
117
117
  rule(/"/, Str, :dqs)
118
118
 
@@ -133,11 +133,12 @@ module Rouge
133
133
  # Numbers
134
134
  # Note: Have to do this with a block to push multiple states first,
135
135
  # since we can't pass array of states like w/ Pygments.
136
- rule(/[0-9][0-9_]*(?=([eE.]|'?[fF](32|64)))/) do |number|
136
+ rule(/[0-9][0-9_]*(?=([eE.]|'?[fF](32|64)))/) do
137
137
  push :floatsuffix
138
138
  push :floatnumber
139
139
  token Num::Float
140
140
  end
141
+
141
142
  rule(/0[xX][a-fA-F0-9][a-fA-F0-9_]*/, Num::Hex, :intsuffix)
142
143
  rule(/0[bB][01][01_]*/, Num, :intsuffix)
143
144
  rule(/0o[0-7][0-7_]*/, Num::Oct, :intsuffix)
@@ -11,34 +11,34 @@ module Rouge
11
11
  filenames '*.nix'
12
12
 
13
13
  state :whitespaces do
14
- rule /^\s*\n\s*$/m, Text
15
- rule /\s+/, Text
14
+ rule %r/^\s*\n\s*$/m, Text
15
+ rule %r/\s+/, Text
16
16
  end
17
17
 
18
18
  state :comment do
19
- rule /#.*$/, Comment
20
- rule /\/\*/, Comment, :multiline_comment
19
+ rule %r/#.*$/, Comment
20
+ rule %r(/\*), Comment, :multiline_comment
21
21
  end
22
22
 
23
23
  state :multiline_comment do
24
- rule /\*\//, Comment, :pop!
25
- rule /./, Comment
24
+ rule %r(\*/), Comment, :pop!
25
+ rule %r/./, Comment
26
26
  end
27
27
 
28
28
  state :number do
29
- rule /[0-9]/, Num::Integer
29
+ rule %r/[0-9]/, Num::Integer
30
30
  end
31
31
 
32
32
  state :null do
33
- rule /(null)/, Keyword::Constant
33
+ rule %r/(null)/, Keyword::Constant
34
34
  end
35
35
 
36
36
  state :boolean do
37
- rule /(true|false)/, Keyword::Constant
37
+ rule %r/(true|false)/, Keyword::Constant
38
38
  end
39
39
 
40
40
  state :binding do
41
- rule /[a-zA-Z_][a-zA-Z0-9-]*/, Name::Variable
41
+ rule %r/[a-zA-Z_][a-zA-Z0-9-]*/, Name::Variable
42
42
  end
43
43
 
44
44
  state :path do
@@ -49,89 +49,89 @@ module Rouge
49
49
  tilde = /~#{section}+/.source
50
50
  basic = /#{word}(\/#{word})+/.source
51
51
  url = /#{prefix}(\/?#{basic})/.source
52
- rule /(#{root}|#{tilde}|#{basic}|#{url})/, Str::Other
52
+ rule %r/(#{root}|#{tilde}|#{basic}|#{url})/, Str::Other
53
53
  end
54
54
 
55
55
  state :string do
56
- rule /"/, Str::Double, :double_quoted_string
57
- rule /''/, Str::Double, :indented_string
56
+ rule %r/"/, Str::Double, :double_quoted_string
57
+ rule %r/''/, Str::Double, :indented_string
58
58
  end
59
59
 
60
60
  state :string_content do
61
- rule /\\./, Str::Escape
62
- rule /\$\$/, Str::Escape
63
- rule /\${/, Str::Interpol, :string_interpolated_arg
61
+ rule %r/\\./, Str::Escape
62
+ rule %r/\$\$/, Str::Escape
63
+ rule %r/\${/, Str::Interpol, :string_interpolated_arg
64
64
  end
65
65
 
66
66
  state :indented_string_content do
67
- rule /'''/, Str::Escape
68
- rule /''\$/, Str::Escape
69
- rule /\$\$/, Str::Escape
70
- rule /''\\./, Str::Escape
71
- rule /\${/, Str::Interpol, :string_interpolated_arg
67
+ rule %r/'''/, Str::Escape
68
+ rule %r/''\$/, Str::Escape
69
+ rule %r/\$\$/, Str::Escape
70
+ rule %r/''\\./, Str::Escape
71
+ rule %r/\${/, Str::Interpol, :string_interpolated_arg
72
72
  end
73
73
 
74
74
  state :string_interpolated_arg do
75
75
  mixin :expression
76
- rule /}/, Str::Interpol, :pop!
76
+ rule %r/}/, Str::Interpol, :pop!
77
77
  end
78
78
 
79
79
  state :indented_string do
80
80
  mixin :indented_string_content
81
- rule /''/, Str::Double, :pop!
82
- rule /./, Str::Double
81
+ rule %r/''/, Str::Double, :pop!
82
+ rule %r/./, Str::Double
83
83
  end
84
84
 
85
85
  state :double_quoted_string do
86
86
  mixin :string_content
87
- rule /"/, Str::Double, :pop!
88
- rule /./, Str::Double
87
+ rule %r/"/, Str::Double, :pop!
88
+ rule %r/./, Str::Double
89
89
  end
90
90
 
91
91
  state :operator do
92
- rule /(\.|\?|\+\+|\+|!=|!|\/\/|\=\=|&&|\|\||->|\/|\*|-|<|>|<=|=>)/, Operator
92
+ rule %r/(\.|\?|\+\+|\+|!=|!|\/\/|\=\=|&&|\|\||->|\/|\*|-|<|>|<=|=>)/, Operator
93
93
  end
94
94
 
95
95
  state :assignment do
96
- rule /(=)/, Operator
97
- rule /(@)/, Operator
96
+ rule %r/(=)/, Operator
97
+ rule %r/(@)/, Operator
98
98
  end
99
99
 
100
100
  state :accessor do
101
- rule /(\$)/, Punctuation
101
+ rule %r/(\$)/, Punctuation
102
102
  end
103
103
 
104
104
  state :delimiter do
105
- rule /(;|,|:)/, Punctuation
105
+ rule %r/(;|,|:)/, Punctuation
106
106
  end
107
107
 
108
108
  state :atom_content do
109
109
  mixin :expression
110
- rule /\)/, Punctuation, :pop!
110
+ rule %r/\)/, Punctuation, :pop!
111
111
  end
112
112
 
113
113
  state :atom do
114
- rule /\(/, Punctuation, :atom_content
114
+ rule %r/\(/, Punctuation, :atom_content
115
115
  end
116
116
 
117
117
  state :list do
118
- rule /\[/, Punctuation, :list_content
118
+ rule %r/\[/, Punctuation, :list_content
119
119
  end
120
120
 
121
121
  state :list_content do
122
- rule /\]/, Punctuation, :pop!
122
+ rule %r/\]/, Punctuation, :pop!
123
123
  mixin :expression
124
124
  end
125
125
 
126
126
  state :set do
127
- rule /{/, Punctuation, :set_content
127
+ rule %r/{/, Punctuation, :set_content
128
128
  end
129
129
 
130
130
  state :set_content do
131
- rule /}/, Punctuation, :pop!
131
+ rule %r/}/, Punctuation, :pop!
132
132
  mixin :expression
133
133
  end
134
-
134
+
135
135
  state :expression do
136
136
  mixin :ignore
137
137
  mixin :comment
@@ -161,22 +161,22 @@ module Rouge
161
161
 
162
162
  state :keywords_namespace do
163
163
  keywords = %w(with in inherit)
164
- rule /(?:#{keywords.join('|')})\b/, Keyword::Namespace
164
+ rule %r/(?:#{keywords.join('|')})\b/, Keyword::Namespace
165
165
  end
166
166
 
167
167
  state :keywords_declaration do
168
168
  keywords = %w(let)
169
- rule /(?:#{keywords.join('|')})\b/, Keyword::Declaration
169
+ rule %r/(?:#{keywords.join('|')})\b/, Keyword::Declaration
170
170
  end
171
171
 
172
172
  state :keywords_conditional do
173
173
  keywords = %w(if then else)
174
- rule /(?:#{keywords.join('|')})\b/, Keyword
174
+ rule %r/(?:#{keywords.join('|')})\b/, Keyword
175
175
  end
176
176
 
177
177
  state :keywords_reserved do
178
178
  keywords = %w(rec assert map)
179
- rule /(?:#{keywords.join('|')})\b/, Keyword::Reserved
179
+ rule %r/(?:#{keywords.join('|')})\b/, Keyword::Reserved
180
180
  end
181
181
 
182
182
  state :keywords_builtin do
@@ -192,7 +192,7 @@ module Rouge
192
192
  throw
193
193
  toString
194
194
  )
195
- rule /(?:#{keywords.join('|')})\b/, Keyword::Reserved
195
+ rule %r/(?:#{keywords.join('|')})\b/, Keyword::Reserved
196
196
  end
197
197
 
198
198
  state :ignore do