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