rouge 3.21.0 → 4.1.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +9 -11
- data/lib/rouge/cli.rb +55 -22
- 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/cisco_ios +19 -0
- data/lib/rouge/demos/coq +4 -1
- data/lib/rouge/demos/csvs +1 -1
- data/lib/rouge/demos/dafny +16 -0
- data/lib/rouge/demos/datastudio +0 -1
- data/lib/rouge/demos/ecl +0 -1
- data/lib/rouge/demos/email +11 -0
- 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/j +12 -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/ocl +4 -0
- data/lib/rouge/demos/opentype_feature_file +0 -1
- data/lib/rouge/demos/plsql +2 -0
- data/lib/rouge/demos/postscript +9 -0
- data/lib/rouge/demos/rescript +26 -0
- data/lib/rouge/demos/rml +33 -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/systemd +4 -0
- data/lib/rouge/demos/syzlang +15 -0
- data/lib/rouge/demos/syzprog +8 -0
- data/lib/rouge/formatter.rb +2 -2
- data/lib/rouge/formatters/html.rb +12 -11
- data/lib/rouge/formatters/html_inline.rb +0 -1
- data/lib/rouge/formatters/html_line_highlighter.rb +24 -0
- data/lib/rouge/formatters/html_line_table.rb +1 -3
- data/lib/rouge/formatters/html_linewise.rb +2 -3
- data/lib/rouge/guessers/disambiguation.rb +15 -0
- data/lib/rouge/lexer.rb +40 -22
- data/lib/rouge/lexers/apache/keywords.rb +1 -1
- data/lib/rouge/lexers/apex.rb +9 -7
- data/lib/rouge/lexers/apple_script.rb +1 -1
- data/lib/rouge/lexers/batchfile.rb +2 -1
- data/lib/rouge/lexers/c.rb +12 -2
- data/lib/rouge/lexers/ceylon.rb +2 -2
- data/lib/rouge/lexers/cisco_ios.rb +83 -0
- data/lib/rouge/lexers/cmake.rb +10 -0
- data/lib/rouge/lexers/console.rb +1 -1
- data/lib/rouge/lexers/coq.rb +132 -68
- data/lib/rouge/lexers/cpp.rb +13 -6
- data/lib/rouge/lexers/crystal.rb +14 -9
- data/lib/rouge/lexers/csharp.rb +13 -12
- data/lib/rouge/lexers/cypher.rb +8 -0
- data/lib/rouge/lexers/dafny.rb +128 -0
- data/lib/rouge/lexers/dart.rb +10 -9
- data/lib/rouge/lexers/diff.rb +14 -4
- data/lib/rouge/lexers/docker.rb +5 -1
- data/lib/rouge/lexers/dot.rb +1 -0
- data/lib/rouge/lexers/eex.rb +2 -2
- data/lib/rouge/lexers/eiffel.rb +0 -1
- data/lib/rouge/lexers/elm.rb +5 -5
- data/lib/rouge/lexers/email.rb +39 -0
- data/lib/rouge/lexers/factor.rb +2 -2
- data/lib/rouge/lexers/fluent.rb +74 -0
- data/lib/rouge/lexers/ghc_cmm.rb +1 -1
- data/lib/rouge/lexers/ghc_core.rb +3 -2
- data/lib/rouge/lexers/gherkin/keywords.rb +5 -5
- data/lib/rouge/lexers/graphql.rb +1 -1
- data/lib/rouge/lexers/groovy.rb +1 -1
- data/lib/rouge/lexers/hack.rb +1 -1
- data/lib/rouge/lexers/handlebars.rb +1 -1
- data/lib/rouge/lexers/haxe.rb +30 -11
- data/lib/rouge/lexers/hcl.rb +4 -2
- data/lib/rouge/lexers/http.rb +10 -4
- data/lib/rouge/lexers/hylang.rb +0 -1
- data/lib/rouge/lexers/idris.rb +210 -0
- data/lib/rouge/lexers/irb.rb +7 -1
- data/lib/rouge/lexers/isabelle.rb +251 -0
- data/lib/rouge/lexers/isbl.rb +2 -2
- data/lib/rouge/lexers/j.rb +244 -0
- data/lib/rouge/lexers/janet.rb +9 -8
- data/lib/rouge/lexers/java.rb +1 -0
- data/lib/rouge/lexers/javascript.rb +39 -3
- data/lib/rouge/lexers/jinja.rb +10 -10
- data/lib/rouge/lexers/jsl.rb +25 -14
- data/lib/rouge/lexers/jsonnet.rb +4 -3
- data/lib/rouge/lexers/jsp.rb +2 -3
- data/lib/rouge/lexers/jsx.rb +1 -2
- data/lib/rouge/lexers/kotlin.rb +11 -5
- data/lib/rouge/lexers/lasso/keywords.rb +1 -1
- data/lib/rouge/lexers/lean.rb +164 -0
- data/lib/rouge/lexers/liquid.rb +164 -164
- data/lib/rouge/lexers/llvm/keywords.rb +3 -3
- data/lib/rouge/lexers/lua/keywords.rb +1 -1
- data/lib/rouge/lexers/make.rb +25 -16
- 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/mosel.rb +0 -4
- data/lib/rouge/lexers/nial.rb +166 -0
- data/lib/rouge/lexers/ocaml/common.rb +1 -1
- data/lib/rouge/lexers/ocl.rb +84 -0
- data/lib/rouge/lexers/openedge.rb +581 -376
- data/lib/rouge/lexers/opentype_feature_file.rb +0 -1
- data/lib/rouge/lexers/pascal.rb +2 -1
- data/lib/rouge/lexers/perl.rb +6 -4
- data/lib/rouge/lexers/php/keywords.rb +1 -1
- data/lib/rouge/lexers/php.rb +278 -128
- data/lib/rouge/lexers/plsql.rb +578 -0
- data/lib/rouge/lexers/postscript.rb +93 -0
- data/lib/rouge/lexers/powershell.rb +44 -28
- data/lib/rouge/lexers/praat.rb +200 -113
- data/lib/rouge/lexers/prometheus.rb +0 -1
- data/lib/rouge/lexers/python.rb +28 -9
- data/lib/rouge/lexers/q.rb +1 -2
- data/lib/rouge/lexers/reasonml.rb +6 -5
- data/lib/rouge/lexers/rescript.rb +119 -0
- data/lib/rouge/lexers/rml.rb +142 -0
- data/lib/rouge/lexers/ruby.rb +3 -2
- data/lib/rouge/lexers/rust.rb +91 -24
- data/lib/rouge/lexers/shell.rb +6 -2
- data/lib/rouge/lexers/smarty.rb +1 -1
- data/lib/rouge/lexers/sparql.rb +5 -4
- data/lib/rouge/lexers/sqf/keywords.rb +1 -1
- data/lib/rouge/lexers/sql.rb +7 -7
- 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/swift.rb +32 -16
- data/lib/rouge/lexers/systemd.rb +34 -0
- 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/terraform.rb +0 -8
- data/lib/rouge/lexers/toml.rb +20 -13
- data/lib/rouge/lexers/tsx.rb +7 -1
- data/lib/rouge/lexers/tulip.rb +0 -1
- data/lib/rouge/lexers/twig.rb +9 -9
- data/lib/rouge/lexers/typescript/common.rb +4 -1
- data/lib/rouge/lexers/typescript.rb +2 -2
- data/lib/rouge/lexers/vala.rb +1 -1
- data/lib/rouge/lexers/velocity.rb +1 -1
- data/lib/rouge/lexers/viml/keywords.rb +1 -1
- data/lib/rouge/lexers/wollok.rb +6 -3
- data/lib/rouge/lexers/xquery.rb +1 -1
- data/lib/rouge/lexers/yaml.rb +2 -4
- data/lib/rouge/regex_lexer.rb +56 -1
- data/lib/rouge/themes/base16.rb +1 -0
- data/lib/rouge/themes/bw.rb +1 -0
- data/lib/rouge/themes/colorful.rb +1 -0
- data/lib/rouge/themes/github.rb +137 -61
- data/lib/rouge/themes/gruvbox.rb +2 -0
- data/lib/rouge/themes/igor_pro.rb +1 -0
- data/lib/rouge/themes/magritte.rb +1 -0
- data/lib/rouge/themes/monokai.rb +1 -0
- data/lib/rouge/themes/pastie.rb +1 -0
- data/lib/rouge/themes/thankful_eyes.rb +1 -0
- data/lib/rouge/themes/tulip.rb +1 -0
- data/lib/rouge/version.rb +1 -1
- data/lib/rouge.rb +4 -5
- data/rouge.gemspec +1 -1
- metadata +48 -9
- data/lib/rouge/demos/solidity +0 -13
- data/lib/rouge/lexers/solidity.rb +0 -185
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b018694487d82223169762c7e7231fdc62382011f8b6b82bb57bd7677d7ba0c0
|
4
|
+
data.tar.gz: 026d1ea6626c3df24491451ef54688af78123207d8d5147c6ac878da6605f029
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6bc574ff5559d97bb347cdd2677abf1d2446ead33382a83ff7876876c6ad7bec715bd201debddf93cf2dac1ba004126d636a47958f372691c737174a37f9c7a9
|
7
|
+
data.tar.gz: 1404ac65d64ba46dc54843f32ec93f7dc9106b6175d6f070ac0c64fdb59d255916c402e6442b7b75402d29de67728be7df3a25dc8d588e7a4ef6445515e2ea89
|
data/Gemfile
CHANGED
@@ -8,17 +8,16 @@ gem 'rake'
|
|
8
8
|
|
9
9
|
gem 'minitest', '>= 5.0'
|
10
10
|
gem 'minitest-power_assert'
|
11
|
+
gem 'power_assert', '~> 2.0'
|
11
12
|
|
12
|
-
gem '
|
13
|
-
gem 'rubocop'
|
13
|
+
gem 'rubocop', '~> 1.0', '<= 1.11'
|
14
|
+
gem 'rubocop-performance'
|
14
15
|
|
15
16
|
# don't try to install redcarpet under jruby
|
16
|
-
gem 'redcarpet', :
|
17
|
+
gem 'redcarpet', platforms: :ruby
|
17
18
|
|
18
19
|
# Profiling
|
19
|
-
|
20
|
-
gem 'memory_profiler', :require => false
|
21
|
-
end
|
20
|
+
gem 'memory_profiler', require: false
|
22
21
|
|
23
22
|
# Needed for a Rake task
|
24
23
|
gem 'git'
|
@@ -31,10 +30,9 @@ group :development do
|
|
31
30
|
gem 'github-markup'
|
32
31
|
|
33
32
|
# for visual tests
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
end
|
33
|
+
gem 'sinatra'
|
34
|
+
|
35
|
+
# Ruby 3 no longer ships with a web server
|
36
|
+
gem 'puma' if RUBY_VERSION >= '3'
|
39
37
|
gem 'shotgun'
|
40
38
|
end
|
data/lib/rouge/cli.rb
CHANGED
@@ -44,6 +44,7 @@ module Rouge
|
|
44
44
|
yield %||
|
45
45
|
yield %|where <command> is one of:|
|
46
46
|
yield %| highlight #{Highlight.desc}|
|
47
|
+
yield %| debug #{Debug.desc}|
|
47
48
|
yield %| help #{Help.desc}|
|
48
49
|
yield %| style #{Style.desc}|
|
49
50
|
yield %| list #{List.desc}|
|
@@ -104,6 +105,8 @@ module Rouge
|
|
104
105
|
Help
|
105
106
|
when 'highlight', 'hi'
|
106
107
|
Highlight
|
108
|
+
when 'debug'
|
109
|
+
Debug
|
107
110
|
when 'style'
|
108
111
|
Style
|
109
112
|
when 'list'
|
@@ -171,35 +174,38 @@ module Rouge
|
|
171
174
|
yield %[usage: rougify highlight <filename> [options...]]
|
172
175
|
yield %[ rougify highlight [options...]]
|
173
176
|
yield %[]
|
174
|
-
yield %[--input-file|-i <filename>
|
177
|
+
yield %[--input-file|-i <filename> specify a file to read, or - to use stdin]
|
175
178
|
yield %[]
|
176
|
-
yield %[--lexer|-l <lexer>
|
177
|
-
yield %[
|
178
|
-
yield %[
|
179
|
-
yield %[
|
179
|
+
yield %[--lexer|-l <lexer> specify the lexer to use.]
|
180
|
+
yield %[ If not provided, rougify will try to guess]
|
181
|
+
yield %[ based on --mimetype, the filename, and the]
|
182
|
+
yield %[ file contents.]
|
180
183
|
yield %[]
|
181
|
-
yield %[--formatter|-f <opts>
|
182
|
-
yield %[
|
183
|
-
yield %[
|
184
|
+
yield %[--formatter-preset|-f <opts> specify the output formatter to use.]
|
185
|
+
yield %[ If not provided, rougify will default to]
|
186
|
+
yield %[ terminal256. options are: terminal256,]
|
187
|
+
yield %[ terminal-truecolor, html, html-pygments,]
|
188
|
+
yield %[ html-inline, html-line-table, html-table,]
|
189
|
+
yield %[ null/raw/tokens, or tex.]
|
184
190
|
yield %[]
|
185
|
-
yield %[--theme|-t <theme>
|
186
|
-
yield %[
|
191
|
+
yield %[--theme|-t <theme> specify the theme to use for highlighting]
|
192
|
+
yield %[ the file. (only applies to some formatters)]
|
187
193
|
yield %[]
|
188
|
-
yield %[--mimetype|-m <mimetype>
|
194
|
+
yield %[--mimetype|-m <mimetype> specify a mimetype for lexer guessing]
|
189
195
|
yield %[]
|
190
|
-
yield %[--lexer-opts|-L <opts>
|
191
|
-
yield %[
|
196
|
+
yield %[--lexer-opts|-L <opts> specify lexer options in CGI format]
|
197
|
+
yield %[ (opt1=val1&opt2=val2)]
|
192
198
|
yield %[]
|
193
|
-
yield %[--formatter-opts|-F <opts>
|
194
|
-
yield %[
|
199
|
+
yield %[--formatter-opts|-F <opts> specify formatter options in CGI format]
|
200
|
+
yield %[ (opt1=val1&opt2=val2)]
|
195
201
|
yield %[]
|
196
|
-
yield %[--require|-r <filename>
|
197
|
-
yield %[
|
202
|
+
yield %[--require|-r <filename> require a filename or library before]
|
203
|
+
yield %[ highlighting]
|
198
204
|
yield %[]
|
199
|
-
yield %[--escape
|
205
|
+
yield %[--escape allow the use of escapes between <! and !>]
|
200
206
|
yield %[]
|
201
|
-
yield %[--escape-with <l> <r>
|
202
|
-
yield %[
|
207
|
+
yield %[--escape-with <l> <r> allow the use of escapes between custom]
|
208
|
+
yield %[ delimiters. implies --escape]
|
203
209
|
end
|
204
210
|
|
205
211
|
# There is no consistent way to do this, but this is used elsewhere,
|
@@ -215,7 +221,7 @@ module Rouge
|
|
215
221
|
end
|
216
222
|
end
|
217
223
|
|
218
|
-
def self.
|
224
|
+
def self.parse_opts(argv)
|
219
225
|
opts = {
|
220
226
|
:formatter => supports_truecolor? ? 'terminal-truecolor' : 'terminal256',
|
221
227
|
:theme => 'thankful_eyes',
|
@@ -256,7 +262,11 @@ module Rouge
|
|
256
262
|
end
|
257
263
|
end
|
258
264
|
|
259
|
-
|
265
|
+
opts
|
266
|
+
end
|
267
|
+
|
268
|
+
def self.parse(argv)
|
269
|
+
new(parse_opts(argv))
|
260
270
|
end
|
261
271
|
|
262
272
|
def input_stream
|
@@ -344,6 +354,29 @@ module Rouge
|
|
344
354
|
end
|
345
355
|
end
|
346
356
|
|
357
|
+
class Debug < Highlight
|
358
|
+
def self.desc
|
359
|
+
end
|
360
|
+
|
361
|
+
def self.doc
|
362
|
+
return enum_for(:doc) unless block_given?
|
363
|
+
|
364
|
+
yield %|usage: rougify debug [<options>]|
|
365
|
+
yield %||
|
366
|
+
yield %|Debug a lexer. Similar options to `rougify highlight`, but|
|
367
|
+
yield %|defaults to the `null` formatter, and ensures the `debug`|
|
368
|
+
yield %|option is enabled, to print debugging information to stdout.|
|
369
|
+
end
|
370
|
+
|
371
|
+
def self.parse_opts(argv)
|
372
|
+
out = super(argv)
|
373
|
+
out[:lexer_opts]['debug'] = '1'
|
374
|
+
out[:formatter] = 'null'
|
375
|
+
|
376
|
+
out
|
377
|
+
end
|
378
|
+
end
|
379
|
+
|
347
380
|
class Style < CLI
|
348
381
|
def self.desc
|
349
382
|
"print CSS styles"
|
data/lib/rouge/demos/brainfuck
CHANGED
data/lib/rouge/demos/bsl
CHANGED
data/lib/rouge/demos/cfscript
CHANGED
@@ -0,0 +1,19 @@
|
|
1
|
+
interface FastEthernet0.20
|
2
|
+
encapsulation dot1Q 20
|
3
|
+
no ip route-cache
|
4
|
+
bridge-group 1
|
5
|
+
no bridge-group 1 source-learning
|
6
|
+
bridge-group 1 spanning-disabled
|
7
|
+
|
8
|
+
! Supports shortened versions of config words, too
|
9
|
+
inter gi0.10
|
10
|
+
encap dot1q 10 native
|
11
|
+
inter gi0
|
12
|
+
|
13
|
+
banner login # Authenticate yourself! #
|
14
|
+
|
15
|
+
! Supports #, $ and % to delimit banners, and multiline
|
16
|
+
banner motd $
|
17
|
+
Attention!
|
18
|
+
We will be having scheduled system maintenance on this device.
|
19
|
+
$
|
data/lib/rouge/demos/coq
CHANGED
data/lib/rouge/demos/csvs
CHANGED
@@ -0,0 +1,16 @@
|
|
1
|
+
module A {
|
2
|
+
const i: int := 56_78
|
3
|
+
}
|
4
|
+
|
5
|
+
method m(b: bool, s: string) {
|
6
|
+
var x: string;
|
7
|
+
var i: int;
|
8
|
+
if b then i := 1; else i := 2;
|
9
|
+
i := if b 1 else 2;
|
10
|
+
assert b;
|
11
|
+
assume b;
|
12
|
+
print s;
|
13
|
+
expect b;
|
14
|
+
}
|
15
|
+
|
16
|
+
function f(i: int): int { i + 1 }
|
data/lib/rouge/demos/datastudio
CHANGED
data/lib/rouge/demos/ecl
CHANGED
@@ -0,0 +1,11 @@
|
|
1
|
+
From: Me <me@example.com>
|
2
|
+
To: You <you@example.com>
|
3
|
+
Date: Tue, 21 Jul 2020 15:14:03 +0000
|
4
|
+
Subject: A very important message
|
5
|
+
|
6
|
+
> Please investigate. Thank you.
|
7
|
+
|
8
|
+
I have investigated.
|
9
|
+
|
10
|
+
--
|
11
|
+
This message is highly confidential and will self-destruct.
|
data/lib/rouge/demos/erlang
CHANGED
@@ -0,0 +1,13 @@
|
|
1
|
+
# Simple things are simple.
|
2
|
+
hello-user = Hello, {$userName}!
|
3
|
+
|
4
|
+
# Complex things are possible.
|
5
|
+
shared-photos =
|
6
|
+
{$userName} {$photoCount ->
|
7
|
+
[one] added a new photo
|
8
|
+
*[other] added {$photoCount} new photos
|
9
|
+
} to {$userGender ->
|
10
|
+
[male] his stream
|
11
|
+
[female] her stream
|
12
|
+
*[other] their stream
|
13
|
+
}.
|
data/lib/rouge/demos/fsharp
CHANGED
data/lib/rouge/demos/glsl
CHANGED
data/lib/rouge/demos/haxe
CHANGED
@@ -0,0 +1,13 @@
|
|
1
|
+
import Data.Vect
|
2
|
+
|
3
|
+
insert : Ord elem =>
|
4
|
+
(x : elem) -> (xsSorted : Vect len elem) -> Vect (S len) elem
|
5
|
+
insert x [] = [x]
|
6
|
+
insert x (y :: xs) = case x < y of
|
7
|
+
True => x :: y :: xs
|
8
|
+
False => y :: insert x xs
|
9
|
+
|
10
|
+
insSort : Ord elem => Vect n elem -> Vect n elem
|
11
|
+
insSort [] = []
|
12
|
+
insSort (x :: xs) = let xsSorted = insSort xs in
|
13
|
+
insert x xsSorted
|
@@ -0,0 +1,16 @@
|
|
1
|
+
theory demo imports Main begin
|
2
|
+
|
3
|
+
section ‹Inductive predicates for lists›
|
4
|
+
|
5
|
+
datatype 'a list = Nil ("[]") | Cons 'a "'a list" ("_ # _")
|
6
|
+
|
7
|
+
fun length :: "'a list ⇒ nat" where
|
8
|
+
"length [] = 0" | "length (x # xs) = 1 + length xs"
|
9
|
+
|
10
|
+
inductive ζ :: "'a list ⇒ nat ⇒ bool" where
|
11
|
+
Nil[intro!]: "ζ [] 0" |
|
12
|
+
Cons[intro]: "ζ xs l ⟹ ζ (x # xs) (1 + l)"
|
13
|
+
|
14
|
+
(* Not the answer? *)
|
15
|
+
lemma "ζ xs 42"
|
16
|
+
oops
|
data/lib/rouge/demos/j
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
NB. Procedural programming
|
2
|
+
fizzbuzz=: monad define
|
3
|
+
for_i. >:i.y do.
|
4
|
+
if. 0 = 15 | i do. echo'FizzBuzz'
|
5
|
+
elseif. 0 = 3 | i do. echo'Fizz'
|
6
|
+
elseif. 0 = 5 | i do. echo'Buzz'
|
7
|
+
else. echo i
|
8
|
+
end.
|
9
|
+
end.
|
10
|
+
)
|
11
|
+
NB. Loopless programming
|
12
|
+
fizzbuzz=: echo@(, ::] ('Fizz' ; 'Buzz') ;@#~ 0 = 3 5&|)@>:@i.
|
@@ -0,0 +1,10 @@
|
|
1
|
+
project('tutorial', 'c', version: '0.2.3')
|
2
|
+
executable('demo', 'main.c')
|
3
|
+
|
4
|
+
version_array = meson.project_version().split('.')
|
5
|
+
api_version = '@0@.@1@'.format(version_array[0], version_array[1])
|
6
|
+
|
7
|
+
d = dependency('foo', required : get_option('myfeature'))
|
8
|
+
if d.found()
|
9
|
+
app = executable('app', 'app.c', dependencies : [d])
|
10
|
+
endif
|
data/lib/rouge/demos/nesasm
CHANGED
@@ -0,0 +1,35 @@
|
|
1
|
+
% Functional Recursion: ;
|
2
|
+
fact IS RECUR [ 0 =, 1 first, pass, product, -1 +] % from wikipedia;
|
3
|
+
|
4
|
+
% Product of a range: ;
|
5
|
+
fact IS * count;
|
6
|
+
|
7
|
+
% Plain recursion: ;
|
8
|
+
fact IS OPERATION x {
|
9
|
+
if x = 0 then 1 else x * fact (x - 1) endif
|
10
|
+
};
|
11
|
+
|
12
|
+
% While loop: ;
|
13
|
+
fact IS OPERATION x {
|
14
|
+
prod := 1;
|
15
|
+
WHILE x > 0 DO
|
16
|
+
prod := prod * x;
|
17
|
+
x := x - 1;
|
18
|
+
ENDWHILE;
|
19
|
+
prod
|
20
|
+
}
|
21
|
+
|
22
|
+
% A basic divide by zero error: ;
|
23
|
+
1 / 0
|
24
|
+
# OUTPUT:
|
25
|
+
?div
|
26
|
+
|
27
|
+
% Errors are also values called faults, giving you their location: ;
|
28
|
+
5 / 5 10 0 8
|
29
|
+
# OUTPUT:
|
30
|
+
1. 0.5 ?div 0.625
|
31
|
+
|
32
|
+
% You can also define custom faults using 'fault': ;
|
33
|
+
fault 'this is an error'
|
34
|
+
# OUTPUT:
|
35
|
+
this is an error
|
data/lib/rouge/demos/ocl
ADDED
@@ -0,0 +1,9 @@
|
|
1
|
+
%!PS
|
2
|
+
/Courier % name the desired font
|
3
|
+
20 selectfont % choose the size in points and establish
|
4
|
+
% the font as the current one
|
5
|
+
72 500 moveto % position the current point at
|
6
|
+
% coordinates 72, 500 (the origin is at the
|
7
|
+
% lower-left corner of the page)
|
8
|
+
(Hello world!) show % stroke the text in parentheses
|
9
|
+
showpage % print all on the page
|
@@ -0,0 +1,26 @@
|
|
1
|
+
module Person = {
|
2
|
+
type t = Teacher | Director | Student(string)
|
3
|
+
|
4
|
+
let greeting = person =>
|
5
|
+
switch person {
|
6
|
+
| Teacher => "Hey Professor!"
|
7
|
+
| Director => "Hello Director."
|
8
|
+
| Student("Richard") => "Still here Ricky?"
|
9
|
+
| Student(other) => "Hey, " ++ other ++ "."
|
10
|
+
}
|
11
|
+
}
|
12
|
+
|
13
|
+
module Button = {
|
14
|
+
@react.component
|
15
|
+
let make = (~count: int, ~onClick) => {
|
16
|
+
let times = switch count {
|
17
|
+
| 1 => "once"
|
18
|
+
| 2 => "twice"
|
19
|
+
| n => Belt.Int.toString(n) ++ " times"
|
20
|
+
}
|
21
|
+
|
22
|
+
let msg = "Click me " ++ times
|
23
|
+
|
24
|
+
<button onClick> {msg->React.string} </button>
|
25
|
+
}
|
26
|
+
}
|
data/lib/rouge/demos/rml
ADDED
@@ -0,0 +1,33 @@
|
|
1
|
+
// A system agnostic domain specific language for runtime monitoring and verification
|
2
|
+
// Basic events
|
3
|
+
|
4
|
+
insert(index,elem) matches {event:'func_pre',name:'my_insert',args:[index,elem]};
|
5
|
+
|
6
|
+
relevant matches insert(_,_)|remove(_,_)|size(_)|get(_,_);
|
7
|
+
|
8
|
+
insert_in_bounds(size) matches insert(index,_) with index >= 0 && index <= size;
|
9
|
+
|
10
|
+
del_false matches del(_,false);
|
11
|
+
not_add_true_del(el) not matches add(el,true) | del(el,_);
|
12
|
+
|
13
|
+
Main = relevant >> (CheckIndex<0> /\ add_rm_get >> CheckElem)!;
|
14
|
+
CheckIndex<size> =
|
15
|
+
get_size(size)* (insert_in_bounds(size) CheckIndex<size+1> \/ remove_in_bounds(size) CheckIndex<size-1>);
|
16
|
+
|
17
|
+
Msg<inf,sup> = if(inf<=sup) msg(inf) Msg<inf+1,sup> else empty;
|
18
|
+
Main=relevant>>Msg<1,4>*!;
|
19
|
+
|
20
|
+
acquire(id) matches {event:'func_pre',name:'acquire',args:[_,id,...]};
|
21
|
+
|
22
|
+
Main = relevant >> Resources;
|
23
|
+
Resources =
|
24
|
+
{let id; acquire(id)
|
25
|
+
((Resources | use(id)* release(id)) /\
|
26
|
+
acqRel(id) >> release(id) all)
|
27
|
+
}?;
|
28
|
+
|
29
|
+
msg(ty) matches {event:'func_pre',name:'msg',args:[ty]};
|
30
|
+
relevant matches msg(_);
|
31
|
+
|
32
|
+
Msg<inf,sup> = if(inf<=sup) msg(inf) Msg<inf+1,sup> else empty;
|
33
|
+
Main=relevant>>Msg<1,4>*!;
|
data/lib/rouge/demos/smarty
CHANGED
@@ -0,0 +1,14 @@
|
|
1
|
+
* Run a series of linear regressions
|
2
|
+
sysuse auto, clear
|
3
|
+
foreach v of varlist mpg weight-turn {
|
4
|
+
regress price `v', robust
|
5
|
+
}
|
6
|
+
|
7
|
+
regress price i.foreign
|
8
|
+
local num_obs = e(N)
|
9
|
+
global myglobal = 4
|
10
|
+
|
11
|
+
* Generate and manipulate variables
|
12
|
+
generate newvar1 = "string"
|
13
|
+
generate newvar2 = 34 - `num_obs'
|
14
|
+
replace newvar2 = $myglobal
|
@@ -0,0 +1,15 @@
|
|
1
|
+
include <linux/test.h>
|
2
|
+
|
3
|
+
resource fd_test[fd]
|
4
|
+
|
5
|
+
openat$test(fd const[AT_FDCWD], file ptr[in, string["/dev/test"]], flags flags[open_flags], mode const[0]) fd_test
|
6
|
+
|
7
|
+
ioctl$TEST(fd fd_test, cmd const[TEST], arg ptr[in, test])
|
8
|
+
|
9
|
+
test {
|
10
|
+
number int32
|
11
|
+
size len[data, int32]
|
12
|
+
data array[int8]
|
13
|
+
}
|
14
|
+
|
15
|
+
_ = TEST
|
@@ -0,0 +1,8 @@
|
|
1
|
+
# Source: https://github.com/google/syzkaller/blob/master/sys/linux/test/vusb_hid
|
2
|
+
|
3
|
+
r0 = syz_usb_connect$hid(0x0, 0x36, &(0x7f0000000040)=ANY=[@ANYBLOB="12010000000018105e04da07000000000001090224000100000000090400000903000000092100000001222200090581030800000000"], 0x0)
|
4
|
+
syz_usb_control_io$hid(r0, 0x0, 0x0)
|
5
|
+
syz_usb_control_io$hid(r0, &(0x7f00000001c0)={0x24, 0x0, 0x0, &(0x7f0000000000)={0x0, 0x22, 0x22, {[@global=@item_012={0x2, 0x1, 0x9, "2313"}, @global=@item_012={0x2, 0x1, 0x0, "e53f"}, @global=@item_4={0x3, 0x1, 0x0, '\f\x00'}, @local=@item_012={0x2, 0x2, 0x2, "9000"}, @global=@item_4={0x3, 0x1, 0x0, "0900be00"}, @main=@item_4={0x3, 0x0, 0x8, '\x00'}, @local=@item_4={0x3, 0x2, 0x0, "09007a15"}, @local=@item_4={0x3, 0x2, 0x0, "5d8c3dda"}]}}, 0x0}, 0x0)
|
6
|
+
syz_usb_ep_write(r0, 0x81, 0x7, &(0x7f0000000000)='BBBBBBB')
|
7
|
+
syz_usb_ep_write(r0, 0x81, 0x7, &(0x7f0000000000)='BBBBBBB')
|
8
|
+
syz_usb_ep_write(r0, 0x81, 0x7, &(0x7f0000000000)='BBBBBBB')
|
data/lib/rouge/formatter.rb
CHANGED
@@ -42,8 +42,8 @@ module Rouge
|
|
42
42
|
end
|
43
43
|
|
44
44
|
# Format a token stream. Delegates to {#format}.
|
45
|
-
def self.format(tokens, *
|
46
|
-
new(*
|
45
|
+
def self.format(tokens, *args, **kwargs, &b)
|
46
|
+
new(*args, **kwargs).format(tokens, &b)
|
47
47
|
end
|
48
48
|
|
49
49
|
def initialize(opts={})
|