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
@@ -18,6 +18,7 @@ LEXERS = {
18
18
  'ActionScript3Lexer': ('pygments.lexers.web', 'ActionScript 3', ('as3', 'actionscript3'), ('*.as',), ('application/x-actionscript', 'text/x-actionscript', 'text/actionscript')),
19
19
  'ActionScriptLexer': ('pygments.lexers.web', 'ActionScript', ('as', 'actionscript'), ('*.as',), ('application/x-actionscript3', 'text/x-actionscript3', 'text/actionscript3')),
20
20
  'AdaLexer': ('pygments.lexers.compiled', 'Ada', ('ada', 'ada95ada2005'), ('*.adb', '*.ads', '*.ada'), ('text/x-ada',)),
21
+ 'AgdaLexer': ('pygments.lexers.functional', 'Agda', ('agda',), ('*.agda',), ('text/x-agda',)),
21
22
  'AntlrActionScriptLexer': ('pygments.lexers.parsers', 'ANTLR With ActionScript Target', ('antlr-as', 'antlr-actionscript'), ('*.G', '*.g'), ()),
22
23
  'AntlrCSharpLexer': ('pygments.lexers.parsers', 'ANTLR With C# Target', ('antlr-csharp', 'antlr-c#'), ('*.G', '*.g'), ()),
23
24
  'AntlrCppLexer': ('pygments.lexers.parsers', 'ANTLR With CPP Target', ('antlr-cpp',), ('*.G', '*.g'), ()),
@@ -33,14 +34,15 @@ LEXERS = {
33
34
  'AsymptoteLexer': ('pygments.lexers.other', 'Asymptote', ('asy', 'asymptote'), ('*.asy',), ('text/x-asymptote',)),
34
35
  'AugeasLexer': ('pygments.lexers.github', 'Augeas', ('augeas',), ('*.aug',), ()),
35
36
  'AutoItLexer': ('pygments.lexers.other', 'AutoIt', ('autoit', 'Autoit'), ('*.au3',), ('text/x-autoit',)),
36
- 'AutohotkeyLexer': ('pygments.lexers.other', 'autohotkey', ('ahk',), ('*.ahk', '*.ahkl'), ('text/x-autohotkey',)),
37
+ 'AutohotkeyLexer': ('pygments.lexers.other', 'autohotkey', ('ahk', 'autohotkey'), ('*.ahk', '*.ahkl'), ('text/x-autohotkey',)),
37
38
  'AwkLexer': ('pygments.lexers.other', 'Awk', ('awk', 'gawk', 'mawk', 'nawk'), ('*.awk',), ('application/x-awk',)),
38
39
  'BBCodeLexer': ('pygments.lexers.text', 'BBCode', ('bbcode',), (), ('text/x-bbcode',)),
39
40
  'BaseMakefileLexer': ('pygments.lexers.text', 'Base Makefile', ('basemake',), (), ()),
40
41
  'BashLexer': ('pygments.lexers.shell', 'Bash', ('bash', 'sh', 'ksh'), ('*.sh', '*.ksh', '*.bash', '*.ebuild', '*.eclass', '.bashrc', 'bashrc', '.bash_*', 'bash_*'), ('application/x-sh', 'application/x-shellscript')),
41
42
  'BashSessionLexer': ('pygments.lexers.shell', 'Bash Session', ('console',), ('*.sh-session',), ('application/x-shell-session',)),
42
- 'BatchLexer': ('pygments.lexers.shell', 'Batchfile', ('bat',), ('*.bat', '*.cmd'), ('application/x-dos-batch',)),
43
+ 'BatchLexer': ('pygments.lexers.shell', 'Batchfile', ('bat', 'dosbatch', 'winbatch'), ('*.bat', '*.cmd'), ('application/x-dos-batch',)),
43
44
  'BefungeLexer': ('pygments.lexers.other', 'Befunge', ('befunge',), ('*.befunge',), ('application/x-befunge',)),
45
+ 'BlitzBasicLexer': ('pygments.lexers.compiled', 'BlitzBasic', ('blitzbasic', 'b3d', 'bplus'), ('*.bb', '*.decls'), ('text/x-bb',)),
44
46
  'BlitzMaxLexer': ('pygments.lexers.compiled', 'BlitzMax', ('blitzmax', 'bmax'), ('*.bmx',), ('text/x-bmx',)),
45
47
  'BooLexer': ('pygments.lexers.dotnet', 'Boo', ('boo',), ('*.boo',), ('text/x-boo',)),
46
48
  'BrainfuckLexer': ('pygments.lexers.other', 'Brainfuck', ('brainfuck', 'bf'), ('*.bf', '*.b'), ('application/x-brainfuck',)),
@@ -55,17 +57,18 @@ LEXERS = {
55
57
  'CbmBasicV2Lexer': ('pygments.lexers.other', 'CBM BASIC V2', ('cbmbas',), ('*.bas',), ()),
56
58
  'CeylonLexer': ('pygments.lexers.jvm', 'Ceylon', ('ceylon',), ('*.ceylon',), ('text/x-ceylon',)),
57
59
  'Cfengine3Lexer': ('pygments.lexers.other', 'CFEngine3', ('cfengine3', 'cf3'), ('*.cf',), ()),
58
- 'CheetahHtmlLexer': ('pygments.lexers.templates', 'HTML+Cheetah', ('html+cheetah', 'html+spitfire'), (), ('text/html+cheetah', 'text/html+spitfire')),
60
+ 'CheetahHtmlLexer': ('pygments.lexers.templates', 'HTML+Cheetah', ('html+cheetah', 'html+spitfire', 'htmlcheetah'), (), ('text/html+cheetah', 'text/html+spitfire')),
59
61
  'CheetahJavascriptLexer': ('pygments.lexers.templates', 'JavaScript+Cheetah', ('js+cheetah', 'javascript+cheetah', 'js+spitfire', 'javascript+spitfire'), (), ('application/x-javascript+cheetah', 'text/x-javascript+cheetah', 'text/javascript+cheetah', 'application/x-javascript+spitfire', 'text/x-javascript+spitfire', 'text/javascript+spitfire')),
60
62
  'CheetahLexer': ('pygments.lexers.templates', 'Cheetah', ('cheetah', 'spitfire'), ('*.tmpl', '*.spt'), ('application/x-cheetah', 'application/x-spitfire')),
61
63
  'CheetahXmlLexer': ('pygments.lexers.templates', 'XML+Cheetah', ('xml+cheetah', 'xml+spitfire'), (), ('application/xml+cheetah', 'application/xml+spitfire')),
64
+ 'ClayLexer': ('pygments.lexers.compiled', 'Clay', ('clay',), ('*.clay',), ('text/x-clay',)),
62
65
  'ClojureLexer': ('pygments.lexers.jvm', 'Clojure', ('clojure', 'clj'), ('*.clj',), ('text/x-clojure', 'application/x-clojure')),
63
66
  'CobolFreeformatLexer': ('pygments.lexers.compiled', 'COBOLFree', ('cobolfree',), ('*.cbl', '*.CBL'), ()),
64
67
  'CobolLexer': ('pygments.lexers.compiled', 'COBOL', ('cobol',), ('*.cob', '*.COB', '*.cpy', '*.CPY'), ('text/x-cobol',)),
65
- 'CoffeeScriptLexer': ('pygments.lexers.web', 'CoffeeScript', ('coffee-script', 'coffeescript'), ('*.coffee',), ('text/coffeescript',)),
68
+ 'CoffeeScriptLexer': ('pygments.lexers.web', 'CoffeeScript', ('coffee-script', 'coffeescript', 'coffee'), ('*.coffee',), ('text/coffeescript',)),
66
69
  'ColdfusionHtmlLexer': ('pygments.lexers.templates', 'Coldfusion HTML', ('cfm',), ('*.cfm', '*.cfml', '*.cfc'), ('application/x-coldfusion',)),
67
70
  'ColdfusionLexer': ('pygments.lexers.templates', 'cfstatement', ('cfs',), (), ()),
68
- 'CommonLispLexer': ('pygments.lexers.functional', 'Common Lisp', ('common-lisp', 'cl'), ('*.cl', '*.lisp', '*.el'), ('text/x-common-lisp',)),
71
+ 'CommonLispLexer': ('pygments.lexers.functional', 'Common Lisp', ('common-lisp', 'cl', 'lisp'), ('*.cl', '*.lisp', '*.el'), ('text/x-common-lisp',)),
69
72
  'CoqLexer': ('pygments.lexers.functional', 'Coq', ('coq',), ('*.v',), ('text/x-coq',)),
70
73
  'CppLexer': ('pygments.lexers.compiled', 'C++', ('cpp', 'c++'), ('*.cpp', '*.hpp', '*.c++', '*.h++', '*.cc', '*.hh', '*.cxx', '*.hxx', '*.C', '*.H', '*.cp', '*.CPP'), ('text/x-c++hdr', 'text/x-c++src')),
71
74
  'CppObjdumpLexer': ('pygments.lexers.asm', 'cpp-objdump', ('cpp-objdump', 'c++-objdumb', 'cxx-objdump'), ('*.cpp-objdump', '*.c++-objdump', '*.cxx-objdump'), ('text/x-cpp-objdump',)),
@@ -77,13 +80,13 @@ LEXERS = {
77
80
  'CssPhpLexer': ('pygments.lexers.templates', 'CSS+PHP', ('css+php',), (), ('text/css+php',)),
78
81
  'CssSmartyLexer': ('pygments.lexers.templates', 'CSS+Smarty', ('css+smarty',), (), ('text/css+smarty',)),
79
82
  'CudaLexer': ('pygments.lexers.compiled', 'CUDA', ('cuda', 'cu'), ('*.cu', '*.cuh'), ('text/x-cuda',)),
80
- 'CythonLexer': ('pygments.lexers.compiled', 'Cython', ('cython', 'pyx'), ('*.pyx', '*.pxd', '*.pxi'), ('text/x-cython', 'application/x-cython')),
83
+ 'CythonLexer': ('pygments.lexers.compiled', 'Cython', ('cython', 'pyx', 'pyrex'), ('*.pyx', '*.pxd', '*.pxi'), ('text/x-cython', 'application/x-cython')),
81
84
  'DLexer': ('pygments.lexers.compiled', 'D', ('d',), ('*.d', '*.di'), ('text/x-dsrc',)),
82
85
  'DObjdumpLexer': ('pygments.lexers.asm', 'd-objdump', ('d-objdump',), ('*.d-objdump',), ('text/x-d-objdump',)),
83
86
  'DarcsPatchLexer': ('pygments.lexers.text', 'Darcs Patch', ('dpatch',), ('*.dpatch', '*.darcspatch'), ()),
84
87
  'DartLexer': ('pygments.lexers.web', 'Dart', ('dart',), ('*.dart',), ('text/x-dart',)),
85
88
  'Dasm16Lexer': ('pygments.lexers.github', 'dasm16', ('DASM16',), ('*.dasm16', '*.dasm'), ('text/x-dasm16',)),
86
- 'DebianControlLexer': ('pygments.lexers.text', 'Debian Control file', ('control',), ('control',), ()),
89
+ 'DebianControlLexer': ('pygments.lexers.text', 'Debian Control file', ('control', 'debcontrol'), ('control',), ()),
87
90
  'DelphiLexer': ('pygments.lexers.compiled', 'Delphi', ('delphi', 'pas', 'pascal', 'objectpascal'), ('*.pas',), ('text/x-pascal',)),
88
91
  'DgLexer': ('pygments.lexers.agile', 'dg', ('dg',), ('*.dg',), ('text/x-dg',)),
89
92
  'DiffLexer': ('pygments.lexers.text', 'Diff', ('diff', 'udiff'), ('*.diff', '*.patch'), ('text/x-diff', 'text/x-patch')),
@@ -95,6 +98,7 @@ LEXERS = {
95
98
  'DylanLidLexer': ('pygments.lexers.compiled', 'DylanLID', ('dylan-lid', 'lid'), ('*.lid', '*.hdp'), ('text/x-dylan-lid',)),
96
99
  'ECLLexer': ('pygments.lexers.other', 'ECL', ('ecl',), ('*.ecl',), ('application/x-ecl',)),
97
100
  'ECLexer': ('pygments.lexers.compiled', 'eC', ('ec',), ('*.ec', '*.eh'), ('text/x-echdr', 'text/x-ecsrc')),
101
+ 'EbnfLexer': ('pygments.lexers.text', 'EBNF', ('ebnf',), ('*.ebnf',), ('text/x-ebnf',)),
98
102
  'ElixirConsoleLexer': ('pygments.lexers.functional', 'Elixir iex session', ('iex',), (), ('text/x-elixir-shellsession',)),
99
103
  'ElixirLexer': ('pygments.lexers.functional', 'Elixir', ('elixir', 'ex', 'exs'), ('*.ex', '*.exs'), ('text/x-elixir',)),
100
104
  'ErbLexer': ('pygments.lexers.templates', 'ERB', ('erb',), (), ('application/x-ruby-templating',)),
@@ -111,7 +115,7 @@ LEXERS = {
111
115
  'FortranLexer': ('pygments.lexers.compiled', 'Fortran', ('fortran',), ('*.f', '*.f90', '*.F', '*.F90'), ('text/x-fortran',)),
112
116
  'FoxProLexer': ('pygments.lexers.foxpro', 'FoxPro', ('Clipper', 'XBase'), ('*.PRG', '*.prg'), ()),
113
117
  'GLShaderLexer': ('pygments.lexers.compiled', 'GLSL', ('glsl',), ('*.vert', '*.frag', '*.geo'), ('text/x-glslsrc',)),
114
- 'GasLexer': ('pygments.lexers.asm', 'GAS', ('gas',), ('*.s', '*.S'), ('text/x-gas',)),
118
+ 'GasLexer': ('pygments.lexers.asm', 'GAS', ('gas', 'asm'), ('*.s', '*.S'), ('text/x-gas',)),
115
119
  'GenshiLexer': ('pygments.lexers.templates', 'Genshi', ('genshi', 'kid', 'xml+genshi', 'xml+kid'), ('*.kid',), ('application/x-genshi', 'application/x-kid')),
116
120
  'GenshiTextLexer': ('pygments.lexers.templates', 'Genshi Text', ('genshitext',), (), ('application/x-genshi-text', 'text/x-genshi')),
117
121
  'GettextLexer': ('pygments.lexers.text', 'Gettext Catalog', ('pot', 'po'), ('*.pot', '*.po'), ('application/x-gettext', 'text/x-gettext', 'text/gettext')),
@@ -125,8 +129,8 @@ LEXERS = {
125
129
  'GroovyLexer': ('pygments.lexers.jvm', 'Groovy', ('groovy',), ('*.groovy',), ('text/x-groovy',)),
126
130
  'HamlLexer': ('pygments.lexers.web', 'Haml', ('haml', 'HAML'), ('*.haml',), ('text/x-haml',)),
127
131
  'HaskellLexer': ('pygments.lexers.functional', 'Haskell', ('haskell', 'hs'), ('*.hs',), ('text/x-haskell',)),
128
- 'HaxeLexer': ('pygments.lexers.web', 'haXe', ('hx', 'haXe'), ('*.hx',), ('text/haxe',)),
129
- 'HtmlDjangoLexer': ('pygments.lexers.templates', 'HTML+Django/Jinja', ('html+django', 'html+jinja'), (), ('text/html+django', 'text/html+jinja')),
132
+ 'HaxeLexer': ('pygments.lexers.web', 'Haxe', ('hx', 'Haxe', 'haxe', 'haXe', 'hxsl'), ('*.hx', '*.hxsl'), ('text/haxe', 'text/x-haxe', 'text/x-hx')),
133
+ 'HtmlDjangoLexer': ('pygments.lexers.templates', 'HTML+Django/Jinja', ('html+django', 'html+jinja', 'htmldjango'), (), ('text/html+django', 'text/html+jinja')),
130
134
  'HtmlGenshiLexer': ('pygments.lexers.templates', 'HTML+Genshi', ('html+genshi', 'html+kid'), (), ('text/html+genshi',)),
131
135
  'HtmlLexer': ('pygments.lexers.web', 'HTML', ('html',), ('*.html', '*.htm', '*.xhtml', '*.xslt'), ('text/html', 'application/xhtml+xml')),
132
136
  'HtmlPhpLexer': ('pygments.lexers.templates', 'HTML+PHP', ('html+php',), ('*.phtml',), ('application/x-php', 'application/x-httpd-php', 'application/x-httpd-php3', 'application/x-httpd-php4', 'application/x-httpd-php5')),
@@ -135,7 +139,8 @@ LEXERS = {
135
139
  'HxmlLexer': ('pygments.lexers.text', 'Hxml', ('haxeml', 'hxml'), ('*.hxml',), ()),
136
140
  'HybrisLexer': ('pygments.lexers.other', 'Hybris', ('hybris', 'hy'), ('*.hy', '*.hyb'), ('text/x-hybris', 'application/x-hybris')),
137
141
  'IDLLexer': ('pygments.lexers.math', 'IDL', ('idl',), ('*.pro',), ('text/idl',)),
138
- 'IniLexer': ('pygments.lexers.text', 'INI', ('ini', 'cfg'), ('*.ini', '*.cfg'), ('text/x-ini',)),
142
+ 'IgorLexer': ('pygments.lexers.math', 'Igor', ('igor', 'igorpro'), ('*.ipf',), ('text/ipf',)),
143
+ 'IniLexer': ('pygments.lexers.text', 'INI', ('ini', 'cfg', 'dosini'), ('*.ini', '*.cfg'), ('text/x-ini',)),
139
144
  'IoLexer': ('pygments.lexers.agile', 'Io', ('io',), ('*.io',), ('text/x-iosrc',)),
140
145
  'IokeLexer': ('pygments.lexers.jvm', 'Ioke', ('ioke', 'ik'), ('*.ik',), ('text/x-iokesrc',)),
141
146
  'IrcLogsLexer': ('pygments.lexers.text', 'IRC logs', ('irc',), ('*.weechatlog',), ('text/x-irclog',)),
@@ -161,13 +166,14 @@ LEXERS = {
161
166
  'LassoLexer': ('pygments.lexers.web', 'Lasso', ('lasso', 'lassoscript'), ('*.lasso', '*.lasso[89]'), ('text/x-lasso',)),
162
167
  'LassoXmlLexer': ('pygments.lexers.templates', 'XML+Lasso', ('xml+lasso',), (), ('application/xml+lasso',)),
163
168
  'LighttpdConfLexer': ('pygments.lexers.text', 'Lighttpd configuration file', ('lighty', 'lighttpd'), (), ('text/x-lighttpd-conf',)),
164
- 'LiterateHaskellLexer': ('pygments.lexers.functional', 'Literate Haskell', ('lhs', 'literate-haskell'), ('*.lhs',), ('text/x-literate-haskell',)),
169
+ 'LiterateAgdaLexer': ('pygments.lexers.functional', 'Literate Agda', ('lagda', 'literate-agda'), ('*.lagda',), ('text/x-literate-agda',)),
170
+ 'LiterateHaskellLexer': ('pygments.lexers.functional', 'Literate Haskell', ('lhs', 'literate-haskell', 'lhaskell'), ('*.lhs',), ('text/x-literate-haskell',)),
165
171
  'LiveScriptLexer': ('pygments.lexers.web', 'LiveScript', ('live-script', 'livescript'), ('*.ls',), ('text/livescript',)),
166
172
  'LlvmLexer': ('pygments.lexers.asm', 'LLVM', ('llvm',), ('*.ll',), ('text/x-llvm',)),
167
173
  'LogosLexer': ('pygments.lexers.compiled', 'Logos', ('logos',), ('*.x', '*.xi', '*.xm', '*.xmi'), ('text/x-logos',)),
168
174
  'LogtalkLexer': ('pygments.lexers.other', 'Logtalk', ('logtalk',), ('*.lgt',), ('text/x-logtalk',)),
169
175
  'LuaLexer': ('pygments.lexers.agile', 'Lua', ('lua',), ('*.lua', '*.wlua'), ('text/x-lua', 'application/x-lua')),
170
- 'MOOCodeLexer': ('pygments.lexers.other', 'MOOCode', ('moocode',), ('*.moo',), ('text/x-moocode',)),
176
+ 'MOOCodeLexer': ('pygments.lexers.other', 'MOOCode', ('moocode', 'moo'), ('*.moo',), ('text/x-moocode',)),
171
177
  'MakefileLexer': ('pygments.lexers.text', 'Makefile', ('make', 'makefile', 'mf', 'bsdmake'), ('*.mak', 'Makefile', 'makefile', 'Makefile.*', 'GNUmakefile'), ('text/x-makefile',)),
172
178
  'MakoCssLexer': ('pygments.lexers.templates', 'CSS+Mako', ('css+mako',), (), ('text/css+mako',)),
173
179
  'MakoHtmlLexer': ('pygments.lexers.templates', 'HTML+Mako', ('html+mako',), (), ('text/html+mako',)),
@@ -196,6 +202,7 @@ LEXERS = {
196
202
  'NSISLexer': ('pygments.lexers.other', 'NSIS', ('nsis', 'nsi', 'nsh'), ('*.nsi', '*.nsh'), ('text/x-nsis',)),
197
203
  'NasmLexer': ('pygments.lexers.asm', 'NASM', ('nasm',), ('*.asm', '*.ASM'), ('text/x-nasm',)),
198
204
  'NemerleLexer': ('pygments.lexers.dotnet', 'Nemerle', ('nemerle',), ('*.n',), ('text/x-nemerle',)),
205
+ 'NesCLexer': ('pygments.lexers.compiled', 'nesC', ('nesc',), ('*.nc',), ('text/x-nescsrc',)),
199
206
  'NewLispLexer': ('pygments.lexers.functional', 'NewLisp', ('newlisp',), ('*.lsp', '*.nl'), ('text/x-newlisp', 'application/x-newlisp')),
200
207
  'NewspeakLexer': ('pygments.lexers.other', 'Newspeak', ('newspeak',), ('*.ns2',), ('text/x-newspeak',)),
201
208
  'NginxConfLexer': ('pygments.lexers.text', 'Nginx configuration file', ('nginx',), (), ('text/x-nginx-conf',)),
@@ -210,17 +217,18 @@ LEXERS = {
210
217
  'OocLexer': ('pygments.lexers.compiled', 'Ooc', ('ooc',), ('*.ooc',), ('text/x-ooc',)),
211
218
  'OpaLexer': ('pygments.lexers.functional', 'Opa', ('opa',), ('*.opa',), ('text/x-opa',)),
212
219
  'OpenEdgeLexer': ('pygments.lexers.other', 'OpenEdge ABL', ('openedge', 'abl', 'progress'), ('*.p', '*.cls'), ('text/x-openedge', 'application/x-openedge')),
220
+ 'Perl6Lexer': ('pygments.lexers.agile', 'Perl6', ('perl6', 'pl6'), ('*.pl', '*.pm', '*.nqp', '*.p6', '*.6pl', '*.p6l', '*.pl6', '*.6pm', '*.p6m', '*.pm6'), ('text/x-perl6', 'application/x-perl6')),
213
221
  'PerlLexer': ('pygments.lexers.agile', 'Perl', ('perl', 'pl'), ('*.pl', '*.pm'), ('text/x-perl', 'application/x-perl')),
214
222
  'PhpLexer': ('pygments.lexers.web', 'PHP', ('php', 'php3', 'php4', 'php5'), ('*.php', '*.php[345]', '*.inc'), ('text/x-php',)),
215
223
  'PlPgsqlLexer': ('pygments.lexers.sql', 'PL/pgSQL', ('plpgsql',), (), ('text/x-plpgsql',)),
216
- 'PostScriptLexer': ('pygments.lexers.other', 'PostScript', ('postscript',), ('*.ps', '*.eps'), ('application/postscript',)),
224
+ 'PostScriptLexer': ('pygments.lexers.other', 'PostScript', ('postscript', 'postscr'), ('*.ps', '*.eps'), ('application/postscript',)),
217
225
  'PostgresConsoleLexer': ('pygments.lexers.sql', 'PostgreSQL console (psql)', ('psql', 'postgresql-console', 'postgres-console'), (), ('text/x-postgresql-psql',)),
218
226
  'PostgresLexer': ('pygments.lexers.sql', 'PostgreSQL SQL dialect', ('postgresql', 'postgres'), (), ('text/x-postgresql',)),
219
227
  'PovrayLexer': ('pygments.lexers.other', 'POVRay', ('pov',), ('*.pov', '*.inc'), ('text/x-povray',)),
220
- 'PowerShellLexer': ('pygments.lexers.shell', 'PowerShell', ('powershell', 'posh', 'ps1'), ('*.ps1',), ('text/x-powershell',)),
228
+ 'PowerShellLexer': ('pygments.lexers.shell', 'PowerShell', ('powershell', 'posh', 'ps1', 'psm1'), ('*.ps1', '*.psm1'), ('text/x-powershell',)),
221
229
  'PrologLexer': ('pygments.lexers.compiled', 'Prolog', ('prolog',), ('*.prolog', '*.pro', '*.pl'), ('text/x-prolog',)),
222
- 'PropertiesLexer': ('pygments.lexers.text', 'Properties', ('properties',), ('*.properties',), ('text/x-java-properties',)),
223
- 'ProtoBufLexer': ('pygments.lexers.other', 'Protocol Buffer', ('protobuf',), ('*.proto',), ()),
230
+ 'PropertiesLexer': ('pygments.lexers.text', 'Properties', ('properties', 'jproperties'), ('*.properties',), ('text/x-java-properties',)),
231
+ 'ProtoBufLexer': ('pygments.lexers.other', 'Protocol Buffer', ('protobuf', 'proto'), ('*.proto',), ()),
224
232
  'PuppetLexer': ('pygments.lexers.github', 'Puppet', ('puppet',), ('*.pp',), ()),
225
233
  'PyPyLogLexer': ('pygments.lexers.text', 'PyPy Log', ('pypylog', 'pypy'), ('*.pypylog',), ('application/x-pypylog',)),
226
234
  'Python3Lexer': ('pygments.lexers.agile', 'Python 3', ('python3', 'py3'), (), ('text/x-python3', 'application/x-python3')),
@@ -245,6 +253,7 @@ LEXERS = {
245
253
  'RebolLexer': ('pygments.lexers.other', 'REBOL', ('rebol',), ('*.r', '*.r3'), ('text/x-rebol',)),
246
254
  'RedcodeLexer': ('pygments.lexers.other', 'Redcode', ('redcode',), ('*.cw',), ()),
247
255
  'RegeditLexer': ('pygments.lexers.text', 'reg', ('registry',), ('*.reg',), ('text/x-windows-registry',)),
256
+ 'RexxLexer': ('pygments.lexers.other', 'Rexx', ('rexx', 'ARexx', 'arexx'), ('*.rexx', '*.rex', '*.rx', '*.arexx'), ('text/x-rexx',)),
248
257
  'RhtmlLexer': ('pygments.lexers.templates', 'RHTML', ('rhtml', 'html+erb', 'html+ruby'), ('*.rhtml',), ('text/html+ruby',)),
249
258
  'RobotFrameworkLexer': ('pygments.lexers.other', 'RobotFramework', ('RobotFramework', 'robotframework'), ('*.txt', '*.robot'), ('text/x-robotframework',)),
250
259
  'RstLexer': ('pygments.lexers.text', 'reStructuredText', ('rst', 'rest', 'restructuredtext'), ('*.rst', '*.rest'), ('text/x-rst', 'text/prs.fallenstein.rst')),
@@ -262,16 +271,17 @@ LEXERS = {
262
271
  'ShellSessionLexer': ('pygments.lexers.shell', 'Shell Session', ('shell-session',), ('*.shell-session',), ('application/x-sh-session',)),
263
272
  'SlashLexer': ('pygments.lexers.github', 'Slash', ('slash',), ('*.sl',), ()),
264
273
  'SmaliLexer': ('pygments.lexers.dalvik', 'Smali', ('smali',), ('*.smali',), ('text/smali',)),
265
- 'SmalltalkLexer': ('pygments.lexers.other', 'Smalltalk', ('smalltalk', 'squeak'), ('*.st',), ('text/x-smalltalk',)),
274
+ 'SmalltalkLexer': ('pygments.lexers.other', 'Smalltalk', ('smalltalk', 'squeak', 'st'), ('*.st',), ('text/x-smalltalk',)),
266
275
  'SmartyLexer': ('pygments.lexers.templates', 'Smarty', ('smarty',), ('*.tpl',), ('application/x-smarty',)),
267
276
  'SnobolLexer': ('pygments.lexers.other', 'Snobol', ('snobol',), ('*.snobol',), ('text/x-snobol',)),
268
277
  'SourcePawnLexer': ('pygments.lexers.other', 'SourcePawn', ('sp',), ('*.sp',), ('text/x-sourcepawn',)),
269
- 'SourcesListLexer': ('pygments.lexers.text', 'Debian Sourcelist', ('sourceslist', 'sources.list'), ('sources.list',), ()),
278
+ 'SourcesListLexer': ('pygments.lexers.text', 'Debian Sourcelist', ('sourceslist', 'sources.list', 'debsources'), ('sources.list',), ()),
270
279
  'SqlLexer': ('pygments.lexers.sql', 'SQL', ('sql',), ('*.sql',), ('text/x-sql',)),
271
280
  'SqliteConsoleLexer': ('pygments.lexers.sql', 'sqlite3con', ('sqlite3',), ('*.sqlite3-console',), ('text/x-sqlite3-console',)),
272
281
  'SquidConfLexer': ('pygments.lexers.text', 'SquidConf', ('squidconf', 'squid.conf', 'squid'), ('squid.conf',), ('text/x-squidconf',)),
273
282
  'SspLexer': ('pygments.lexers.templates', 'Scalate Server Page', ('ssp',), ('*.ssp',), ('application/x-ssp',)),
274
283
  'StanLexer': ('pygments.lexers.math', 'Stan', ('stan',), ('*.stan',), ()),
284
+ 'SwigLexer': ('pygments.lexers.compiled', 'SWIG', ('Swig', 'swig'), ('*.swg', '*.i'), ('text/swig',)),
275
285
  'SystemVerilogLexer': ('pygments.lexers.hdl', 'systemverilog', ('systemverilog', 'sv'), ('*.sv', '*.svh'), ('text/x-systemverilog',)),
276
286
  'TOMLLexer': ('pygments.lexers.github', 'TOML', ('toml',), ('*.toml',), ()),
277
287
  'TclLexer': ('pygments.lexers.agile', 'Tcl', ('tcl',), ('*.tcl',), ('text/x-tcl', 'text/x-script.tcl', 'application/x-tcl')),
@@ -295,7 +305,7 @@ LEXERS = {
295
305
  'XQueryLexer': ('pygments.lexers.web', 'XQuery', ('xquery', 'xqy', 'xq', 'xql', 'xqm'), ('*.xqy', '*.xquery', '*.xq', '*.xql', '*.xqm'), ('text/xquery', 'application/xquery')),
296
306
  'XmlDjangoLexer': ('pygments.lexers.templates', 'XML+Django/Jinja', ('xml+django', 'xml+jinja'), (), ('application/xml+django', 'application/xml+jinja')),
297
307
  'XmlErbLexer': ('pygments.lexers.templates', 'XML+Ruby', ('xml+erb', 'xml+ruby'), (), ('application/xml+ruby',)),
298
- 'XmlLexer': ('pygments.lexers.web', 'XML', ('xml',), ('*.xml', '*.xsl', '*.rss', '*.xslt', '*.xsd', '*.wsdl'), ('text/xml', 'application/xml', 'image/svg+xml', 'application/rss+xml', 'application/atom+xml')),
308
+ 'XmlLexer': ('pygments.lexers.web', 'XML', ('xml',), ('*.xml', '*.xsl', '*.rss', '*.xslt', '*.xsd', '*.wsdl', '*.wsf'), ('text/xml', 'application/xml', 'image/svg+xml', 'application/rss+xml', 'application/atom+xml')),
299
309
  'XmlPhpLexer': ('pygments.lexers.templates', 'XML+PHP', ('xml+php',), (), ('application/xml+php',)),
300
310
  'XmlSmartyLexer': ('pygments.lexers.templates', 'XML+Smarty', ('xml+smarty',), (), ('application/xml+smarty',)),
301
311
  'XsltLexer': ('pygments.lexers.web', 'XSLT', ('xslt',), ('*.xsl', '*.xslt', '*.xpl'), ('application/xsl+xml', 'application/xslt+xml')),
@@ -163,7 +163,7 @@ class RowSplitter(object):
163
163
  def split(self, row):
164
164
  splitter = (row.startswith('| ') and self._split_from_pipes
165
165
  or self._split_from_spaces)
166
- for value in splitter(row.rstrip()):
166
+ for value in splitter(row):
167
167
  yield value
168
168
  yield '\n'
169
169
 
@@ -1,27 +1,31 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  """
3
- pygments.lexers._stan_builtins
4
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3
+ pygments.lexers._stan_builtins
4
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
5
5
 
6
- This file contains the names of functions for Stan used by
7
- ``pygments.lexers.math.StanLexer.
6
+ This file contains the names of functions for Stan used by
7
+ ``pygments.lexers.math.StanLexer.
8
8
 
9
- :copyright: Copyright 2006-2013 by the Pygments team, see AUTHORS.
10
- :license: BSD, see LICENSE for details.
9
+ :copyright: Copyright 2013 by the Pygments team, see AUTHORS.
10
+ :license: BSD, see LICENSE for details.
11
11
  """
12
12
 
13
- CONSTANTS=[ 'e',
14
- 'epsilon',
15
- 'log10',
16
- 'log2',
17
- 'negative_epsilon',
18
- 'negative_infinity',
19
- 'not_a_number',
20
- 'pi',
21
- 'positive_infinity',
22
- 'sqrt2']
13
+ KEYWORDS = ['else', 'for', 'if', 'in', 'lower', 'lp__', 'print', 'upper', 'while']
14
+
15
+ TYPES = [ 'corr_matrix',
16
+ 'cov_matrix',
17
+ 'int',
18
+ 'matrix',
19
+ 'ordered',
20
+ 'positive_ordered',
21
+ 'real',
22
+ 'row_vector',
23
+ 'simplex',
24
+ 'unit_vector',
25
+ 'vector']
23
26
 
24
- FUNCTIONS=[ 'Phi',
27
+ FUNCTIONS = [ 'Phi',
28
+ 'Phi_approx',
25
29
  'abs',
26
30
  'acos',
27
31
  'acosh',
@@ -30,37 +34,66 @@ FUNCTIONS=[ 'Phi',
30
34
  'atan',
31
35
  'atan2',
32
36
  'atanh',
37
+ 'bernoulli_cdf',
33
38
  'bernoulli_log',
39
+ 'bernoulli_logit_log',
40
+ 'bernoulli_rng',
41
+ 'beta_binomial_cdf',
34
42
  'beta_binomial_log',
43
+ 'beta_binomial_rng',
44
+ 'beta_cdf',
35
45
  'beta_log',
46
+ 'beta_rng',
36
47
  'binary_log_loss',
48
+ 'binomial_cdf',
37
49
  'binomial_coefficient_log',
50
+ 'binomial_log',
51
+ 'binomial_logit_log',
52
+ 'binomial_rng',
53
+ 'block',
38
54
  'categorical_log',
55
+ 'categorical_rng',
56
+ 'cauchy_cdf',
39
57
  'cauchy_log',
58
+ 'cauchy_rng',
40
59
  'cbrt',
41
60
  'ceil',
42
61
  'chi_square_log',
62
+ 'chi_square_rng',
43
63
  'cholesky_decompose',
44
64
  'col',
45
65
  'cols',
46
66
  'cos',
47
67
  'cosh',
68
+ 'crossprod',
69
+ 'cumulative_sum',
48
70
  'determinant',
49
71
  'diag_matrix',
72
+ 'diag_post_multiply',
73
+ 'diag_pre_multiply',
50
74
  'diagonal',
75
+ 'dims',
51
76
  'dirichlet_log',
77
+ 'dirichlet_rng',
52
78
  'dot_product',
53
79
  'dot_self',
54
80
  'double_exponential_log',
55
- 'eigenvalues',
81
+ 'double_exponential_rng',
82
+ 'e',
56
83
  'eigenvalues_sym',
84
+ 'eigenvectors_sym',
85
+ 'epsilon',
57
86
  'erf',
58
87
  'erfc',
59
88
  'exp',
60
89
  'exp2',
90
+ 'exp_mod_normal_cdf',
91
+ 'exp_mod_normal_log',
92
+ 'exp_mod_normal_rng',
61
93
  'expm1',
62
94
  'exponential_cdf',
63
95
  'exponential_log',
96
+ 'exponential_rng',
64
97
  'fabs',
65
98
  'fdim',
66
99
  'floor',
@@ -69,85 +102,148 @@ FUNCTIONS=[ 'Phi',
69
102
  'fmin',
70
103
  'fmod',
71
104
  'gamma_log',
105
+ 'gamma_rng',
106
+ 'gumbel_cdf',
107
+ 'gumbel_log',
108
+ 'gumbel_rng',
72
109
  'hypergeometric_log',
110
+ 'hypergeometric_rng',
73
111
  'hypot',
74
112
  'if_else',
75
113
  'int_step',
114
+ 'inv_chi_square_cdf',
76
115
  'inv_chi_square_log',
116
+ 'inv_chi_square_rng',
77
117
  'inv_cloglog',
118
+ 'inv_gamma_cdf',
78
119
  'inv_gamma_log',
120
+ 'inv_gamma_rng',
79
121
  'inv_logit',
80
122
  'inv_wishart_log',
123
+ 'inv_wishart_rng',
81
124
  'inverse',
82
125
  'lbeta',
83
126
  'lgamma',
84
127
  'lkj_corr_cholesky_log',
128
+ 'lkj_corr_cholesky_rng',
85
129
  'lkj_corr_log',
130
+ 'lkj_corr_rng',
86
131
  'lkj_cov_log',
87
132
  'lmgamma',
88
133
  'log',
89
134
  'log10',
90
135
  'log1m',
136
+ 'log1m_inv_logit',
91
137
  'log1p',
92
138
  'log1p_exp',
93
139
  'log2',
140
+ 'log_determinant',
141
+ 'log_inv_logit',
94
142
  'log_sum_exp',
143
+ 'logistic_cdf',
95
144
  'logistic_log',
145
+ 'logistic_rng',
96
146
  'logit',
97
147
  'lognormal_cdf',
98
148
  'lognormal_log',
149
+ 'lognormal_rng',
99
150
  'max',
151
+ 'mdivide_left_tri_low',
152
+ 'mdivide_right_tri_low',
100
153
  'mean',
101
154
  'min',
102
155
  'multi_normal_cholesky_log',
103
156
  'multi_normal_log',
157
+ 'multi_normal_prec_log',
158
+ 'multi_normal_rng',
104
159
  'multi_student_t_log',
160
+ 'multi_student_t_rng',
161
+ 'multinomial_cdf',
105
162
  'multinomial_log',
163
+ 'multinomial_rng',
106
164
  'multiply_log',
107
165
  'multiply_lower_tri_self_transpose',
166
+ 'neg_binomial_cdf',
108
167
  'neg_binomial_log',
168
+ 'neg_binomial_rng',
169
+ 'negative_epsilon',
170
+ 'negative_infinity',
109
171
  'normal_cdf',
110
172
  'normal_log',
173
+ 'normal_rng',
174
+ 'not_a_number',
111
175
  'ordered_logistic_log',
176
+ 'ordered_logistic_rng',
177
+ 'owens_t',
178
+ 'pareto_cdf',
112
179
  'pareto_log',
180
+ 'pareto_rng',
181
+ 'pi',
182
+ 'poisson_cdf',
113
183
  'poisson_log',
184
+ 'poisson_log_log',
185
+ 'poisson_rng',
186
+ 'positive_infinity',
114
187
  'pow',
115
188
  'prod',
189
+ 'rep_array',
190
+ 'rep_matrix',
191
+ 'rep_row_vector',
192
+ 'rep_vector',
116
193
  'round',
117
194
  'row',
118
195
  'rows',
196
+ 'scaled_inv_chi_square_cdf',
119
197
  'scaled_inv_chi_square_log',
198
+ 'scaled_inv_chi_square_rng',
120
199
  'sd',
121
200
  'sin',
122
201
  'singular_values',
123
202
  'sinh',
203
+ 'size',
204
+ 'skew_normal_cdf',
205
+ 'skew_normal_log',
206
+ 'skew_normal_rng',
124
207
  'softmax',
125
208
  'sqrt',
209
+ 'sqrt2',
126
210
  'square',
127
211
  'step',
212
+ 'student_t_cdf',
128
213
  'student_t_log',
214
+ 'student_t_rng',
129
215
  'sum',
130
216
  'tan',
131
217
  'tanh',
218
+ 'tcrossprod',
132
219
  'tgamma',
133
220
  'trace',
134
221
  'trunc',
135
222
  'uniform_log',
223
+ 'uniform_rng',
136
224
  'variance',
137
225
  'weibull_cdf',
138
226
  'weibull_log',
139
- 'wishart_log']
227
+ 'weibull_rng',
228
+ 'wishart_log',
229
+ 'wishart_rng']
140
230
 
141
- DISTRIBUTIONS=[ 'bernoulli',
231
+ DISTRIBUTIONS = [ 'bernoulli',
232
+ 'bernoulli_logit',
142
233
  'beta',
143
234
  'beta_binomial',
235
+ 'binomial',
236
+ 'binomial_coefficient',
237
+ 'binomial_logit',
144
238
  'categorical',
145
239
  'cauchy',
146
240
  'chi_square',
147
241
  'dirichlet',
148
242
  'double_exponential',
243
+ 'exp_mod_normal',
149
244
  'exponential',
150
245
  'gamma',
246
+ 'gumbel',
151
247
  'hypergeometric',
152
248
  'inv_chi_square',
153
249
  'inv_gamma',
@@ -159,16 +255,106 @@ DISTRIBUTIONS=[ 'bernoulli',
159
255
  'lognormal',
160
256
  'multi_normal',
161
257
  'multi_normal_cholesky',
258
+ 'multi_normal_prec',
162
259
  'multi_student_t',
163
260
  'multinomial',
261
+ 'multiply',
164
262
  'neg_binomial',
165
263
  'normal',
166
264
  'ordered_logistic',
167
265
  'pareto',
168
266
  'poisson',
267
+ 'poisson_log',
169
268
  'scaled_inv_chi_square',
269
+ 'skew_normal',
170
270
  'student_t',
171
271
  'uniform',
172
272
  'weibull',
173
273
  'wishart']
174
274
 
275
+ RESERVED = [ 'alignas',
276
+ 'alignof',
277
+ 'and',
278
+ 'and_eq',
279
+ 'asm',
280
+ 'auto',
281
+ 'bitand',
282
+ 'bitor',
283
+ 'bool',
284
+ 'break',
285
+ 'case',
286
+ 'catch',
287
+ 'char',
288
+ 'char16_t',
289
+ 'char32_t',
290
+ 'class',
291
+ 'compl',
292
+ 'const',
293
+ 'const_cast',
294
+ 'constexpr',
295
+ 'continue',
296
+ 'decltype',
297
+ 'default',
298
+ 'delete',
299
+ 'do',
300
+ 'double',
301
+ 'dynamic_cast',
302
+ 'enum',
303
+ 'explicit',
304
+ 'export',
305
+ 'extern',
306
+ 'false',
307
+ 'false',
308
+ 'float',
309
+ 'friend',
310
+ 'goto',
311
+ 'inline',
312
+ 'int',
313
+ 'long',
314
+ 'mutable',
315
+ 'namespace',
316
+ 'new',
317
+ 'noexcept',
318
+ 'not',
319
+ 'not_eq',
320
+ 'nullptr',
321
+ 'operator',
322
+ 'or',
323
+ 'or_eq',
324
+ 'private',
325
+ 'protected',
326
+ 'public',
327
+ 'register',
328
+ 'reinterpret_cast',
329
+ 'repeat',
330
+ 'return',
331
+ 'short',
332
+ 'signed',
333
+ 'sizeof',
334
+ 'static',
335
+ 'static_assert',
336
+ 'static_cast',
337
+ 'struct',
338
+ 'switch',
339
+ 'template',
340
+ 'then',
341
+ 'this',
342
+ 'thread_local',
343
+ 'throw',
344
+ 'true',
345
+ 'true',
346
+ 'try',
347
+ 'typedef',
348
+ 'typeid',
349
+ 'typename',
350
+ 'union',
351
+ 'unsigned',
352
+ 'until',
353
+ 'using',
354
+ 'virtual',
355
+ 'void',
356
+ 'volatile',
357
+ 'wchar_t',
358
+ 'xor',
359
+ 'xor_eq']
360
+