rouge-alda 3.3.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 (335) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +28 -0
  3. data/LICENSE +186 -0
  4. data/bin/rougify +18 -0
  5. data/lib/rouge/cli.rb +432 -0
  6. data/lib/rouge/demos/abap +6 -0
  7. data/lib/rouge/demos/actionscript +4 -0
  8. data/lib/rouge/demos/alda +10 -0
  9. data/lib/rouge/demos/apache +21 -0
  10. data/lib/rouge/demos/apiblueprint +33 -0
  11. data/lib/rouge/demos/applescript +2 -0
  12. data/lib/rouge/demos/awk +4 -0
  13. data/lib/rouge/demos/biml +38 -0
  14. data/lib/rouge/demos/bsl +7 -0
  15. data/lib/rouge/demos/c +8 -0
  16. data/lib/rouge/demos/ceylon +7 -0
  17. data/lib/rouge/demos/cfscript +18 -0
  18. data/lib/rouge/demos/clojure +5 -0
  19. data/lib/rouge/demos/cmake +7 -0
  20. data/lib/rouge/demos/coffeescript +5 -0
  21. data/lib/rouge/demos/common_lisp +1 -0
  22. data/lib/rouge/demos/conf +4 -0
  23. data/lib/rouge/demos/console +6 -0
  24. data/lib/rouge/demos/coq +13 -0
  25. data/lib/rouge/demos/cpp +8 -0
  26. data/lib/rouge/demos/crystal +45 -0
  27. data/lib/rouge/demos/csharp +5 -0
  28. data/lib/rouge/demos/css +4 -0
  29. data/lib/rouge/demos/d +16 -0
  30. data/lib/rouge/demos/dart +6 -0
  31. data/lib/rouge/demos/diff +7 -0
  32. data/lib/rouge/demos/digdag +19 -0
  33. data/lib/rouge/demos/docker +9 -0
  34. data/lib/rouge/demos/dot +5 -0
  35. data/lib/rouge/demos/eiffel +30 -0
  36. data/lib/rouge/demos/elixir +1 -0
  37. data/lib/rouge/demos/elm +4 -0
  38. data/lib/rouge/demos/erb +1 -0
  39. data/lib/rouge/demos/erlang +7 -0
  40. data/lib/rouge/demos/factor +5 -0
  41. data/lib/rouge/demos/fortran +22 -0
  42. data/lib/rouge/demos/fsharp +12 -0
  43. data/lib/rouge/demos/gherkin +17 -0
  44. data/lib/rouge/demos/glsl +14 -0
  45. data/lib/rouge/demos/go +7 -0
  46. data/lib/rouge/demos/gradle +10 -0
  47. data/lib/rouge/demos/graphql +17 -0
  48. data/lib/rouge/demos/groovy +9 -0
  49. data/lib/rouge/demos/hack +5 -0
  50. data/lib/rouge/demos/haml +5 -0
  51. data/lib/rouge/demos/handlebars +7 -0
  52. data/lib/rouge/demos/haskell +6 -0
  53. data/lib/rouge/demos/hcl +7 -0
  54. data/lib/rouge/demos/html +8 -0
  55. data/lib/rouge/demos/http +14 -0
  56. data/lib/rouge/demos/hylang +10 -0
  57. data/lib/rouge/demos/idlang +8 -0
  58. data/lib/rouge/demos/igorpro +9 -0
  59. data/lib/rouge/demos/ini +4 -0
  60. data/lib/rouge/demos/io +11 -0
  61. data/lib/rouge/demos/irb +4 -0
  62. data/lib/rouge/demos/irb_output +2 -0
  63. data/lib/rouge/demos/java +5 -0
  64. data/lib/rouge/demos/javascript +1 -0
  65. data/lib/rouge/demos/jinja +9 -0
  66. data/lib/rouge/demos/json +1 -0
  67. data/lib/rouge/demos/json-doc +1 -0
  68. data/lib/rouge/demos/jsonnet +28 -0
  69. data/lib/rouge/demos/jsp +29 -0
  70. data/lib/rouge/demos/jsx +17 -0
  71. data/lib/rouge/demos/julia +11 -0
  72. data/lib/rouge/demos/kotlin +3 -0
  73. data/lib/rouge/demos/lasso +12 -0
  74. data/lib/rouge/demos/liquid +11 -0
  75. data/lib/rouge/demos/literate_coffeescript +3 -0
  76. data/lib/rouge/demos/literate_haskell +7 -0
  77. data/lib/rouge/demos/llvm +20 -0
  78. data/lib/rouge/demos/lua +12 -0
  79. data/lib/rouge/demos/m68k +16 -0
  80. data/lib/rouge/demos/make +6 -0
  81. data/lib/rouge/demos/markdown +4 -0
  82. data/lib/rouge/demos/mathematica +8 -0
  83. data/lib/rouge/demos/matlab +6 -0
  84. data/lib/rouge/demos/moonscript +16 -0
  85. data/lib/rouge/demos/mosel +10 -0
  86. data/lib/rouge/demos/mxml +22 -0
  87. data/lib/rouge/demos/nasm +26 -0
  88. data/lib/rouge/demos/nginx +5 -0
  89. data/lib/rouge/demos/nim +27 -0
  90. data/lib/rouge/demos/nix +19 -0
  91. data/lib/rouge/demos/objective_c +18 -0
  92. data/lib/rouge/demos/ocaml +12 -0
  93. data/lib/rouge/demos/pascal +14 -0
  94. data/lib/rouge/demos/perl +5 -0
  95. data/lib/rouge/demos/php +3 -0
  96. data/lib/rouge/demos/plaintext +1 -0
  97. data/lib/rouge/demos/plist +142 -0
  98. data/lib/rouge/demos/pony +17 -0
  99. data/lib/rouge/demos/powershell +49 -0
  100. data/lib/rouge/demos/praat +26 -0
  101. data/lib/rouge/demos/prolog +9 -0
  102. data/lib/rouge/demos/prometheus +9 -0
  103. data/lib/rouge/demos/properties +7 -0
  104. data/lib/rouge/demos/protobuf +5 -0
  105. data/lib/rouge/demos/puppet +6 -0
  106. data/lib/rouge/demos/python +6 -0
  107. data/lib/rouge/demos/q +2 -0
  108. data/lib/rouge/demos/qml +9 -0
  109. data/lib/rouge/demos/r +8 -0
  110. data/lib/rouge/demos/racket +24 -0
  111. data/lib/rouge/demos/ruby +9 -0
  112. data/lib/rouge/demos/rust +12 -0
  113. data/lib/rouge/demos/sass +3 -0
  114. data/lib/rouge/demos/scala +3 -0
  115. data/lib/rouge/demos/scheme +4 -0
  116. data/lib/rouge/demos/scss +5 -0
  117. data/lib/rouge/demos/sed +4 -0
  118. data/lib/rouge/demos/shell +2 -0
  119. data/lib/rouge/demos/sieve +10 -0
  120. data/lib/rouge/demos/slim +17 -0
  121. data/lib/rouge/demos/smalltalk +6 -0
  122. data/lib/rouge/demos/smarty +12 -0
  123. data/lib/rouge/demos/sml +4 -0
  124. data/lib/rouge/demos/sqf +14 -0
  125. data/lib/rouge/demos/sql +1 -0
  126. data/lib/rouge/demos/swift +5 -0
  127. data/lib/rouge/demos/tap +5 -0
  128. data/lib/rouge/demos/tcl +1 -0
  129. data/lib/rouge/demos/terraform +31 -0
  130. data/lib/rouge/demos/tex +1 -0
  131. data/lib/rouge/demos/toml +9 -0
  132. data/lib/rouge/demos/tsx +17 -0
  133. data/lib/rouge/demos/tulip +13 -0
  134. data/lib/rouge/demos/turtle +26 -0
  135. data/lib/rouge/demos/twig +9 -0
  136. data/lib/rouge/demos/typescript +1 -0
  137. data/lib/rouge/demos/vala +8 -0
  138. data/lib/rouge/demos/vb +4 -0
  139. data/lib/rouge/demos/verilog +27 -0
  140. data/lib/rouge/demos/vhdl +23 -0
  141. data/lib/rouge/demos/viml +14 -0
  142. data/lib/rouge/demos/vue +11 -0
  143. data/lib/rouge/demos/wollok +11 -0
  144. data/lib/rouge/demos/xml +2 -0
  145. data/lib/rouge/demos/yaml +4 -0
  146. data/lib/rouge/formatter.rb +76 -0
  147. data/lib/rouge/formatters/html.rb +38 -0
  148. data/lib/rouge/formatters/html_inline.rb +31 -0
  149. data/lib/rouge/formatters/html_legacy.rb +45 -0
  150. data/lib/rouge/formatters/html_linewise.rb +28 -0
  151. data/lib/rouge/formatters/html_pygments.rb +18 -0
  152. data/lib/rouge/formatters/html_table.rb +62 -0
  153. data/lib/rouge/formatters/null.rb +20 -0
  154. data/lib/rouge/formatters/terminal256.rb +181 -0
  155. data/lib/rouge/guesser.rb +57 -0
  156. data/lib/rouge/guessers/disambiguation.rb +106 -0
  157. data/lib/rouge/guessers/filename.rb +27 -0
  158. data/lib/rouge/guessers/glob_mapping.rb +45 -0
  159. data/lib/rouge/guessers/mimetype.rb +16 -0
  160. data/lib/rouge/guessers/modeline.rb +46 -0
  161. data/lib/rouge/guessers/source.rb +31 -0
  162. data/lib/rouge/guessers/util.rb +34 -0
  163. data/lib/rouge/lexer.rb +462 -0
  164. data/lib/rouge/lexers/abap.rb +240 -0
  165. data/lib/rouge/lexers/actionscript.rb +196 -0
  166. data/lib/rouge/lexers/alda.rb +43 -0
  167. data/lib/rouge/lexers/apache/keywords.yml +764 -0
  168. data/lib/rouge/lexers/apache.rb +73 -0
  169. data/lib/rouge/lexers/apiblueprint.rb +49 -0
  170. data/lib/rouge/lexers/apple_script.rb +369 -0
  171. data/lib/rouge/lexers/awk.rb +162 -0
  172. data/lib/rouge/lexers/biml.rb +43 -0
  173. data/lib/rouge/lexers/bsl.rb +82 -0
  174. data/lib/rouge/lexers/c.rb +213 -0
  175. data/lib/rouge/lexers/ceylon.rb +124 -0
  176. data/lib/rouge/lexers/cfscript.rb +154 -0
  177. data/lib/rouge/lexers/clojure.rb +113 -0
  178. data/lib/rouge/lexers/cmake.rb +207 -0
  179. data/lib/rouge/lexers/coffeescript.rb +175 -0
  180. data/lib/rouge/lexers/common_lisp.rb +346 -0
  181. data/lib/rouge/lexers/conf.rb +25 -0
  182. data/lib/rouge/lexers/console.rb +137 -0
  183. data/lib/rouge/lexers/coq.rb +188 -0
  184. data/lib/rouge/lexers/cpp.rb +79 -0
  185. data/lib/rouge/lexers/crystal.rb +430 -0
  186. data/lib/rouge/lexers/csharp.rb +115 -0
  187. data/lib/rouge/lexers/css.rb +274 -0
  188. data/lib/rouge/lexers/d.rb +177 -0
  189. data/lib/rouge/lexers/dart.rb +105 -0
  190. data/lib/rouge/lexers/diff.rb +33 -0
  191. data/lib/rouge/lexers/digdag.rb +70 -0
  192. data/lib/rouge/lexers/docker.rb +51 -0
  193. data/lib/rouge/lexers/dot.rb +69 -0
  194. data/lib/rouge/lexers/eiffel.rb +66 -0
  195. data/lib/rouge/lexers/elixir.rb +134 -0
  196. data/lib/rouge/lexers/elm.rb +90 -0
  197. data/lib/rouge/lexers/erb.rb +53 -0
  198. data/lib/rouge/lexers/erlang.rb +115 -0
  199. data/lib/rouge/lexers/factor.rb +303 -0
  200. data/lib/rouge/lexers/fortran.rb +178 -0
  201. data/lib/rouge/lexers/fsharp.rb +119 -0
  202. data/lib/rouge/lexers/gherkin/keywords.rb +16 -0
  203. data/lib/rouge/lexers/gherkin.rb +138 -0
  204. data/lib/rouge/lexers/glsl.rb +136 -0
  205. data/lib/rouge/lexers/go.rb +175 -0
  206. data/lib/rouge/lexers/gradle.rb +38 -0
  207. data/lib/rouge/lexers/graphql.rb +254 -0
  208. data/lib/rouge/lexers/groovy.rb +113 -0
  209. data/lib/rouge/lexers/hack.rb +49 -0
  210. data/lib/rouge/lexers/haml.rb +230 -0
  211. data/lib/rouge/lexers/handlebars.rb +80 -0
  212. data/lib/rouge/lexers/haskell.rb +198 -0
  213. data/lib/rouge/lexers/hcl.rb +163 -0
  214. data/lib/rouge/lexers/html.rb +140 -0
  215. data/lib/rouge/lexers/http.rb +81 -0
  216. data/lib/rouge/lexers/hylang.rb +94 -0
  217. data/lib/rouge/lexers/idlang.rb +312 -0
  218. data/lib/rouge/lexers/igorpro.rb +664 -0
  219. data/lib/rouge/lexers/ini.rb +54 -0
  220. data/lib/rouge/lexers/io.rb +69 -0
  221. data/lib/rouge/lexers/irb.rb +67 -0
  222. data/lib/rouge/lexers/java.rb +88 -0
  223. data/lib/rouge/lexers/javascript.rb +283 -0
  224. data/lib/rouge/lexers/jinja.rb +138 -0
  225. data/lib/rouge/lexers/json.rb +30 -0
  226. data/lib/rouge/lexers/json_doc.rb +24 -0
  227. data/lib/rouge/lexers/jsonnet.rb +152 -0
  228. data/lib/rouge/lexers/jsp.rb +120 -0
  229. data/lib/rouge/lexers/jsx.rb +104 -0
  230. data/lib/rouge/lexers/julia.rb +167 -0
  231. data/lib/rouge/lexers/kotlin.rb +127 -0
  232. data/lib/rouge/lexers/lasso/keywords.yml +446 -0
  233. data/lib/rouge/lexers/lasso.rb +215 -0
  234. data/lib/rouge/lexers/liquid.rb +288 -0
  235. data/lib/rouge/lexers/literate_coffeescript.rb +34 -0
  236. data/lib/rouge/lexers/literate_haskell.rb +37 -0
  237. data/lib/rouge/lexers/llvm.rb +81 -0
  238. data/lib/rouge/lexers/lua/builtins.rb +24 -0
  239. data/lib/rouge/lexers/lua.rb +126 -0
  240. data/lib/rouge/lexers/m68k.rb +144 -0
  241. data/lib/rouge/lexers/make.rb +113 -0
  242. data/lib/rouge/lexers/markdown.rb +155 -0
  243. data/lib/rouge/lexers/mathematica/builtins.rb +13 -0
  244. data/lib/rouge/lexers/mathematica.rb +96 -0
  245. data/lib/rouge/lexers/matlab/builtins.rb +13 -0
  246. data/lib/rouge/lexers/matlab.rb +72 -0
  247. data/lib/rouge/lexers/moonscript.rb +115 -0
  248. data/lib/rouge/lexers/mosel.rb +232 -0
  249. data/lib/rouge/lexers/mxml.rb +69 -0
  250. data/lib/rouge/lexers/nasm.rb +199 -0
  251. data/lib/rouge/lexers/nginx.rb +72 -0
  252. data/lib/rouge/lexers/nim.rb +153 -0
  253. data/lib/rouge/lexers/nix.rb +211 -0
  254. data/lib/rouge/lexers/objective_c.rb +195 -0
  255. data/lib/rouge/lexers/ocaml.rb +101 -0
  256. data/lib/rouge/lexers/pascal.rb +67 -0
  257. data/lib/rouge/lexers/perl.rb +201 -0
  258. data/lib/rouge/lexers/php/builtins.rb +196 -0
  259. data/lib/rouge/lexers/php.rb +194 -0
  260. data/lib/rouge/lexers/plain_text.rb +27 -0
  261. data/lib/rouge/lexers/plist.rb +47 -0
  262. data/lib/rouge/lexers/pony.rb +94 -0
  263. data/lib/rouge/lexers/powershell.rb +679 -0
  264. data/lib/rouge/lexers/praat.rb +351 -0
  265. data/lib/rouge/lexers/prolog.rb +61 -0
  266. data/lib/rouge/lexers/prometheus.rb +123 -0
  267. data/lib/rouge/lexers/properties.rb +52 -0
  268. data/lib/rouge/lexers/protobuf.rb +71 -0
  269. data/lib/rouge/lexers/puppet.rb +129 -0
  270. data/lib/rouge/lexers/python.rb +247 -0
  271. data/lib/rouge/lexers/q.rb +125 -0
  272. data/lib/rouge/lexers/qml.rb +74 -0
  273. data/lib/rouge/lexers/r.rb +90 -0
  274. data/lib/rouge/lexers/racket.rb +545 -0
  275. data/lib/rouge/lexers/ruby.rb +439 -0
  276. data/lib/rouge/lexers/rust.rb +198 -0
  277. data/lib/rouge/lexers/sass/common.rb +181 -0
  278. data/lib/rouge/lexers/sass.rb +75 -0
  279. data/lib/rouge/lexers/scala.rb +143 -0
  280. data/lib/rouge/lexers/scheme.rb +113 -0
  281. data/lib/rouge/lexers/scss.rb +35 -0
  282. data/lib/rouge/lexers/sed.rb +173 -0
  283. data/lib/rouge/lexers/shell.rb +190 -0
  284. data/lib/rouge/lexers/sieve.rb +97 -0
  285. data/lib/rouge/lexers/slim.rb +229 -0
  286. data/lib/rouge/lexers/smalltalk.rb +117 -0
  287. data/lib/rouge/lexers/smarty.rb +81 -0
  288. data/lib/rouge/lexers/sml.rb +345 -0
  289. data/lib/rouge/lexers/sqf/commands.rb +15 -0
  290. data/lib/rouge/lexers/sqf.rb +109 -0
  291. data/lib/rouge/lexers/sql.rb +141 -0
  292. data/lib/rouge/lexers/swift.rb +182 -0
  293. data/lib/rouge/lexers/tap.rb +89 -0
  294. data/lib/rouge/lexers/tcl.rb +193 -0
  295. data/lib/rouge/lexers/terraform.rb +105 -0
  296. data/lib/rouge/lexers/tex.rb +70 -0
  297. data/lib/rouge/lexers/toml.rb +68 -0
  298. data/lib/rouge/lexers/tsx.rb +20 -0
  299. data/lib/rouge/lexers/tulip.rb +108 -0
  300. data/lib/rouge/lexers/turtle.rb +64 -0
  301. data/lib/rouge/lexers/twig.rb +40 -0
  302. data/lib/rouge/lexers/typescript/common.rb +34 -0
  303. data/lib/rouge/lexers/typescript.rb +23 -0
  304. data/lib/rouge/lexers/vala.rb +78 -0
  305. data/lib/rouge/lexers/vb.rb +165 -0
  306. data/lib/rouge/lexers/verilog.rb +165 -0
  307. data/lib/rouge/lexers/vhdl.rb +98 -0
  308. data/lib/rouge/lexers/viml/keywords.rb +14 -0
  309. data/lib/rouge/lexers/viml.rb +102 -0
  310. data/lib/rouge/lexers/vue.rb +124 -0
  311. data/lib/rouge/lexers/wollok.rb +104 -0
  312. data/lib/rouge/lexers/xml.rb +58 -0
  313. data/lib/rouge/lexers/yaml.rb +374 -0
  314. data/lib/rouge/plugins/redcarpet.rb +31 -0
  315. data/lib/rouge/regex_lexer.rb +442 -0
  316. data/lib/rouge/template_lexer.rb +21 -0
  317. data/lib/rouge/text_analyzer.rb +50 -0
  318. data/lib/rouge/theme.rb +214 -0
  319. data/lib/rouge/themes/base16.rb +131 -0
  320. data/lib/rouge/themes/colorful.rb +68 -0
  321. data/lib/rouge/themes/github.rb +72 -0
  322. data/lib/rouge/themes/gruvbox.rb +168 -0
  323. data/lib/rouge/themes/igor_pro.rb +21 -0
  324. data/lib/rouge/themes/molokai.rb +83 -0
  325. data/lib/rouge/themes/monokai.rb +93 -0
  326. data/lib/rouge/themes/monokai_sublime.rb +92 -0
  327. data/lib/rouge/themes/pastie.rb +70 -0
  328. data/lib/rouge/themes/thankful_eyes.rb +75 -0
  329. data/lib/rouge/themes/tulip.rb +70 -0
  330. data/lib/rouge/token.rb +183 -0
  331. data/lib/rouge/util.rb +102 -0
  332. data/lib/rouge/version.rb +8 -0
  333. data/lib/rouge.rb +84 -0
  334. data/rouge.gemspec +25 -0
  335. metadata +384 -0
