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
@@ -10,67 +10,67 @@ module Rouge
10
10
  filenames '*.liquid'
11
11
 
12
12
  state :root do
13
- rule /[^\{]+/, Text
13
+ rule %r/[^\{]+/, Text
14
14
 
15
- rule /(\{%)(\s*)/ do
15
+ rule %r/(\{%)(\s*)/ do
16
16
  groups Punctuation, Text::Whitespace
17
17
  push :tag_or_block
18
18
  end
19
19
 
20
- rule /(\{\{)(\s*)/ do
20
+ rule %r/(\{\{)(\s*)/ do
21
21
  groups Punctuation, Text::Whitespace
22
22
  push :output
23
23
  end
24
24
 
25
- rule /\{/, Text
25
+ rule %r/\{/, Text
26
26
  end
27
27
 
28
28
  state :tag_or_block do
29
29
  # builtin logic blocks
30
- rule /(if|unless|elsif|case)(?=\s+)/, Keyword::Reserved, :condition
30
+ rule %r/(if|unless|elsif|case)(?=\s+)/, Keyword::Reserved, :condition
31
31
 
32
- rule /(when)(\s+)/ do
32
+ rule %r/(when)(\s+)/ do
33
33
  groups Keyword::Reserved, Text::Whitespace
34
34
  push :when
35
35
  end
36
36
 
37
- rule /(else)(\s*)(%\})/ do
37
+ rule %r/(else)(\s*)(%\})/ do
38
38
  groups Keyword::Reserved, Text::Whitespace, Punctuation
39
39
  pop!
40
40
  end
41
41
 
42
42
  # other builtin blocks
43
- rule /(capture)(\s+)([^\s%]+)(\s*)(%\})/ do
43
+ rule %r/(capture)(\s+)([^\s%]+)(\s*)(%\})/ do
44
44
  groups Name::Tag, Text::Whitespace, Name::Attribute, Text::Whitespace, Punctuation
45
45
  pop!
46
46
  end
47
47
 
48
- rule /(comment)(\s*)(%\})/ do
48
+ rule %r/(comment)(\s*)(%\})/ do
49
49
  groups Name::Tag, Text::Whitespace, Punctuation
50
50
  push :comment
51
51
  end
52
52
 
53
- rule /(raw)(\s*)(%\})/ do
53
+ rule %r/(raw)(\s*)(%\})/ do
54
54
  groups Name::Tag, Text::Whitespace, Punctuation
55
55
  push :raw
56
56
  end
57
57
 
58
- rule /assign/, Name::Tag, :assign
59
- rule /include/, Name::Tag, :include
58
+ rule %r/assign/, Name::Tag, :assign
59
+ rule %r/include/, Name::Tag, :include
60
60
 
61
61
  # end of block
62
- rule /(end(case|unless|if))(\s*)(%\})/ do
63
- groups Keyword::Reserved, nil, Text::Whitespace, Punctuation
62
+ rule %r/(end(?:case|unless|if))(\s*)(%\})/ do
63
+ groups Keyword::Reserved, Text::Whitespace, Punctuation
64
64
  pop!
65
65
  end
66
66
 
67
- rule /(end([^\s%]+))(\s*)(%\})/ do
68
- groups Name::Tag, nil, Text::Whitespace, Punctuation
67
+ rule %r/(end(?:[^\s%]+))(\s*)(%\})/ do
68
+ groups Name::Tag, Text::Whitespace, Punctuation
69
69
  pop!
70
70
  end
71
71
 
72
72
  # builtin tags
73
- rule /(cycle)(\s+)(([^\s:]*)(:))?(\s*)/ do |m|
73
+ rule %r/(cycle)(\s+)(([^\s:]*)(:))?(\s*)/ do |m|
74
74
  token Name::Tag, m[1]
75
75
  token Text::Whitespace, m[2]
76
76
 
@@ -88,8 +88,31 @@ module Rouge
88
88
  push :variable_tag_markup
89
89
  end
90
90
 
91
+ # iteration
92
+ rule %r/
93
+ (for)(\s+)
94
+ ([\w-]+)(\s+)
95
+ (in)(\s+)
96
+ (
97
+ (?: [^\s,\|'"] | (?:"[^"]*"|'[^']*') )+
98
+ )(\s*)
99
+ /x do |m|
100
+ groups Name::Tag, Text::Whitespace, Name::Variable, Text::Whitespace,
101
+ Keyword::Reserved, Text::Whitespace
102
+
103
+ token_class = case m[7]
104
+ when %r/'[^']*'/ then Str::Single
105
+ when %r/"[^"]*"/ then Str::Double
106
+ else
107
+ Name::Variable
108
+ end
109
+ token token_class, m[7]
110
+ token Text::Whitespace, m[8]
111
+ push :tag_markup
112
+ end
113
+
91
114
  # other tags or blocks
