python.min.js 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. /*! `python` grammar compiled for Highlight.js 11.3.1 */
  2. (()=>{var e=(()=>{"use strict";return e=>{
  3. const n=e.regex,a=/[\p{XID_Start}_]\p{XID_Continue}*/u,i={
  4. $pattern:/[A-Za-z]\w+|__\w+__/,
  5. keyword:["and","as","assert","async","await","break","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","in","is","lambda","nonlocal|10","not","or","pass","raise","return","try","while","with","yield"],
  6. built_in:["__import__","abs","all","any","ascii","bin","bool","breakpoint","bytearray","bytes","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","exec","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","range","repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip"],
  7. literal:["__debug__","Ellipsis","False","None","NotImplemented","True"],
  8. type:["Any","Callable","Coroutine","Dict","List","Literal","Generic","Optional","Sequence","Set","Tuple","Type","Union"]
  9. },s={className:"meta",begin:/^(>>>|\.\.\.) /},t={className:"subst",begin:/\{/,
  10. end:/\}/,keywords:i,illegal:/#/},r={begin:/\{\{/,relevance:0},l={
  11. className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{
  12. begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,
  13. contains:[e.BACKSLASH_ESCAPE,s],relevance:10},{
  14. begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,
  15. contains:[e.BACKSLASH_ESCAPE,s],relevance:10},{
  16. begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/,
  17. contains:[e.BACKSLASH_ESCAPE,s,r,t]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/,
  18. end:/"""/,contains:[e.BACKSLASH_ESCAPE,s,r,t]},{begin:/([uU]|[rR])'/,end:/'/,
  19. relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{
  20. begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/,
  21. end:/"/},{begin:/([fF][rR]|[rR][fF]|[fF])'/,end:/'/,
  22. contains:[e.BACKSLASH_ESCAPE,r,t]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/,
  23. contains:[e.BACKSLASH_ESCAPE,r,t]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]
  24. },b="[0-9](_?[0-9])*",o=`(\\b(${b}))?\\.(${b})|\\b(${b})\\.`,c={
  25. className:"number",relevance:0,variants:[{
  26. begin:`(\\b(${b})|(${o}))[eE][+-]?(${b})[jJ]?\\b`},{begin:`(${o})[jJ]?`},{
  27. begin:"\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?\\b"},{
  28. begin:"\\b0[bB](_?[01])+[lL]?\\b"},{begin:"\\b0[oO](_?[0-7])+[lL]?\\b"},{
  29. begin:"\\b0[xX](_?[0-9a-fA-F])+[lL]?\\b"},{begin:`\\b(${b})[jJ]\\b`}]},d={
  30. className:"comment",begin:n.lookahead(/# type:/),end:/$/,keywords:i,contains:[{
  31. begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},g={
  32. className:"params",variants:[{className:"",begin:/\(\s*\)/,skip:!0},{begin:/\(/,
  33. end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:i,
  34. contains:["self",s,c,l,e.HASH_COMMENT_MODE]}]};return t.contains=[l,c,s],{
  35. name:"Python",aliases:["py","gyp","ipython"],unicodeRegex:!0,keywords:i,
  36. illegal:/(<\/|->|\?)|=>/,contains:[s,c,{begin:/\bself\b/},{beginKeywords:"if",
  37. relevance:0},l,d,e.HASH_COMMENT_MODE,{match:[/def/,/\s+/,a],scope:{1:"keyword",
  38. 3:"title.function"},contains:[g]},{variants:[{
  39. match:[/class/,/\s+/,a,/\s*/,/\(\s*/,a,/\s*\)/]},{match:[/class/,/\s+/,a]}],
  40. scope:{1:"keyword",3:"title.class",6:"title.class.inherited"}},{
  41. className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[c,g,l]}]}}})()
  42. ;hljs.registerLanguage("python",e)})();