rouge 3.4.1 → 3.5.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 (151) hide show
  1. checksums.yaml +4 -4
  2. data/lib/rouge.rb +3 -0
  3. data/lib/rouge/cli.rb +19 -2
  4. data/lib/rouge/demos/bpf +7 -0
  5. data/lib/rouge/demos/brainfuck +5 -0
  6. data/lib/rouge/demos/magik +6 -0
  7. data/lib/rouge/formatter.rb +2 -2
  8. data/lib/rouge/formatters/tex.rb +90 -0
  9. data/lib/rouge/guessers/glob_mapping.rb +1 -1
  10. data/lib/rouge/lexer.rb +22 -10
  11. data/lib/rouge/lexers/abap.rb +11 -11
  12. data/lib/rouge/lexers/actionscript.rb +34 -34
  13. data/lib/rouge/lexers/apache.rb +8 -8
  14. data/lib/rouge/lexers/apple_script.rb +15 -14
  15. data/lib/rouge/lexers/awk.rb +25 -25
  16. data/lib/rouge/lexers/biml.rb +4 -4
  17. data/lib/rouge/lexers/bpf.rb +104 -0
  18. data/lib/rouge/lexers/brainfuck.rb +53 -0
  19. data/lib/rouge/lexers/bsl.rb +12 -12
  20. data/lib/rouge/lexers/c.rb +30 -30
  21. data/lib/rouge/lexers/ceylon.rb +1 -29
  22. data/lib/rouge/lexers/cfscript.rb +26 -26
  23. data/lib/rouge/lexers/clojure.rb +14 -14
  24. data/lib/rouge/lexers/cmake.rb +14 -14
  25. data/lib/rouge/lexers/coffeescript.rb +30 -30
  26. data/lib/rouge/lexers/common_lisp.rb +36 -36
  27. data/lib/rouge/lexers/conf.rb +6 -6
  28. data/lib/rouge/lexers/coq.rb +18 -18
  29. data/lib/rouge/lexers/cpp.rb +8 -8
  30. data/lib/rouge/lexers/crystal.rb +70 -70
  31. data/lib/rouge/lexers/csharp.rb +28 -28
  32. data/lib/rouge/lexers/css.rb +23 -23
  33. data/lib/rouge/lexers/d.rb +59 -59
  34. data/lib/rouge/lexers/dart.rb +33 -33
  35. data/lib/rouge/lexers/digdag.rb +1 -1
  36. data/lib/rouge/lexers/docker.rb +10 -10
  37. data/lib/rouge/lexers/dot.rb +16 -16
  38. data/lib/rouge/lexers/eiffel.rb +20 -20
  39. data/lib/rouge/lexers/elixir.rb +29 -28
  40. data/lib/rouge/lexers/elm.rb +29 -29
  41. data/lib/rouge/lexers/erb.rb +4 -4
  42. data/lib/rouge/lexers/factor.rb +40 -40
  43. data/lib/rouge/lexers/fortran.rb +32 -32
  44. data/lib/rouge/lexers/fsharp.rb +26 -26
  45. data/lib/rouge/lexers/gherkin.rb +13 -13
  46. data/lib/rouge/lexers/glsl.rb +0 -4
  47. data/lib/rouge/lexers/go.rb +1 -1
  48. data/lib/rouge/lexers/graphql.rb +62 -62
  49. data/lib/rouge/lexers/groovy.rb +23 -25
  50. data/lib/rouge/lexers/hack.rb +1 -1
  51. data/lib/rouge/lexers/haml.rb +25 -29
  52. data/lib/rouge/lexers/handlebars.rb +18 -18
  53. data/lib/rouge/lexers/haskell.rb +66 -65
  54. data/lib/rouge/lexers/hcl.rb +25 -25
  55. data/lib/rouge/lexers/html.rb +31 -31
  56. data/lib/rouge/lexers/http.rb +4 -4
  57. data/lib/rouge/lexers/hylang.rb +14 -14
  58. data/lib/rouge/lexers/idlang.rb +32 -32
  59. data/lib/rouge/lexers/igorpro.rb +30 -30
  60. data/lib/rouge/lexers/ini.rb +12 -12
  61. data/lib/rouge/lexers/io.rb +7 -7
  62. data/lib/rouge/lexers/irb.rb +5 -5
  63. data/lib/rouge/lexers/java.rb +24 -24
  64. data/lib/rouge/lexers/javascript.rb +51 -51
  65. data/lib/rouge/lexers/jinja.rb +22 -22
  66. data/lib/rouge/lexers/json.rb +11 -10
  67. data/lib/rouge/lexers/json_doc.rb +2 -2
  68. data/lib/rouge/lexers/jsonnet.rb +18 -18
  69. data/lib/rouge/lexers/jsp.rb +28 -28
  70. data/lib/rouge/lexers/jsx.rb +16 -16
  71. data/lib/rouge/lexers/julia.rb +44 -44
  72. data/lib/rouge/lexers/kotlin.rb +3 -3
  73. data/lib/rouge/lexers/lasso.rb +50 -50
  74. data/lib/rouge/lexers/liquid.rb +53 -53
  75. data/lib/rouge/lexers/literate_coffeescript.rb +2 -2
  76. data/lib/rouge/lexers/literate_haskell.rb +5 -5
  77. data/lib/rouge/lexers/llvm.rb +23 -16
  78. data/lib/rouge/lexers/lua.rb +3 -3
  79. data/lib/rouge/lexers/m68k.rb +18 -19
  80. data/lib/rouge/lexers/magik.rb +126 -0
  81. data/lib/rouge/lexers/make.rb +22 -28
  82. data/lib/rouge/lexers/markdown.rb +37 -37
  83. data/lib/rouge/lexers/mathematica.rb +11 -11
  84. data/lib/rouge/lexers/matlab.rb +20 -20
  85. data/lib/rouge/lexers/moonscript.rb +3 -3
  86. data/lib/rouge/lexers/mosel.rb +17 -17
  87. data/lib/rouge/lexers/mxml.rb +18 -18
  88. data/lib/rouge/lexers/nasm.rb +24 -25
  89. data/lib/rouge/lexers/nginx.rb +14 -14
  90. data/lib/rouge/lexers/nim.rb +1 -1
  91. data/lib/rouge/lexers/nix.rb +42 -42
  92. data/lib/rouge/lexers/objective_c.rb +38 -38
  93. data/lib/rouge/lexers/ocaml.rb +29 -29
  94. data/lib/rouge/lexers/pascal.rb +4 -4
  95. data/lib/rouge/lexers/perl.rb +68 -68
  96. data/lib/rouge/lexers/php.rb +38 -38
  97. data/lib/rouge/lexers/plist.rb +14 -14
  98. data/lib/rouge/lexers/pony.rb +19 -19
  99. data/lib/rouge/lexers/powershell.rb +25 -25
  100. data/lib/rouge/lexers/praat.rb +75 -75
  101. data/lib/rouge/lexers/prolog.rb +26 -20
  102. data/lib/rouge/lexers/prometheus.rb +30 -30
  103. data/lib/rouge/lexers/properties.rb +12 -12
  104. data/lib/rouge/lexers/protobuf.rb +22 -22
  105. data/lib/rouge/lexers/puppet.rb +31 -31
  106. data/lib/rouge/lexers/python.rb +52 -52
  107. data/lib/rouge/lexers/q.rb +12 -12
  108. data/lib/rouge/lexers/qml.rb +12 -12
  109. data/lib/rouge/lexers/r.rb +12 -12
  110. data/lib/rouge/lexers/racket.rb +22 -22
  111. data/lib/rouge/lexers/ruby.rb +71 -69
  112. data/lib/rouge/lexers/rust.rb +30 -30
  113. data/lib/rouge/lexers/sass.rb +8 -8
  114. data/lib/rouge/lexers/sass/common.rb +40 -40
  115. data/lib/rouge/lexers/scala.rb +43 -43
  116. data/lib/rouge/lexers/scheme.rb +18 -18
  117. data/lib/rouge/lexers/scss.rb +3 -3
  118. data/lib/rouge/lexers/sed.rb +29 -29
  119. data/lib/rouge/lexers/shell.rb +61 -52
  120. data/lib/rouge/lexers/sieve.rb +8 -8
  121. data/lib/rouge/lexers/slim.rb +24 -24
  122. data/lib/rouge/lexers/smalltalk.rb +33 -33
  123. data/lib/rouge/lexers/smarty.rb +12 -12
  124. data/lib/rouge/lexers/sml.rb +67 -67
  125. data/lib/rouge/lexers/sqf.rb +1 -1
  126. data/lib/rouge/lexers/sql.rb +21 -21
  127. data/lib/rouge/lexers/supercollider.rb +19 -19
  128. data/lib/rouge/lexers/swift.rb +42 -39
  129. data/lib/rouge/lexers/tap.rb +20 -20
  130. data/lib/rouge/lexers/tcl.rb +27 -27
  131. data/lib/rouge/lexers/terraform.rb +13 -13
  132. data/lib/rouge/lexers/tex.rb +19 -19
  133. data/lib/rouge/lexers/toml.rb +18 -18
  134. data/lib/rouge/lexers/tulip.rb +36 -36
  135. data/lib/rouge/lexers/turtle.rb +35 -38
  136. data/lib/rouge/lexers/vala.rb +17 -17
  137. data/lib/rouge/lexers/vb.rb +27 -27
  138. data/lib/rouge/lexers/verilog.rb +25 -27
  139. data/lib/rouge/lexers/vhdl.rb +10 -10
  140. data/lib/rouge/lexers/viml.rb +14 -14
  141. data/lib/rouge/lexers/vue.rb +9 -9
  142. data/lib/rouge/lexers/wollok.rb +25 -25
  143. data/lib/rouge/lexers/xml.rb +17 -21
  144. data/lib/rouge/lexers/xojo.rb +15 -15
  145. data/lib/rouge/lexers/yaml.rb +61 -61
  146. data/lib/rouge/plugins/redcarpet.rb +1 -1
  147. data/lib/rouge/tex_theme_renderer.rb +128 -0
  148. data/lib/rouge/theme.rb +4 -0
  149. data/lib/rouge/themes/magritte.rb +78 -0
  150. data/lib/rouge/version.rb +1 -1
  151. metadata +11 -2
