pygments.rb 0.5.2 → 0.5.4

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.
Files changed (58) hide show
  1. data/README.md +2 -0
  2. data/lexers +0 -0
  3. data/lib/pygments/version.rb +1 -1
  4. data/test/test_pygments.rb +1 -1
  5. data/vendor/custom_lexers/github.py +15 -9
  6. data/vendor/pygments-main/AUTHORS +12 -2
  7. data/vendor/pygments-main/CHANGES +52 -2
  8. data/vendor/pygments-main/REVISION +1 -1
  9. data/vendor/pygments-main/docs/src/lexerdevelopment.txt +52 -0
  10. data/vendor/pygments-main/external/lasso-builtins-generator-9.lasso +67 -44
  11. data/vendor/pygments-main/pygmentize +1 -1
  12. data/vendor/pygments-main/pygments/filters/__init__.py +2 -2
  13. data/vendor/pygments-main/pygments/formatter.py +3 -0
  14. data/vendor/pygments-main/pygments/lexers/__init__.py +11 -0
  15. data/vendor/pygments-main/pygments/lexers/_lassobuiltins.py +2880 -3124
  16. data/vendor/pygments-main/pygments/lexers/_mapping.py +30 -20
  17. data/vendor/pygments-main/pygments/lexers/_robotframeworklexer.py +1 -1
  18. data/vendor/pygments-main/pygments/lexers/_stan_builtins.py +206 -20
  19. data/vendor/pygments-main/pygments/lexers/agile.py +378 -5
  20. data/vendor/pygments-main/pygments/lexers/asm.py +2 -2
  21. data/vendor/pygments-main/pygments/lexers/compiled.py +235 -8
  22. data/vendor/pygments-main/pygments/lexers/dotnet.py +88 -47
  23. data/vendor/pygments-main/pygments/lexers/functional.py +195 -62
  24. data/vendor/pygments-main/pygments/lexers/github.py +15 -9
  25. data/vendor/pygments-main/pygments/lexers/jvm.py +14 -11
  26. data/vendor/pygments-main/pygments/lexers/math.py +284 -18
  27. data/vendor/pygments-main/pygments/lexers/other.py +132 -21
  28. data/vendor/pygments-main/pygments/lexers/shell.py +29 -15
  29. data/vendor/pygments-main/pygments/lexers/sql.py +1 -1
  30. data/vendor/pygments-main/pygments/lexers/templates.py +8 -8
  31. data/vendor/pygments-main/pygments/lexers/text.py +59 -9
  32. data/vendor/pygments-main/pygments/lexers/web.py +832 -210
  33. data/vendor/pygments-main/pygments/modeline.py +40 -0
  34. data/vendor/pygments-main/tests/examplefiles/Deflate.fs +578 -0
  35. data/vendor/pygments-main/tests/examplefiles/Get-CommandDefinitionHtml.ps1 +66 -0
  36. data/vendor/pygments-main/tests/examplefiles/IPDispatchC.nc +104 -0
  37. data/vendor/pygments-main/tests/examplefiles/IPDispatchP.nc +671 -0
  38. data/vendor/pygments-main/tests/examplefiles/RoleQ.pm6 +23 -0
  39. data/vendor/pygments-main/tests/examplefiles/example.ceylon +29 -10
  40. data/vendor/pygments-main/tests/examplefiles/example.clay +33 -0
  41. data/vendor/pygments-main/tests/examplefiles/example.hx +142 -0
  42. data/vendor/pygments-main/tests/examplefiles/example.lagda +19 -0
  43. data/vendor/pygments-main/tests/examplefiles/example.rexx +50 -0
  44. data/vendor/pygments-main/tests/examplefiles/example.stan +86 -75
  45. data/vendor/pygments-main/tests/examplefiles/garcia-wachs.kk +40 -30
  46. data/vendor/pygments-main/tests/examplefiles/grammar-test.p6 +22 -0
  47. data/vendor/pygments-main/tests/examplefiles/objc_example.m +7 -0
  48. data/vendor/pygments-main/tests/examplefiles/py3tb_test.py3tb +4 -0
  49. data/vendor/pygments-main/tests/examplefiles/swig_java.swg +1329 -0
  50. data/vendor/pygments-main/tests/examplefiles/swig_std_vector.i +225 -0
  51. data/vendor/pygments-main/tests/examplefiles/test.agda +102 -0
  52. data/vendor/pygments-main/tests/examplefiles/test.bb +95 -0
  53. data/vendor/pygments-main/tests/examplefiles/test.ebnf +31 -0
  54. data/vendor/pygments-main/tests/examplefiles/test.p6 +252 -0
  55. data/vendor/pygments-main/tests/examplefiles/type.lisp +16 -0
  56. data/vendor/pygments-main/tests/test_basic_api.py +3 -3
  57. data/vendor/pygments-main/tests/test_lexers_other.py +68 -0
  58. metadata +21 -2
