rouge 3.27.0 → 3.30.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +5 -1
- data/lib/rouge/cli.rb +23 -20
- data/lib/rouge/demos/brainfuck +1 -1
- data/lib/rouge/demos/brightscript +1 -1
- data/lib/rouge/demos/bsl +1 -1
- data/lib/rouge/demos/cfscript +1 -1
- data/lib/rouge/demos/coq +1 -1
- data/lib/rouge/demos/csvs +1 -1
- data/lib/rouge/demos/datastudio +0 -1
- data/lib/rouge/demos/ecl +0 -1
- data/lib/rouge/demos/erlang +1 -1
- data/lib/rouge/demos/fluent +13 -0
- data/lib/rouge/demos/fsharp +1 -1
- data/lib/rouge/demos/glsl +1 -1
- data/lib/rouge/demos/haxe +0 -1
- data/lib/rouge/demos/idris +13 -0
- data/lib/rouge/demos/isabelle +16 -0
- data/lib/rouge/demos/lean +8 -0
- data/lib/rouge/demos/meson +10 -0
- data/lib/rouge/demos/nesasm +1 -1
- data/lib/rouge/demos/nial +35 -0
- data/lib/rouge/demos/opentype_feature_file +0 -1
- data/lib/rouge/demos/plsql +2 -0
- data/lib/rouge/demos/smarty +0 -1
- data/lib/rouge/demos/stan +13 -0
- data/lib/rouge/demos/stata +14 -0
- data/lib/rouge/demos/syzlang +15 -0
- data/lib/rouge/demos/syzprog +8 -0
- data/lib/rouge/formatters/html_inline.rb +0 -1
- data/lib/rouge/guessers/disambiguation.rb +7 -0
- data/lib/rouge/lexer.rb +2 -2
- data/lib/rouge/lexers/apache/keywords.rb +1 -1
- data/lib/rouge/lexers/apple_script.rb +1 -1
- data/lib/rouge/lexers/c.rb +12 -2
- data/lib/rouge/lexers/console.rb +1 -1
- data/lib/rouge/lexers/cpp.rb +7 -4
- data/lib/rouge/lexers/cypher.rb +8 -0
- data/lib/rouge/lexers/dart.rb +10 -9
- data/lib/rouge/lexers/docker.rb +4 -0
- data/lib/rouge/lexers/eiffel.rb +0 -1
- data/lib/rouge/lexers/fluent.rb +74 -0
- data/lib/rouge/lexers/gherkin/keywords.rb +1 -1
- data/lib/rouge/lexers/groovy.rb +1 -1
- data/lib/rouge/lexers/handlebars.rb +1 -1
- data/lib/rouge/lexers/hcl.rb +1 -0
- data/lib/rouge/lexers/hylang.rb +0 -1
- data/lib/rouge/lexers/idris.rb +210 -0
- data/lib/rouge/lexers/isabelle.rb +251 -0
- data/lib/rouge/lexers/javascript.rb +1 -1
- data/lib/rouge/lexers/jsx.rb +1 -2
- data/lib/rouge/lexers/kotlin.rb +3 -1
- data/lib/rouge/lexers/lasso/keywords.rb +1 -1
- data/lib/rouge/lexers/lean.rb +164 -0
- data/lib/rouge/lexers/llvm/keywords.rb +1 -1
- data/lib/rouge/lexers/lua/keywords.rb +1 -1
- data/lib/rouge/lexers/mathematica/keywords.rb +1 -1
- data/lib/rouge/lexers/matlab/keywords.rb +1 -1
- data/lib/rouge/lexers/matlab.rb +3 -2
- data/lib/rouge/lexers/meson.rb +159 -0
- data/lib/rouge/lexers/nial.rb +166 -0
- data/lib/rouge/lexers/ocl.rb +0 -1
- data/lib/rouge/lexers/pascal.rb +2 -1
- data/lib/rouge/lexers/php/keywords.rb +1 -1
- data/lib/rouge/lexers/php.rb +7 -5
- data/lib/rouge/lexers/plsql.rb +578 -0
- data/lib/rouge/lexers/prometheus.rb +0 -1
- data/lib/rouge/lexers/python.rb +3 -1
- data/lib/rouge/lexers/q.rb +0 -1
- data/lib/rouge/lexers/rust.rb +9 -5
- data/lib/rouge/lexers/sparql.rb +5 -4
- data/lib/rouge/lexers/sqf/keywords.rb +1 -1
- data/lib/rouge/lexers/stan.rb +451 -0
- data/lib/rouge/lexers/stata.rb +165 -0
- data/lib/rouge/lexers/supercollider.rb +0 -1
- data/lib/rouge/lexers/syzlang.rb +317 -0
- data/lib/rouge/lexers/syzprog.rb +122 -0
- data/lib/rouge/lexers/tap.rb +0 -1
- data/lib/rouge/lexers/toml.rb +16 -9
- data/lib/rouge/lexers/tsx.rb +0 -1
- data/lib/rouge/lexers/tulip.rb +0 -1
- data/lib/rouge/lexers/viml/keywords.rb +1 -1
- data/lib/rouge/version.rb +1 -1
- metadata +28 -6
@@ -0,0 +1,166 @@
|
|
1
|
+
# -*- coding: utf-8 -*- #
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
module Rouge
|
5
|
+
module Lexers
|
6
|
+
class Nial < RegexLexer
|
7
|
+
title 'Nial'
|
8
|
+
desc 'The Nial programming language (nial-array-language.org)'
|
9
|
+
tag 'nial'
|
10
|
+
filenames '*.ndf', '*.nlg'
|
11
|
+
|
12
|
+
def self.keywords
|
13
|
+
@keywords ||= Set.new ["is", "gets", "op", "tr", ";",
|
14
|
+
"if", "then", "elseif", "else",
|
15
|
+
"endif", "case", "from", "endcase",
|
16
|
+
"begin", "end", "for", "with",
|
17
|
+
"endfor", "while", "do", "endwhile",
|
18
|
+
"repeat", "until", "endrepeat"]
|
19
|
+
end
|
20
|
+
|
21
|
+
def self.operators
|
22
|
+
@operators||= Set.new [".", "!", "#", "+", "*", "-", "<<",
|
23
|
+
"/", "<", ">>", "<=", ">", "=", ">=", "@", "|", "~="]
|
24
|
+
end
|
25
|
+
|
26
|
+
def self.punctuations
|
27
|
+
@punctuations ||= Set.new [ "{", "}", "[", "]", ",", "(", ")", ":=", ":", ";"]
|
28
|
+
end
|
29
|
+
|
30
|
+
def self.transformers
|
31
|
+
@transformers ||= Set.new ["accumulate", "across",
|
32
|
+
"bycols", "bykey", "byrows",
|
33
|
+
"converse", "down",
|
34
|
+
"eachboth", "eachall", "each",
|
35
|
+
"eachleft", "eachright",
|
36
|
+
"filter", "fold", "fork",
|
37
|
+
"grade", "inner", "iterate",
|
38
|
+
"leaf", "no_tr", "outer",
|
39
|
+
"partition", "rank", "recur",
|
40
|
+
"reduce", "reducecols", "reducerows",
|
41
|
+
"sort", "team", "timeit", "twig"]
|
42
|
+
end
|
43
|
+
|
44
|
+
def self.funcs
|
45
|
+
@funcs ||= Set.new ["operation", "expression", "and", "abs",
|
46
|
+
"allbools", "allints", "allchars", "allin",
|
47
|
+
"allreals", "allnumeric", "append",
|
48
|
+
"arcsin", "arccos", "appendfile", "apply",
|
49
|
+
"arctan", "atomic", "assign", "atversion",
|
50
|
+
"axes", "cart", "break", "blend", "breaklist",
|
51
|
+
"breakin", "bye", "callstack", "choose", "char",
|
52
|
+
"ceiling", "catenate", "charrep", "check_socket",
|
53
|
+
"cos", "content", "close", "clearws",
|
54
|
+
"clearprofile", "cols", "continue", "copyright",
|
55
|
+
"cosh", "cull", "count", "diverse", "deepplace",
|
56
|
+
"cutall", "cut", "display", "deparse",
|
57
|
+
"deepupdate", "descan", "depth", "diagram",
|
58
|
+
"div", "divide", "drop", "dropright", "edit",
|
59
|
+
"empty", "expression", "exit", "except", "erase",
|
60
|
+
"equal", "eval", "eraserecord", "execute", "exp",
|
61
|
+
"external", "exprs", "findall", "find",
|
62
|
+
"fault", "falsehood", "filestatus", "filelength",
|
63
|
+
"filepath", "filetally", "floor", "first",
|
64
|
+
"flip", "fuse", "fromraw", "front",
|
65
|
+
"gage", "getfile", "getdef", "getcommandline",
|
66
|
+
"getenv", "getname", "hitch", "grid", "getsyms",
|
67
|
+
"gradeup", "gt", "gte", "host", "in", "inverse",
|
68
|
+
"innerproduct", "inv", "ip", "ln", "link", "isboolean",
|
69
|
+
"isinteger", "ischar", "isfault", "isreal", "isphrase",
|
70
|
+
"isstring", "istruthvalue", "last", "laminate",
|
71
|
+
"like", "libpath", "library", "list", "load",
|
72
|
+
"loaddefs", "nonlocal", "max", "match", "log",
|
73
|
+
"lt", "lower", "lte", "mate", "min", "maxlength",
|
74
|
+
"mod", "mix", "minus", "nialroot", "mold", "not",
|
75
|
+
"numeric", "no_op", "no_expr", "notin",
|
76
|
+
"operation", "open", "or", "opposite", "opp",
|
77
|
+
"operators", "plus", "pick", "pack", "pass", "pair", "parse",
|
78
|
+
"paste", "phrase", "place", "picture", "placeall",
|
79
|
+
"power", "positions", "post", "quotient", "putfile",
|
80
|
+
"profile", "prod", "product", "profiletree",
|
81
|
+
"profiletable", "quiet_fault", "raise", "reach",
|
82
|
+
"random", "reciprocal", "read", "readfile",
|
83
|
+
"readchar", "readarray", "readfield",
|
84
|
+
"readscreen", "readrecord", "recip", "reshape",
|
85
|
+
"seek", "second", "rest", "reverse", "restart",
|
86
|
+
"return_status", "scan", "save", "rows", "rotate",
|
87
|
+
"seed", "see", "sublist", "sin", "simple", "shape",
|
88
|
+
"setformat", "setdeftrace", "set", "seeusercalls",
|
89
|
+
"seeprimcalls", "separator", "setwidth", "settrigger",
|
90
|
+
"setmessages", "setlogname", "setinterrupts",
|
91
|
+
"setprompt", "setprofile", "sinh", "single",
|
92
|
+
"sqrt", "solitary", "sketch", "sleep",
|
93
|
+
"socket_listen", "socket_accept", "socket_close",
|
94
|
+
"socket_bind", "socket_connect", "socket_getline",
|
95
|
+
"socket_receive", "socket_peek", "socket_read",
|
96
|
+
"socket_send", "socket_write", "solve", "split",
|
97
|
+
"sortup", "string", "status", "take", "symbols",
|
98
|
+
"sum", "system", "tan", "tally", "takeright",
|
99
|
+
"tanh", "tell", "tr", "times", "third", "time",
|
100
|
+
"toupper", "tolower", "timestamp", "tonumber",
|
101
|
+
"toraw", "toplevel", "transformer", "type",
|
102
|
+
"transpose", "trs", "truth", "unequal",
|
103
|
+
"variable", "valence", "up", "updateall",
|
104
|
+
"update", "vacate", "value", "version", "vars",
|
105
|
+
"void", "watch", "watchlist", "write", "writechars",
|
106
|
+
"writearray", "writefile", "writefield",
|
107
|
+
"writescreen", "writerecord"]
|
108
|
+
end
|
109
|
+
|
110
|
+
def self.consts
|
111
|
+
@consts ||= Set.new %w(false null pi true)
|
112
|
+
end
|
113
|
+
|
114
|
+
state :root do
|
115
|
+
rule %r/'/, Str::Single, :str
|
116
|
+
rule %r/\b[lo]+\b/, Num::Bin
|
117
|
+
rule %r/-?\d+((\.\d*)?[eE][+-]?\d|\.)\d*/, Num::Float
|
118
|
+
rule %r/\-?\d+/, Num::Integer
|
119
|
+
rule %r/`./, Str::Char
|
120
|
+
rule %r/"[^\s()\[\]{}#,;]*/, Str::Symbol
|
121
|
+
rule %r/\?[^\s()\[\]{}#,;]*/, Generic::Error
|
122
|
+
rule %r/%[^;]+;/, Comment::Multiline
|
123
|
+
rule %r/^#(.+\n)+\n/, Comment::Multiline
|
124
|
+
rule %r/:=|[\{\}\[\]\(\),:;]/ do |m|
|
125
|
+
if self.class.punctuations.include?(m[0])
|
126
|
+
token Punctuation
|
127
|
+
else
|
128
|
+
token Text
|
129
|
+
end
|
130
|
+
end
|
131
|
+
# [".", "!", "#", "+", "*", "-", "<<",
|
132
|
+
# "/", "<", ">>", "<=", ">", "=", ">=", "@", "|", "~="]
|
133
|
+
rule %r'>>|>=|<=|~=|[\.!#+*\-=></|@]' do |m|
|
134
|
+
if self.class.operators.include?(m[0])
|
135
|
+
token Operator
|
136
|
+
else
|
137
|
+
token Text
|
138
|
+
end
|
139
|
+
end
|
140
|
+
|
141
|
+
rule %r/\b[_A-Za-z]\w*\b/ do |m|
|
142
|
+
lower = m[0].downcase
|
143
|
+
if self.class.keywords.include?(lower)
|
144
|
+
token Keyword
|
145
|
+
elsif self.class.funcs.include?(lower)
|
146
|
+
token Keyword::Pseudo
|
147
|
+
elsif self.class.transformers.include?(lower)
|
148
|
+
token Name::Builtin
|
149
|
+
elsif self.class.consts.include?(lower)
|
150
|
+
token Keyword::Constant
|
151
|
+
else
|
152
|
+
token Name::Variable
|
153
|
+
end
|
154
|
+
end
|
155
|
+
|
156
|
+
rule %r/\s+/, Text
|
157
|
+
end
|
158
|
+
|
159
|
+
state :str do
|
160
|
+
rule %r/''/, Str::Escape
|
161
|
+
rule %r/[^']+/, Str::Single
|
162
|
+
rule %r/'|$/, Str::Single, :pop!
|
163
|
+
end
|
164
|
+
end
|
165
|
+
end
|
166
|
+
end
|
data/lib/rouge/lexers/ocl.rb
CHANGED
data/lib/rouge/lexers/pascal.rb
CHANGED
@@ -7,7 +7,7 @@ module Rouge
|
|
7
7
|
tag 'pascal'
|
8
8
|
title "Pascal"
|
9
9
|
desc 'a procedural programming language commonly used as a teaching language.'
|
10
|
-
filenames '*.pas', '*.lpr'
|
10
|
+
filenames '*.pas', '*.lpr', '*.pp'
|
11
11
|
|
12
12
|
mimetypes 'text/x-pascal'
|
13
13
|
|
@@ -55,6 +55,7 @@ module Rouge
|
|
55
55
|
mixin :whitespace
|
56
56
|
|
57
57
|
rule %r{((0(x|X)[0-9a-fA-F]*)|(([0-9]+\.?[0-9]*)|(\.[0-9]+))((e|E)(\+|-)?[0-9]+)?)(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?}, Num
|
58
|
+
rule %r/\$[0-9A-Fa-f]+/, Num::Hex
|
58
59
|
rule %r{[~!@#\$%\^&\*\(\)\+`\-={}\[\]:;<>\?,\.\/\|\\]}, Punctuation
|
59
60
|
rule %r{'([^']|'')*'}, Str
|
60
61
|
rule %r/(true|false|nil)\b/i, Name::Builtin
|
data/lib/rouge/lexers/php.rb
CHANGED
@@ -39,12 +39,12 @@ module Rouge
|
|
39
39
|
old_function cfunction
|
40
40
|
__class__ __dir__ __file__ __function__ __halt_compiler __line__
|
41
41
|
__method__ __namespace__ __trait__ abstract and array as break case
|
42
|
-
catch clone continue declare default die do echo else elseif
|
42
|
+
catch clone continue declare default die do echo else elseif empty
|
43
43
|
enddeclare endfor endforeach endif endswitch endwhile eval exit
|
44
44
|
extends final finally fn for foreach global goto if implements
|
45
|
-
include include_once instanceof insteadof isset list new or
|
46
|
-
print private protected public require require_once
|
47
|
-
static switch throw try var while xor yield
|
45
|
+
include include_once instanceof insteadof isset list match new or
|
46
|
+
parent print private protected public readonly require require_once
|
47
|
+
return self static switch throw try unset var while xor yield
|
48
48
|
)
|
49
49
|
end
|
50
50
|
|
@@ -305,6 +305,7 @@ module Rouge
|
|
305
305
|
rule %r/,/, Punctuation
|
306
306
|
rule %r/[.]{3}/, Punctuation
|
307
307
|
rule %r/=/, Operator, :in_assign
|
308
|
+
rule %r/\b(?:public|protected|private|readonly)\b/i, Keyword
|
308
309
|
rule %r/\??#{id}/, Keyword::Type, :in_assign
|
309
310
|
mixin :escape
|
310
311
|
mixin :whitespace
|
@@ -366,7 +367,8 @@ module Rouge
|
|
366
367
|
end
|
367
368
|
|
368
369
|
state :in_visibility do
|
369
|
-
rule %r
|
370
|
+
rule %r/\b(?:readonly|static)\b/i, Keyword
|
371
|
+
rule %r/(?=(abstract|const|function)\b)/i, Keyword, :pop!
|
370
372
|
rule %r/\??#{id}/, Keyword::Type, :pop!
|
371
373
|
mixin :escape
|
372
374
|
mixin :whitespace
|