rouge 3.2.0 → 3.18.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.
- checksums.yaml +5 -5
- data/Gemfile +17 -3
- data/bin/rougify +1 -0
- data/lib/rouge.rb +67 -43
- data/lib/rouge/cli.rb +84 -17
- data/lib/rouge/demos/ada +26 -0
- data/lib/rouge/demos/apex +9 -0
- data/lib/rouge/demos/armasm +12 -0
- data/lib/rouge/demos/batchfile +3 -0
- data/lib/rouge/demos/bbcbasic +6 -0
- data/lib/rouge/demos/bpf +7 -0
- data/lib/rouge/demos/brainfuck +5 -0
- data/lib/rouge/demos/clean +6 -0
- data/lib/rouge/demos/cmhg +8 -0
- data/lib/rouge/demos/csvs +8 -0
- data/lib/rouge/demos/cuda +11 -0
- data/lib/rouge/demos/cypher +5 -0
- data/lib/rouge/demos/cython +6 -0
- data/lib/rouge/demos/datastudio +21 -0
- data/lib/rouge/demos/ecl +18 -0
- data/lib/rouge/demos/eex +1 -0
- data/lib/rouge/demos/epp +4 -0
- data/lib/rouge/demos/escape +3 -0
- data/lib/rouge/demos/freefem +16 -0
- data/lib/rouge/demos/gdscript +18 -0
- data/lib/rouge/demos/ghc-cmm +23 -0
- data/lib/rouge/demos/ghc-core +26 -0
- data/lib/rouge/demos/haxe +5 -0
- data/lib/rouge/demos/hocon +8 -0
- data/lib/rouge/demos/hql +5 -0
- data/lib/rouge/demos/isbl +4 -0
- data/lib/rouge/demos/jsl +3 -0
- data/lib/rouge/demos/jsp +29 -0
- data/lib/rouge/demos/liquid +0 -1
- data/lib/rouge/demos/lustre +6 -0
- data/lib/rouge/demos/lutin +18 -0
- data/lib/rouge/demos/m68k +16 -0
- data/lib/rouge/demos/magik +6 -0
- data/lib/rouge/demos/mason +22 -0
- data/lib/rouge/demos/mathematica +8 -0
- data/lib/rouge/demos/minizinc +23 -0
- data/lib/rouge/demos/msgtrans +4 -0
- data/lib/rouge/demos/nasm +6 -6
- data/lib/rouge/demos/nesasm +11 -0
- data/lib/rouge/demos/objective_cpp +17 -0
- data/lib/rouge/demos/openedge +4 -0
- data/lib/rouge/demos/opentype_feature_file +6 -0
- data/lib/rouge/demos/plist +1 -132
- data/lib/rouge/demos/powershell +12 -48
- data/lib/rouge/demos/q +6 -0
- data/lib/rouge/demos/reasonml +12 -0
- data/lib/rouge/demos/rego +8 -0
- data/lib/rouge/demos/robot_framework +27 -0
- data/lib/rouge/demos/sas +13 -0
- data/lib/rouge/demos/slice +10 -0
- data/lib/rouge/demos/solidity +13 -0
- data/lib/rouge/demos/sparql +6 -0
- data/lib/rouge/demos/sqf +14 -0
- data/lib/rouge/demos/supercollider +11 -0
- data/lib/rouge/demos/terraform +0 -15
- data/lib/rouge/demos/ttcn3 +6 -0
- data/lib/rouge/demos/vcl +12 -0
- data/lib/rouge/demos/xojo +14 -0
- data/lib/rouge/demos/xpath +2 -0
- data/lib/rouge/demos/xquery +22 -0
- data/lib/rouge/demos/yang +17 -0
- data/lib/rouge/formatter.rb +39 -2
- data/lib/rouge/formatters/html.rb +21 -2
- data/lib/rouge/formatters/html_inline.rb +1 -0
- data/lib/rouge/formatters/html_legacy.rb +1 -0
- data/lib/rouge/formatters/html_line_table.rb +53 -0
- data/lib/rouge/formatters/html_linewise.rb +7 -11
- data/lib/rouge/formatters/html_pygments.rb +2 -0
- data/lib/rouge/formatters/html_table.rb +21 -31
- data/lib/rouge/formatters/null.rb +1 -0
- data/lib/rouge/formatters/terminal256.rb +23 -5
- data/lib/rouge/formatters/terminal_truecolor.rb +37 -0
- data/lib/rouge/formatters/tex.rb +92 -0
- data/lib/rouge/guesser.rb +2 -0
- data/lib/rouge/guessers/disambiguation.rb +35 -0
- data/lib/rouge/guessers/filename.rb +2 -0
- data/lib/rouge/guessers/glob_mapping.rb +3 -1
- data/lib/rouge/guessers/mimetype.rb +2 -0
- data/lib/rouge/guessers/modeline.rb +3 -1
- data/lib/rouge/guessers/source.rb +3 -1
- data/lib/rouge/guessers/util.rb +2 -0
- data/lib/rouge/lexer.rb +71 -15
- data/lib/rouge/lexers/abap.rb +13 -11
- data/lib/rouge/lexers/actionscript.rb +35 -34
- data/lib/rouge/lexers/ada.rb +162 -0
- data/lib/rouge/lexers/apache.rb +13 -15
- data/lib/rouge/lexers/apache/keywords.rb +15 -0
- data/lib/rouge/lexers/apex.rb +126 -0
- data/lib/rouge/lexers/apiblueprint.rb +2 -0
- data/lib/rouge/lexers/apple_script.rb +17 -14
- data/lib/rouge/lexers/armasm.rb +145 -0
- data/lib/rouge/lexers/awk.rb +26 -25
- data/lib/rouge/lexers/batchfile.rb +164 -0
- data/lib/rouge/lexers/bbcbasic.rb +112 -0
- data/lib/rouge/lexers/biml.rb +6 -4
- data/lib/rouge/lexers/bpf.rb +118 -0
- data/lib/rouge/lexers/brainfuck.rb +53 -0
- data/lib/rouge/lexers/bsl.rb +13 -12
- data/lib/rouge/lexers/c.rb +35 -57
- data/lib/rouge/lexers/ceylon.rb +7 -34
- data/lib/rouge/lexers/cfscript.rb +27 -26
- data/lib/rouge/lexers/clean.rb +156 -0
- data/lib/rouge/lexers/clojure.rb +15 -14
- data/lib/rouge/lexers/cmake.rb +16 -14
- data/lib/rouge/lexers/cmhg.rb +34 -0
- data/lib/rouge/lexers/coffeescript.rb +90 -49
- data/lib/rouge/lexers/common_lisp.rb +39 -38
- data/lib/rouge/lexers/conf.rb +7 -6
- data/lib/rouge/lexers/console.rb +92 -38
- data/lib/rouge/lexers/coq.rb +27 -23
- data/lib/rouge/lexers/cpp.rb +24 -13
- data/lib/rouge/lexers/crystal.rb +71 -70
- data/lib/rouge/lexers/csharp.rb +29 -29
- data/lib/rouge/lexers/css.rb +24 -23
- data/lib/rouge/lexers/csvs.rb +44 -0
- data/lib/rouge/lexers/cuda.rb +35 -0
- data/lib/rouge/lexers/cypher.rb +108 -0
- data/lib/rouge/lexers/cython.rb +151 -0
- data/lib/rouge/lexers/d.rb +64 -63
- data/lib/rouge/lexers/dart.rb +34 -33
- data/lib/rouge/lexers/datastudio.rb +138 -0
- data/lib/rouge/lexers/diff.rb +10 -4
- data/lib/rouge/lexers/digdag.rb +3 -1
- data/lib/rouge/lexers/docker.rb +12 -11
- data/lib/rouge/lexers/dot.rb +19 -18
- data/lib/rouge/lexers/ecl.rb +175 -0
- data/lib/rouge/lexers/eex.rb +52 -0
- data/lib/rouge/lexers/eiffel.rb +21 -20
- data/lib/rouge/lexers/elixir.rb +52 -36
- data/lib/rouge/lexers/elm.rb +30 -29
- data/lib/rouge/lexers/epp.rb +51 -0
- data/lib/rouge/lexers/erb.rb +5 -4
- data/lib/rouge/lexers/erlang.rb +1 -0
- data/lib/rouge/lexers/escape.rb +58 -0
- data/lib/rouge/lexers/factor.rb +41 -40
- data/lib/rouge/lexers/fortran.rb +34 -32
- data/lib/rouge/lexers/freefem.rb +240 -0
- data/lib/rouge/lexers/fsharp.rb +33 -31
- data/lib/rouge/lexers/gdscript.rb +171 -0
- data/lib/rouge/lexers/ghc_cmm.rb +340 -0
- data/lib/rouge/lexers/ghc_core.rb +151 -0
- data/lib/rouge/lexers/gherkin.rb +17 -14
- data/lib/rouge/lexers/gherkin/keywords.rb +2 -0
- data/lib/rouge/lexers/glsl.rb +2 -5
- data/lib/rouge/lexers/go.rb +3 -2
- data/lib/rouge/lexers/gradle.rb +1 -0
- data/lib/rouge/lexers/graphql.rb +78 -60
- data/lib/rouge/lexers/groovy.rb +24 -25
- data/lib/rouge/lexers/hack.rb +2 -1
- data/lib/rouge/lexers/haml.rb +26 -29
- data/lib/rouge/lexers/handlebars.rb +32 -20
- data/lib/rouge/lexers/haskell.rb +67 -65
- data/lib/rouge/lexers/haxe.rb +246 -0
- data/lib/rouge/lexers/hcl.rb +26 -25
- data/lib/rouge/lexers/hocon.rb +86 -0
- data/lib/rouge/lexers/hql.rb +139 -0
- data/lib/rouge/lexers/html.rb +33 -31
- data/lib/rouge/lexers/http.rb +10 -9
- data/lib/rouge/lexers/hylang.rb +15 -14
- data/lib/rouge/lexers/idlang.rb +34 -32
- data/lib/rouge/lexers/igorpro.rb +32 -31
- data/lib/rouge/lexers/ini.rb +13 -12
- data/lib/rouge/lexers/io.rb +10 -9
- data/lib/rouge/lexers/irb.rb +6 -5
- data/lib/rouge/lexers/isbl.rb +97 -0
- data/lib/rouge/lexers/isbl/builtins.rb +17 -0
- data/lib/rouge/lexers/java.rb +29 -25
- data/lib/rouge/lexers/javascript.rb +58 -61
- data/lib/rouge/lexers/jinja.rb +39 -22
- data/lib/rouge/lexers/jsl.rb +55 -0
- data/lib/rouge/lexers/json.rb +54 -11
- data/lib/rouge/lexers/json_doc.rb +8 -5
- data/lib/rouge/lexers/jsonnet.rb +19 -18
- data/lib/rouge/lexers/jsp.rb +120 -0
- data/lib/rouge/lexers/jsx.rb +18 -16
- data/lib/rouge/lexers/julia.rb +182 -58
- data/lib/rouge/lexers/kotlin.rb +78 -26
- data/lib/rouge/lexers/lasso.rb +54 -58
- data/lib/rouge/lexers/lasso/keywords.rb +14 -0
- data/lib/rouge/lexers/liquid.rb +116 -118
- data/lib/rouge/lexers/literate_coffeescript.rb +3 -2
- data/lib/rouge/lexers/literate_haskell.rb +6 -5
- data/lib/rouge/lexers/llvm.rb +66 -49
- data/lib/rouge/lexers/lua.rb +43 -4
- data/lib/rouge/lexers/lua/builtins.rb +2 -0
- data/lib/rouge/lexers/lustre.rb +79 -0
- data/lib/rouge/lexers/lutin.rb +33 -0
- data/lib/rouge/lexers/m68k.rb +143 -0
- data/lib/rouge/lexers/magik.rb +127 -0
- data/lib/rouge/lexers/make.rb +57 -34
- data/lib/rouge/lexers/markdown.rb +67 -39
- data/lib/rouge/lexers/mason.rb +110 -0
- data/lib/rouge/lexers/mathematica.rb +96 -0
- data/lib/rouge/lexers/mathematica/builtins.rb +13 -0
- data/lib/rouge/lexers/matlab.rb +26 -17
- data/lib/rouge/lexers/matlab/builtins.rb +4 -4
- data/lib/rouge/lexers/minizinc.rb +87 -0
- data/lib/rouge/lexers/moonscript.rb +4 -3
- data/lib/rouge/lexers/mosel.rb +64 -63
- data/lib/rouge/lexers/msgtrans.rb +26 -0
- data/lib/rouge/lexers/mxml.rb +19 -18
- data/lib/rouge/lexers/nasm.rb +43 -169
- data/lib/rouge/lexers/nesasm.rb +78 -0
- data/lib/rouge/lexers/nginx.rb +15 -14
- data/lib/rouge/lexers/nim.rb +4 -2
- data/lib/rouge/lexers/nix.rb +44 -43
- data/lib/rouge/lexers/objective_c.rb +5 -178
- data/lib/rouge/lexers/objective_c/common.rb +184 -0
- data/lib/rouge/lexers/objective_cpp.rb +31 -0
- data/lib/rouge/lexers/ocaml.rb +29 -64
- data/lib/rouge/lexers/ocaml/common.rb +53 -0
- data/lib/rouge/lexers/openedge.rb +429 -0
- data/lib/rouge/lexers/opentype_feature_file.rb +113 -0
- data/lib/rouge/lexers/pascal.rb +6 -5
- data/lib/rouge/lexers/perl.rb +102 -67
- data/lib/rouge/lexers/php.rb +91 -53
- data/lib/rouge/lexers/php/builtins.rb +183 -174
- data/lib/rouge/lexers/plain_text.rb +2 -1
- data/lib/rouge/lexers/plist.rb +16 -14
- data/lib/rouge/lexers/pony.rb +21 -20
- data/lib/rouge/lexers/powershell.rb +190 -638
- data/lib/rouge/lexers/praat.rb +76 -75
- data/lib/rouge/lexers/prolog.rb +27 -19
- data/lib/rouge/lexers/prometheus.rb +32 -30
- data/lib/rouge/lexers/properties.rb +13 -12
- data/lib/rouge/lexers/protobuf.rb +23 -22
- data/lib/rouge/lexers/puppet.rb +33 -32
- data/lib/rouge/lexers/python.rb +124 -99
- data/lib/rouge/lexers/q.rb +17 -14
- data/lib/rouge/lexers/qml.rb +13 -12
- data/lib/rouge/lexers/r.rb +13 -13
- data/lib/rouge/lexers/racket.rb +47 -22
- data/lib/rouge/lexers/reasonml.rb +65 -0
- data/lib/rouge/lexers/rego.rb +45 -0
- data/lib/rouge/lexers/robot_framework.rb +249 -0
- data/lib/rouge/lexers/ruby.rb +88 -71
- data/lib/rouge/lexers/rust.rb +45 -44
- data/lib/rouge/lexers/sas.rb +563 -0
- data/lib/rouge/lexers/sass.rb +9 -8
- data/lib/rouge/lexers/sass/common.rb +41 -40
- data/lib/rouge/lexers/scala.rb +67 -40
- data/lib/rouge/lexers/scheme.rb +19 -18
- data/lib/rouge/lexers/scss.rb +4 -3
- data/lib/rouge/lexers/sed.rb +31 -30
- data/lib/rouge/lexers/shell.rb +67 -55
- data/lib/rouge/lexers/sieve.rb +10 -9
- data/lib/rouge/lexers/slice.rb +32 -0
- data/lib/rouge/lexers/slim.rb +27 -26
- data/lib/rouge/lexers/smalltalk.rb +34 -33
- data/lib/rouge/lexers/smarty.rb +20 -19
- data/lib/rouge/lexers/sml.rb +68 -67
- data/lib/rouge/lexers/solidity.rb +185 -0
- data/lib/rouge/lexers/sparql.rb +129 -0
- data/lib/rouge/lexers/sqf.rb +109 -0
- data/lib/rouge/lexers/sqf/commands.rb +15 -0
- data/lib/rouge/lexers/sql.rb +47 -26
- data/lib/rouge/lexers/supercollider.rb +116 -0
- data/lib/rouge/lexers/swift.rb +49 -44
- data/lib/rouge/lexers/tap.rb +22 -20
- data/lib/rouge/lexers/tcl.rb +28 -27
- data/lib/rouge/lexers/terraform.rb +37 -13
- data/lib/rouge/lexers/tex.rb +20 -19
- data/lib/rouge/lexers/toml.rb +59 -20
- data/lib/rouge/lexers/tsx.rb +1 -0
- data/lib/rouge/lexers/ttcn3.rb +119 -0
- data/lib/rouge/lexers/tulip.rb +38 -36
- data/lib/rouge/lexers/turtle.rb +36 -38
- data/lib/rouge/lexers/twig.rb +1 -0
- data/lib/rouge/lexers/typescript.rb +12 -0
- data/lib/rouge/lexers/typescript/common.rb +1 -0
- data/lib/rouge/lexers/vala.rb +19 -18
- data/lib/rouge/lexers/varnish.rb +168 -0
- data/lib/rouge/lexers/vb.rb +28 -27
- data/lib/rouge/lexers/verilog.rb +27 -28
- data/lib/rouge/lexers/vhdl.rb +12 -11
- data/lib/rouge/lexers/viml.rb +15 -14
- data/lib/rouge/lexers/viml/keywords.rb +2 -0
- data/lib/rouge/lexers/vue.rb +15 -10
- data/lib/rouge/lexers/wollok.rb +27 -26
- data/lib/rouge/lexers/xml.rb +18 -21
- data/lib/rouge/lexers/xojo.rb +61 -0
- data/lib/rouge/lexers/xpath.rb +332 -0
- data/lib/rouge/lexers/xquery.rb +145 -0
- data/lib/rouge/lexers/yaml.rb +64 -61
- data/lib/rouge/lexers/yang.rb +147 -0
- data/lib/rouge/plugins/redcarpet.rb +9 -2
- data/lib/rouge/regex_lexer.rb +27 -25
- data/lib/rouge/template_lexer.rb +1 -0
- data/lib/rouge/tex_theme_renderer.rb +132 -0
- data/lib/rouge/text_analyzer.rb +1 -0
- data/lib/rouge/theme.rb +5 -0
- data/lib/rouge/themes/base16.rb +1 -0
- data/lib/rouge/themes/bw.rb +41 -0
- data/lib/rouge/themes/colorful.rb +1 -0
- data/lib/rouge/themes/github.rb +1 -0
- data/lib/rouge/themes/gruvbox.rb +1 -0
- data/lib/rouge/themes/igor_pro.rb +1 -0
- data/lib/rouge/themes/magritte.rb +78 -0
- data/lib/rouge/themes/molokai.rb +1 -0
- data/lib/rouge/themes/monokai.rb +1 -0
- data/lib/rouge/themes/monokai_sublime.rb +4 -1
- data/lib/rouge/themes/pastie.rb +2 -1
- data/lib/rouge/themes/thankful_eyes.rb +2 -1
- data/lib/rouge/themes/tulip.rb +2 -1
- data/lib/rouge/token.rb +31 -22
- data/lib/rouge/util.rb +3 -2
- data/lib/rouge/version.rb +2 -1
- data/rouge.gemspec +6 -3
- metadata +130 -8
- data/lib/rouge/lexers/apache/keywords.yml +0 -764
- data/lib/rouge/lexers/lasso/keywords.yml +0 -446
data/lib/rouge/lexers/ceylon.rb
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
# -*- coding: utf-8 -*- #
|
|
2
|
+
# frozen_string_literal: true
|
|
2
3
|
|
|
3
4
|
module Rouge
|
|
4
5
|
module Lexers
|
|
@@ -10,34 +11,6 @@ module Rouge
|
|
|
10
11
|
title "Ceylon"
|
|
11
12
|
desc 'Say more, more clearly.'
|
|
12
13
|
|
|
13
|
-
keywords = %w(
|
|
14
|
-
break case catch continue else finally for in
|
|
15
|
-
if return switch this throw try while is exists dynamic
|
|
16
|
-
nonempty then outer assert let
|
|
17
|
-
)
|
|
18
|
-
|
|
19
|
-
keywords_declaration = %w(
|
|
20
|
-
abstracts extends satisfies super given of out assign
|
|
21
|
-
)
|
|
22
|
-
|
|
23
|
-
keywords_type = %w(
|
|
24
|
-
function value void new
|
|
25
|
-
)
|
|
26
|
-
|
|
27
|
-
keywords_namespace = %w(
|
|
28
|
-
assembly module package
|
|
29
|
-
)
|
|
30
|
-
|
|
31
|
-
keywords_constant = %w(
|
|
32
|
-
true false null
|
|
33
|
-
)
|
|
34
|
-
|
|
35
|
-
annotations = %w(
|
|
36
|
-
shared abstract formal default actual variable deprecated small
|
|
37
|
-
late literal doc by see throws optional license tagged final native
|
|
38
|
-
annotation sealed
|
|
39
|
-
)
|
|
40
|
-
|
|
41
14
|
state :whitespace do
|
|
42
15
|
rule %r([^\S\n]+), Text
|
|
43
16
|
rule %r(//.*?\n), Comment::Single
|
|
@@ -58,14 +31,14 @@ module Rouge
|
|
|
58
31
|
rule %r((abstracts|extends|satisfies|super|given|of|out|assign)\b), Keyword::Declaration
|
|
59
32
|
|
|
60
33
|
rule %r((function|value|void|new)\b), Keyword::Type
|
|
61
|
-
|
|
34
|
+
|
|
62
35
|
rule %r((assembly|module|package)(\s+)) do
|
|
63
36
|
groups Keyword::Namespace, Text
|
|
64
37
|
push :import
|
|
65
38
|
end
|
|
66
|
-
|
|
39
|
+
|
|
67
40
|
rule %r((true|false|null)\b), Keyword::Constant
|
|
68
|
-
|
|
41
|
+
|
|
69
42
|
rule %r((class|interface|object|alias)(\s+)) do
|
|
70
43
|
groups Keyword::Declaration, Text
|
|
71
44
|
push :class
|
|
@@ -75,7 +48,7 @@ module Rouge
|
|
|
75
48
|
groups Keyword::Namespace, Text
|
|
76
49
|
push :import
|
|
77
50
|
end
|
|
78
|
-
|
|
51
|
+
|
|
79
52
|
rule %r("(\\\\|\\"|[^"])*"), Literal::String
|
|
80
53
|
rule %r('\\.'|'[^\\]'|'\\\{#[0-9a-fA-F]{4}\}'), Literal::String::Char
|
|
81
54
|
rule %r(".*``.*``.*"', String::Interpol
|
|
@@ -85,7 +58,7 @@ module Rouge
|
|
|
85
58
|
rule %r([a-zA-Z_]\w*:), Name::Label
|
|
86
59
|
rule %r((\\I[a-z]|[A-Z])\w*), Name::Decorator
|
|
87
60
|
rule %r([a-zA-Z_]\w*), Name
|
|
88
|
-
rule %r([~^*!%&\[\](){}
|
|
61
|
+
rule %r([~^*!%&\[\](){}<>|+=:;,./?`-]), Operator
|
|
89
62
|
rule %r(\d{1,3}(_\d{3})+\.\d{1,3}(_\d{3})+[kMGTPmunpf]?), Literal::Number::Float
|
|
90
63
|
rule %r(\d{1,3}(_\d{3})+\.[0-9]+([eE][+-]?[0-9]+)?[kMGTPmunpf]?),
|
|
91
64
|
Literal::Number::Float
|
|
@@ -111,7 +84,7 @@ module Rouge
|
|
|
111
84
|
rule %r([a-z][\w.]*), Name::Namespace, :pop!
|
|
112
85
|
rule %r("(\\\\|\\"|[^"])*"), Literal::String, :pop!
|
|
113
86
|
end
|
|
114
|
-
|
|
87
|
+
|
|
115
88
|
state :comment do
|
|
116
89
|
rule %r([^*/]), Comment.Multiline
|
|
117
90
|
rule %r(/\*), Comment::Multiline, :push!
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
# -*- coding: utf-8 -*- #
|
|
2
|
+
# frozen_string_literal: true
|
|
2
3
|
|
|
3
4
|
module Rouge
|
|
4
5
|
module Lexers
|
|
@@ -36,30 +37,30 @@ module Rouge
|
|
|
36
37
|
|
|
37
38
|
state :root do
|
|
38
39
|
mixin :comments_and_whitespace
|
|
39
|
-
rule /(?:#{operators.join('|')}|does not contain|greater than(?: or equal to)?|less than(?: or equal to)?)\b/i, Operator, :expr_start
|
|
40
|
+
rule %r/(?:#{operators.join('|')}|does not contain|greater than(?: or equal to)?|less than(?: or equal to)?)\b/i, Operator, :expr_start
|
|
40
41
|
rule %r([-<>+*%&|\^/!=]=?), Operator, :expr_start
|
|
41
42
|
|
|
42
|
-
rule /[(\[,]/, Punctuation, :expr_start
|
|
43
|
-
rule /;/, Punctuation, :statement
|
|
44
|
-
rule /[)\].]/, Punctuation
|
|
43
|
+
rule %r/[(\[,]/, Punctuation, :expr_start
|
|
44
|
+
rule %r/;/, Punctuation, :statement
|
|
45
|
+
rule %r/[)\].]/, Punctuation
|
|
45
46
|
|
|
46
|
-
rule /[?]/ do
|
|
47
|
+
rule %r/[?]/ do
|
|
47
48
|
token Punctuation
|
|
48
49
|
push :ternary
|
|
49
50
|
push :expr_start
|
|
50
51
|
end
|
|
51
52
|
|
|
52
|
-
rule /[{}]/, Punctuation, :statement
|
|
53
|
+
rule %r/[{}]/, Punctuation, :statement
|
|
53
54
|
|
|
54
|
-
rule /(?:#{constants.join('|')})\b/, Name::Constant
|
|
55
|
-
rule /(?:true|false|null)\b/, Keyword::Constant
|
|
56
|
-
rule /import\b/, Keyword::Namespace, :import
|
|
57
|
-
rule /(#{dotted_id})(\s*)(:)(\s*)/ do
|
|
55
|
+
rule %r/(?:#{constants.join('|')})\b/, Name::Constant
|
|
56
|
+
rule %r/(?:true|false|null)\b/, Keyword::Constant
|
|
57
|
+
rule %r/import\b/, Keyword::Namespace, :import
|
|
58
|
+
rule %r/(#{dotted_id})(\s*)(:)(\s*)/ do
|
|
58
59
|
groups Name, Text, Punctuation, Text
|
|
59
60
|
push :expr_start
|
|
60
61
|
end
|
|
61
62
|
|
|
62
|
-
rule /([A-Za-z_$][\w.]*)(\s*)(\()/ do |m|
|
|
63
|
+
rule %r/([A-Za-z_$][\w.]*)(\s*)(\()/ do |m|
|
|
63
64
|
if self.class.keywords.include? m[1]
|
|
64
65
|
token Keyword, m[1]
|
|
65
66
|
token Text, m[2]
|
|
@@ -86,17 +87,17 @@ module Rouge
|
|
|
86
87
|
end
|
|
87
88
|
end
|
|
88
89
|
|
|
89
|
-
rule /[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?/, Num::Float
|
|
90
|
-
rule /0x[0-9a-fA-F]+/, Num::Hex
|
|
91
|
-
rule /[0-9]+/, Num::Integer
|
|
92
|
-
rule /"(\\\\|\\"|[^"])*"/, Str::Double
|
|
93
|
-
rule /'(\\\\|\\'|[^'])*'/, Str::Single
|
|
90
|
+
rule %r/[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?/, Num::Float
|
|
91
|
+
rule %r/0x[0-9a-fA-F]+/, Num::Hex
|
|
92
|
+
rule %r/[0-9]+/, Num::Integer
|
|
93
|
+
rule %r/"(\\\\|\\"|[^"])*"/, Str::Double
|
|
94
|
+
rule %r/'(\\\\|\\'|[^'])*'/, Str::Single
|
|
94
95
|
|
|
95
96
|
end
|
|
96
97
|
|
|
97
98
|
# same as java, broken out
|
|
98
99
|
state :comments_and_whitespace do
|
|
99
|
-
rule /\s+/, Text
|
|
100
|
+
rule %r/\s+/, Text
|
|
100
101
|
rule %r(//.*?$), Comment::Single
|
|
101
102
|
rule %r(/\*.*?\*/)m, Comment::Multiline
|
|
102
103
|
end
|
|
@@ -104,14 +105,14 @@ module Rouge
|
|
|
104
105
|
state :expr_start do
|
|
105
106
|
mixin :comments_and_whitespace
|
|
106
107
|
|
|
107
|
-
rule /[{]/, Punctuation, :object
|
|
108
|
+
rule %r/[{]/, Punctuation, :object
|
|
108
109
|
|
|
109
|
-
rule //, Text, :pop!
|
|
110
|
+
rule %r//, Text, :pop!
|
|
110
111
|
end
|
|
111
112
|
|
|
112
113
|
state :statement do
|
|
113
114
|
|
|
114
|
-
rule /[{}]/, Punctuation
|
|
115
|
+
rule %r/[{}]/, Punctuation
|
|
115
116
|
|
|
116
117
|
mixin :expr_start
|
|
117
118
|
end
|
|
@@ -119,23 +120,23 @@ module Rouge
|
|
|
119
120
|
# object literals
|
|
120
121
|
state :object do
|
|
121
122
|
mixin :comments_and_whitespace
|
|
122
|
-
rule /[}]/ do
|
|
123
|
+
rule %r/[}]/ do
|
|
123
124
|
token Punctuation
|
|
124
125
|
push :expr_start
|
|
125
126
|
end
|
|
126
127
|
|
|
127
|
-
rule /(#{dotted_id})(\s*)(:)/ do
|
|
128
|
+
rule %r/(#{dotted_id})(\s*)(:)/ do
|
|
128
129
|
groups Name::Other, Text, Punctuation
|
|
129
130
|
push :expr_start
|
|
130
131
|
end
|
|
131
132
|
|
|
132
|
-
rule /:/, Punctuation
|
|
133
|
+
rule %r/:/, Punctuation
|
|
133
134
|
mixin :root
|
|
134
135
|
end
|
|
135
136
|
|
|
136
137
|
# ternary expressions, where <dotted_id>: is not a label!
|
|
137
138
|
state :ternary do
|
|
138
|
-
rule /:/ do
|
|
139
|
+
rule %r/:/ do
|
|
139
140
|
token Punctuation
|
|
140
141
|
goto :expr_start
|
|
141
142
|
end
|
|
@@ -144,8 +145,8 @@ module Rouge
|
|
|
144
145
|
end
|
|
145
146
|
|
|
146
147
|
state :import do
|
|
147
|
-
rule /\s+/m, Text
|
|
148
|
-
rule /[a-z0-9_.]+\*?/i, Name::Namespace, :pop!
|
|
148
|
+
rule %r/\s+/m, Text
|
|
149
|
+
rule %r/[a-z0-9_.]+\*?/i, Name::Namespace, :pop!
|
|
149
150
|
end
|
|
150
151
|
|
|
151
152
|
end
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*- #
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module Rouge
|
|
5
|
+
module Lexers
|
|
6
|
+
class Clean < RegexLexer
|
|
7
|
+
title "Clean"
|
|
8
|
+
desc "The Clean programming language (clean.cs.ru.nl)"
|
|
9
|
+
|
|
10
|
+
tag 'clean'
|
|
11
|
+
filenames '*.dcl', '*.icl'
|
|
12
|
+
|
|
13
|
+
def self.keywords
|
|
14
|
+
@keywords ||= Set.new %w(
|
|
15
|
+
if otherwise
|
|
16
|
+
let in
|
|
17
|
+
with where
|
|
18
|
+
case of
|
|
19
|
+
infix infixl infixr
|
|
20
|
+
class instance
|
|
21
|
+
generic derive
|
|
22
|
+
special
|
|
23
|
+
implementation definition system module
|
|
24
|
+
from import qualified as
|
|
25
|
+
dynamic
|
|
26
|
+
code inline foreign export ccall stdcall
|
|
27
|
+
)
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
# These are literal patterns common to the ABC intermediate language and
|
|
31
|
+
# Clean. Clean has more extensive literal patterns (see :basic below).
|
|
32
|
+
state :common_literals do
|
|
33
|
+
rule %r/'(?:[^'\\]|\\(?:x[0-9a-fA-F]+|\d+|.))'/, Str::Char
|
|
34
|
+
|
|
35
|
+
rule %r/[+~-]?\d+\.\d+(?:E[+-]?\d+)?\b/, Num::Float
|
|
36
|
+
rule %r/[+~-]?\d+E[+-]?\d+\b/, Num::Float
|
|
37
|
+
rule %r/[+~-]?\d+/, Num::Integer
|
|
38
|
+
|
|
39
|
+
rule %r/"/, Str::Double, :string
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
state :basic do
|
|
43
|
+
rule %r/\s+/m, Text::Whitespace
|
|
44
|
+
|
|
45
|
+
rule %r/\/\/\*.*/, Comment::Doc
|
|
46
|
+
rule %r/\/\/.*/, Comment::Single
|
|
47
|
+
rule %r/\/\*\*/, Comment::Doc, :comment_doc
|
|
48
|
+
rule %r/\/\*/, Comment::Multiline, :comment
|
|
49
|
+
|
|
50
|
+
rule %r/[+~-]?0[0-7]+/, Num::Oct
|
|
51
|
+
rule %r/[+~-]?0x[0-9a-fA-F]+/, Num::Hex
|
|
52
|
+
mixin :common_literals
|
|
53
|
+
rule %r/(\[)(\s*)(')(?=.*?'\])/ do
|
|
54
|
+
groups Punctuation, Text::Whitespace, Str::Single, Punctuation
|
|
55
|
+
push :charlist
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
# nested commenting
|
|
60
|
+
state :comment_doc do
|
|
61
|
+
rule %r/\*\//, Comment::Doc, :pop!
|
|
62
|
+
rule %r/\/\/.*/, Comment::Doc # Singleline comments in multiline comments are skipped
|
|
63
|
+
rule %r/\/\*/, Comment::Doc, :comment
|
|
64
|
+
rule %r/[^*\/]+/, Comment::Doc
|
|
65
|
+
rule %r/[*\/]/, Comment::Doc
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
# This is the same as the above, but with Multiline instead of Doc
|
|
69
|
+
state :comment do
|
|
70
|
+
rule %r/\*\//, Comment::Multiline, :pop!
|
|
71
|
+
rule %r/\/\/.*/, Comment::Multiline # Singleline comments in multiline comments are skipped
|
|
72
|
+
rule %r/\/\*/, Comment::Multiline, :comment
|
|
73
|
+
rule %r/[^*\/]+/, Comment::Multiline
|
|
74
|
+
rule %r/[*\/]/, Comment::Multiline
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
state :root do
|
|
78
|
+
mixin :basic
|
|
79
|
+
|
|
80
|
+
rule %r/code(\s+inline)?\s*{/, Comment::Preproc, :abc
|
|
81
|
+
|
|
82
|
+
rule %r/_*[a-z][\w_`]*/ do |m|
|
|
83
|
+
if self.class.keywords.include?(m[0])
|
|
84
|
+
token Keyword
|
|
85
|
+
else
|
|
86
|
+
token Name
|
|
87
|
+
end
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
rule %r/_*[A-Z][\w_`]*/ do |m|
|
|
91
|
+
if m[0]=='True' || m[0]=='False'
|
|
92
|
+
token Keyword::Constant
|
|
93
|
+
else
|
|
94
|
+
token Keyword::Type
|
|
95
|
+
end
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
rule %r/[^\w_\s`]/, Punctuation
|
|
99
|
+
rule %r/_\b/, Punctuation
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
state :escapes do
|
|
103
|
+
rule %r/\\x[0-9a-fA-F]{1,2}/i, Str::Escape
|
|
104
|
+
rule %r/\\d\d{0,3}/i, Str::Escape
|
|
105
|
+
rule %r/\\0[0-7]{0,3}/, Str::Escape
|
|
106
|
+
rule %r/\\[0-7]{1,3}/, Str::Escape
|
|
107
|
+
rule %r/\\[nrfbtv\\"']/, Str::Escape
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
state :string do
|
|
111
|
+
rule %r/"/, Str::Double, :pop!
|
|
112
|
+
mixin :escapes
|
|
113
|
+
rule %r/[^\\"]+/, Str::Double
|
|
114
|
+
end
|
|
115
|
+
|
|
116
|
+
state :charlist do
|
|
117
|
+
rule %r/(')(\])/ do
|
|
118
|
+
groups Str::Single, Punctuation
|
|
119
|
+
pop!
|
|
120
|
+
end
|
|
121
|
+
mixin :escapes
|
|
122
|
+
rule %r/[^\\']/, Str::Single
|
|
123
|
+
end
|
|
124
|
+
|
|
125
|
+
state :abc_basic do
|
|
126
|
+
rule %r/\s+/, Text::Whitespace
|
|
127
|
+
rule %r/\|.*/, Comment::Single
|
|
128
|
+
mixin :common_literals
|
|
129
|
+
end
|
|
130
|
+
|
|
131
|
+
# The ABC intermediate language can be included, similar to C's inline
|
|
132
|
+
# assembly. For some information about ABC, see:
|
|
133
|
+
# https://en.wikipedia.org/wiki/Clean_(programming_language)#The_ABC-Machine
|
|
134
|
+
state :abc do
|
|
135
|
+
mixin :abc_basic
|
|
136
|
+
|
|
137
|
+
rule %r/}/, Comment::Preproc, :pop!
|
|
138
|
+
rule %r/\.\w*/, Keyword, :abc_rest_of_line
|
|
139
|
+
rule %r/[\w_]+/, Name::Builtin, :abc_rest_of_line
|
|
140
|
+
end
|
|
141
|
+
|
|
142
|
+
state :abc_rest_of_line do
|
|
143
|
+
rule %r/\n/, Text::Whitespace, :pop!
|
|
144
|
+
rule %r/}/ do
|
|
145
|
+
token Comment::Preproc
|
|
146
|
+
pop!
|
|
147
|
+
pop!
|
|
148
|
+
end
|
|
149
|
+
|
|
150
|
+
mixin :abc_basic
|
|
151
|
+
|
|
152
|
+
rule %r/\S+/, Name
|
|
153
|
+
end
|
|
154
|
+
end
|
|
155
|
+
end
|
|
156
|
+
end
|
data/lib/rouge/lexers/clojure.rb
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
# -*- coding: utf-8 -*- #
|
|
2
|
+
# frozen_string_literal: true
|
|
2
3
|
|
|
3
4
|
module Rouge
|
|
4
5
|
module Lexers
|
|
@@ -73,22 +74,22 @@ module Rouge
|
|
|
73
74
|
end
|
|
74
75
|
|
|
75
76
|
state :root do
|
|
76
|
-
rule /;.*?$/, Comment::Single
|
|
77
|
-
rule /\s+/m, Text::Whitespace
|
|
77
|
+
rule %r/;.*?$/, Comment::Single
|
|
78
|
+
rule %r/\s+/m, Text::Whitespace
|
|
78
79
|
|
|
79
|
-
rule /-?\d+\.\d+/, Num::Float
|
|
80
|
-
rule /-?\d+/, Num::Integer
|
|
81
|
-
rule /0x-?[0-9a-fA-F]+/, Num::Hex
|
|
80
|
+
rule %r/-?\d+\.\d+/, Num::Float
|
|
81
|
+
rule %r/-?\d+/, Num::Integer
|
|
82
|
+
rule %r/0x-?[0-9a-fA-F]+/, Num::Hex
|
|
82
83
|
|
|
83
|
-
rule /"(\\.|[^"])*"/, Str
|
|
84
|
-
rule /'#{keyword}/, Str::Symbol
|
|
85
|
-
rule /::?#{keyword}/, Name::Constant
|
|
86
|
-
rule /\\(.|[a-z]+)/i, Str::Char
|
|
84
|
+
rule %r/"(\\.|[^"])*"/, Str
|
|
85
|
+
rule %r/'#{keyword}/, Str::Symbol
|
|
86
|
+
rule %r/::?#{keyword}/, Name::Constant
|
|
87
|
+
rule %r/\\(.|[a-z]+)/i, Str::Char
|
|
87
88
|
|
|
88
89
|
|
|
89
|
-
rule /~@|[`\'#^~&@]/, Operator
|
|
90
|
+
rule %r/~@|[`\'#^~&@]/, Operator
|
|
90
91
|
|
|
91
|
-
rule /(\()(\s*)(#{identifier})/m do |m|
|
|
92
|
+
rule %r/(\()(\s*)(#{identifier})/m do |m|
|
|
92
93
|
token Punctuation, m[1]
|
|
93
94
|
token Text::Whitespace, m[2]
|
|
94
95
|
token(name_token(m[3]) || Name::Function, m[3])
|
|
@@ -99,13 +100,13 @@ module Rouge
|
|
|
99
100
|
end
|
|
100
101
|
|
|
101
102
|
# vectors
|
|
102
|
-
rule /[\[\]]/, Punctuation
|
|
103
|
+
rule %r/[\[\]]/, Punctuation
|
|
103
104
|
|
|
104
105
|
# maps
|
|
105
|
-
rule /[{}]/, Punctuation
|
|
106
|
+
rule %r/[{}]/, Punctuation
|
|
106
107
|
|
|
107
108
|
# parentheses
|
|
108
|
-
rule /[()]/, Punctuation
|
|
109
|
+
rule %r/[()]/, Punctuation
|
|
109
110
|
end
|
|
110
111
|
end
|
|
111
112
|
end
|
data/lib/rouge/lexers/cmake.rb
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
# -*- coding: utf-8 -*- #
|
|
2
|
+
# frozen_string_literal: true
|
|
2
3
|
|
|
3
4
|
module Rouge
|
|
4
5
|
module Lexers
|
|
@@ -124,23 +125,23 @@ module Rouge
|
|
|
124
125
|
]
|
|
125
126
|
|
|
126
127
|
state :default do
|
|
127
|
-
rule /\r\n?|\n/ do
|
|
128
|
+
rule %r/\r\n?|\n/ do
|
|
128
129
|
token STATES_MAP[state.name.to_sym]
|
|
129
130
|
end
|
|
130
|
-
rule /./ do
|
|
131
|
+
rule %r/./ do
|
|
131
132
|
token STATES_MAP[state.name.to_sym]
|
|
132
133
|
end
|
|
133
134
|
end
|
|
134
135
|
|
|
135
136
|
state :variable_interpolation do
|
|
136
|
-
rule /\$\{/ do
|
|
137
|
+
rule %r/\$\{/ do
|
|
137
138
|
token Str::Interpol
|
|
138
139
|
push :variable_reference
|
|
139
140
|
end
|
|
140
141
|
end
|
|
141
142
|
|
|
142
143
|
state :bracket_close do
|
|
143
|
-
rule /\]=*\]/ do |m|
|
|
144
|
+
rule %r/\]=*\]/ do |m|
|
|
144
145
|
token STATES_MAP[state.name.to_sym]
|
|
145
146
|
goto :root if m[0].length == @bracket_len
|
|
146
147
|
end
|
|
@@ -149,27 +150,28 @@ module Rouge
|
|
|
149
150
|
state :root do
|
|
150
151
|
mixin :variable_interpolation
|
|
151
152
|
|
|
152
|
-
rule /#{SPACE}/, Text
|
|
153
|
-
rule /[()]/, Punctuation
|
|
153
|
+
rule %r/#{SPACE}/, Text
|
|
154
|
+
rule %r/[()]/, Punctuation
|
|
154
155
|
|
|
155
|
-
rule /##{BRACKET_OPEN}/ do |m|
|
|
156
|
+
rule %r/##{BRACKET_OPEN}/ do |m|
|
|
156
157
|
token Comment::Multiline
|
|
157
158
|
@bracket_len = m[0].length - 1 # decount '#'
|
|
158
159
|
goto :bracket_comment
|
|
159
160
|
end
|
|
160
|
-
rule /#{BRACKET_OPEN}/ do |m|
|
|
161
|
+
rule %r/#{BRACKET_OPEN}/ do |m|
|
|
161
162
|
token Str::Double
|
|
162
163
|
@bracket_len = m[0].length
|
|
163
164
|
goto :bracket_string
|
|
164
165
|
end
|
|
165
166
|
|
|
166
|
-
rule
|
|
167
|
+
rule %r/\\"/, Text
|
|
168
|
+
rule %r/"/, Str::Double, :quoted_argument
|
|
167
169
|
|
|
168
|
-
rule /([A-Za-z_][A-Za-z0-9_]*)(#{SPACE}*)(\()/ do |m|
|
|
170
|
+
rule %r/([A-Za-z_][A-Za-z0-9_]*)(#{SPACE}*)(\()/ do |m|
|
|
169
171
|
groups BUILTIN_COMMANDS.include?(m[1]) ? Name::Builtin : Name::Function, Text, Punctuation
|
|
170
172
|
end
|
|
171
173
|
|
|
172
|
-
rule /#.*/, Comment::Single
|
|
174
|
+
rule %r/#.*/, Comment::Single
|
|
173
175
|
|
|
174
176
|
mixin :default
|
|
175
177
|
end
|
|
@@ -188,7 +190,7 @@ module Rouge
|
|
|
188
190
|
state :variable_reference do
|
|
189
191
|
mixin :variable_interpolation
|
|
190
192
|
|
|
191
|
-
rule /}/, Str::Interpol, :pop!
|
|
193
|
+
rule %r/}/, Str::Interpol, :pop!
|
|
192
194
|
|
|
193
195
|
mixin :default
|
|
194
196
|
end
|
|
@@ -196,8 +198,8 @@ module Rouge
|
|
|
196
198
|
state :quoted_argument do
|
|
197
199
|
mixin :variable_interpolation
|
|
198
200
|
|
|
199
|
-
rule /"/, Str::Double, :root
|
|
200
|
-
rule /\\[()#" \\$@^trn;]/, Str::Escape
|
|
201
|
+
rule %r/"/, Str::Double, :root
|
|
202
|
+
rule %r/\\[()#" \\$@^trn;]/, Str::Escape
|
|
201
203
|
|
|
202
204
|
mixin :default
|
|
203
205
|
end
|