@@ -0,0 +1,252 @@
1
+ #!/usr/bin/env perl6
2
+
3
+ use v6;
4
+
5
+ my $string = 'I look like a # comment!';
6
+
7
+ if $string eq 'foo' {
8
+ say 'hello';
9
+ }
10
+
11
+ regex http-verb {
12
+ 'GET'
13
+ | 'POST'
14
+ | 'PUT'
15
+ | 'DELETE'
16
+ | 'TRACE'
17
+ | 'OPTIONS'
18
+ | 'HEAD'
19
+ }
20
+
21
+ # a sample comment
22
+
23
+ say 'Hello from Perl 6!'
24
+
25
+
26
+ #`{
27
+ multi-line comment!
28
+ }
29
+
30
+ say 'here';
31
+
32
+ #`(
33
+ multi-line comment!
34
+ )
35
+
36
+ say 'here';
37
+
38
+ #`{{{
39
+ I'm a special comment!
40
+ }}}
41
+
42
+ say 'there';
43
+
44
+ #`{{
45
+ I'm { even } specialer!
46
+ }}
47
+
48
+ say 'there';
49
+
50
+ #`{{
51
+ does {{nesting}} work?
52
+ }}
53
+
54
+ #`«<
55
+ trying mixed delimiters
56
+ »
57
+
58
+ my $string = qq<Hooray, arbitrary delimiter!>;
59
+ my $string = qq«Hooray, arbitrary delimiter!»;
60
+ my $string = q <now with whitespace!>;
61
+ my $string = qq<<more strings>>;
62
+
63
+ my %hash := Hash.new;
64
+
65
+ =begin pod
66
+
67
+ Here's some POD! Wooo
68
+
69
+ =end pod
70
+
71
+ =for Testing
72
+ This is POD (see? role isn't highlighted)
73
+
74
+ say('this is not!');
75
+
76
+ =table
77
+ Of role things
78
+
79
+ say('not in your table');
80
+ #= A single line declarator "block" (with a keyword like role)
81
+ #| Another single line declarator "block" (with a keyword like role)
82
+ #={
83
+ A declarator block (with a keyword like role)
84
+ }
85
+ #|{
86
+ Another declarator block (with a keyword like role)
87
+ }
88
+ #= { A single line declarator "block" with a brace (with a keyword like role)
89
+ #=«
90
+ More declarator blocks! (with a keyword like role)
91
+ »
92
+ #|«
93
+ More declarator blocks! (with a keyword like role)
94
+ »
95
+
96
+ say 'Moar code!';
97
+
98
+ my $don't = 16;
99
+
100
+ sub don't($x) {
101
+ !$x
102
+ }
103
+
104
+ say don't 'foo';
105
+
106
+ my %hash = (
107
+ :foo(1),
108
+ );
109
+
110
+ say %hash<foo>;
111
+ say %hash<<foo>>;
112
+ say %hash«foo»;
113
+
114
+ say %*hash<foo>;
115
+ say %*hash<<foo>>;
116
+ say %*hash«foo»;
117
+
118
+ say $<todo>;
119
+ say $<todo>;
120
+
121
+ for (@A Z @B) -> $a, $b {
122
+ say $a + $b;
123
+ }
124
+
125
+ Q:PIR {
126
+ .loadlib "somelib"
127
+ }
128
+
129
+ my $longstring = q/
130
+ lots
131
+ of
132
+ text
133
+ /;
134
+
135
+ my $heredoc = q:to/END_SQL/;
136
+ SELECT * FROM Users
137
+ WHERE first_name = 'Rob'
138
+ END_SQL
139
+ my $hello;
140
+
141
+ # Fun with regexen
142
+
143
+ if 'food' ~~ /foo/ {
144
+ say 'match!'
145
+ }
146
+
147
+ my $re = /foo/;
148
+ my $re2 = m/ foo /;
149
+ my $re3 = m:i/ FOO /;
150
+
151
+ call-a-sub(/ foo /);
152
+ call-a-sub(/ foo \/ bar /);
153
+
154
+ my $re4 = rx/something | something-else/;
155
+ my $result = ms/regexy stuff/;
156
+ my $sub0 = s/regexy stuff/more stuff/;
157
+ my $sub = ss/regexy stuff/more stuff/;
158
+ my $trans = tr/regexy stuff/more stuff/;
159
+
160
+ my @values = <a b c d>;
161
+ call-sub(<a b c d>);
162
+ call-sub <a b c d>;
163
+
164
+ my $result = $a < $b;
165
+
166
+ for <a b c d> -> $letter {
167
+ say $letter;
168
+ }
169
+
170
+ sub test-sub {
171
+ say @_;
172
+ say $!;
173
+ say $/;
174
+ say $0;
175
+ say $1;
176
+ say @*ARGS;
177
+ say $*ARGFILES;
178
+ say &?BLOCK;
179
+ say ::?CLASS;
180
+ say $?CLASS;
181
+ say @=COMMENT;
182
+ say %?CONFIG;
183
+ say $*CWD;
184
+ say $=data;
185
+ say %?DEEPMAGIC;
186
+ say $?DISTRO;
187
+ say $*DISTRO;
188
+ say $*EGID;
189
+ say %*ENV;
190
+ say $*ERR;
191
+ say $*EUID;
192
+ say $*EXECUTABLE_NAME;
193
+ say $?FILE;
194
+ say $?GRAMMAR;
195
+ say $*GID;
196
+ say $*IN;
197
+ say @*INC;
198
+ say %?LANG;
199
+ say $*LANG;
200
+ say $?LINE;
201
+ say %*META-ARGS;
202
+ say $?MODULE;
203
+ say %*OPTS;
204
+ say %*OPT;
205
+ say $?KERNEL;
206
+ say $*KERNEL;
207
+ say $*OUT;
208
+ say $?PACKAGE;
209
+ say $?PERL;
210
+ say $*PERL;
211
+ say $*PID;
212
+ say %=pod;
213
+ say $*PROGRAM_NAME;
214
+ say %*PROTOCOLS;
215
+ say ::?ROLE;
216
+ say $?ROLE;
217
+ say &?ROUTINE;
218
+ say $?SCOPE;
219
+ say $*TZ;
220
+ say $*UID;
221
+ say $?USAGE;
222
+ say $?VM;
223
+ say $?XVM;
224
+ }
225
+
226
+ say <a b c>;
227
+
228
+ my $perl5_re = m:P5/ fo{2} /;
229
+ my $re5 = rx«something | something-else»;
230
+
231
+ my $M := %*COMPILING<%?OPTIONS><M>;
232
+
233
+ say $M;
234
+
235
+ sub regex-name { ... }
236
+ my $pair = role-name => 'foo';
237
+ $pair = rolesque => 'foo';
238
+
239
+ my sub something(Str:D $value) { ... }
240
+
241
+ my $s = q«<
242
+ some
243
+ string
244
+ stuff
245
+ »;
246
+
247
+ my $regex = m«< some chars »;
248
+ # after
249
+
250
+ say $/<foo><bar>;
251
+
252
+ roleq;
@@ -1200,3 +1200,19 @@ Henry Baker:
1200
1200
 
