rouge 4.7.0 → 5.0.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 (165) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +11 -4
  3. data/bin/rougify +3 -4
  4. data/lib/rouge/cli.rb +7 -10
  5. data/lib/rouge/demos/abap +30 -4
  6. data/lib/rouge/demos/dylan +8 -0
  7. data/lib/rouge/demos/kick_assembler +14 -0
  8. data/lib/rouge/demos/pdf +29 -0
  9. data/lib/rouge/demos/thrift +15 -0
  10. data/lib/rouge/demos/veryl +24 -0
  11. data/lib/rouge/eager.rb +3 -0
  12. data/lib/rouge/formatters/html.rb +8 -1
  13. data/lib/rouge/formatters/html_debug.rb +16 -0
  14. data/lib/rouge/formatters/html_legacy.rb +15 -1
  15. data/lib/rouge/formatters/html_legacy_table.rb +57 -0
  16. data/lib/rouge/formatters/html_line_highlighter.rb +11 -4
  17. data/lib/rouge/formatters/html_line_table.rb +8 -3
  18. data/lib/rouge/formatters/html_linewise.rb +11 -2
  19. data/lib/rouge/formatters/html_pygments.rb +6 -1
  20. data/lib/rouge/formatters/html_table.rb +47 -21
  21. data/lib/rouge/formatters/terminal256.rb +3 -3
  22. data/lib/rouge/formatters/tex.rb +1 -1
  23. data/lib/rouge/guesser.rb +1 -1
  24. data/lib/rouge/guessers/disambiguation.rb +2 -2
  25. data/lib/rouge/guessers/glob_mapping.rb +2 -2
  26. data/lib/rouge/guessers/modeline.rb +2 -2
  27. data/lib/rouge/lexer.rb +40 -21
  28. data/lib/rouge/lexers/abap/builtins.rb +187 -0
  29. data/lib/rouge/lexers/abap.rb +70 -178
  30. data/lib/rouge/lexers/ada.rb +1 -1
  31. data/lib/rouge/lexers/apache/keywords.rb +3 -11
  32. data/lib/rouge/lexers/apache.rb +25 -24
  33. data/lib/rouge/lexers/apex.rb +2 -2
  34. data/lib/rouge/lexers/apiblueprint.rb +2 -2
  35. data/lib/rouge/lexers/bicep.rb +2 -2
  36. data/lib/rouge/lexers/biml.rb +36 -9
  37. data/lib/rouge/lexers/brightscript.rb +3 -4
  38. data/lib/rouge/lexers/c.rb +9 -5
  39. data/lib/rouge/lexers/console.rb +11 -5
  40. data/lib/rouge/lexers/cpp.rb +10 -12
  41. data/lib/rouge/lexers/crystal.rb +1 -1
  42. data/lib/rouge/lexers/css.rb +21 -2
  43. data/lib/rouge/lexers/cuda.rb +4 -4
  44. data/lib/rouge/lexers/cython.rb +26 -50
  45. data/lib/rouge/lexers/dafny.rb +1 -1
  46. data/lib/rouge/lexers/dart.rb +2 -0
  47. data/lib/rouge/lexers/datastudio.rb +1 -1
  48. data/lib/rouge/lexers/digdag.rb +2 -3
  49. data/lib/rouge/lexers/dylan.rb +109 -0
  50. data/lib/rouge/lexers/ecl.rb +3 -3
  51. data/lib/rouge/lexers/elixir.rb +14 -9
  52. data/lib/rouge/lexers/escape.rb +1 -1
  53. data/lib/rouge/lexers/factor.rb +1 -1
  54. data/lib/rouge/lexers/freefem.rb +2 -2
  55. data/lib/rouge/lexers/ghc_cmm.rb +1 -1
  56. data/lib/rouge/lexers/ghc_core.rb +1 -1
  57. data/lib/rouge/lexers/gherkin/keywords.rb +10 -6
  58. data/lib/rouge/lexers/gherkin.rb +28 -26
  59. data/lib/rouge/lexers/gjs.rb +2 -2
  60. data/lib/rouge/lexers/glsl/builtins.rb +17 -0
  61. data/lib/rouge/lexers/glsl.rb +50 -113
  62. data/lib/rouge/lexers/go.rb +1 -1
  63. data/lib/rouge/lexers/gradle.rb +2 -2
  64. data/lib/rouge/lexers/groovy.rb +6 -0
  65. data/lib/rouge/lexers/gts.rb +2 -2
  66. data/lib/rouge/lexers/hack.rb +4 -6
  67. data/lib/rouge/lexers/haxe.rb +2 -2
  68. data/lib/rouge/lexers/hlsl.rb +6 -6
  69. data/lib/rouge/lexers/hocon.rb +2 -2
  70. data/lib/rouge/lexers/hql.rb +15 -19
  71. data/lib/rouge/lexers/idris.rb +1 -1
  72. data/lib/rouge/lexers/igorpro/builtins.rb +1530 -0
  73. data/lib/rouge/lexers/igorpro.rb +49 -520
  74. data/lib/rouge/lexers/irb.rb +3 -3
  75. data/lib/rouge/lexers/isbl.rb +7 -43
  76. data/lib/rouge/lexers/j.rb +1 -1
  77. data/lib/rouge/lexers/json5.rb +2 -2
  78. data/lib/rouge/lexers/json_doc.rb +2 -2
  79. data/lib/rouge/lexers/jsp.rb +119 -119
  80. data/lib/rouge/lexers/jsx.rb +2 -2
  81. data/lib/rouge/lexers/kick_assembler.rb +100 -0
  82. data/lib/rouge/lexers/kotlin.rb +5 -0
  83. data/lib/rouge/lexers/lasso/keywords.rb +6 -6
  84. data/lib/rouge/lexers/lasso.rb +9 -11
  85. data/lib/rouge/lexers/liquid.rb +5 -6
  86. data/lib/rouge/lexers/llvm/keywords.rb +3 -12
  87. data/lib/rouge/lexers/llvm.rb +5 -16
  88. data/lib/rouge/lexers/lua/keywords.rb +11 -13
  89. data/lib/rouge/lexers/lua.rb +8 -7
  90. data/lib/rouge/lexers/lutin.rb +5 -4
  91. data/lib/rouge/lexers/m68k.rb +3 -3
  92. data/lib/rouge/lexers/mason.rb +110 -110
  93. data/lib/rouge/lexers/mathematica/keywords.rb +1 -3
  94. data/lib/rouge/lexers/mathematica.rb +6 -7
  95. data/lib/rouge/lexers/matlab/keywords.rb +2 -2
  96. data/lib/rouge/lexers/matlab.rb +5 -5
  97. data/lib/rouge/lexers/meson.rb +1 -1
  98. data/lib/rouge/lexers/mojo.rb +6 -2
  99. data/lib/rouge/lexers/moonscript.rb +19 -17
  100. data/lib/rouge/lexers/nesasm.rb +6 -6
  101. data/lib/rouge/lexers/nial.rb +7 -8
  102. data/lib/rouge/lexers/nim.rb +3 -3
  103. data/lib/rouge/lexers/nix.rb +10 -8
  104. data/lib/rouge/lexers/objective_c.rb +3 -3
  105. data/lib/rouge/lexers/objective_cpp.rb +3 -2
  106. data/lib/rouge/lexers/ocaml.rb +2 -2
  107. data/lib/rouge/lexers/openedge.rb +9 -9
  108. data/lib/rouge/lexers/pdf.rb +109 -0
  109. data/lib/rouge/lexers/php/keywords.rb +136 -138
  110. data/lib/rouge/lexers/php.rb +58 -9
  111. data/lib/rouge/lexers/plsql.rb +8 -9
  112. data/lib/rouge/lexers/postscript.rb +1 -1
  113. data/lib/rouge/lexers/powershell.rb +1 -1
  114. data/lib/rouge/lexers/python.rb +110 -65
  115. data/lib/rouge/lexers/qml.rb +2 -2
  116. data/lib/rouge/lexers/reasonml.rb +2 -2
  117. data/lib/rouge/lexers/rego.rb +53 -53
  118. data/lib/rouge/lexers/rescript.rb +2 -2
  119. data/lib/rouge/lexers/robot_framework.rb +12 -12
  120. data/lib/rouge/lexers/{coq.rb → rocq.rb} +15 -6
  121. data/lib/rouge/lexers/ruby.rb +33 -7
  122. data/lib/rouge/lexers/rust.rb +1 -0
  123. data/lib/rouge/lexers/sas.rb +164 -165
  124. data/lib/rouge/lexers/sass/common.rb +1 -1
  125. data/lib/rouge/lexers/sass.rb +2 -2
  126. data/lib/rouge/lexers/scss.rb +2 -2
  127. data/lib/rouge/lexers/sed.rb +1 -1
  128. data/lib/rouge/lexers/shell.rb +5 -5
  129. data/lib/rouge/lexers/slice.rb +2 -2
  130. data/lib/rouge/lexers/sparql.rb +1 -1
  131. data/lib/rouge/lexers/sqf/keywords.rb +5 -3
  132. data/lib/rouge/lexers/sqf.rb +3 -4
  133. data/lib/rouge/lexers/stan.rb +9 -15
  134. data/lib/rouge/lexers/svelte.rb +2 -2
  135. data/lib/rouge/lexers/swift.rb +2 -2
  136. data/lib/rouge/lexers/tcl.rb +1 -1
  137. data/lib/rouge/lexers/terraform.rb +2 -2
  138. data/lib/rouge/lexers/thrift.rb +120 -0
  139. data/lib/rouge/lexers/tsx.rb +3 -3
  140. data/lib/rouge/lexers/ttcn3.rb +1 -1
  141. data/lib/rouge/lexers/twig.rb +2 -2
  142. data/lib/rouge/lexers/typescript.rb +3 -3
  143. data/lib/rouge/lexers/varnish.rb +8 -8
  144. data/lib/rouge/lexers/veryl.rb +109 -0
  145. data/lib/rouge/lexers/viml/keywords.rb +5 -7
  146. data/lib/rouge/lexers/viml.rb +8 -10
  147. data/lib/rouge/lexers/vue.rb +2 -2
  148. data/lib/rouge/lexers/xquery.rb +2 -1
  149. data/lib/rouge/lexers/yaml.rb +13 -1
  150. data/lib/rouge/lexers/yang.rb +42 -74
  151. data/lib/rouge/lexers/zig.rb +10 -10
  152. data/lib/rouge/plugins/redcarpet.rb +3 -2
  153. data/lib/rouge/regex_lexer.rb +25 -14
  154. data/lib/rouge/themes/gruvbox.rb +3 -0
  155. data/lib/rouge/token.rb +1 -1
  156. data/lib/rouge/util.rb +1 -1
  157. data/lib/rouge/version.rb +1 -1
  158. data/lib/rouge.rb +70 -59
  159. data/lib/rubocop/cop/rouge/no_building_alternation_pattern_in_regexp.rb +71 -0
  160. data/lib/rubocop/cop/rouge/no_huge_collections.rb +37 -0
  161. data/rouge.gemspec +8 -5
  162. metadata +40 -9
  163. data/lib/rouge/lexers/isbl/builtins.rb +0 -17
  164. data/lib/rouge/lexers/matlab/builtins.rb +0 -11
  165. /data/lib/rouge/demos/{coq → rocq} +0 -0
