pygments.rb 0.5.2 → 0.5.4

Sign up to get free protection for your applications and to get access to all the features.
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