1201
1201
  (unless (clos::funcallable-instance-p #'clos::class-name)
1202
1202
  (fmakunbound 'clos::class-name))
1203
+
1204
+
1205
+ (keywordp :junk)
1206
+ T
1207
+
1208
+ (keywordp ::junk)
1209
+ T
1210
+
1211
+ (symbol-name ::junk)
1212
+ "JUNK"
1213
+
1214
+ (symbol-name :#junk)
1215
+ "#JUNK"
1216
+
1217
+ (symbol-name :#.junk)
1218
+ "#.JUNK"
@@ -92,9 +92,9 @@ def test_lexer_options():
92
92
  if cls.__name__ not in (
93
93
  'PythonConsoleLexer', 'RConsoleLexer', 'RubyConsoleLexer',
94
94
  'SqliteConsoleLexer', 'MatlabSessionLexer', 'ErlangShellLexer',
95
- 'BashSessionLexer', 'LiterateHaskellLexer', 'PostgresConsoleLexer',
96
- 'ElixirConsoleLexer', 'JuliaConsoleLexer', 'RobotFrameworkLexer',
97
- 'DylanConsoleLexer', 'ShellSessionLexer'):
95
+ 'BashSessionLexer', 'LiterateHaskellLexer', 'LiterateAgdaLexer',
96
+ 'PostgresConsoleLexer', 'ElixirConsoleLexer', 'JuliaConsoleLexer',
97
+ 'RobotFrameworkLexer', 'DylanConsoleLexer', 'ShellSessionLexer'):
98
98
  inst = cls(ensurenl=False)
99
99
  ensure(inst.get_tokens('a\nb'), 'a\nb')
100
100
  inst = cls(ensurenl=False, stripall=True)
@@ -0,0 +1,68 @@
1
+ # -*- coding: utf-8 -*-
2
+ """
3
+ Tests for other lexers
4
+ ~~~~~~~~~~~~~~~~~~~~~~
5
+
6
+ :copyright: Copyright 2006-2013 by the Pygments team, see AUTHORS.
7
+ :license: BSD, see LICENSE for details.
8
+ """
9
+
10
+ import glob
11
+ import os
12
+ import unittest
13
+
14
+ from pygments.lexers import guess_lexer
15
+ from pygments.lexers.other import RexxLexer
16
+
17
+
18
+ def _exampleFilePath(filename):
19
+ return os.path.join(os.path.dirname(__file__), 'examplefiles', filename)
20
+
21
+
22
+ class AnalyseTextTest(unittest.TestCase):
23
+ def _testCanRecognizeAndGuessExampleFiles(self, lexer):
24
+ assert lexer is not None
25
+
26
+ for pattern in lexer.filenames:
27
+ exampleFilesPattern = _exampleFilePath(pattern)
28
+ for exampleFilePath in glob.glob(exampleFilesPattern):
29
+ exampleFile = open(exampleFilePath, 'rb')
30
+ try:
31
+ text = exampleFile.read()
32
+ probability = lexer.analyse_text(text)
33
+ self.assertTrue(probability > 0,
34
+ '%s must recognize %r' % (
35
+ lexer.name, exampleFilePath))
36
+ guessedLexer = guess_lexer(text)
37
+ self.assertEqual(guessedLexer.name, lexer.name)
38
+ finally:
39
+ exampleFile.close()
40
+
41
+ def testCanRecognizeAndGuessExampleFiles(self):
42
+ self._testCanRecognizeAndGuessExampleFiles(RexxLexer)
43
+
44
+
45
+ class RexxLexerTest(unittest.TestCase):
46
+ def testCanGuessFromText(self):
47
+ self.assertAlmostEqual(0.01,
48
+ RexxLexer.analyse_text('/* */'))
49
+ self.assertAlmostEqual(1.0,
50
+ RexxLexer.analyse_text('''/* Rexx */
51
+ say "hello world"'''))
52
+ self.assertLess(0.5,
53
+ RexxLexer.analyse_text('/* */\n'
54
+ 'hello:pRoceduRe\n'
55
+ ' say "hello world"'))
56
+ self.assertLess(0.2,
57
+ RexxLexer.analyse_text('''/* */
58
+ if 1 > 0 then do
59
+ say "ok"
60
+ end
61
+ else do
62
+ say "huh?"
63
+ end'''))
64
+ self.assertLess(0.2,
65
+ RexxLexer.analyse_text('''/* */
66
+ greeting = "hello world!"
67
+ parse value greeting "hello" name "!"
68
+ say name'''))
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pygments.rb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.2
4
+ version: 0.5.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2013-07-17 00:00:00.000000000 Z
13
+ date: 2013-11-03 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: yajl-ruby
@@ -177,6 +177,7 @@ files:
177
177
  - vendor/pygments-main/pygments/lexers/templates.py
178
178
  - vendor/pygments-main/pygments/lexers/text.py
179
179
  - vendor/pygments-main/pygments/lexers/web.py
180
+ - vendor/pygments-main/pygments/modeline.py
180
181
  - vendor/pygments-main/pygments/plugin.py
181
182
  - vendor/pygments-main/pygments/scanner.py
182
183
  - vendor/pygments-main/pygments/style.py
@@ -230,12 +231,17 @@ files:
230
231
  - vendor/pygments-main/tests/examplefiles/Config.in.cache
231
232
  - vendor/pygments-main/tests/examplefiles/Constants.mo
232
233
  - vendor/pygments-main/tests/examplefiles/DancingSudoku.lhs
234
+ - vendor/pygments-main/tests/examplefiles/Deflate.fs
233
235
  - vendor/pygments-main/tests/examplefiles/Errors.scala
234
236
  - vendor/pygments-main/tests/examplefiles/File.hy
237
+ - vendor/pygments-main/tests/examplefiles/Get-CommandDefinitionHtml.ps1
238
+ - vendor/pygments-main/tests/examplefiles/IPDispatchC.nc
239
+ - vendor/pygments-main/tests/examplefiles/IPDispatchP.nc
235
240
  - vendor/pygments-main/tests/examplefiles/Intro.java
236
241
  - vendor/pygments-main/tests/examplefiles/Makefile
237
242
  - vendor/pygments-main/tests/examplefiles/Object.st
238
243
  - vendor/pygments-main/tests/examplefiles/OrderedMap.hx
244
+ - vendor/pygments-main/tests/examplefiles/RoleQ.pm6
239
245
  - vendor/pygments-main/tests/examplefiles/SmallCheck.hs
240
246
  - vendor/pygments-main/tests/examplefiles/Sorting.mod
241
247
  - vendor/pygments-main/tests/examplefiles/Sudoku.lhs
@@ -272,13 +278,16 @@ files:
272
278
  - vendor/pygments-main/tests/examplefiles/example.bug
273
279
  - vendor/pygments-main/tests/examplefiles/example.c
274
280
  - vendor/pygments-main/tests/examplefiles/example.ceylon
281
+ - vendor/pygments-main/tests/examplefiles/example.clay
275
282
  - vendor/pygments-main/tests/examplefiles/example.cls
276
283
  - vendor/pygments-main/tests/examplefiles/example.cob
277
284
  - vendor/pygments-main/tests/examplefiles/example.cpp
278
285
  - vendor/pygments-main/tests/examplefiles/example.gs
279
286
  - vendor/pygments-main/tests/examplefiles/example.gst
287
+ - vendor/pygments-main/tests/examplefiles/example.hx
280
288
  - vendor/pygments-main/tests/examplefiles/example.jag
281
289
  - vendor/pygments-main/tests/examplefiles/example.kt
290
+ - vendor/pygments-main/tests/examplefiles/example.lagda
282
291
  - vendor/pygments-main/tests/examplefiles/example.lua
283
292
  - vendor/pygments-main/tests/examplefiles/example.monkey
284
293
  - vendor/pygments-main/tests/examplefiles/example.moo
@@ -291,6 +300,7 @@ files:
291
300
  - vendor/pygments-main/tests/examplefiles/example.prg
292
301
  - vendor/pygments-main/tests/examplefiles/example.rb
293
302
  - vendor/pygments-main/tests/examplefiles/example.reg
303
+ - vendor/pygments-main/tests/examplefiles/example.rexx
294
304
  - vendor/pygments-main/tests/examplefiles/example.rhtml
295
305
  - vendor/pygments-main/tests/examplefiles/example.rkt
296
306
  - vendor/pygments-main/tests/examplefiles/example.rpf
@@ -323,6 +333,7 @@ files:
323
333
  - vendor/pygments-main/tests/examplefiles/genshitext_example.genshitext
324
334
  - vendor/pygments-main/tests/examplefiles/glsl.frag
325
335
  - vendor/pygments-main/tests/examplefiles/glsl.vert
336
+ - vendor/pygments-main/tests/examplefiles/grammar-test.p6
326
337
  - vendor/pygments-main/tests/examplefiles/hello.smali
327
338
  - vendor/pygments-main/tests/examplefiles/hello.sp
328
339
  - vendor/pygments-main/tests/examplefiles/html+php_faulty.php
@@ -377,6 +388,7 @@ files:
377
388
  - vendor/pygments-main/tests/examplefiles/pppoe.applescript
378
389
  - vendor/pygments-main/tests/examplefiles/psql_session.txt
379
390
  - vendor/pygments-main/tests/examplefiles/py3_test.txt
391
+ - vendor/pygments-main/tests/examplefiles/py3tb_test.py3tb
380
392
  - vendor/pygments-main/tests/examplefiles/pycon_test.pycon
381
393
  - vendor/pygments-main/tests/examplefiles/pytb_test2.pytb
382
394
  - vendor/pygments-main/tests/examplefiles/pytb_test3.pytb
@@ -403,11 +415,15 @@ files:
403
415
  - vendor/pygments-main/tests/examplefiles/string.jl
404
416
  - vendor/pygments-main/tests/examplefiles/string_delimiters.d
405
417
  - vendor/pygments-main/tests/examplefiles/stripheredoc.sh
418
+ - vendor/pygments-main/tests/examplefiles/swig_java.swg
419
+ - vendor/pygments-main/tests/examplefiles/swig_std_vector.i
406
420
  - vendor/pygments-main/tests/examplefiles/test.R
407
421
  - vendor/pygments-main/tests/examplefiles/test.adb
422
+ - vendor/pygments-main/tests/examplefiles/test.agda
408
423
  - vendor/pygments-main/tests/examplefiles/test.asy
409
424
  - vendor/pygments-main/tests/examplefiles/test.awk
410
425
  - vendor/pygments-main/tests/examplefiles/test.bas
426
+ - vendor/pygments-main/tests/examplefiles/test.bb
411
427
  - vendor/pygments-main/tests/examplefiles/test.bmx
412
428
  - vendor/pygments-main/tests/examplefiles/test.boo
413
429
  - vendor/pygments-main/tests/examplefiles/test.bro
@@ -417,6 +433,7 @@ files:
417
433
  - vendor/pygments-main/tests/examplefiles/test.d
418
434
  - vendor/pygments-main/tests/examplefiles/test.dart
419
435
  - vendor/pygments-main/tests/examplefiles/test.dtd
436
+ - vendor/pygments-main/tests/examplefiles/test.ebnf
420
437
  - vendor/pygments-main/tests/examplefiles/test.ec
421
438
  - vendor/pygments-main/tests/examplefiles/test.ecl
422
439
  - vendor/pygments-main/tests/examplefiles/test.eh
@@ -436,6 +453,7 @@ files:
436
453
  - vendor/pygments-main/tests/examplefiles/test.myt
437
454
  - vendor/pygments-main/tests/examplefiles/test.nim
438
455
  - vendor/pygments-main/tests/examplefiles/test.opa
456
+ - vendor/pygments-main/tests/examplefiles/test.p6
439
457
  - vendor/pygments-main/tests/examplefiles/test.pas
440
458
  - vendor/pygments-main/tests/examplefiles/test.php
441
459
  - vendor/pygments-main/tests/examplefiles/test.plot
@@ -473,6 +491,7 @@ files:
473
491
  - vendor/pygments-main/tests/test_examplefiles.py
474
492
  - vendor/pygments-main/tests/test_html_formatter.py
475
493
  - vendor/pygments-main/tests/test_latex_formatter.py
494
+ - vendor/pygments-main/tests/test_lexers_other.py
476
495
  - vendor/pygments-main/tests/test_perllexer.py
477
496
  - vendor/pygments-main/tests/test_regexlexer.py
478
497
  - vendor/pygments-main/tests/test_token.py