@@ -27,7 +27,7 @@ module Rouge
27
27
  "test setup", "test teardown", "test template", "variables"
28
28
  ]
29
29
  end
30
-
30
+
31
31
  def self.settings_with_args
32
32
  @settings_with_args ||= Set.new [
33
33
  "arguments", "default tags", "documentation", "force tags",
@@ -93,7 +93,7 @@ module Rouge
93
93
  @col = @col + 1
94
94
  push :args
95
95
  end
96
-
96
+
97
97
  rule %r/ ?\|/, Text::Whitespace
98
98
  end
99
99
 
@@ -129,17 +129,17 @@ module Rouge
129
129
  rule %r/([A-Z]+(?: [A-Z]+)?)(:?)/i do |m|
130
130
  match = m[1].downcase
131
131
  @next = if self.class.settings_with_keywords.include? match
132
- :keyword
133
- elsif self.class.settings_with_args.include? match
134
- :args
135
- end
132
+ :keyword
133
+ elsif self.class.settings_with_args.include? match
134
+ :args
135
+ end
136
136
  groups Name::Builtin::Pseudo, Punctuation
137
137
  end
138
138
  end
139
139
 
140
140
  state :section_tests do
141
141
  mixin :section_include
142
-
142
+
143
143
  rule %r/[$@&%{}]+/, Name::Label
144
144
  rule %r/( )(?![ |])/, Name::Label
145
145
 
@@ -155,15 +155,15 @@ module Rouge
155
155
 
156
156
  state :section_keywords do
157
157
  mixin :section_include
158
-
158
+
159
159
  rule %r/[$@&%]\{/ do
160
160
  token Name::Variable
161
161
  push :var
162
162
  end
163
-
163
+
164
164
  rule %r/[$@&%{}]+/, Name::Label
165
165
  rule %r/( )(?![ |])/, Name::Label
166
-
166
+
167
167
  rule id, Name::Label
168
168
  end
169
169
 
@@ -185,7 +185,7 @@ module Rouge
185
185
  state :keyword do
186
186
  rule %r/(\[)([A-Z]+(?: [A-Z]+)?)(\])/i do |m|
187
187
  groups Punctuation, Name::Builtin::Pseudo, Punctuation
188
-
188
+
189
189
  match = m[2].downcase
190
190
  @is_template = true if match == "template"
191
191
  if self.class.settings_with_keywords.include? match
@@ -229,7 +229,7 @@ module Rouge
229
229
  rule %r/[$@&%]+/, Str
230
230
  rule %r/( )(?![ |])/, Str
231
231
  rule id, Str
232
-
232
+
233
233
  mixin :return
234
234
  end
235
235
 
@@ -3,11 +3,15 @@
3
3
 
4
4
  module Rouge
5
5
  module Lexers
6
- class Coq < RegexLexer
7
- title "Coq"
8
- desc 'Coq (coq.inria.fr)'
9
- tag 'coq'
10
- mimetypes 'text/x-coq'
6
+ class Rocq < RegexLexer
7
+ title "Rocq"
8
+ desc 'The Rocq Prover (rocq-prover.org)'
9
+ tag 'rocq'
10
+
11
+ # Coq was renamed to Rocq
12
+ # https://github.com/rocq-prover/rfcs/blob/coq-roadmap/text/069-coq-roadmap.md#change-of-name-coq---the-rocq-prover
13
+ aliases 'coq'
14
+ mimetypes 'text/x-coq', 'text/x-rocq'
11
15
 
12
16
  def self.gallina
13
17
  @gallina ||= Set.new %w(
@@ -38,7 +42,7 @@ module Rouge
38
42
  edestruct constructor econstructor eexists exists
39
43
  f_equal refine instantiate revert simpl
40
44
  specialize generalize dependent red induction
41
- beta iota zeta delta exfalso autorewrite setoid_rewrite
45
+ beta iota zeta delta exfalso autorewrite
42
46
  compute vm_compute native_compute
43
47
  )
44
48
  end
@@ -176,6 +180,8 @@ module Rouge
176
180
  rule %r(:=|=>|;|:>|:|::|_), Punctuation
177
181
  rule %r(->|/\\|\\/|;|:>|[⇒→↔⇔≔≡∀∃∧∨¬⊤⊥⊢⊨∈λ]), Operator
178
182
 
183
+ # [jneen] TODO: it is not ideal that we don't actually yield all of the
184
+ # consumed text here.
179
185
  rule id do |m|
180
186
  @name = m[0]
181
187
  @id_dotted = false
@@ -251,5 +257,8 @@ module Rouge
251
257
  end
252
258
  end
253
259
  end
260
+
261
+ # legacy
262
+ Coq = Rocq
254
263
  end
255
264
  end
@@ -106,7 +106,7 @@ module Rouge
106
106
  end
107
107
 
108
108
  keywords = %w(
109
- BEGIN END alias begin break case defined\? do else elsif end
109
+ BEGIN END alias begin break case defined? do else elsif end
110
110
  ensure for if in next redo rescue raise retry return super then
111
111
  undef unless until when while yield
112
112
  )
@@ -186,8 +186,18 @@ module Rouge
186
186
 
187
187
  mixin :strings
188
188
 
189
- rule %r/(?:#{keywords.join('|')})(?=\W|$)/, Keyword, :expr_start
190
- rule %r/(?:#{keywords_pseudo.join('|')})\b/, Keyword::Pseudo, :expr_start
189
+ rule %r/\w+[?]?/ do |m|
190
+ if keywords.include?(m[0])
191
+ token Keyword
192
+ elsif keywords_pseudo.include?(m[0])
193
+ token Keyword::Pseudo
194
+ else
195
+ fallthrough!
196
+ end
197
+
198
+ push :expr_start
199
+ end
200
+
191
201
  rule %r/(not|and|or)\b/, Operator::Word, :expr_start
192
202
 
193
203
  rule %r(
@@ -208,10 +218,26 @@ module Rouge
208
218
  push :classname
209
219
  end
210
220
 
211
- rule %r/(?:#{builtins_q.join('|')})[?]/, Name::Builtin, :expr_start
212
- rule %r/(?:#{builtins_b.join('|')})!/, Name::Builtin, :expr_start
213
- rule %r/(?<!\.)(?:#{builtins_g.join('|')})\b/,
214
- Name::Builtin, :method_call
221
+ rule %r/(\w+)([?!])?/ do |m|
222
+ if m[2] == "?" && builtins_q.include?(m[1])
223
+ token Name::Builtin
224
+ elsif m[2] == "!" && builtins_b.include?(m[1])
225
+ token Name::Builtin
226
+ else
227
+ fallthrough!
228
+ end
229
+
230
+ push :expr_start
231
+ end
232
+
233
+ rule %r/(?<![.])\w+/ do |m|
234
+ if builtins_g.include?(m[0])
235
+ token Name::Builtin
236
+ push :method_call
237
+ else
238
+ fallthrough!
239
+ end
240
+ end
215
241
 
216
242
  mixin :has_heredocs
217
243
 
@@ -253,6 +253,7 @@ module Rouge
253
253
  state :string do
254
254
  rule %r/"/, Str, :pop!
255
255
  rule escapes, Str::Escape
256
+ rule %r/\\\n[ \t\r\n]*/, Str::Escape
256
257
  rule %r/[^"\\]+/m, Str
257
258
  end
258
259
  end
@@ -13,13 +13,13 @@ module Rouge
13
13
  # from Data step statements - SAS 9.4 Statements reference
14
14
  # http://support.sas.com/documentation/cdl/en/lestmtsref/68024/PDF/default/lestmtsref.pdf
15
15
  @data_step_statements ||= Set.new %w(
16
- ABORT ARRAY ATTRIB BY CALL CARDS CARDS4 CATNAME CHECKPOINT
16
+ ABORT ARRAY ATTRIB BY CALL CARDS CARDS4 CATNAME CHECKPOINT
17
17
  EXECUTE_ALWAYS CONTINUE DATA DATALINES DATALINES4 DELETE DESCRIBE
18
18
  DISPLAY DM DO UNTIL WHILE DROP END ENDSAS ERROR EXECUTE FILE FILENAME
19
19
  FOOTNOTE FORMAT GO TO IF THEN ELSE INFILE INFORMAT INPUT
20
20
  KEEP LABEL LEAVE LENGTH LIBNAME LINK LIST LOCK LOSTCARD MERGE
21
21
  MISSING MODIFY OPTIONS OUTPUT PAGE PUT PUTLOG REDIRECT REMOVE RENAME
22
- REPLACE RESETLINE RETAIN RETURN RUN SASFILE SELECT SET SKIP STOP
22
+ REPLACE RESETLINE RETAIN RETURN RUN SASFILE SELECT SET SKIP STOP
23
23
  SYSECHO TITLE UPDATE WHERE WINDOW X
24
24
  )
25
25
  # label:
@@ -137,193 +137,192 @@ module Rouge
137
137
  )
138
138
  end
139
139
 
140
- def self.proc_keywords
140
+ def self.proc_keywords
141
141
  # Create a hash with keywords for common PROCs, keyed by PROC name
142
142
  @proc_keywords ||= {}
143
143
 
144
- @proc_keywords["SQL"] ||= Set.new %w(
145
- ALTER TABLE CONNECT CREATE INDEX VIEW DELETE DESCRIBE DISCONNECT DROP EXECUTE
146
- INSERT RESET SELECT UPDATE VALIDATE ADD CONSTRAINT DROP FOREIGN KEY PRIMARY
147
- MODIFY LIKE AS ORDER BY USING FROM INTO SET VALUES RESET DISTINCT UNIQUE
148
- WHERE GROUP HAVING LEFT RIGHT INNER JOIN ON
149
- )
144
+ @proc_keywords["SQL"] ||= Set.new %w(
145
+ ALTER TABLE CONNECT CREATE INDEX VIEW DELETE DESCRIBE DISCONNECT DROP EXECUTE
146
+ INSERT RESET SELECT UPDATE VALIDATE ADD CONSTRAINT FOREIGN KEY PRIMARY
147
+ MODIFY LIKE AS ORDER BY USING FROM INTO SET VALUES DISTINCT UNIQUE
148
+ WHERE GROUP HAVING LEFT RIGHT INNER JOIN ON
149
+ )
150
150
  # from SAS 9.4 SQL Procedure User's Guide
151
151
 
152
- @proc_keywords["MEANS"] ||= Set.new %w(
153
- BY CLASS FREQ ID OUTPUT OUT TYPES VAR WAYS WEIGHT
154
- ATTRIB FORMAT LABEL WHERE
155
- DESCENDING NOTSORTED
156
- NOTHREADS NOTRAP PCTLDEF SUMSIZE THREADS CLASSDATA COMPLETETYPES
157
- EXCLUSIVE MISSING FW MAXDEC NONOBS NOPRINT ORDER FORMATTED FREQ
158
- UNFORMATTED PRINT PRINTALLTYPES PRINTIDVARS STACKODSOUTPUT
159
- CHARTYPE DESCENDTYPES IDMIN
160
- ALPHA EXCLNPWGT QMARKERS QMETHOD QNTLDEF VARDEF
161
- CLM CSS CV KURTOSIS KURT LCLM MAX MEAN MIN MODE N
162
- NMISS RANGE SKEWNESS SKEW STDDEV STD STDERR SUM SUMWGT UCLM USS VAR
163
- MEDIAN P50 Q1 P25 Q3 P75 P1 P90 P5 P95 P10 P99 P20 P30 P40 P60 P70
164
- P80 QRANGE
165
- PROBT PRT T
166
- ASCENDING GROUPINTERNAL MLF PRELOADFMT
167
- MAXID AUTOLABEL AUTONAME KEEPLEN LEVELS NOINHERIT
168
- )
152
+ @proc_keywords["MEANS"] ||= Set.new %w(
153
+ BY CLASS FREQ ID OUTPUT OUT TYPES VAR WAYS WEIGHT
154
+ ATTRIB FORMAT LABEL WHERE
155
+ DESCENDING NOTSORTED
156
+ NOTHREADS NOTRAP PCTLDEF SUMSIZE THREADS CLASSDATA COMPLETETYPES
157
+ EXCLUSIVE MISSING FW MAXDEC NONOBS NOPRINT ORDER FORMATTED
158
+ UNFORMATTED PRINT PRINTALLTYPES PRINTIDVARS STACKODSOUTPUT
159
+ CHARTYPE DESCENDTYPES IDMIN
160
+ ALPHA EXCLNPWGT QMARKERS QMETHOD QNTLDEF VARDEF
161
+ CLM CSS CV KURTOSIS KURT LCLM MAX MEAN MIN MODE N
162
+ NMISS RANGE SKEWNESS SKEW STDDEV STD STDERR SUM SUMWGT UCLM USS
163
+ MEDIAN P50 Q1 P25 Q3 P75 P1 P90 P5 P95 P10 P99 P20 P30 P40 P60 P70
164
+ P80 QRANGE
165
+ PROBT PRT T
166
+ ASCENDING GROUPINTERNAL MLF PRELOADFMT
167
+ MAXID AUTOLABEL AUTONAME KEEPLEN LEVELS NOINHERIT
168
+ )
169
169
  # from BASE SAS 9.4 Procedures Guide, Fifth Edition
170
170
 
171
- @proc_keywords["DATASETS"] ||= Set.new %w(
172
- AGE APPEND ATTRIB AUDIT CHANGE CONTENTS COPY DELETE EXCHANGE
173
- EXCLUDE FORMAT IC CREATE DELETE REACTIVATE INDEX CENTILES INFORMAT
174
- INITIATE LABEL LOG MODIFY REBUILD RENAME REPAIR RESUME SAVE SELECT
175
- SUSPEND TERMINATE USER_VAR XATTR ADD OPTIONS REMOVE SET
176
- )
171
+ @proc_keywords["DATASETS"] ||= Set.new %w(
172
+ AGE APPEND ATTRIB AUDIT CHANGE CONTENTS COPY DELETE EXCHANGE
173
+ EXCLUDE FORMAT IC CREATE REACTIVATE INDEX CENTILES INFORMAT
174
+ INITIATE LABEL LOG MODIFY REBUILD RENAME REPAIR RESUME SAVE SELECT
175
+ SUSPEND TERMINATE USER_VAR XATTR ADD OPTIONS REMOVE SET
176
+ )
177
177
  # from BASE SAS 9.4 Procedures Guide, Fifth Edition
178
178
 
179
- @proc_keywords["SORT"] ||= Set.new %w(
180
- BY DESCENDING KEY ASCENDING ASC DESC DATECOPY FORCE OVERWRITE
181
- PRESORTED SORTSIZE TAGSORT DUPOUT OUT UNIQUEOUT NODUPKEY NOUNIQUEKEY
182
- NOTHREADS THREADS EQUALS NOEQUALS
183
- ATTRIB FORMAT LABEL WHERE
184
- )
179
+ @proc_keywords["SORT"] ||= Set.new %w(
180
+ BY DESCENDING KEY ASCENDING ASC DESC DATECOPY FORCE OVERWRITE
181
+ PRESORTED SORTSIZE TAGSORT DUPOUT OUT UNIQUEOUT NODUPKEY NOUNIQUEKEY
182
+ NOTHREADS THREADS EQUALS NOEQUALS
183
+ ATTRIB FORMAT LABEL WHERE
184
+ )
185
185
  # from BASE SAS 9.4 Procedures Guide, Fifth Edition
186
186
 
187
- @proc_keywords["PRINT"] ||= Set.new %w(
188
- BY DESCENDING NOTSORTED PAGEBY SUMBY ID STYLE SUM VAR CONTENTS DATA
189
- GRANDTOTAL_LABEL HEADING LABEL SPLIT SUMLABEL NOSUMLABEL
190
- BLANKLINE COUNT DOUBLE N NOOBS OBS ROUND
191
- ROWS UNIFORM WIDTH
192
- ATTRIB FORMAT LABEL WHERE
193
- )
187
+ @proc_keywords["PRINT"] ||= Set.new %w(
188
+ BY DESCENDING NOTSORTED PAGEBY SUMBY ID STYLE SUM VAR CONTENTS DATA
189
+ GRANDTOTAL_LABEL HEADING LABEL SPLIT SUMLABEL NOSUMLABEL
190
+ BLANKLINE COUNT DOUBLE N NOOBS OBS ROUND
191
+ ROWS UNIFORM WIDTH
192
+ ATTRIB FORMAT WHERE
193
+ )
194
194
  # from BASE SAS 9.4 Procedures Guide, Fifth Edition
195
195
 
196
- @proc_keywords["APPEND"] ||= Set.new %w(
197
- BASE APPENDVER DATA ENCRYPTKEY FORCE GETSORT NOWARN
198
- ATTRIB FORMAT LABEL WHERE
199
- )
196
+ @proc_keywords["APPEND"] ||= Set.new %w(
197
+ BASE APPENDVER DATA ENCRYPTKEY FORCE GETSORT NOWARN
198
+ ATTRIB FORMAT LABEL WHERE
199
+ )
200
200
  # from BASE SAS 9.4 Procedures Guide, Fifth Edition
201
201
 
202
- @proc_keywords["TRANSPOSE"] ||= Set.new %w(
203
- DELIMITER LABEL LET NAME OUT PREFIX SUFFIX BY DESCENDING NOTSORTED
204
- COPY ID IDLABEL VAR INDB
205
- ATTRIB FORMAT LABEL WHERE
206
- )
202
+ @proc_keywords["TRANSPOSE"] ||= Set.new %w(
203
+ DELIMITER LABEL LET NAME OUT PREFIX SUFFIX BY DESCENDING NOTSORTED
204
+ COPY ID IDLABEL VAR INDB
205
+ ATTRIB FORMAT WHERE
206
+ )
207
207
  # from BASE SAS 9.4 Procedures Guide, Fifth Edition
208
208
 
209
- @proc_keywords["FREQ"] ||= Set.new %w(
210
- BY EXACT OUTPUT TABLES TEST WEIGHT
211
- COMPRESS DATA FORMCHAR NLEVELS NOPRINT ORDER PAGE FORMATTED FREQ
212
- INTERNAL
213
- AGREE BARNARD BINOMIAL BIN CHISQ COMOR EQOR ZELEN FISHER JT KAPPA
214
- KENTB TAUB LRCHI MCNEM MEASURES MHCHI OR ODDSRATIO PCHI PCORR RELRISK
215
- RISKDIFF SCORR SMDCR SMDRC STUTC TAUC TREND WTKAP WTKAPPA
216
- OUT AJCHI ALL BDCHI CMH CMH1 CMH2 CMHCOR CMHGA CMHRMS COCHQ CONTGY
217
- CRAMV EQKAP EQWKP GAMMA GS GAILSIMON LAMCR LAMDAS LAMRC LGOR LGRRC1
218
- LGRRC2 MHOR MHRRC1 MHRRC2 N NMISS PHI PLCORR RDIF1 RDIF2 RISKDIFF1
219
- RISKDIFF2 RRC1 RELRISK1 RRC2 RELRISK2 RSK1 RISK1 RSK11 RISK11 RSK12
220
- RISK12 RSK21 RISK21 RSK22 RISK22 TSYMM BOWKER U UCR URC
221
- CELLCHI2 CUMCOL DEVIATION EXPECTED MISSPRINT PEARSONREF PRINTWKTS
222
- SCOROUT SPARSE STDRES TOTPCT
223
- CONTENTS CROSSLIST FORMAT LIST MAXLEVELS NOCOL NOCUM NOFREQ NOPERCENT
224
- NOPRINT NOROW NOSPARSE NOWARN PLOTS OUT OUTCUM OUTEXPECT OUTPCT
225
- ZEROS
226
- )
209
+ @proc_keywords["FREQ"] ||= Set.new %w(
210
+ BY EXACT OUTPUT TABLES TEST WEIGHT
211
+ COMPRESS DATA FORMCHAR NLEVELS NOPRINT ORDER PAGE FORMATTED FREQ
212
+ INTERNAL
213
+ AGREE BARNARD BINOMIAL BIN CHISQ COMOR EQOR ZELEN FISHER JT KAPPA
214
+ KENTB TAUB LRCHI MCNEM MEASURES MHCHI OR ODDSRATIO PCHI PCORR RELRISK
215
+ RISKDIFF SCORR SMDCR SMDRC STUTC TAUC TREND WTKAP WTKAPPA
216
+ OUT AJCHI ALL BDCHI CMH CMH1 CMH2 CMHCOR CMHGA CMHRMS COCHQ CONTGY
217
+ CRAMV EQKAP EQWKP GAMMA GS GAILSIMON LAMCR LAMDAS LAMRC LGOR LGRRC1
218
+ LGRRC2 MHOR MHRRC1 MHRRC2 N NMISS PHI PLCORR RDIF1 RDIF2 RISKDIFF1
219
+ RISKDIFF2 RRC1 RELRISK1 RRC2 RELRISK2 RSK1 RISK1 RSK11 RISK11 RSK12
220
+ RISK12 RSK21 RISK21 RSK22 RISK22 TSYMM BOWKER U UCR URC
221
+ CELLCHI2 CUMCOL DEVIATION EXPECTED MISSPRINT PEARSONREF PRINTWKTS
222
+ SCOROUT SPARSE STDRES TOTPCT
223
+ CONTENTS CROSSLIST FORMAT LIST MAXLEVELS NOCOL NOCUM NOFREQ NOPERCENT NOROW NOSPARSE NOWARN PLOTS OUTCUM OUTEXPECT OUTPCT
224
+ ZEROS
225
+ )
227
226
  # from Base SAS 9.4 Procedures Guide: Statistical Procedures, Fourth Edition
228
227
 
229
- @proc_keywords["CORR"] ||= Set.new %w(
230
- BY FREQ ID PARTIAL VAR WEIGHT WITH
231
- DATA OUTH OUTK OUTP OUTPLC OUTPLS OUTS
232
- EXCLNPWGHT FISHER HOEFFDING KENDALL NOMISS PEARSON POLYCHORIC
233
- POLYSERIAL ALPHA COV CSSCP SINGULAR SSCP VARDEF PLOTS MATRIX SCATTER
234
- BEST NOCORR NOPRINT NOPROB NOSIMPLE RANK
235
- )
228
+ @proc_keywords["CORR"] ||= Set.new %w(
229
+ BY FREQ ID PARTIAL VAR WEIGHT WITH
230
+ DATA OUTH OUTK OUTP OUTPLC OUTPLS OUTS
231
+ EXCLNPWGHT FISHER HOEFFDING KENDALL NOMISS PEARSON POLYCHORIC
232
+ POLYSERIAL ALPHA COV CSSCP SINGULAR SSCP VARDEF PLOTS MATRIX SCATTER
233
+ BEST NOCORR NOPRINT NOPROB NOSIMPLE RANK
234
+ )
236
235
  # from Base SAS 9.4 Procedures Guide: Statistical Procedures, Fourth Edition
237
236
 
238
- @proc_keywords["REPORT"] ||= Set.new %w(
239
- BREAK BY DESCENDING NOTSORTED COLUMN COMPUTE STYLE LINE ENDCOMP
240
- CALL DEFINE _ROW_ FREQ RBREAK WEIGHT
241
- ATTRIB FORMAT LABEL WHERE
242
- DATA NOALIAS NOCENTER NOCOMPLETECOLS NOCOMPLETEROWS NOTHREADS
243
- NOWINDOWS OUT PCTLDEF THREADS WINDOWS COMPLETECOLS NOCOMPLETECOLS
244
- COMPLETEROWS NOCOMPLETEROWS CONTENTS SPANROWS COMMAND HELP PROMPT
245
- BOX BYPAGENO CENTER NOCENTER COLWIDTH FORMCHAR LS MISSING PANELS PS
246
- PSPACE SHOWALL SPACING WRAP EXCLNPWGT QMARKERS QMETHOD QNTLDEF VARDEF
247
- NAMED NOHEADER SPLIT HEADLINE HEADSKIP LIST NOEXEC OUTREPT PROFILE
248
- REPORT
249
- COLOR DOL DUL OL PAGE SKIP SUMMARIZE SUPPRESS UL
250
- BLINK COMMAND HIGHLIGHT RVSVIDEO MERGE REPLACE URL URLBP URLP
251
- AFTER BEFORE _PAGE_ LEFT RIGHT CHARACTER LENGTH
252
- EXCLUSIVE MISSING MLF ORDER DATA FORMATTED FREQ INTERNAL PRELOADFMT
253
- WIDTH
254
- ACROSS ANALYSIS COMPUTED DISPLAY GROUP ORDER
255
- CONTENTS FLOW ID NOPRINT NOZERO PAGE
256
- CSS CV MAX MEAN MIN MODE N NMISS PCTN PCTSUM RANGE STD STDERR SUM
257
- SUMWGT USS VAR
258
- MEDIAN P50 Q1 P25 Q3 P75 P1 P90 P5 P95 P10 P99 P20 P30 P40 P60 P70
259
- P80 QRANGE
260
- PROBT PRT T
261
- )
237
+ @proc_keywords["REPORT"] ||= Set.new %w(
238
+ BREAK BY DESCENDING NOTSORTED COLUMN COMPUTE STYLE LINE ENDCOMP
239
+ CALL DEFINE _ROW_ FREQ RBREAK WEIGHT
240
+ ATTRIB FORMAT LABEL WHERE
241
+ DATA NOALIAS NOCENTER NOCOMPLETECOLS NOCOMPLETEROWS NOTHREADS
242
+ NOWINDOWS OUT PCTLDEF THREADS WINDOWS COMPLETECOLS
243
+ COMPLETEROWS CONTENTS SPANROWS COMMAND HELP PROMPT
244
+ BOX BYPAGENO CENTER COLWIDTH FORMCHAR LS MISSING PANELS PS
245
+ PSPACE SHOWALL SPACING WRAP EXCLNPWGT QMARKERS QMETHOD QNTLDEF VARDEF
246
+ NAMED NOHEADER SPLIT HEADLINE HEADSKIP LIST NOEXEC OUTREPT PROFILE
247
+ REPORT
248
+ COLOR DOL DUL OL PAGE SKIP SUMMARIZE SUPPRESS UL
249
+ BLINK HIGHLIGHT RVSVIDEO MERGE REPLACE URL URLBP URLP
250
+ AFTER BEFORE _PAGE_ LEFT RIGHT CHARACTER LENGTH
251
+ EXCLUSIVE MLF ORDER FORMATTED INTERNAL PRELOADFMT
252
+ WIDTH
253
+ ACROSS ANALYSIS COMPUTED DISPLAY GROUP FLOW ID NOPRINT NOZERO
254
+ CSS CV MAX MEAN MIN MODE N NMISS PCTN PCTSUM RANGE STD STDERR SUM
255
+ SUMWGT USS VAR
256
+ MEDIAN P50 Q1 P25 Q3 P75 P1 P90 P5 P95 P10 P99 P20 P30 P40 P60 P70
257
+ P80 QRANGE
258
+ PROBT PRT T
259
+ )
262
260
  # from BASE SAS 9.4 Procedures Guide, Fifth Edition
263
261
 
264
- @proc_keywords["METALIB"] ||= Set.new %w(
265
- OMR DBAUTH DBUSER DBPASSWORD EXCLUDE SELECT READ FOLDER FOLDERID
266
- IMPACT_LIMIT NOEXEC PREFIX REPORT UPDATE_RULE DELETE NOADD NODELDUP
267
- NOUPDATE
268
- LIBID LIBRARY LIBURI
269
- TYPE DETAIL SUMMARY
270
- )
262
+ @proc_keywords["METALIB"] ||= Set.new %w(
263
+ OMR DBAUTH DBUSER DBPASSWORD EXCLUDE SELECT READ FOLDER FOLDERID
264
+ IMPACT_LIMIT NOEXEC PREFIX REPORT UPDATE_RULE DELETE NOADD NODELDUP
265
+ NOUPDATE
266
+ LIBID LIBRARY LIBURI
267
+ TYPE DETAIL SUMMARY
268
+ )
271
269
  # from SAS 9.4 Language Interfaces to Metadata, Third Edition
272
270
 
273
- @proc_keywords["GCHART"] ||= Set.new %w(
274
- DATA ANNOTATE GOUT IMAGEMAP BLOCK HBAR HBAR3D VBAR VBAR3D PIE PIE3D
275
- DONUT STAR ANNO
276
- BY NOTE FORMAT LABEL WHERE
277
- BLOCKMAX CAXIS COUTLINE CTEXT LEGEND NOHEADING NOLEGEND PATTERNID
278
- GROUP MIDPOINT SUBGROUP WOUTLINE DESCRIPTION NAME DISCRETE LEVELS
279
- OLD MISSING HTML_LEGEND HTML URL FREQ G100 SUMVAR TYPE
280
- CAUTOREF CERROR CFRAME CLM CREF FRAME NOFRAME GSPACE IFRAME
281
- IMAGESTYLE TILE FIT LAUTOREF NOSYMBOL PATTERNID SHAPE SPACE
282
- SUBOUTSIDE WAUTOREF WIDTH WOUTLINE WREF
283
- ASCENDING AUTOREF CLIPREF DESCENDING FRONTREF GAXIS MAXIS MINOR
284
- NOAXIS NOBASEREF NOZERO RANGE AXIS REF CFREQ CFREQLABEL NONE CPERCENT
285
- CPERCENTLABEL ERRORBAR BARS BOTH TOP FREQLABEL INSIDE MEAN MEANLABEL
286
- NOSTATS OUTSIDE PERCENT PERCENTLABEL PERCENTSUM SUM
287
- CFILL COUTLINE DETAIL_RADIUS EXPLODE FILL SOLID X INVISIBLE NOHEADING
288
- RADIUS WOUTLINE DETAIL_THRESHOLD DETAIL_PERCENT DETAIL_SLICE
289
- DETAIL_VALUE DONUTPCT LABEL ACROSS DOWN GROUP NOGROUPHEADING SUBGROUP
290
- MATCHCOLOR OTHERCOLOR OTHERLABEL PERCENT ARROW PLABEL PPERCENT SLICE
291
- VALUE
292
- ANGLE ASCENDING CLOCKWISE DESCENDING JSTYLE
293
- NOCONNECT STARMAX STARMIN
294
- )
271
+ @proc_keywords["GCHART"] ||= Set.new %w(
272
+ DATA ANNOTATE GOUT IMAGEMAP BLOCK HBAR HBAR3D VBAR VBAR3D PIE PIE3D
273
+ DONUT STAR ANNO
274
+ BY NOTE FORMAT LABEL WHERE
275
+ BLOCKMAX CAXIS COUTLINE CTEXT LEGEND NOHEADING NOLEGEND PATTERNID
276
+ GROUP MIDPOINT SUBGROUP WOUTLINE DESCRIPTION NAME DISCRETE LEVELS
277
+ OLD MISSING HTML_LEGEND HTML URL FREQ G100 SUMVAR TYPE
278
+ CAUTOREF CERROR CFRAME CLM CREF FRAME NOFRAME GSPACE IFRAME
279
+ IMAGESTYLE TILE FIT LAUTOREF NOSYMBOL SHAPE SPACE
280
+ SUBOUTSIDE WAUTOREF WIDTH WREF
281
+ ASCENDING AUTOREF CLIPREF DESCENDING FRONTREF GAXIS MAXIS MINOR
282
+ NOAXIS NOBASEREF NOZERO RANGE AXIS REF CFREQ CFREQLABEL NONE CPERCENT
283
+ CPERCENTLABEL ERRORBAR BARS BOTH TOP FREQLABEL INSIDE MEAN MEANLABEL
284
+ NOSTATS OUTSIDE PERCENT PERCENTLABEL PERCENTSUM SUM
285
+ CFILL DETAIL_RADIUS EXPLODE FILL SOLID X INVISIBLE
286
+ RADIUS DETAIL_THRESHOLD DETAIL_PERCENT DETAIL_SLICE
287
+ DETAIL_VALUE DONUTPCT ACROSS DOWN NOGROUPHEADING
288
+ MATCHCOLOR OTHERCOLOR OTHERLABEL ARROW PLABEL PPERCENT SLICE
289
+ VALUE
290
+ ANGLE CLOCKWISE JSTYLE
291
+ NOCONNECT STARMAX STARMIN
292
+ )
295
293
  # from SAS GRAPH 9.4 Reference, Fourth Edition
296
294
 
297
- @proc_keywords["GPLOT"] ||= Set.new %w(
298
- DATA ANNOTATE GOUT IMAGEMAP UNIFORM BUBBLE BUBBLE2 PLOT PLOT2
299
- BCOLOR BFILL BFONT BLABEL BSCALE AREA RADIUS BSIZE DESCRIPTION NAME
300
- AUTOHREF CAUTOHREF CHREF HAXIS HMINOR HREF HREVERSE HZERO LAUTOHREF
301
- LHREF WAUTOHREF WHREF HTML URL
302
- CAXIS CFRAME CTEXT DATAORDER FRAME NOFRAME FRONTREF GRID IFRAME
303
- IMAGESTYLE TILE FIT NOAXIS
304
- AUTOVREF CAUTOVREF CVREF LAUTOVREF LVREF VAXIS VMINOR VREF VREVERSE
305
- VZERO WAUTOVREF WVREF
306
- CBASELINE COUTLINE
307
- AREAS GRID LEGEND NOLASTAREA NOLEGEND OVERLAY REGEQN SKIPMISS
308
- )
295
+ @proc_keywords["GPLOT"] ||= Set.new %w(
296
+ DATA ANNOTATE GOUT IMAGEMAP UNIFORM BUBBLE BUBBLE2 PLOT PLOT2
297
+ BCOLOR BFILL BFONT BLABEL BSCALE AREA RADIUS BSIZE DESCRIPTION NAME
298
+ AUTOHREF CAUTOHREF CHREF HAXIS HMINOR HREF HREVERSE HZERO LAUTOHREF
299
+ LHREF WAUTOHREF WHREF HTML URL
300
+ CAXIS CFRAME CTEXT DATAORDER FRAME NOFRAME FRONTREF GRID IFRAME
301
+ IMAGESTYLE TILE FIT NOAXIS
302
+ AUTOVREF CAUTOVREF CVREF LAUTOVREF LVREF VAXIS VMINOR VREF VREVERSE
303
+ VZERO WAUTOVREF WVREF
304
+ CBASELINE COUTLINE
305
+ AREAS LEGEND NOLASTAREA NOLEGEND OVERLAY REGEQN SKIPMISS
306
+ )
309
307
  # from SAS GRAPH 9.4 Reference, Fourth Edition
310
308
 
311
- @proc_keywords["REG"] ||= Set.new %w(
312
- MODEL BY FREQ ID VAR WEIGHT ADD CODE DELETE MTEST OUTPUT PAINT
313
- PLOT PRINT REFIT RESTRICT REWEIGHT STORE TEST
314
- )
315
- # from SAS/STAT 15.1 User's Guide
316
-
317
- @proc_keywords["SGPLOT"] ||= Set.new %w(
318
- STYLEATTRS BAND X Y UPPER LOWER BLOCK BUBBLE DENSITY DOT DROPLINE
319
- ELLIPSE ELLIPSEPARM FRINGE GRADLEGEND HBAR HBARBASIC HBARPARM
320
- HBOX HEATMAP HEATMAPPARM HIGHLOW HISTOGRAM HLINE INSET KEYLEGEND
321
- LINEPARM LOESS NEEDLE PBSPLINE POLYGON REFLINE REG SCATTER SERIES
322
- SPLINE STEP SYMBOLCHAR SYMBOLIMAGE TEXT VBAR VBARBASIC VBARPARM
323
- VBOX VECTOR VLINE WATERFALL XAXIS X2AXIS XAXISTABLE YAXIS Y2AXIS
324
- YAXISTABLE
325
- )
326
- # from ODS Graphics: Procedures Guide, Sixth Edition
309
+ @proc_keywords["REG"] ||= Set.new %w(
310
+ MODEL BY FREQ ID VAR WEIGHT ADD CODE DELETE MTEST OUTPUT PAINT
311
+ PLOT PRINT REFIT RESTRICT REWEIGHT STORE TEST
312
+ )
313
+ # from SAS/STAT 15.1 User's Guide
314
+
315
+ @proc_keywords["SGPLOT"] ||= Set.new %w(
316
+ STYLEATTRS BAND X Y UPPER LOWER BLOCK BUBBLE DENSITY DOT DROPLINE
317
+ ELLIPSE ELLIPSEPARM FRINGE GRADLEGEND HBAR HBARBASIC HBARPARM
318
+ HBOX HEATMAP HEATMAPPARM HIGHLOW HISTOGRAM HLINE INSET KEYLEGEND
319
+ LINEPARM LOESS NEEDLE PBSPLINE POLYGON REFLINE REG SCATTER SERIES
320
+ SPLINE STEP SYMBOLCHAR SYMBOLIMAGE TEXT VBAR VBARBASIC VBARPARM
321
+ VBOX VECTOR VLINE WATERFALL XAXIS X2AXIS XAXISTABLE YAXIS Y2AXIS
322
+ YAXISTABLE
323
+ )
324
+
325
+ # from ODS Graphics: Procedures Guide, Sixth Edition
327
326
  return @proc_keywords
328
327
  end
329
328
 
@@ -334,7 +333,7 @@ module Rouge
334
333
  @sas_proc_names ||= Set.new %w(
335
334
  ACCESS ACECLUS ADAPTIVEREG ALLELE ANOM ANOVA APPEND APPSRV ARIMA
336
335
  AUTHLIB AUTOREG BCHOICE BOM BOXPLOT BTL BUILD CALENDAR CALIS CALLRFC
337
- CANCORR CANDISC CAPABILITY CASECONTROL CATALOG CATMOD CDISC CDISC
336
+ CANCORR CANDISC CAPABILITY CASECONTROL CATALOG CATMOD CDISC
338
337
  CHART CIMPORT CLP CLUSTER COMPARE COMPILE COMPUTAB CONTENTS CONVERT
339
338
  COPULA COPY CORR CORRESP COUNTREG CPM CPORT CUSUM CV2VIEW DATEKEYS
340
339
  DATASETS DATASOURCE DB2EXT DB2UTIL DBCSTAB DBF DBLOAD DELETE DIF
@@ -433,7 +432,7 @@ module Rouge
433
432
  # The OF operator should also be highlighted (Language Reference p49)
434
433
  rule %r/\b(of)\b/i, Operator::Word
435
434
  rule %r/\b(like)\b/i, Operator::Word # Language Ref p181
436
-
435
+
437
436
  rule %r/\d+/, Num::Integer
438
437
 
439
438
  rule %r/\$/, Keyword::Type
@@ -467,7 +466,7 @@ module Rouge
467
466
 
468
467
  rule %r/@/, Str::Symbol # line hold specifiers
469
468
  rule %r/\?/, Str::Symbol # used for format modifiers
470
-
469
+
471
470
  rule %r/[^\s]+/, Text # Fallback for anything we haven't matched so far
472
471
  end
473
472
 
@@ -483,7 +482,7 @@ module Rouge
483
482
  else
484
483
  groups Keyword, Text, Name
485
484
  end
486
-
485
+
487
486
  push :proc
488
487
  end
489
488
 
@@ -541,7 +540,7 @@ module Rouge
541
540
  # PROCS
542
541
  state :proc do
543
542
  rule %r/(quit|run)/i, Keyword, :pop!
544
-
543
+
545
544
  mixin :basics
546
545
  rule %r/\w+/ do |m|
547
546
  if self.class.data_step_statements.include? m[0].upcase
@@ -67,7 +67,7 @@ module Rouge
67
67
  rule(id) do |m|
68
68
  if CSS.builtins.include? m[0]
69
69
  token Name::Builtin
70
- elsif CSS.constants.include? m[0]
70
+ elsif CSS.colors.include? m[0]
71
71
  token Name::Constant
72
72
  else
73
73
  token Name
@@ -1,10 +1,10 @@
1
1
  # -*- coding: utf-8 -*- #
2
2
  # frozen_string_literal: true
3
3
 
4
+ require_relative 'sass/common'
5
+
4
6
  module Rouge
5
7
  module Lexers
6
- load_lexer 'sass/common.rb'
7
-
8
8
  class Sass < SassCommon
9
9
  include Indentation
10
10
 
@@ -1,10 +1,10 @@
1
1
  # -*- coding: utf-8 -*- #
2
2
  # frozen_string_literal: true
3
3
 
4
+ require_relative 'sass/common'
5
+
4
6
  module Rouge
5
7
  module Lexers
6
- load_lexer 'sass/common.rb'
7
-
8
8
  class Scss < SassCommon
9
9
  title "SCSS"
10
10
  desc "SCSS stylesheets (sass-lang.com)"
@@ -70,7 +70,7 @@ module Rouge
70
70
  mixin :addr_range
71
71
  end
72
72
 
73
- edot = /\\.|./m
73
+ edot = /\\.|[^\\]/m
74
74
 
75
75
  state :command do
76
76
  mixin :whitespace