92
- rule /([^\s%]+)(\s*)/ do
115
+ rule %r/([^\s%]+)(\s*)/ do
93
116
  groups Name::Tag, Text::Whitespace
94
117
  push :tag_markup
95
118
  end
@@ -99,8 +122,8 @@ module Rouge
99
122
  mixin :whitespace
100
123
  mixin :generic
101
124
 
102
- rule /\}\}/, Punctuation, :pop!
103
- rule /\|/, Punctuation, :filters
125
+ rule %r/\}\}/, Punctuation, :pop!
126
+ rule %r/\|/, Punctuation, :filters
104
127
  end
105
128
 
106
129
  state :filters do
@@ -108,14 +131,14 @@ module Rouge
108
131
 
109
132
  rule(/\}\}/) { token Punctuation; reset_stack }
110
133
 
111
- rule /([^\s\|:]+)(:?)(\s*)/ do
134
+ rule %r/([^\s\|:]+)(:?)(\s*)/ do
112
135
  groups Name::Function, Punctuation, Text::Whitespace
113
136
  push :filter_markup
114
137
  end
115
138
  end
116
139
 
117
140
  state :filter_markup do
118
- rule /\|/, Punctuation, :pop!
141
+ rule %r/\|/, Punctuation, :pop!
119
142
 
120
143
  mixin :end_of_tag
121
144
  mixin :end_of_block
@@ -126,13 +149,13 @@ module Rouge
126
149
  mixin :end_of_block
127
150
  mixin :whitespace
128
151
 
129
- rule /([=!><]=?)/, Operator
152
+ rule %r/([=!><]=?)/, Operator
130
153
 
131
- rule /\b((!)|(not\b))/ do
132
- groups nil, Operator, Operator::Word
154
+ rule %r/\b(?:(!)|(not\b))/ do
155
+ groups Operator, Operator::Word
133
156
  end
134
157
 
135
- rule /(contains)/, Operator::Word
158
+ rule %r/(contains)/, Operator::Word
136
159
 
137
160
  mixin :generic
138
161
  mixin :whitespace
@@ -145,12 +168,12 @@ module Rouge
145
168
  end
146
169
 
147
170
  state :operator do
148
- rule /(\s*)((=|!|>|<)=?)(\s*)/ do
149
- groups Text::Whitespace, Operator, nil, Text::Whitespace
171
+ rule %r/(\s*)((?:=|!|>|<)=?)(\s*)/ do
172
+ groups Text::Whitespace, Operator, Text::Whitespace
150
173
  pop!
151
174
  end
152
175
 
153
- rule /(\s*)(\bcontains\b)(\s*)/ do
176
+ rule %r/(\s*)(\bcontains\b)(\s*)/ do
154
177
  groups Text::Whitespace, Operator::Word, Text::Whitespace
155
178
  pop!
156
179
  end
@@ -169,29 +192,29 @@ module Rouge
169
192
  mixin :whitespace
170
193
  mixin :string
171
194
 
172
- rule /([^\s=:]+)(\s*)(=|:)/ do
195
+ rule %r/([^\s=:]+)(\s*)(=|:)/ do
173
196
  groups Name::Attribute, Text::Whitespace, Operator
174
197
  end
175
198
 
176
- rule /(\{\{)(\s*)([^\s\}])(\s*)(\}\})/ do
177
- groups Punctuation, Text::Whitespace, nil, Text::Whitespace, Punctuation
199
+ rule %r/(\{\{)(\s*)([^\s\}])(\s*)(\}\})/ do
200
+ groups Punctuation, Text::Whitespace, Text, Text::Whitespace, Punctuation
178
201
  end
179
202
 
180
203
  mixin :number
181
204
  mixin :keyword
182
205
 
183
- rule /,/, Punctuation
206
+ rule %r/,/, Punctuation
184
207
  end
185
208
 
186
209
  state :default_param_markup do
187
210
  mixin :param_markup
188
- rule /./, Text
211
+ rule %r/./, Text
189
212
  end
190
213
 
191
214
  state :variable_param_markup do
192
215
  mixin :param_markup
193
216
  mixin :variable
194
- rule /./, Text
217
+ rule %r/./, Text
195
218
  end
196
219
 
197
220
  state :tag_markup do
@@ -206,27 +229,27 @@ module Rouge
206
229
 
207
230
  # states for different values types
208
231
  state :keyword do