@@ -68,7 +68,7 @@ module Rouge
68
68
  push :property
69
69
  end
70
70
  rule %r/\bfun\b/, Keyword
71
- rule /\b(?:#{keywords.join('|')})\b/, Keyword
71
+ rule %r/\b(?:#{keywords.join('|')})\b/, Keyword
72
72
  rule %r'^\s*\[.*?\]', Name::Attribute
73
73
  rule %r'[^\S\n]+', Text
74
74
  rule %r'\\\n', Text # line continuation
@@ -85,12 +85,12 @@ module Rouge
85
85
  rule %r'"(\\\\|\\"|[^"\n])*["\n]'m, Str
86
86
  rule %r"'\\.'|'[^\\]'", Str::Char
87
87
  rule %r"[0-9](\.[0-9]+)?([eE][+-][0-9]+)?[flFL]?|0[xX][0-9a-fA-F]+[Ll]?", Num
88
- rule /@#{id}/, Name::Decorator
88
+ rule %r/@#{id}/, Name::Decorator
89
89
  rule id, Name
90
90
  end
91
91
 
92
92
  state :package do
93
- rule /\S+/, Name::Namespace, :pop!
93
+ rule %r/\S+/, Name::Namespace, :pop!
94
94
  end
95
95
 
96
96
  state :class do
@@ -39,7 +39,7 @@ module Rouge
39
39
  end
40
40
 
41
41
  # Load Lasso keywords from separate YML file
42
- @keywords = ::YAML.load_file(Pathname.new(__FILE__).dirname.join('lasso/keywords.yml')).tap do |h|
42
+ @keywords = ::YAML.load_file(File.join(__dir__, 'lasso/keywords.yml')).tap do |h|
43
43
  h.each do |k,v|
44
44
  h[k] = Set.new v
45
45
  end
@@ -48,23 +48,23 @@ module Rouge
48
48
  id = /[a-z_][\w.]*/i
49
49
 
50
50
  state :root do
51
- rule /^#![ \S]+lasso9\b/, Comment::Preproc, :lasso
51
+ rule %r/^#![ \S]+lasso9\b/, Comment::Preproc, :lasso
52
52
  rule(/(?=\[|<)/) { push :delimiters }
53
- rule /\s+/, Text::Whitespace
53
+ rule %r/\s+/, Text::Whitespace
54
54
  rule(//) { push :delimiters; push :lassofile }
55
55
  end
56
56
 
57
57
  state :delimiters do
58
- rule /\[no_square_brackets\]/, Comment::Preproc, :nosquarebrackets
59
- rule /\[noprocess\]/, Comment::Preproc, :noprocess
60
- rule /\[/, Comment::Preproc, :squarebrackets
61
- rule /<\?(lasso(script)?|=)/i, Comment::Preproc, :anglebrackets
58
+ rule %r/\[no_square_brackets\]/, Comment::Preproc, :nosquarebrackets
59
+ rule %r/\[noprocess\]/, Comment::Preproc, :noprocess
60
+ rule %r/\[/, Comment::Preproc, :squarebrackets
61
+ rule %r/<\?(lasso(script)?|=)/i, Comment::Preproc, :anglebrackets
62
62
  rule(/([^\[<]|<!--.*?-->|<(script|style).*?\2>|<(?!\?(lasso(script)?|=)))+/im) { delegate parent }
63
63
  end
64
64
 
65
65
  state :nosquarebrackets do
66
- rule /\[noprocess\]/, Comment::Preproc, :noprocess
67
- rule /<\?(lasso(script)?|=)/i, Comment::Preproc, :anglebrackets
66
+ rule %r/\[noprocess\]/, Comment::Preproc, :noprocess
67
+ rule %r/<\?(lasso(script)?|=)/i, Comment::Preproc, :anglebrackets
68
68
  rule(/([^\[<]|<!--.*?-->|<(script|style).*?\2>|<(?!\?(lasso(script)?|=))|\[(?!noprocess))+/im) { delegate parent }
69
69
  end
70
70
 
@@ -74,22 +74,22 @@ module Rouge
74
74
  end
75
75
 
76
76
  state :squarebrackets do
77
- rule /\]/, Comment::Preproc, :pop!
77
+ rule %r/\]/, Comment::Preproc, :pop!
78
78
  mixin :lasso
79
79
  end
80
80
 
81
81
  state :anglebrackets do
82
- rule /\?>/, Comment::Preproc, :pop!
82
+ rule %r/\?>/, Comment::Preproc, :pop!
83
83
  mixin :lasso
84
84
  end
85
85
 
86
86
  state :lassofile do
87
- rule /\]|\?>/, Comment::Preproc, :pop!
87
+ rule %r/\]|\?>/, Comment::Preproc, :pop!
88
88
  mixin :lasso
89
89
  end
90
90
 
91
91
  state :whitespacecomments do
92
- rule /\s+/, Text
92
+ rule %r/\s+/, Text
93
93
  rule %r(//.*?\n), Comment::Single
94
94
  rule %r(/\*\*!.*?\*/)m, Comment::Doc
95
95
  rule %r(/\*.*?\*/)m, Comment::Multiline
@@ -99,43 +99,43 @@ module Rouge
99
99
  mixin :whitespacecomments
100
100
 
101
101
  # literals
102
- rule /\d*\.\d+(e[+-]?\d+)?/i, Num::Float
103
- rule /0x[\da-f]+/i, Num::Hex
104
- rule /\d+/, Num::Integer
105
- rule /(infinity|NaN)\b/i, Num
106
- rule /'[^'\\]*(\\.[^'\\]*)*'/m, Str::Single
107
- rule /"[^"\\]*(\\.[^"\\]*)*"/m, Str::Double
108
- rule /`[^`]*`/m, Str::Backtick
102
+ rule %r/\d*\.\d+(e[+-]?\d+)?/i, Num::Float
103
+ rule %r/0x[\da-f]+/i, Num::Hex
104
+ rule %r/\d+/, Num::Integer
105
+ rule %r/(infinity|NaN)\b/i, Num
106
+ rule %r/'[^'\\]*(\\.[^'\\]*)*'/m, Str::Single
107
+ rule %r/"[^"\\]*(\\.[^"\\]*)*"/m, Str::Double
108
+ rule %r/`[^`]*`/m, Str::Backtick
109
109
 
110
110
  # names
111
- rule /\$#{id}/, Name::Variable
112
- rule /#(#{id}|\d+\b)/, Name::Variable::Instance
113
- rule /(\.\s*)('#{id}')/ do
111
+ rule %r/\$#{id}/, Name::Variable
112
+ rule %r/#(#{id}|\d+\b)/, Name::Variable::Instance
113
+ rule %r/(\.\s*)('#{id}')/ do
114
114
  groups Name::Builtin::Pseudo, Name::Variable::Class
115
115
  end
116
- rule /(self)(\s*->\s*)('#{id}')/i do
116
+ rule %r/(self)(\s*->\s*)('#{id}')/i do
117
117
  groups Name::Builtin::Pseudo, Operator, Name::Variable::Class
118
118
  end
119
- rule /(\.\.?\s*)(#{id}(=(?!=))?)/ do
119
+ rule %r/(\.\.?\s*)(#{id}(=(?!=))?)/ do
120
120
  groups Name::Builtin::Pseudo, Name::Other
121
121
  end
122
- rule /(->\\?\s*|&\s*)(#{id}(=(?!=))?)/ do
122
+ rule %r/(->\\?\s*|&\s*)(#{id}(=(?!=))?)/ do
123
123
  groups Operator, Name::Other
124
124
  end
125
- rule /(?<!->)(self|inherited|currentcapture|givenblock)\b/i, Name::Builtin::Pseudo
126
- rule /-(?!infinity)#{id}/i, Name::Attribute
127
- rule /::\s*#{id}/, Name::Label
128
- rule /error_((code|msg)_\w+|adderror|columnrestriction|databaseconnectionunavailable|databasetimeout|deleteerror|fieldrestriction|filenotfound|invaliddatabase|invalidpassword|invalidusername|modulenotfound|noerror|nopermission|outofmemory|reqcolumnmissing|reqfieldmissing|requiredcolumnmissing|requiredfieldmissing|updateerror)/i, Name::Exception
125
+ rule %r/(?<!->)(self|inherited|currentcapture|givenblock)\b/i, Name::Builtin::Pseudo
126
+ rule %r/-(?!infinity)#{id}/i, Name::Attribute
127
+ rule %r/::\s*#{id}/, Name::Label
128
+ rule %r/error_((code|msg)_\w+|adderror|columnrestriction|databaseconnectionunavailable|databasetimeout|deleteerror|fieldrestriction|filenotfound|invaliddatabase|invalidpassword|invalidusername|modulenotfound|noerror|nopermission|outofmemory|reqcolumnmissing|reqfieldmissing|requiredcolumnmissing|requiredfieldmissing|updateerror)/i, Name::Exception
129
129
 
130
130
  # definitions
131
- rule /(define)(\s+)(#{id})(\s*=>\s*)(type|trait|thread)\b/i do
131
+ rule %r/(define)(\s+)(#{id})(\s*=>\s*)(type|trait|thread)\b/i do
132
132
  groups Keyword::Declaration, Text, Name::Class, Operator, Keyword
133
133
  end
134
134
  rule %r((define)(\s+)(#{id})(\s*->\s*)(#{id}=?|[-+*/%]))i do
135
135
  groups Keyword::Declaration, Text, Name::Class, Operator, Name::Function
136
136
  push :signature
137
137
  end
138
- rule /(define)(\s+)(#{id})/i do
138
+ rule %r/(define)(\s+)(#{id})/i do
139
139
  groups Keyword::Declaration, Text, Name::Function
140
140
  push :signature
141
141
  end
@@ -143,25 +143,25 @@ module Rouge
143
143
  groups Keyword, Text, Name::Function
144
144
  push :signature
145
145
  end
146
- rule /(public|protected|private|provide)(\s+)(#{id})/i do
146
+ rule %r/(public|protected|private|provide)(\s+)(#{id})/i do
147
147
  groups Keyword, Text, Name::Function
148
148
  end
149
149
 
150
150
  # keywords
151
- rule /(true|false|none|minimal|full|all|void)\b/i, Keyword::Constant
152
- rule /(local|var|variable|global|data(?=\s))\b/i, Keyword::Declaration
153
- rule /(array|date|decimal|duration|integer|map|pair|string|tag|xml|null|boolean|bytes|keyword|list|locale|queue|set|stack|staticarray)\b/i, Keyword::Type
154
- rule /(#{id})(\s+)(in)\b/i do
151
+ rule %r/(true|false|none|minimal|full|all|void)\b/i, Keyword::Constant
152
+ rule %r/(local|var|variable|global|data(?=\s))\b/i, Keyword::Declaration
153
+ rule %r/(array|date|decimal|duration|integer|map|pair|string|tag|xml|null|boolean|bytes|keyword|list|locale|queue|set|stack|staticarray)\b/i, Keyword::Type
154
+ rule %r/(#{id})(\s+)(in)\b/i do
155
155
  groups Name, Text, Keyword
156
156
  end
157
- rule /(let|into)(\s+)(#{id})/i do
157
+ rule %r/(let|into)(\s+)(#{id})/i do
158
158
  groups Keyword, Text, Name
159
159
  end
160
160
 
161
161
  # other
162
- rule /,/, Punctuation, :commamember
163
- rule /(and|or|not)\b/i, Operator::Word
164
- rule /(#{id})(\s*::\s*#{id})?(\s*=(?!=|>))/ do
162
+ rule %r/,/, Punctuation, :commamember
163
+ rule %r/(and|or|not)\b/i, Operator::Word
164
+ rule %r/(#{id})(\s*::\s*#{id})?(\s*=(?!=|>))/ do
165
165
  groups Name, Name::Label, Operator
166
166
  end
167
167
 
@@ -183,31 +183,31 @@ module Rouge
183
183
  end
184
184
  end
185
185
 
186
- rule /(=)(n?bw|n?ew|n?cn|lte?|gte?|n?eq|n?rx|ft)\b/i do
186
+ rule %r/(=)(n?bw|n?ew|n?cn|lte?|gte?|n?eq|n?rx|ft)\b/i do
187
187
  groups Operator, Operator::Word
188
188
  end
189
189
  rule %r(:=|[-+*/%=<>&|!?\\]+), Operator
190
- rule /[{}():;,@^]/, Punctuation
190
+ rule %r/[{}():;,@^]/, Punctuation
191
191
  end
192
192
 
193
193
  state :signature do
194
- rule /\=>/, Operator, :pop!
195
- rule /\)/, Punctuation, :pop!
196
- rule /[(,]/, Punctuation, :parameter
194
+ rule %r/\=>/, Operator, :pop!
195
+ rule %r/\)/, Punctuation, :pop!
196
+ rule %r/[(,]/, Punctuation, :parameter
197
197
  mixin :lasso
198
198
  end
199
199
 
200
200
  state :parameter do
201
- rule /\)/, Punctuation, :pop!
202
- rule /-?#{id}/, Name::Attribute, :pop!
203
- rule /\.\.\./, Name::Builtin::Pseudo
201
+ rule %r/\)/, Punctuation, :pop!
202
+ rule %r/-?#{id}/, Name::Attribute, :pop!
203
+ rule %r/\.\.\./, Name::Builtin::Pseudo
204
204
  mixin :lasso
205
205
  end
206
206
 
207
207
  state :commamember do
208
208
  rule %r((#{id}=?|[-+*/%])(?=\s*(\(([^()]*\([^()]*\))*[^\)]*\)\s*)?(::[\w.\s]+)?=>)), Name::Function, :signature
209
209
  mixin :whitespacecomments
210
- rule //, Text, :pop!
210
+ rule %r//, Text, :pop!
211
211
  end
212
212
 
213
213
  end
@@ -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
 
@@ -89,7 +89,7 @@ module Rouge
89
89
  end
90
90
 
91
91
  # other tags or blocks
92
- rule /([^\s%]+)(\s*)/ do
92
+ rule %r/([^\s%]+)(\s*)/ do
93
93
  groups Name::Tag, Text::Whitespace
94
94
  push :tag_markup
95
95
  end
@@ -99,8 +99,8 @@ module Rouge
99
99
  mixin :whitespace
100
100
  mixin :generic
101
101
 
102
- rule /\}\}/, Punctuation, :pop!
103
- rule /\|/, Punctuation, :filters
102
+ rule %r/\}\}/, Punctuation, :pop!
103
+ rule %r/\|/, Punctuation, :filters
104
104
  end
105
105
 
106
106
  state :filters do
@@ -108,14 +108,14 @@ module Rouge
108
108
 
109
109
  rule(/\}\}/) { token Punctuation; reset_stack }
110
110
 
111
- rule /([^\s\|:]+)(:?)(\s*)/ do
111
+ rule %r/([^\s\|:]+)(:?)(\s*)/ do
112
112
  groups Name::Function, Punctuation, Text::Whitespace
113
113
  push :filter_markup
114
114
  end
115
115
  end
116
116
 
117
117
  state :filter_markup do
118
- rule /\|/, Punctuation, :pop!
118
+ rule %r/\|/, Punctuation, :pop!
119
119
 
120
120
  mixin :end_of_tag
121
121
  mixin :end_of_block
@@ -126,13 +126,13 @@ module Rouge
126
126
  mixin :end_of_block
127
127
  mixin :whitespace
128
128
 
129
- rule /([=!><]=?)/, Operator
129
+ rule %r/([=!><]=?)/, Operator
130
130
 
131
- rule /\b((!)|(not\b))/ do
132
- groups nil, Operator, Operator::Word
131
+ rule %r/\b(?:(!)|(not\b))/ do
132
+ groups Operator, Operator::Word
133
133
  end
134
134
 
135
- rule /(contains)/, Operator::Word
135
+ rule %r/(contains)/, Operator::Word
136
136
 
137
137
  mixin :generic
138
138
  mixin :whitespace
@@ -145,12 +145,12 @@ module Rouge
145
145
  end
146
146
 
147
147
  state :operator do
148
- rule /(\s*)((=|!|>|<)=?)(\s*)/ do
149
- groups Text::Whitespace, Operator, nil, Text::Whitespace
148
+ rule %r/(\s*)((?:=|!|>|<)=?)(\s*)/ do
149
+ groups Text::Whitespace, Operator, Text::Whitespace
150
150
  pop!
151
151
  end
152
152
 
153
- rule /(\s*)(\bcontains\b)(\s*)/ do
153
+ rule %r/(\s*)(\bcontains\b)(\s*)/ do
154
154
  groups Text::Whitespace, Operator::Word, Text::Whitespace
155
155
  pop!
156
156
  end
@@ -169,29 +169,29 @@ module Rouge
169
169
  mixin :whitespace
170
170
  mixin :string
171
171
 
172
- rule /([^\s=:]+)(\s*)(=|:)/ do
172
+ rule %r/([^\s=:]+)(\s*)(=|:)/ do
173
173
  groups Name::Attribute, Text::Whitespace, Operator
174
174
  end
175
175
 
176
- rule /(\{\{)(\s*)([^\s\}])(\s*)(\}\})/ do
177
- groups Punctuation, Text::Whitespace, nil, Text::Whitespace, Punctuation
176
+ rule %r/(\{\{)(\s*)([^\s\}])(\s*)(\}\})/ do
177
+ groups Punctuation, Text::Whitespace, Text, Text::Whitespace, Punctuation
178
178
  end
179
179
 
180
180
  mixin :number
181
181
  mixin :keyword
182
182
 
183
- rule /,/, Punctuation
183
+ rule %r/,/, Punctuation
184
184
  end
185
185
 
186
186
  state :default_param_markup do
187
187
  mixin :param_markup
188
- rule /./, Text
188
+ rule %r/./, Text
189
189
  end
190
190
 
191
191
  state :variable_param_markup do
192
192
  mixin :param_markup
193
193
  mixin :variable
194
- rule /./, Text
194
+ rule %r/./, Text
195
195
  end
196
196
 
197
197
  state :tag_markup do
@@ -206,27 +206,27 @@ module Rouge
206
206
 
207
207
  # states for different values types
208
208
  state :keyword do
209
- rule /\b(false|true)\b/, Keyword::Constant
209
+ rule %r/\b(false|true)\b/, Keyword::Constant
210
210
  end
211
211
 
212
212
  state :variable do
213
- rule /\.(?=\w)/, Punctuation
214
- rule /[a-zA-Z_]\w*\??/, Name::Variable
213
+ rule %r/\.(?=\w)/, Punctuation
214
+ rule %r/[a-zA-Z_]\w*\??/, Name::Variable
215
215
  end
216
216
 
217
217
  state :string do
218
- rule /'[^']*'/, Str::Single
219
- rule /"[^"]*"/, Str::Double
218
+ rule %r/'[^']*'/, Str::Single
219
+ rule %r/"[^"]*"/, Str::Double
220
220
  end
221
221
 
222
222
  state :number do
223
- rule /\d+\.\d+/, Num::Float
224
- rule /\d+/, Num::Integer
223
+ rule %r/\d+\.\d+/, Num::Float
224
+ rule %r/\d+/, Num::Integer
225
225
  end
226
226
 
227
227
  state :array_index do
228
- rule /\[/, Punctuation
229
- rule /\]/, Punctuation
228
+ rule %r/\[/, Punctuation
229
+ rule %r/\]/, Punctuation
230
230
  end
231
231
 
232
232
  state :generic do
@@ -238,38 +238,38 @@ module Rouge
238
238
  end
239
239
 
240
240
  state :whitespace do
241
- rule /[ \t]+/, Text::Whitespace
241
+ rule %r/[ \t]+/, Text::Whitespace
242
242
  end
243
243
 
244
244
  state :comment do
245
- rule /(\{%)(\s*)(endcomment)(\s*)(%\})/ do
245
+ rule %r/(\{%)(\s*)(endcomment)(\s*)(%\})/ do
246
246
  groups Punctuation, Text::Whitespace, Name::Tag, Text::Whitespace, Punctuation
247
247
  reset_stack
248
248
  end
249
249
 
250
- rule /./, Comment
250
+ rule %r/./, Comment
251
251
  end
252
252
 
253
253
  state :raw do
254
- rule /[^\{]+/, Text
254
+ rule %r/[^\{]+/, Text
255
255
 
256
- rule /(\{%)(\s*)(endraw)(\s*)(%\})/ do
256
+ rule %r/(\{%)(\s*)(endraw)(\s*)(%\})/ do
257
257
  groups Punctuation, Text::Whitespace, Name::Tag, Text::Whitespace, Punctuation
258
258
  reset_stack
259
259
  end
260
260
 
261
- rule /\{/, Text
261
+ rule %r/\{/, Text
262
262
  end
263
263
 
264
264
  state :assign do
265
265
  mixin :whitespace
266
266
  mixin :end_of_block
267
267
 
268
- rule /(\s*)(=)(\s*)/ do
268
+ rule %r/(\s*)(=)(\s*)/ do
269
269
  groups Text::Whitespace, Operator, Text::Whitespace
270
270
  end
271
271
 
272
- rule /\|/, Punctuation, :filters
272
+ rule %r/\|/, Punctuation, :filters
273
273
 
274
274
  mixin :generic
275
275
  end
@@ -277,7 +277,7 @@ module Rouge
277
277
  state :include do
278
278
  mixin :whitespace
279
279
 
280
- rule /([^\.]+)(\.)(html|liquid)/ do
280
+ rule %r/([^\.]+)(\.)(html|liquid)/ do
281
281
  groups Name::Attribute, Punctuation, Name::Attribute
282
282
  end
283
283