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
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*- #
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module Rouge
|
|
5
|
+
module Lexers
|
|
6
|
+
class CMHG < RegexLexer
|
|
7
|
+
title "CMHG"
|
|
8
|
+
desc "RISC OS C module header generator source file"
|
|
9
|
+
tag 'cmhg'
|
|
10
|
+
filenames '*.cmhg'
|
|
11
|
+
|
|
12
|
+
def self.preproc_keyword
|
|
13
|
+
@preproc_keyword ||= %w(
|
|
14
|
+
define elif else endif error if ifdef ifndef include line pragma undef warning
|
|
15
|
+
)
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
state :root do
|
|
19
|
+
rule %r/;[^\n]*/, Comment
|
|
20
|
+
rule %r/^([ \t]*)(#[ \t]*(?:(?:#{CMHG.preproc_keyword.join('|')})(?:[ \t].*)?)?)(?=\n)/ do
|
|
21
|
+
groups Text, Comment::Preproc
|
|
22
|
+
end
|
|
23
|
+
rule %r/[-a-z]+:/, Keyword::Declaration
|
|
24
|
+
rule %r/[a-z_]\w+/i, Name::Entity
|
|
25
|
+
rule %r/"[^"]*"/, Literal::String
|
|
26
|
+
rule %r/(?:&|0x)\h+/, Literal::Number::Hex
|
|
27
|
+
rule %r/\d+/, Literal::Number
|
|
28
|
+
rule %r/[,\/()]/, Punctuation
|
|
29
|
+
rule %r/[ \t]+/, Text
|
|
30
|
+
rule %r/\n+/, Text
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
# -*- coding: utf-8 -*- #
|
|
2
|
+
# frozen_string_literal: true
|
|
2
3
|
|
|
3
4
|
module Rouge
|
|
4
5
|
module Lexers
|
|
@@ -17,9 +18,17 @@ module Rouge
|
|
|
17
18
|
|
|
18
19
|
def self.keywords
|
|
19
20
|
@keywords ||= Set.new %w(
|
|
20
|
-
for
|
|
21
|
-
throw try catch finally
|
|
22
|
-
extends this class
|
|
21
|
+
for by while until loop break continue return
|
|
22
|
+
switch when then if else do yield throw try catch finally await
|
|
23
|
+
new delete typeof instanceof super extends this class
|
|
24
|
+
import export debugger
|
|
25
|
+
)
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def self.reserved
|
|
29
|
+
@reserved ||= Set.new %w(
|
|
30
|
+
case function var void with const let enum
|
|
31
|
+
native implements interface package private protected public static
|
|
23
32
|
)
|
|
24
33
|
end
|
|
25
34
|
|
|
@@ -40,33 +49,54 @@ module Rouge
|
|
|
40
49
|
|
|
41
50
|
id = /[$a-zA-Z_][a-zA-Z0-9_]*/
|
|
42
51
|
|
|
43
|
-
state :
|
|
44
|
-
rule
|
|
45
|
-
rule
|
|
46
|
-
rule /#.*$/, Comment::Single
|
|
52
|
+
state :comments do
|
|
53
|
+
rule %r/###[^#].*?###/m, Comment::Multiline
|
|
54
|
+
rule %r/#.*$/, Comment::Single
|
|
47
55
|
end
|
|
48
56
|
|
|
49
|
-
state :
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
mixin :has_interpolation
|
|
53
|
-
mixin :comments_and_whitespace
|
|
57
|
+
state :whitespace do
|
|
58
|
+
rule %r/\s+/m, Text
|
|
59
|
+
end
|
|
54
60
|
|
|
55
|
-
|
|
56
|
-
rule %r(
|
|
57
|
-
rule %r(
|
|
61
|
+
state :regex_comment do
|
|
62
|
+
rule %r/^#(?!\{).*$/, Comment::Single
|
|
63
|
+
rule %r/(\s+)(#(?!\{).*)$/ do
|
|
64
|
+
groups Text, Comment::Single
|
|
65
|
+
end
|
|
58
66
|
end
|
|
59
67
|
|
|
60
|
-
state :
|
|
61
|
-
mixin :comments_and_whitespace
|
|
68
|
+
state :multiline_regex_begin do
|
|
62
69
|
rule %r(///) do
|
|
63
70
|
token Str::Regex
|
|
64
71
|
goto :multiline_regex
|
|
65
72
|
end
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
state :multiline_regex_end do
|
|
76
|
+
rule %r(///([gimy]+\b|\B)), Str::Regex, :pop!
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
state :multiline_regex do
|
|
80
|
+
mixin :multiline_regex_end
|
|
81
|
+
mixin :regex_comment
|
|
82
|
+
mixin :has_interpolation
|
|
83
|
+
mixin :comments
|
|
84
|
+
mixin :whitespace
|
|
85
|
+
mixin :code_escape
|
|
86
|
+
|
|
87
|
+
rule %r/\\\D/, Str::Escape
|
|
88
|
+
rule %r/\\\d+/, Name::Variable
|
|
89
|
+
rule %r/./m, Str::Regex
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
state :slash_starts_regex do
|
|
93
|
+
mixin :comments
|
|
94
|
+
mixin :whitespace
|
|
95
|
+
mixin :multiline_regex_begin
|
|
66
96
|
|
|
67
97
|
rule %r(
|
|
68
98
|
/(\\.|[^\[/\\\n]|\[(\\.|[^\]\\\n])*\])+/ # a regex
|
|
69
|
-
([
|
|
99
|
+
([gimy]+\b|\B)
|
|
70
100
|
)x, Str::Regex, :pop!
|
|
71
101
|
|
|
72
102
|
rule(//) { pop! }
|
|
@@ -74,27 +104,29 @@ module Rouge
|
|
|
74
104
|
|
|
75
105
|
state :root do
|
|
76
106
|
rule(%r(^(?=\s|/|<!--))) { push :slash_starts_regex }
|
|
77
|
-
mixin :
|
|
107
|
+
mixin :comments
|
|
108
|
+
mixin :whitespace
|
|
109
|
+
|
|
78
110
|
rule %r(
|
|
79
|
-
[+][+]|--|~|&&|\band\b|\bor\b|\bis\b|\bisnt\b|\bnot\b|
|
|
80
|
-
[|][|]|\\(?=\n)|(<<|>>>?|==?|!=?|[-<>+*`%&|^/])=?
|
|
111
|
+
[+][+]|--|~|&&|\band\b|\bor\b|\bis\b|\bisnt\b|\bnot\b|\bin\b|\bof\b|
|
|
112
|
+
[?]|:|=|[|][|]|\\(?=\n)|(<<|>>>?|==?|!=?|[-<>+*`%&|^/])=?
|
|
81
113
|
)x, Operator, :slash_starts_regex
|
|
82
114
|
|
|
83
|
-
rule /[-=]>/, Name::Function
|
|
115
|
+
rule %r/[-=]>/, Name::Function
|
|
84
116
|
|
|
85
|
-
rule /(@)([ \t]*)(#{id})/ do
|
|
117
|
+
rule %r/(@)([ \t]*)(#{id})/ do
|
|
86
118
|
groups Name::Variable::Instance, Text, Name::Attribute
|
|
87
119
|
push :slash_starts_regex
|
|
88
120
|
end
|
|
89
121
|
|
|
90
|
-
rule /([.])([ \t]*)(#{id})/ do
|
|
122
|
+
rule %r/([.])([ \t]*)(#{id})/ do
|
|
91
123
|
groups Punctuation, Text, Name::Attribute
|
|
92
124
|
push :slash_starts_regex
|
|
93
125
|
end
|
|
94
126
|
|
|
95
|
-
rule /#{id}(?=\s*:)/, Name::Attribute, :slash_starts_regex
|
|
127
|
+
rule %r/#{id}(?=\s*:)/, Name::Attribute, :slash_starts_regex
|
|
96
128
|
|
|
97
|
-
rule /#{id}/ do |m|
|
|
129
|
+
rule %r/#{id}/ do |m|
|
|
98
130
|
if self.class.keywords.include? m[0]
|
|
99
131
|
token Keyword
|
|
100
132
|
elsif self.class.constants.include? m[0]
|
|
@@ -108,65 +140,74 @@ module Rouge
|
|
|
108
140
|
push :slash_starts_regex
|
|
109
141
|
end
|
|
110
142
|
|
|
111
|
-
rule /[{(\[;,]/, Punctuation, :slash_starts_regex
|
|
112
|
-
rule /[})\].]/, Punctuation
|
|
143
|
+
rule %r/[{(\[;,]/, Punctuation, :slash_starts_regex
|
|
144
|
+
rule %r/[})\].]/, Punctuation
|
|
113
145
|
|
|
114
|
-
rule /\d+[.]\d+([eE]\d+)?[fd]?/, Num::Float
|
|
115
|
-
rule /0x[0-9a-fA-F]+/, Num::Hex
|
|
116
|
-
rule /\d+/, Num::Integer
|
|
117
|
-
rule /"""/, Str, :tdqs
|
|
118
|
-
rule /'''/, Str, :tsqs
|
|
119
|
-
rule /"/, Str, :dqs
|
|
120
|
-
rule /'/, Str, :sqs
|
|
146
|
+
rule %r/\d+[.]\d+([eE]\d+)?[fd]?/, Num::Float
|
|
147
|
+
rule %r/0x[0-9a-fA-F]+/, Num::Hex
|
|
148
|
+
rule %r/\d+/, Num::Integer
|
|
149
|
+
rule %r/"""/, Str, :tdqs
|
|
150
|
+
rule %r/'''/, Str, :tsqs
|
|
151
|
+
rule %r/"/, Str, :dqs
|
|
152
|
+
rule %r/'/, Str, :sqs
|
|
153
|
+
end
|
|
154
|
+
|
|
155
|
+
state :code_escape do
|
|
156
|
+
rule %r(\\(
|
|
157
|
+
c[A-Z]|
|
|
158
|
+
x[0-9a-fA-F]{2}|
|
|
159
|
+
u[0-9a-fA-F]{4}|
|
|
160
|
+
u\{[0-9a-fA-F]{4}\}
|
|
161
|
+
))x, Str::Escape
|
|
121
162
|
end
|
|
122
163
|
|
|
123
164
|
state :strings do
|
|
124
165
|
# all coffeescript strings are multi-line
|
|
125
|
-
rule /[^#\\'"]+/m, Str
|
|
126
|
-
|
|
127
|
-
rule /\\./, Str::Escape
|
|
128
|
-
rule /#/, Str
|
|
166
|
+
rule %r/[^#\\'"]+/m, Str
|
|
167
|
+
mixin :code_escape
|
|
168
|
+
rule %r/\\./, Str::Escape
|
|
169
|
+
rule %r/#/, Str
|
|
129
170
|
end
|
|
130
171
|
|
|
131
172
|
state :double_strings do
|
|
132
|
-
rule /'/, Str
|
|
173
|
+
rule %r/'/, Str
|
|
133
174
|
mixin :has_interpolation
|
|
134
175
|
mixin :strings
|
|
135
176
|
end
|
|
136
177
|
|
|
137
178
|
state :single_strings do
|
|
138
|
-
rule /"/, Str
|
|
179
|
+
rule %r/"/, Str
|
|
139
180
|
mixin :strings
|
|
140
181
|
end
|
|
141
182
|
|
|
142
183
|
state :interpolation do
|
|
143
|
-
rule /}/, Str::Interpol, :pop!
|
|
184
|
+
rule %r/}/, Str::Interpol, :pop!
|
|
144
185
|
mixin :root
|
|
145
186
|
end
|
|
146
187
|
|
|
147
188
|
state :has_interpolation do
|
|
148
|
-
rule /[#][{]/, Str::Interpol, :interpolation
|
|
189
|
+
rule %r/[#][{]/, Str::Interpol, :interpolation
|
|
149
190
|
end
|
|
150
191
|
|
|
151
192
|
state :dqs do
|
|
152
|
-
rule /"/, Str, :pop!
|
|
193
|
+
rule %r/"/, Str, :pop!
|
|
153
194
|
mixin :double_strings
|
|
154
195
|
end
|
|
155
196
|
|
|
156
197
|
state :tdqs do
|
|
157
|
-
rule /"""/, Str, :pop!
|
|
158
|
-
rule /"/, Str
|
|
198
|
+
rule %r/"""/, Str, :pop!
|
|
199
|
+
rule %r/"/, Str
|
|
159
200
|
mixin :double_strings
|
|
160
201
|
end
|
|
161
202
|
|
|
162
203
|
state :sqs do
|
|
163
|
-
rule /'/, Str, :pop!
|
|
204
|
+
rule %r/'/, Str, :pop!
|
|
164
205
|
mixin :single_strings
|
|
165
206
|
end
|
|
166
207
|
|
|
167
208
|
state :tsqs do
|
|
168
|
-
rule /'''/, Str, :pop!
|
|
169
|
-
rule /'/, Str
|
|
209
|
+
rule %r/'''/, Str, :pop!
|
|
210
|
+
rule %r/'/, Str
|
|
170
211
|
mixin :single_strings
|
|
171
212
|
end
|
|
172
213
|
end
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
# -*- coding: utf-8 -*- #
|
|
2
|
+
# frozen_string_literal: true
|
|
2
3
|
|
|
3
4
|
module Rouge
|
|
4
5
|
module Lexers
|
|
@@ -6,7 +7,7 @@ module Rouge
|
|
|
6
7
|
title "Common Lisp"
|
|
7
8
|
desc "The Common Lisp variant of Lisp (common-lisp.net)"
|
|
8
9
|
tag 'common_lisp'
|
|
9
|
-
aliases 'cl', 'common-lisp', 'elisp', 'emacs-lisp'
|
|
10
|
+
aliases 'cl', 'common-lisp', 'elisp', 'emacs-lisp', 'lisp'
|
|
10
11
|
|
|
11
12
|
filenames '*.cl', '*.lisp', '*.asd', '*.el' # used for Elisp too
|
|
12
13
|
mimetypes 'text/x-common-lisp'
|
|
@@ -214,19 +215,19 @@ module Rouge
|
|
|
214
215
|
symbol = /(\|[^\|]+\||#{nonmacro}#{constituent}*)/
|
|
215
216
|
|
|
216
217
|
state :root do
|
|
217
|
-
rule /\s+/m, Text
|
|
218
|
-
rule /;.*$/, Comment::Single
|
|
219
|
-
rule /#\|/, Comment::Multiline, :multiline_comment
|
|
218
|
+
rule %r/\s+/m, Text
|
|
219
|
+
rule %r/;.*$/, Comment::Single
|
|
220
|
+
rule %r/#\|/, Comment::Multiline, :multiline_comment
|
|
220
221
|
|
|
221
222
|
# encoding comment
|
|
222
|
-
rule /#\d*Y.*$/, Comment::Special
|
|
223
|
-
rule /"(\\.|[^"\\])*"/, Str
|
|
223
|
+
rule %r/#\d*Y.*$/, Comment::Special
|
|
224
|
+
rule %r/"(\\.|[^"\\])*"/, Str
|
|
224
225
|
|
|
225
|
-
rule /[:']#{symbol}/, Str::Symbol
|
|
226
|
-
rule /['`]/, Operator
|
|
226
|
+
rule %r/[:']#{symbol}/, Str::Symbol
|
|
227
|
+
rule %r/['`]/, Operator
|
|
227
228
|
|
|
228
229
|
# numbers
|
|
229
|
-
rule /[-+]?\d+\.?#{terminated}/, Num::Integer
|
|
230
|
+
rule %r/[-+]?\d+\.?#{terminated}/, Num::Integer
|
|
230
231
|
rule %r([-+]?\d+/\d+#{terminated}), Num::Integer
|
|
231
232
|
rule %r(
|
|
232
233
|
[-+]?
|
|
@@ -236,65 +237,65 @@ module Rouge
|
|
|
236
237
|
)x, Num::Float
|
|
237
238
|
|
|
238
239
|
# sharpsign strings and characters
|
|
239
|
-
rule /#\\.#{terminated}/, Str::Char
|
|
240
|
-
rule /#\\#{symbol}/, Str::Char
|
|
240
|
+
rule %r/#\\.#{terminated}/, Str::Char
|
|
241
|
+
rule %r/#\\#{symbol}/, Str::Char
|
|
241
242
|
|
|
242
|
-
rule /#\(/, Operator, :root
|
|
243
|
+
rule %r/#\(/, Operator, :root
|
|
243
244
|
|
|
244
245
|
# bitstring
|
|
245
|
-
rule /#\d*\*[01]*/, Other
|
|
246
|
+
rule %r/#\d*\*[01]*/, Other
|
|
246
247
|
|
|
247
248
|
# uninterned symbol
|
|
248
|
-
rule /#:#{symbol}/, Str::Symbol
|
|
249
|
+
rule %r/#:#{symbol}/, Str::Symbol
|
|
249
250
|
|
|
250
251
|
# read-time and load-time evaluation
|
|
251
|
-
rule /#[.,]/, Operator
|
|
252
|
+
rule %r/#[.,]/, Operator
|
|
252
253
|
|
|
253
254
|
# function shorthand
|
|
254
|
-
rule /#'/, Name::Function
|
|
255
|
+
rule %r/#'/, Name::Function
|
|
255
256
|
|
|
256
257
|
# binary rational
|
|
257
|
-
rule /#b[+-]?[01]+(\/[01]+)?/i, Num
|
|
258
|
+
rule %r/#b[+-]?[01]+(\/[01]+)?/i, Num
|
|
258
259
|
|
|
259
260
|
# octal rational
|
|
260
|
-
rule /#o[+-]?[0-7]+(\/[0-7]+)?/i, Num::Oct
|
|
261
|
+
rule %r/#o[+-]?[0-7]+(\/[0-7]+)?/i, Num::Oct
|
|
261
262
|
|
|
262
263
|
# hex rational
|
|
263
|
-
rule /#x[+-]?[0-9a-f]+(\/[0-9a-f]+)?/i, Num
|
|
264
|
+
rule %r/#x[+-]?[0-9a-f]+(\/[0-9a-f]+)?/i, Num
|
|
264
265
|
|
|
265
266
|
# complex
|
|
266
|
-
rule /(#c)(\()/i do
|
|
267
|
+
rule %r/(#c)(\()/i do
|
|
267
268
|
groups Num, Punctuation
|
|
268
269
|
push :root
|
|
269
270
|
end
|
|
270
271
|
|
|
271
272
|
# arrays and structures
|
|
272
|
-
rule /(#(?:\d+a|s))(\()/i do
|
|
273
|
+
rule %r/(#(?:\d+a|s))(\()/i do
|
|
273
274
|
groups Str::Other, Punctuation
|
|
274
275
|
push :root
|
|
275
276
|
end
|
|
276
277
|
|
|
277
278
|
# path
|
|
278
|
-
rule /#p?"(\\.|[^"])*"/i, Str::Symbol
|
|
279
|
+
rule %r/#p?"(\\.|[^"])*"/i, Str::Symbol
|
|
279
280
|
|
|
280
281
|
# reference
|
|
281
|
-
rule /#\d+[=#]/, Operator
|
|
282
|
+
rule %r/#\d+[=#]/, Operator
|
|
282
283
|
|
|
283
284
|
# read-time comment
|
|
284
|
-
rule /#+nil#{terminated}\s*\(/, Comment, :commented_form
|
|
285
|
+
rule %r/#+nil#{terminated}\s*\(/, Comment, :commented_form
|
|
285
286
|
|
|
286
287
|
# read-time conditional
|
|
287
|
-
rule /#[+-]/, Operator
|
|
288
|
+
rule %r/#[+-]/, Operator
|
|
288
289
|
|
|
289
290
|
# special operators that should have been parsed already
|
|
290
|
-
rule /(,@|,|\.)/, Operator
|
|
291
|
+
rule %r/(,@|,|\.)/, Operator
|
|
291
292
|
|
|
292
293
|
# special constants
|
|
293
|
-
rule /(t|nil)#{terminated}/, Name::Constant
|
|
294
|
+
rule %r/(t|nil)#{terminated}/, Name::Constant
|
|
294
295
|
|
|
295
296
|
# functions and variables
|
|
296
297
|
# note that these get filtered through in stream_tokens
|
|
297
|
-
rule /\*#{symbol}\*/, Name::Variable::Global
|
|
298
|
+
rule %r/\*#{symbol}\*/, Name::Variable::Global
|
|
298
299
|
rule symbol do |m|
|
|
299
300
|
sym = m[0]
|
|
300
301
|
|
|
@@ -317,9 +318,9 @@ module Rouge
|
|
|
317
318
|
end
|
|
318
319
|
end
|
|
319
320
|
|
|
320
|
-
rule /\(/, Punctuation, :root
|
|
321
|
-
rule /\)/, Punctuation do
|
|
322
|
-
if stack.
|
|
321
|
+
rule %r/\(/, Punctuation, :root
|
|
322
|
+
rule %r/\)/, Punctuation do
|
|
323
|
+
if stack.size == 1
|
|
323
324
|
token Error
|
|
324
325
|
else
|
|
325
326
|
token Punctuation
|
|
@@ -329,16 +330,16 @@ module Rouge
|
|
|
329
330
|
end
|
|
330
331
|
|
|
331
332
|
state :multiline_comment do
|
|
332
|
-
rule /#\|/, Comment::Multiline, :multiline_comment
|
|
333
|
-
rule /\|#/, Comment::Multiline, :pop!
|
|
334
|
-
rule /[^\|#]+/, Comment::Multiline
|
|
335
|
-
rule /[\|#]/, Comment::Multiline
|
|
333
|
+
rule %r/#\|/, Comment::Multiline, :multiline_comment
|
|
334
|
+
rule %r/\|#/, Comment::Multiline, :pop!
|
|
335
|
+
rule %r/[^\|#]+/, Comment::Multiline
|
|
336
|
+
rule %r/[\|#]/, Comment::Multiline
|
|
336
337
|
end
|
|
337
338
|
|
|
338
339
|
state :commented_form do
|
|
339
|
-
rule /\(/, Comment, :commented_form
|
|
340
|
-
rule /\)/, Comment, :pop!
|
|
341
|
-
rule /[^()]+/, Comment
|
|
340
|
+
rule %r/\(/, Comment, :commented_form
|
|
341
|
+
rule %r/\)/, Comment, :pop!
|
|
342
|
+
rule %r/[^()]+/, Comment
|
|
342
343
|
end
|
|
343
344
|
end
|
|
344
345
|
end
|
data/lib/rouge/lexers/conf.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
|
|
@@ -12,12 +13,12 @@ module Rouge
|
|
|
12
13
|
|
|
13
14
|
# short and sweet
|
|
14
15
|
state :root do
|
|
15
|
-
rule /#.*?\n/, Comment
|
|
16
|
-
rule /".*?"/, Str::Double
|
|
17
|
-
rule /'.*?'/, Str::Single
|
|
18
|
-
rule /[a-z]\w*/i, Name
|
|
19
|
-
rule /\d+/, Num
|
|
20
|
-
rule /[^\
|
|
16
|
+
rule %r/#.*?\n/, Comment
|
|
17
|
+
rule %r/".*?"/, Str::Double
|
|
18
|
+
rule %r/'.*?'/, Str::Single
|
|
19
|
+
rule %r/[a-z]\w*/i, Name
|
|
20
|
+
rule %r/\d+/, Num
|
|
21
|
+
rule %r/[^\w#"']+/, Text
|
|
21
22
|
end
|
|
22
23
|
end
|
|
23
24
|
end
|