209
- rule /\b(false|true)\b/, Keyword::Constant
232
+ rule %r/\b(false|true)\b/, Keyword::Constant
210
233
  end
211
234
 
212
235
  state :variable do
213
- rule /\.(?=\w)/, Punctuation
214
- rule /[a-zA-Z_]\w*\??/, Name::Variable
236
+ rule %r/\.(?=\w)/, Punctuation
237
+ rule %r/[a-zA-Z_]\w*\??/, Name::Variable
215
238
  end
216
239
 
217
240
  state :string do
218
- rule /'[^']*'/, Str::Single
219
- rule /"[^"]*"/, Str::Double
241
+ rule %r/'[^']*'/, Str::Single
242
+ rule %r/"[^"]*"/, Str::Double
220
243
  end
221
244
 
222
245
  state :number do
223
- rule /\d+\.\d+/, Num::Float
224
- rule /\d+/, Num::Integer
246
+ rule %r/\d+\.\d+/, Num::Float
247
+ rule %r/\d+/, Num::Integer
225
248
  end
226
249
 
227
250
  state :array_index do
228
- rule /\[/, Punctuation
229
- rule /\]/, Punctuation
251
+ rule %r/\[/, Punctuation
252
+ rule %r/\]/, Punctuation
230
253
  end
231
254
 
232
255
  state :generic do
@@ -238,38 +261,38 @@ module Rouge
238
261
  end
239
262
 
240
263
  state :whitespace do
241
- rule /[ \t]+/, Text::Whitespace
264
+ rule %r/[ \t]+/, Text::Whitespace
242
265
  end
243
266
 
244
267
  state :comment do
245
- rule /(\{%)(\s*)(endcomment)(\s*)(%\})/ do
268
+ rule %r/(\{%)(\s*)(endcomment)(\s*)(%\})/ do
246
269
  groups Punctuation, Text::Whitespace, Name::Tag, Text::Whitespace, Punctuation
247
270
  reset_stack
248
271
  end
249
272
 
250
- rule /./, Comment
273
+ rule %r/./, Comment
251
274
  end
252
275
 
253
276
  state :raw do