@@ -0,0 +1,274 @@
1
+ # -*- coding: utf-8 -*- #
2
+ # frozen_string_literal: true
3
+
4
+ module Rouge
5
+ module Lexers
6
+ class CSS < RegexLexer
7
+ title "CSS"
8
+ desc "Cascading Style Sheets, used to style web pages"
9
+
10
+ tag 'css'
11
+ filenames '*.css'
12
+ mimetypes 'text/css'
13
+
14
+ identifier = /[a-zA-Z0-9_-]+/
15
+ number = /-?(?:[0-9]+(\.[0-9]+)?|\.[0-9]+)/
16
+
17
+ def self.attributes
18
+ @attributes ||= Set.new %w(
19
+ align-content align-items align-self alignment-adjust
20
+ alignment-baseline all anchor-point animation
21
+ animation-delay animation-direction animation-duration
22
+ animation-fill-mode animation-iteration-count animation-name
23
+ animation-play-state animation-timing-function appearance
24
+ azimuth backface-visibility background background-attachment
25
+ background-clip background-color background-image
26
+ background-origin background-position background-repeat
27
+ background-size baseline-shift binding bleed bookmark-label
28
+ bookmark-level bookmark-state bookmark-target border
29
+ border-bottom border-bottom-color border-bottom-left-radius
30
+ border-bottom-right-radius border-bottom-style
31
+ border-bottom-width border-collapse border-color
32
+ border-image border-image-outset border-image-repeat
33
+ border-image-slice border-image-source border-image-width
34
+ border-left border-left-color border-left-style
35
+ border-left-width border-radius border-right
36
+ border-right-color border-right-style border-right-width
37
+ border-spacing border-style border-top border-top-color
38
+ border-top-left-radius border-top-right-radius
39
+ border-top-style border-top-width border-width bottom
40
+ box-align box-decoration-break box-direction box-flex
41
+ box-flex-group box-lines box-ordinal-group box-orient
42
+ box-pack box-shadow box-sizing break-after break-before
43
+ break-inside caption-side clear clip clip-path
44
+ clip-rule color color-profile columns column-count
45
+ column-fill column-gap column-rule column-rule-color
46
+ column-rule-style column-rule-width column-span
47
+ column-width content counter-increment counter-reset
48
+ crop cue cue-after cue-before cursor direction display
49
+ dominant-baseline drop-initial-after-adjust
50
+ drop-initial-after-align drop-initial-before-adjust
51
+ drop-initial-before-align drop-initial-size
52
+ drop-initial-value elevation empty-cells filter fit
53
+ fit-position flex flex-basis flex-direction flex-flow
54
+ flex-grow flex-shrink flex-wrap float float-offset
55
+ font font-family font-feature-settings
56
+ font-kerning font-language-override font-size
57
+ font-size-adjust font-stretch font-style font-synthesis
58
+ font-variant font-variant-alternates font-variant-caps
59
+ font-variant-east-asian font-variant-ligatures
60
+ font-variant-numeric font-variant-position font-weight
61
+ grid-cell grid-column grid-column-align grid-column-sizing
62
+ grid-column-span grid-columns grid-flow grid-row
63
+ grid-row-align grid-row-sizing grid-row-span
64
+ grid-rows grid-template hanging-punctuation height
65
+ hyphenate-after hyphenate-before hyphenate-character
66
+ hyphenate-lines hyphenate-resource hyphens icon
67
+ image-orientation image-rendering image-resolution
68
+ ime-mode inline-box-align justify-content
69
+ left letter-spacing line-break line-height
70
+ line-stacking line-stacking-ruby line-stacking-shift
71
+ line-stacking-strategy list-style list-style-image
72
+ list-style-position list-style-type margin
73
+ margin-bottom margin-left margin-right margin-top
74
+ mark marker-offset marks mark-after mark-before
75
+ marquee-direction marquee-loop marquee-play-count
76
+ marquee-speed marquee-style mask max-height max-width
77
+ min-height min-width move-to nav-down
78
+ nav-index nav-left nav-right nav-up object-fit
79
+ object-position opacity order orphans outline
80
+ outline-color outline-offset outline-style
81
+ outline-width overflow overflow-style overflow-wrap
82
+ overflow-x overflow-y padding padding-bottom
83
+ padding-left padding-right padding-top
84
+ page page-break-after page-break-before
85
+ page-break-inside page-policy pause pause-after
86
+ pause-before perspective perspective-origin
87
+ phonemes pitch pitch-range play-during pointer-events
88
+ position presentation-level punctuation-trim quotes
89
+ rendering-intent resize rest rest-after rest-before
90
+ richness right rotation rotation-point ruby-align
91
+ ruby-overhang ruby-position ruby-span size speak
92
+ speak-as speak-header speak-numeral speak-punctuation
93
+ speech-rate src stress string-set
94
+ tab-size table-layout target target-name
95
+ target-new target-position text-align
96
+ text-align-last text-combine-horizontal
97
+ text-decoration text-decoration-color
98
+ text-decoration-line text-decoration-skip
99
+ text-decoration-style text-emphasis
100
+ text-emphasis-color text-emphasis-position
101
+ text-emphasis-style text-height text-indent
102
+ text-justify text-orientation text-outline
103
+ text-overflow text-rendering text-shadow
104
+ text-space-collapse text-transform
105
+ text-underline-position text-wrap top
106
+ transform transform-origin transform-style
107
+ transition transition-delay transition-duration
108
+ transition-property transition-timing-function
109
+ unicode-bidi vertical-align
110
+ visibility voice-balance voice-duration
111
+ voice-family voice-pitch voice-pitch-range
112
+ voice-range voice-rate voice-stress voice-volume
113
+ volume white-space widows width word-break
114
+ word-spacing word-wrap writing-mode z-index
115
+ )
116
+ end
117
+
118
+ def self.builtins
119
+ @builtins ||= Set.new %w(
120
+ above absolute always armenian aural auto avoid left bottom
121
+ baseline behind below bidi-override blink block bold bolder
122
+ both bottom capitalize center center-left center-right circle
123
+ cjk-ideographic close-quote collapse condensed continuous crop
124
+ cross crosshair cursive dashed decimal decimal-leading-zero
125
+ default digits disc dotted double e-resize embed expanded
126
+ extra-condensed extra-expanded fantasy far-left far-right fast
127
+ faster fixed georgian groove hebrew help hidden hide high higher
128
+ hiragana hiragana-iroha icon inherit inline inline-table inset
129
+ inside invert italic justify katakana katakana-iroha landscape
130
+ large larger left left-side leftwards level lighter line-through
131
+ list-item loud low lower lower-alpha lower-greek lower-roman
132
+ lowercase ltr medium message-box middle mix monospace n-resize
133
+ narrower ne-resize no-close-quote no-open-quote no-repeat none
134
+ normal nowrap nw-resize oblique once open-quote outset outside
135
+ overline pointer portrait px relative repeat repeat-x repeat-y
136
+ rgb ridge right right-side rightwards s-resize sans-serif scroll
137
+ se-resize semi-condensed semi-expanded separate serif show
138
+ silent slow slower small-caps small-caption smaller soft solid
139
+ spell-out square static status-bar super sw-resize table-caption
140
+ table-cell table-column table-column-group table-footer-group
141
+ table-header-group table-row table-row-group text text-bottom
142
+ text-top thick thin top transparent ultra-condensed
143
+ ultra-expanded underline upper-alpha upper-latin upper-roman
144
+ uppercase url visible w-resize wait wider x-fast x-high x-large
145
+ x-loud x-low x-small x-soft xx-large xx-small yes
146
+ )
147
+ end
148
+
149
+ def self.constants
150
+ @constants ||= Set.new %w(
151
+ indigo gold firebrick indianred yellow darkolivegreen
152
+ darkseagreen mediumvioletred mediumorchid chartreuse
153
+ mediumslateblue black springgreen crimson lightsalmon brown
154
+ turquoise olivedrab cyan silver skyblue gray darkturquoise
155
+ goldenrod darkgreen darkviolet darkgray lightpink teal
156
+ darkmagenta lightgoldenrodyellow lavender yellowgreen thistle
157
+ violet navy orchid blue ghostwhite honeydew cornflowerblue
158
+ darkblue darkkhaki mediumpurple cornsilk red bisque slategray
159
+ darkcyan khaki wheat deepskyblue darkred steelblue aliceblue
160
+ gainsboro mediumturquoise floralwhite coral purple lightgrey
161
+ lightcyan darksalmon beige azure lightsteelblue oldlace
162
+ greenyellow royalblue lightseagreen mistyrose sienna lightcoral
163
+ orangered navajowhite lime palegreen burlywood seashell
164
+ mediumspringgreen fuchsia papayawhip blanchedalmond peru
165
+ aquamarine white darkslategray ivory dodgerblue lemonchiffon
166
+ chocolate orange forestgreen slateblue olive mintcream
167
+ antiquewhite darkorange cadetblue moccasin limegreen saddlebrown
168
+ darkslateblue lightskyblue deeppink plum aqua darkgoldenrod
169
+ maroon sandybrown magenta tan rosybrown pink lightblue
170
+ palevioletred mediumseagreen dimgray powderblue seagreen snow
171
+ mediumblue midnightblue paleturquoise palegoldenrod whitesmoke
172
+ darkorchid salmon lightslategray lawngreen lightgreen tomato
173
+ hotpink lightyellow lavenderblush linen mediumaquamarine green
174
+ blueviolet peachpuff
175
+ )
176
+ end
177
+
178
+ # source: http://www.w3.org/TR/CSS21/syndata.html#vendor-keyword-history
179
+ def self.vendor_prefixes
180
+ @vendor_prefixes ||= Set.new %w(
181
+ -ah- -atsc- -hp- -khtml- -moz- -ms- -o- -rim- -ro- -tc- -wap-
182
+ -webkit- -xv- mso- prince-
183
+ )
184
+ end
185
+
186
+ state :root do
187
+ mixin :basics
188
+ rule /{/, Punctuation, :stanza
189
+ rule /:[:]?#{identifier}/, Name::Decorator
190
+ rule /\.#{identifier}/, Name::Class
191
+ rule /##{identifier}/, Name::Function
192
+ rule /@#{identifier}/, Keyword, :at_rule
193
+ rule identifier, Name::Tag
194
+ rule %r([~^*!%&\[\]()<>|+=@:;,./?-]), Operator
195
+ rule /"(\\\\|\\"|[^"])*"/, Str::Single
196
+ rule /'(\\\\|\\'|[^'])*'/, Str::Double
197
+ end
198
+
199
+ state :value do
200
+ mixin :basics
201
+ rule /url\(.*?\)/, Str::Other
202
+ rule /#[0-9a-f]{1,6}/i, Num # colors
203
+ rule /#{number}(?:%|(?:em|px|pt|pc|in|mm|cm|ex|rem|ch|vw|vh|vmin|vmax|dpi|dpcm|dppx|deg|grad|rad|turn|s|ms|Hz|kHz)\b)?/, Num
204
+ rule /[\[\]():\/.,]/, Punctuation
205
+ rule /"(\\\\|\\"|[^"])*"/, Str::Single
206
+ rule /'(\\\\|\\'|[^'])*'/, Str::Double
207
+ rule(identifier) do |m|
208
+ if self.class.constants.include? m[0]
209
+ token Name::Constant
210
+ elsif self.class.builtins.include? m[0]
211
+ token Name::Builtin
212
+ else
213
+ token Name
214
+ end
215
+ end
216
+ end
217
+
218
+ state :at_rule do
219
+ rule /{(?=\s*#{identifier}\s*:)/m, Punctuation, :at_stanza
220
+ rule /{/, Punctuation, :at_body
221
+ rule /;/, Punctuation, :pop!
222
+ mixin :value
223
+ end
224
+
225
+ state :at_body do
226
+ mixin :at_content
227
+ mixin :root
228
+ end
229
+
230
+ state :at_stanza do
231
+ mixin :at_content
232
+ mixin :stanza
233
+ end
234
+
235
+ state :at_content do
236
+ rule /}/ do
237
+ token Punctuation
238
+ pop! 2
239
+ end
240
+ end
241
+
242
+ state :basics do
243
+ rule /\s+/m, Text
244
+ rule %r(/\*(?:.*?)\*/)m, Comment
245
+ end
246
+
247
+ state :stanza do
248
+ mixin :basics
249
+ rule /}/, Punctuation, :pop!
250
+ rule /(#{identifier})(\s*)(:)/m do |m|
251
+ name_tok = if self.class.attributes.include? m[1]
252
+ Name::Label
253
+ elsif self.class.vendor_prefixes.any? { |p| m[1].start_with?(p) }
254
+ Name::Label
255
+ else
256
+ Name::Property
257
+ end
258
+
259
+ groups name_tok, Text, Punctuation
260
+
261
+ push :stanza_value
262
+ end
263
+ end
264
+
265
+ state :stanza_value do
266
+ rule /;/, Punctuation, :pop!
267
+ rule(/(?=})/) { pop! }
268
+ rule /!\s*important\b/, Comment::Preproc
269
+ rule /^@.*?$/, Comment::Preproc
270
+ mixin :value
271
+ end
272
+ end
273
+ end
274
+ end
@@ -0,0 +1,177 @@
1
+ # -*- coding: utf-8 -*- #
2
+ # frozen_string_literal: true
3
+
4
+ module Rouge
5
+ module Lexers
6
+ class D < RegexLexer
7
+ tag 'd'
8
+ aliases 'dlang'
9
+ filenames '*.d', '*.di'
10
+ mimetypes 'application/x-dsrc', 'text/x-dsrc'
11
+
12
+ title "D"
13
+ desc 'The D programming language(dlang.org)'
14
+
15
+ keywords = %w(
16
+ abstract alias align asm assert auto body
17
+ break case cast catch class const continue
18
+ debug default delegate delete deprecated do else
19
+ enum export extern finally final foreach_reverse
20
+ foreach for function goto if immutable import
21
+ interface invariant inout in is lazy mixin
22
+ module new nothrow out override package pragma
23
+ private protected public pure ref return scope
24
+ shared static struct super switch synchronized
25
+ template this throw try typedef typeid typeof
26
+ union unittest version volatile while with
27
+ __gshared __traits __vector __parameters
28
+ )
29
+
30
+ keywords_type = %w(
31
+ bool byte cdouble cent cfloat char creal
32
+ dchar double float idouble ifloat int ireal
33
+ long real short ubyte ucent uint ulong
34
+ ushort void wchar
35
+ )
36
+
37
+ keywords_pseudo = %w(
38
+ __FILE__ __MODULE__ __LINE__ __FUNCTION__ __PRETTY_FUNCTION__
39
+ __DATE__ __EOF__ __TIME__ __TIMESTAMP__ __VENDOR__
40
+ __VERSION__
41
+ )
42
+
43
+ state :whitespace do
44
+ rule /\n/m, Text
45
+ rule /\s+/m, Text
46
+ end
47
+
48
+ state :root do
49
+ mixin :whitespace
50
+ # Comments
51
+ rule %r(//(.*?)\n), Comment::Single
52
+ rule %r(/(\\\n)?[*](.|\n)*?[*](\\\n)?/), Comment::Multiline
53
+ rule %r(/\+), Comment::Multiline, :nested_comment
54
+ # Keywords
55
+ rule /(#{keywords.join('|')})\b/, Keyword
56
+ rule /(#{keywords_type.join('|')})\b/, Keyword::Type
57
+ rule /(false|true|null)\b/, Keyword::Constant
58
+ rule /(#{keywords_pseudo.join('|')})\b/, Keyword::Pseudo
59
+ rule /macro\b/, Keyword::Reserved
60
+ rule /(string|wstring|dstring|size_t|ptrdiff_t)\b/, Name::Builtin
61
+ # Literals
62
+ # HexFloat
63
+ rule /0[xX]([0-9a-fA-F_]*\.[0-9a-fA-F_]+|[0-9a-fA-F_]+)[pP][+\-]?[0-9_]+[fFL]?[i]?/, Num::Float
64
+ # DecimalFloat
65
+ rule /[0-9_]+(\.[0-9_]+[eE][+\-]?[0-9_]+|\.[0-9_]*|[eE][+\-]?[0-9_]+)[fFL]?[i]?/, Num::Float
66
+ rule /\.(0|[1-9][0-9_]*)([eE][+\-]?[0-9_]+)?[fFL]?[i]?/, Num::Float
67
+ # IntegerLiteral
68
+ # Binary
69
+ rule /0[Bb][01_]+/, Num::Bin
70
+ # Octal
71
+ # TODO: 0[0-7] isn't supported use octal![0-7] instead
72
+ rule /0[0-7_]+/, Num::Oct
73
+ # Hexadecimal
74
+ rule /0[xX][0-9a-fA-F_]+/, Num::Hex
75
+ # Decimal
76
+ rule /(0|[1-9][0-9_]*)([LUu]|Lu|LU|uL|UL)?/, Num::Integer
77
+ # CharacterLiteral
78
+ rule /'(\\['"?\\abfnrtv]|\\x[0-9a-fA-F]{2}|\\[0-7]{1,3}|\\u[0-9a-fA-F]{4}|\\U[0-9a-fA-F]{8}|\\&\w+;|.)'/, Str::Char
79
+ # StringLiteral
80
+ # WysiwygString
81
+ rule /r"[^"]*"[cwd]?/, Str
82
+ # Alternate WysiwygString
83
+ rule /`[^`]*`[cwd]?/, Str
84
+ # DoubleQuotedString
85
+ rule /"(\\\\|\\"|[^"])*"[cwd]?/, Str
86
+ # EscapeSequence
87
+ rule /\\(['\"?\\abfnrtv]|x[0-9a-fA-F]{2}|[0-7]{1,3}|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8}|&\w+;)/, Str
88
+ # HexString
89
+ rule /x"[0-9a-fA-F_\s]*"[cwd]?/, Str
90
+ # DelimitedString
91
+ rule /q"\[/, Str, :delimited_bracket
92
+ rule /q"\(/, Str, :delimited_parenthesis
93
+ rule /q"</, Str, :delimited_angle
94
+ rule /q"\{/, Str, :delimited_curly
95
+ rule /q"([a-zA-Z_]\w*)\n.*?\n\1"/, Str
96
+ rule /q"(.).*?\1"/, Str
97
+ # TokenString
98
+ rule /q\{/, Str, :token_string
99
+ # Attributes
100
+ rule /@([a-zA-Z_]\w*)?/, Name::Decorator
101
+ # Tokens
102
+ rule %r`(~=|\^=|%=|\*=|==|!>=|!<=|!<>=|!<>|!<|!>|!=|>>>=|>>>|>>=|>>|>=|<>=|<>|<<=|<<|<=|\+\+|\+=|--|-=|\|\||\|=|&&|&=|\.\.\.|\.\.|/=)|[/.&|\-+<>!()\[\]{}?,;:$=*%^~]`, Punctuation
103
+ # Identifier
104
+ rule /[a-zA-Z_]\w*/, Name
105
+ # Line
106
+ rule /#line\s.*\n/, Comment::Special
107
+ end
108
+
109
+ state :nested_comment do
110
+ rule %r([^+/]+), Comment::Multiline
111
+ rule %r(/\+), Comment::Multiline, :push
112
+ rule %r(\+/), Comment::Multiline, :pop!
113
+ rule %r([+/]), Comment::Multiline
114
+ end
115
+
116
+ state :token_string do
117
+ rule /\{/, Punctuation, :token_string_nest
118
+ rule /\}/, Str, :pop!
119
+ mixin :root
120
+ end
121
+
122
+ state :token_string_nest do
123
+ rule /\{/, Punctuation, :push
124
+ rule /\}/, Punctuation, :pop!
125
+ mixin :root
126
+ end
127
+
128
+ state :delimited_bracket do
129
+ rule /[^\[\]]+/, Str
130
+ rule /\[/, Str, :delimited_inside_bracket
131
+ rule /\]"/, Str, :pop!
132
+ end
133
+
134
+ state :delimited_inside_bracket do
135
+ rule /[^\[\]]+/, Str
136
+ rule /\[/, Str, :push
137
+ rule /\]/, Str, :pop!
138
+ end
139
+
140
+ state :delimited_parenthesis do
141
+ rule /[^()]+/, Str
142
+ rule /\(/, Str, :delimited_inside_parenthesis
143
+ rule /\)"/, Str, :pop!
144
+ end
145
+
146
+ state :delimited_inside_parenthesis do
147
+ rule /[^()]+/, Str
148
+ rule /\(/, Str, :push
149
+ rule /\)/, Str, :pop!
150
+ end
151
+
152
+ state :delimited_angle do
153
+ rule /[^<>]+/, Str
154
+ rule /</, Str, :delimited_inside_angle
155
+ rule />"/, Str, :pop!
156
+ end
157
+
158
+ state :delimited_inside_angle do
159
+ rule /[^<>]+/, Str
160
+ rule /</, Str, :push
161
+ rule />/, Str, :pop!
162
+ end
163
+
164
+ state :delimited_curly do
165
+ rule /[^{}]+/, Str
166
+ rule /\{/, Str, :delimited_inside_curly
167
+ rule /\}"/, Str, :pop!
168
+ end
169
+
170
+ state :delimited_inside_curly do
171
+ rule /[^{}]+/, Str
172
+ rule /\{/, Str, :push
173
+ rule /\}/, Str, :pop!
174
+ end
175
+ end
176
+ end
177
+ end
@@ -0,0 +1,105 @@
1
+ # -*- coding: utf-8 -*- #
2
+ # frozen_string_literal: true
3
+
4
+ module Rouge
5
+ module Lexers
6
+ class Dart < RegexLexer
7
+ title "Dart"
8
+ desc "The Dart programming language (dartlang.com)"
9
+
10
+ tag 'dart'
11
+ filenames '*.dart'
12
+ mimetypes 'text/x-dart'
13
+
14
+ keywords = %w(
15
+ as assert break case catch continue default do else finally for
16
+ if in is new rethrow return super switch this throw try while with
17
+ )
18
+
19
+ declarations = %w(
20
+ abstract dynamic const external extends factory final get implements
21
+ native operator set static typedef var
22
+ )
23
+
24
+ types = %w(bool double Dynamic enum int num Object Set String void)
25
+
26
+ imports = %w(import export library part\s*of part source)
27
+
28
+ id = /[a-zA-Z_]\w*/
29
+
30
+ state :root do
31
+ rule %r(^
32
+ (\s*(?:[a-zA-Z_][a-zA-Z\d_.\[\]]*\s+)+?) # return arguments
33
+ ([a-zA-Z_][\w]*) # method name
34
+ (\s*)(\() # signature start
35
+ )mx do |m|
36
+ # TODO: do this better, this shouldn't need a delegation
37
+ delegate Dart, m[1]
38
+ token Name::Function, m[2]
39
+ token Text, m[3]
40
+ token Punctuation, m[4]
41
+ end
42
+
43
+ rule /\s+/, Text
44
+ rule %r(//.*?$), Comment::Single
45
+ rule %r(/\*.*?\*/)m, Comment::Multiline
46
+ rule /"/, Str, :dqs
47
+ rule /'/, Str, :sqs
48
+ rule /r"[^"]*"/, Str::Other
49
+ rule /r'[^']*'/, Str::Other
50
+ rule /##{id}*/i, Str::Symbol
51
+ rule /@#{id}/, Name::Decorator
52
+ rule /(?:#{keywords.join('|')})\b/, Keyword
53
+ rule /(?:#{declarations.join('|')})\b/, Keyword::Declaration
54
+ rule /(?:#{types.join('|')})\b/, Keyword::Type
55
+ rule /(?:true|false|null)\b/, Keyword::Constant
56
+ rule /(?:class|interface)\b/, Keyword::Declaration, :class
57
+ rule /(?:#{imports.join('|')})\b/, Keyword::Namespace, :import
58
+ rule /(\.)(#{id})/ do
59
+ groups Operator, Name::Attribute
60
+ end
61
+
62
+ rule /#{id}:/, Name::Label
63
+ rule /\$?#{id}/, Name
64
+ rule /[~^*!%&\[\](){}<>\|+=:;,.\/?-]/, Operator
65
+ rule /\d*\.\d+([eE]\-?\d+)?/, Num::Float
66
+ rule /0x[\da-fA-F]+/, Num::Hex
67
+ rule /\d+L?/, Num::Integer
68
+ rule /\n/, Text
69
+ end
70
+
71
+ state :class do
72
+ rule /\s+/m, Text
73
+ rule id, Name::Class, :pop!
74
+ end
75
+
76
+ state :dqs do
77
+ rule /"/, Str, :pop!
78
+ rule /[^\\\$"]+/, Str
79
+ mixin :string
80
+ end
81
+
82
+ state :sqs do
83
+ rule /'/, Str, :pop!
84
+ rule /[^\\\$']+/, Str
85
+ mixin :string
86
+ end
87
+
88
+ state :import do
89
+ rule /;/, Operator, :pop!
90
+ rule /(?:show|hide)\b/, Keyword::Declaration
91
+ mixin :root
92
+ end
93
+
94
+ state :string do
95
+ mixin :interpolation
96
+ rule /\\[nrt\"\'\\]/, Str::Escape
97
+ end
98
+
99
+ state :interpolation do
100
+ rule /\$#{id}/, Str::Interpol
101
+ rule /\$\{[^\}]+\}/, Str::Interpol
102
+ end
103
+ end
104
+ end
105
+ end
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Rouge
4
+ module Lexers
5
+ class Diff < RegexLexer
6
+ title 'diff'
7
+ desc 'Lexes unified diffs or patches'
8
+
9
+ tag 'diff'
10
+ aliases 'patch', 'udiff'
11
+ filenames '*.diff', '*.patch'
12
+ mimetypes 'text/x-diff', 'text/x-patch'
13
+
14
+ def self.detect?(text)
15
+ return true if text.start_with?('Index: ')
16
+ return true if text =~ %r(\Adiff[^\n]*?\ba/[^\n]*\bb/)
17
+ return true if text =~ /(---|[+][+][+]).*?\n(---|[+][+][+])/
18
+ end
19
+
20
+ state :root do
21
+ rule(/^ .*$\n?/, Text)
22
+ rule(/^---$\n?/, Text)
23
+ rule(/^\+.*$\n?/, Generic::Inserted)
24
+ rule(/^-+.*$\n?/, Generic::Deleted)
25
+ rule(/^!.*$\n?/, Generic::Strong)
26
+ rule(/^@.*$\n?/, Generic::Subheading)
27
+ rule(/^([Ii]ndex|diff).*$\n?/, Generic::Heading)
28
+ rule(/^=.*$\n?/, Generic::Heading)
29
+ rule(/.*$\n?/, Text)
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,70 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'set'
4
+ module Rouge
5
+ module Lexers
6
+ load_lexer 'yaml.rb'
7
+
8
+ class Digdag < YAML
9
+ title 'digdag'
10
+ desc 'A simple, open source, multi-cloud workflow engine (https://www.digdag.io/)'
11
+ tag 'digdag'
12
+ filenames '*.dig'
13
+
14
+ mimetypes 'application/x-digdag'
15
+
16
+ # http://docs.digdag.io/operators.html
17
+ # as of digdag v0.9.10
18
+ KEYWORD_PATTERN = Regexp.union(%w(
19
+ call
20
+ require
21
+ loop
22
+ for_each
23
+ if
24
+ fail
25
+ echo
26
+
27
+ td
28
+ td_run
29
+ td_ddl
30
+ td_load
31
+ td_for_each
32
+ td_wait
33
+ td_wait_table
34
+ td_partial_delete
35
+ td_table_export
36
+
37
+ pg
38
+
39
+ mail
40
+ http
41
+ s3_wait
42
+ redshift
43
+ redshift_load
44
+ redshift_unload
45
+ emr
46
+
47
+ gcs_wait
48
+ bq
49
+ bq_ddl
50
+ bq_extract
51
+ bq_load
52
+
53
+ sh
54
+ py
55
+ rb
56
+ embulk
57
+ ).map { |name| "#{name}>"} + %w(
58
+ _do
59
+ _parallel
60
+ ))
61
+
62
+ prepend :block_nodes do
63
+ rule /(#{KEYWORD_PATTERN})(:)(?=\s|$)/ do |m|
64
+ groups Keyword::Reserved, Punctuation::Indicator
65
+ set_indent m[0], :implicit => true
66
+ end
67
+ end
68
+ end
69
+ end
70
+ end