254
- rule /[^\{]+/, Text
277
+ rule %r/[^\{]+/, Text
255
278
 
256
- rule /(\{%)(\s*)(endraw)(\s*)(%\})/ do
279
+ rule %r/(\{%)(\s*)(endraw)(\s*)(%\})/ do
257
280
  groups Punctuation, Text::Whitespace, Name::Tag, Text::Whitespace, Punctuation
258
281
  reset_stack
259
282
  end
260
283
 
261
- rule /\{/, Text
284
+ rule %r/\{/, Text
262
285
  end
263
286
 
264
287
  state :assign do
265
288
  mixin :whitespace
266
289
  mixin :end_of_block
267
290
 
268
- rule /(\s*)(=)(\s*)/ do
291
+ rule %r/(\s*)(=)(\s*)/ do
269
292
  groups Text::Whitespace, Operator, Text::Whitespace
270
293
  end
271
294
 
272
- rule /\|/, Punctuation, :filters
295
+ rule %r/\|/, Punctuation, :filters
273
296
 
274
297
  mixin :generic
275
298
  end
@@ -277,7 +300,7 @@ module Rouge
277
300
  state :include do
278
301
  mixin :whitespace
279
302
 
280
- rule /([^\.]+)(\.)(html|liquid)/ do
303
+ rule %r/([^\.]+)(\.)(html|liquid)/ do
281
304
  groups Name::Attribute, Punctuation, Name::Attribute
282
305
  end
283
306
 
@@ -21,11 +21,11 @@ module Rouge
21
21
  start { markdown.reset!; coffee.reset! }
22
22
 
23
23
  state :root do
24
- rule /^( .*?\n)+/m do
24
+ rule %r/^( .*?\n)+/m do
25
25
  delegate coffee
26
26
  end
27
27
 
28
- rule /^([ ]{0,3}(\S.*?|)\n)*/m do
28
+ rule %r/^([ ]{0,3}(\S.*?|)\n)*/m do
29
29
  delegate markdown
30
30
  end
31
31
  end
@@ -19,18 +19,18 @@ module Rouge
19
19
 
20
20
  # TODO: support TeX versions as well.
21
21
  state :root do
22
- rule /\s*?\n(?=>)/, Text, :code
23
- rule /.*?\n/, Text
24
- rule /.+\z/, Text
22
+ rule %r/\s*?\n(?=>)/, Text, :code
23
+ rule %r/.*?\n/, Text
24
+ rule %r/.+\z/, Text
25
25
  end
26
26
 
27
27
  state :code do
28
- rule /(>)( .*?(\n|\z))/ do |m|
28
+ rule %r/(>)( .*?(\n|\z))/ do |m|
29
29
  token Name::Label, m[1]
30
30
  delegate haskell, m[2]
31
31
  end
32
32
 
33
- rule /\s*\n(?=\s*[^>])/, Text, :pop!
33
+ rule %r/\s*\n(?=\s*[^>])/, Text, :pop!
34
34
  end
35
35
  end
36
36
  end
@@ -15,21 +15,22 @@ module Rouge
15
15
  identifier = /([-a-zA-Z$._][-a-zA-Z$._0-9]*|#{string})/
16
16
 
17
17
  state :basic do
18
- rule /;.*?$/, Comment::Single
19
- rule /\s+/, Text
18
+ rule %r/;.*?$/, Comment::Single
19
+ rule %r/\s+/, Text
20
20
 
21
- rule /#{identifier}\s*:/, Name::Label
21
+ rule %r/#{identifier}\s*:/, Name::Label
22
22
 
23
- rule /@(#{identifier}|\d+)/, Name::Variable::Global
24
- rule /(%|!)#{identifier}/, Name::Variable
25
- rule /(%|!)\d+/, Name::Variable
23
+ rule %r/@(#{identifier}|\d+)/, Name::Variable::Global
24
+ rule %r/#\d+/, Name::Variable::Global
25
+ rule %r/(%|!)#{identifier}/, Name::Variable
26
+ rule %r/(%|!)\d+/, Name::Variable
26
27
 
27
- rule /c?#{string}/, Str
28
+ rule %r/c?#{string}/, Str
28
29
 
29
- rule /0[xX][a-fA-F0-9]+/, Num
30
- rule /-?\d+(?:[.]\d+)?(?:[eE][-+]?\d+(?:[.]\d+)?)?/, Num
30
+ rule %r/0[xX][a-fA-F0-9]+/, Num
31
+ rule %r/-?\d+(?:[.]\d+)?(?:[eE][-+]?\d+(?:[.]\d+)?)?/, Num
31
32
 
32
- rule /[=<>{}\[\]()*.,!]|x/, Punctuation
33
+ rule %r/[=<>{}\[\]()*.,!]|x/, Punctuation
33
34
  end
34
35
 
35
36
  builtin_types = %w(
@@ -37,12 +38,12 @@ module Rouge
37
38
  )
38
39
 
39
40
  state :types do
40
- rule /i[1-9]\d*/, Keyword::Type
41
- rule /#{builtin_types.join('|')}/, Keyword::Type
41
+ rule %r/i[1-9]\d*/, Keyword::Type
42
+ rule %r/#{builtin_types.join('|')}/, Keyword::Type
42
43
  end
43
44
 
44
45
  builtin_keywords = %w(
45
- begin end true false declare define global constant personality private
46
+ begin end true false declare define global constant alignstack private
46
47
  landingpad linker_private internal available_externally linkonce_odr
47
48
  linkonce weak weak_odr appending dllimport dllexport common default
48
49
  hidden protected extern_weak external thread_local zeroinitializer
@@ -54,7 +55,13 @@ module Rouge
54
55
  nest readnone readonly inlinehint noinline alwaysinline optsize ssp
55
56
  sspreq noredzone noimplicitfloat naked type opaque eq ne slt sgt sle
56
57
  sge ult ugt ule uge oeq one olt ogt ole oge ord uno unnamed_addr ueq
57
- une uwtable x
58
+ une uwtable x personality allocsize builtin cold convergent
59
+ inaccessiblememonly inaccessiblemem_or_argmemonly jumptable minsize
60
+ no-jump-tables nobuiltin noduplicate nonlazybind noredzone norecurse
61
+ optforfuzzing optnone writeonly argmemonly returns_twice safestack
62
+ sanitize_address sanitize_memory sanitize_thread sanitize_hwaddress
63
+ speculative_load_hardening speculatable sspstrong strictfp nocf_check
64
+ shadowcallstack attributes
58
65
  )
59
66
 
60
67
  builtin_instructions = %w(
@@ -67,8 +74,8 @@ module Rouge
67
74
  )
68
75
 
69
76
  state :keywords do
70
- rule /#{builtin_instructions.join('|')}/, Keyword
71
- rule /#{builtin_keywords.join('|')}/, Keyword
77
+ rule %r/#{builtin_instructions.join('|')}/, Keyword
78
+ rule %r/#{builtin_keywords.join('|')}/, Keyword
72
79
  end
73
80
 
74
81
  state :root do
@@ -25,7 +25,7 @@ module Rouge
25
25
  end
26
26
 
27
27
  def self.builtins
28
- load Pathname.new(__FILE__).dirname.join('lua/builtins.rb')
28
+ load File.join(__dir__, 'lua/builtins.rb')
29
29
  self.builtins
30
30
  end
31
31
 
@@ -43,7 +43,7 @@ module Rouge
43
43
  state :root do
44
44
  # lua allows a file to start with a shebang
45
45
  rule %r(#!(.*?)$), Comment::Preproc
46
- rule //, Text, :base
46
+ rule %r//, Text, :base
47
47
  end
48
48
 
49
49
  state :base do
@@ -89,7 +89,7 @@ module Rouge
89
89
  end
90
90
 
91
91
  state :function_name do
92
- rule /\s+/, Text
92
+ rule %r/\s+/, Text
93
93
  rule %r((?:([A-Za-z_][A-Za-z0-9_]*)(\.))?([A-Za-z_][A-Za-z0-9_]*)) do
94
94
  groups Name::Class, Punctuation, Name::Function
95
95
  pop!
@@ -9,7 +9,6 @@ module Rouge
9
9
  title "M68k"
10
10
  desc "Motorola 68k Assembler"
11
11
 
12
- ws = %r((?:\s|;.*?\n/)+)
13
12
  id = /[a-zA-Z_][a-zA-Z0-9_]*/
14
13
 
15
14
  def self.keywords
@@ -83,11 +82,11 @@ module Rouge
83
82
  end
84
83
 
85
84
  state :inline_whitespace do
86
- rule /[\s\t\r]+/, Text
85
+ rule %r/\s+/, Text
87
86
  end
88
87
 
89
88
  state :whitespace do
90
- rule /\n+/m, Text, :expr_bol
89
+ rule %r/\n+/m, Text, :expr_bol
91
90
  rule %r(^\*(\\.|.)*?\n), Comment::Single, :expr_bol
92
91
  rule %r(;(\\.|.)*?\n), Comment::Single, :expr_bol
93
92
  mixin :inline_whitespace
@@ -99,19 +98,19 @@ module Rouge
99
98
 
100
99
  state :statements do
101
100
  mixin :whitespace
102
- rule /"/, Str, :string
103
- rule /#/, Name::Decorator
104
- rule /^\.?[a-zA-Z0-9_]+:?/, Name::Label
105
- rule /\.[bswl]\s/i, Name::Decorator
101
+ rule %r/"/, Str, :string
102
+ rule %r/#/, Name::Decorator
103
+ rule %r/^\.?[a-zA-Z0-9_]+:?/, Name::Label
104
+ rule %r/\.[bswl]\s/i, Name::Decorator
106
105
  rule %r('(\\.|\\[0-7]{1,3}|\\x[a-f0-9]{1,2}|[^\\'\n])')i, Str::Char
107
- rule /\$[0-9a-f]+/i, Num::Hex
108
- rule /@[0-8]+/i, Num::Oct
109
- rule /%[01]+/i, Num::Bin
110
- rule /\d+/i, Num::Integer
106
+ rule %r/\$[0-9a-f]+/i, Num::Hex
107
+ rule %r/@[0-8]+/i, Num::Oct
108
+ rule %r/%[01]+/i, Num::Bin
109
+ rule %r/\d+/i, Num::Integer
111
110
  rule %r([*~&+=\|?:<>/-]), Operator
112
- rule /\\./, Comment::Preproc
113
- rule /[(),.]/, Punctuation
114
- rule /\[[a-zA-Z0-9]*\]/, Punctuation
111
+ rule %r/\\./, Comment::Preproc
112
+ rule %r/[(),.]/, Punctuation
113
+ rule %r/\[[a-zA-Z0-9]*\]/, Punctuation
115
114
 
116
115
  rule id do |m|
117
116
  name = m[0]
@@ -133,11 +132,11 @@ module Rouge
133
132
  end
134
133
 
135
134
  state :string do
136
- rule /"/, Str, :pop!
137
- rule /\\([\\abfnrtv"']|x[a-fA-F0-9]{2,4}|[0-7]{1,3})/, Str::Escape
138
- rule /[^\\"\n]+/, Str
139
- rule /\\\n/, Str
140
- rule /\\/, Str # stray backslash
135
+ rule %r/"/, Str, :pop!
136
+ rule %r/\\([\\abfnrtv"']|x[a-fA-F0-9]{2,4}|[0-7]{1,3})/, Str::Escape
137
+ rule %r/[^\\"\n]+/, Str
138
+ rule %r/\\\n/, Str
139
+ rule %r/\\/, Str # stray backslash
141
140
  end
142
141
  end
143
142
  end