/*! * TOAST UI Editor : Code Syntax Highlight Plugin * @version 3.0.0 | Thu Jun 17 2021 * @author NHN FE Development Lab * @license MIT */ (function webpackUniversalModuleDefinition(root, factory) { if(typeof exports === 'object' && typeof module === 'object') module.exports = factory(); else if(typeof define === 'function' && define.amd) define([], factory); else if(typeof exports === 'object') exports["toastui"] = factory(); else root["toastui"] = root["toastui"] || {}, root["toastui"]["Editor"] = root["toastui"]["Editor"] || {}, root["toastui"]["Editor"]["plugin"] = root["toastui"]["Editor"]["plugin"] || {}, root["toastui"]["Editor"]["plugin"]["codeSyntaxHighlight"] = factory(); })(self, function() { return /******/ (function() { // webpackBootstrap /******/ var __webpack_modules__ = ({ /***/ 7246: /***/ (function() { Prism.languages.abap = { 'comment': /^\*.*/m, 'string' : /(`|')(?:\\.|(?!\1)[^\\\r\n])*\1/m, 'string-template': { pattern: /([|}])(?:\\.|[^\\|{\r\n])*(?=[|{])/, lookbehind: true, alias: 'string' }, /* End Of Line comments should not interfere with strings when the quote character occurs within them. We assume a string being highlighted inside an EOL comment is more acceptable than the opposite. */ 'eol-comment': { pattern: /(^|\s)".*/m, lookbehind: true, alias: 'comment' }, 'keyword' : { pattern: /(\s|\.|^)(?:SCIENTIFIC_WITH_LEADING_ZERO|SCALE_PRESERVING_SCIENTIFIC|RMC_COMMUNICATION_FAILURE|END-ENHANCEMENT-SECTION|MULTIPLY-CORRESPONDING|SUBTRACT-CORRESPONDING|VERIFICATION-MESSAGE|DIVIDE-CORRESPONDING|ENHANCEMENT-SECTION|CURRENCY_CONVERSION|RMC_SYSTEM_FAILURE|START-OF-SELECTION|MOVE-CORRESPONDING|RMC_INVALID_STATUS|CUSTOMER-FUNCTION|END-OF-DEFINITION|ENHANCEMENT-POINT|SYSTEM-EXCEPTIONS|ADD-CORRESPONDING|SCALE_PRESERVING|SELECTION-SCREEN|CURSOR-SELECTION|END-OF-SELECTION|LOAD-OF-PROGRAM|SCROLL-BOUNDARY|SELECTION-TABLE|EXCEPTION-TABLE|IMPLEMENTATIONS|PARAMETER-TABLE|RIGHT-JUSTIFIED|UNIT_CONVERSION|AUTHORITY-CHECK|LIST-PROCESSING|SIGN_AS_POSTFIX|COL_BACKGROUND|IMPLEMENTATION|INTERFACE-POOL|TRANSFORMATION|IDENTIFICATION|ENDENHANCEMENT|LINE-SELECTION|INITIALIZATION|LEFT-JUSTIFIED|SELECT-OPTIONS|SELECTION-SETS|COMMUNICATION|CORRESPONDING|DECIMAL_SHIFT|PRINT-CONTROL|VALUE-REQUEST|CHAIN-REQUEST|FUNCTION-POOL|FIELD-SYMBOLS|FUNCTIONALITY|INVERTED-DATE|SELECTION-SET|CLASS-METHODS|OUTPUT-LENGTH|CLASS-CODING|COL_NEGATIVE|ERRORMESSAGE|FIELD-GROUPS|HELP-REQUEST|NO-EXTENSION|NO-TOPOFPAGE|REDEFINITION|DISPLAY-MODE|ENDINTERFACE|EXIT-COMMAND|FIELD-SYMBOL|NO-SCROLLING|SHORTDUMP-ID|ACCESSPOLICY|CLASS-EVENTS|COL_POSITIVE|DECLARATIONS|ENHANCEMENTS|FILTER-TABLE|SWITCHSTATES|SYNTAX-CHECK|TRANSPORTING|ASYNCHRONOUS|SYNTAX-TRACE|TOKENIZATION|USER-COMMAND|WITH-HEADING|ABAP-SOURCE|BREAK-POINT|CHAIN-INPUT|COMPRESSION|FIXED-POINT|NEW-SECTION|NON-UNICODE|OCCURRENCES|RESPONSIBLE|SYSTEM-CALL|TRACE-TABLE|ABBREVIATED|CHAR-TO-HEX|END-OF-FILE|ENDFUNCTION|ENVIRONMENT|ASSOCIATION|COL_HEADING|EDITOR-CALL|END-OF-PAGE|ENGINEERING|IMPLEMENTED|INTENSIFIED|RADIOBUTTON|SYSTEM-EXIT|TOP-OF-PAGE|TRANSACTION|APPLICATION|CONCATENATE|DESTINATION|ENHANCEMENT|IMMEDIATELY|NO-GROUPING|PRECOMPILED|REPLACEMENT|TITLE-LINES|ACTIVATION|BYTE-ORDER|CLASS-POOL|CONNECTION|CONVERSION|DEFINITION|DEPARTMENT|EXPIRATION|INHERITING|MESSAGE-ID|NO-HEADING|PERFORMING|QUEUE-ONLY|RIGHTSPACE|SCIENTIFIC|STATUSINFO|STRUCTURES|SYNCPOINTS|WITH-TITLE|ATTRIBUTES|BOUNDARIES|CLASS-DATA|COL_NORMAL|DD\/MM\/YYYY|DESCENDING|INTERFACES|LINE-COUNT|MM\/DD\/YYYY|NON-UNIQUE|PRESERVING|SELECTIONS|STATEMENTS|SUBROUTINE|TRUNCATION|TYPE-POOLS|ARITHMETIC|BACKGROUND|ENDPROVIDE|EXCEPTIONS|IDENTIFIER|INDEX-LINE|OBLIGATORY|PARAMETERS|PERCENTAGE|PUSHBUTTON|RESOLUTION|COMPONENTS|DEALLOCATE|DISCONNECT|DUPLICATES|FIRST-LINE|HEAD-LINES|NO-DISPLAY|OCCURRENCE|RESPECTING|RETURNCODE|SUBMATCHES|TRACE-FILE|ASCENDING|BYPASSING|ENDMODULE|EXCEPTION|EXCLUDING|EXPORTING|INCREMENT|MATCHCODE|PARAMETER|PARTIALLY|PREFERRED|REFERENCE|REPLACING|RETURNING|SELECTION|SEPARATED|SPECIFIED|STATEMENT|TIMESTAMP|TYPE-POOL|ACCEPTING|APPENDAGE|ASSIGNING|COL_GROUP|COMPARING|CONSTANTS|DANGEROUS|IMPORTING|INSTANCES|LEFTSPACE|LOG-POINT|QUICKINFO|READ-ONLY|SCROLLING|SQLSCRIPT|STEP-LOOP|TOP-LINES|TRANSLATE|APPENDING|AUTHORITY|CHARACTER|COMPONENT|CONDITION|DIRECTORY|DUPLICATE|MESSAGING|RECEIVING|SUBSCREEN|ACCORDING|COL_TOTAL|END-LINES|ENDMETHOD|ENDSELECT|EXPANDING|EXTENSION|INCLUDING|INFOTYPES|INTERFACE|INTERVALS|LINE-SIZE|PF-STATUS|PROCEDURE|PROTECTED|REQUESTED|RESUMABLE|RIGHTPLUS|SAP-SPOOL|SECONDARY|STRUCTURE|SUBSTRING|TABLEVIEW|NUMOFCHAR|ADJACENT|ANALYSIS|ASSIGNED|BACKWARD|CHANNELS|CHECKBOX|CONTINUE|CRITICAL|DATAINFO|DD\/MM\/YY|DURATION|ENCODING|ENDCLASS|FUNCTION|LEFTPLUS|LINEFEED|MM\/DD\/YY|OVERFLOW|RECEIVED|SKIPPING|SORTABLE|STANDARD|SUBTRACT|SUPPRESS|TABSTRIP|TITLEBAR|TRUNCATE|UNASSIGN|WHENEVER|ANALYZER|COALESCE|COMMENTS|CONDENSE|DECIMALS|DEFERRED|ENDWHILE|EXPLICIT|KEYWORDS|MESSAGES|POSITION|PRIORITY|RECEIVER|RENAMING|TIMEZONE|TRAILING|ALLOCATE|CENTERED|CIRCULAR|CONTROLS|CURRENCY|DELETING|DESCRIBE|DISTANCE|ENDCATCH|EXPONENT|EXTENDED|GENERATE|IGNORING|INCLUDES|INTERNAL|MAJOR-ID|MODIFIER|NEW-LINE|OPTIONAL|PROPERTY|ROLLBACK|STARTING|SUPPLIED|ABSTRACT|CHANGING|CONTEXTS|CREATING|CUSTOMER|DATABASE|DAYLIGHT|DEFINING|DISTINCT|DIVISION|ENABLING|ENDCHAIN|ESCAPING|HARMLESS|IMPLICIT|INACTIVE|LANGUAGE|MINOR-ID|MULTIPLY|NEW-PAGE|NO-TITLE|POS_HIGH|SEPARATE|TEXTPOOL|TRANSFER|SELECTOR|DBMAXLEN|ITERATOR|SELECTOR|ARCHIVE|BIT-XOR|BYTE-CO|COLLECT|COMMENT|CURRENT|DEFAULT|DISPLAY|ENDFORM|EXTRACT|LEADING|LISTBOX|LOCATOR|MEMBERS|METHODS|NESTING|POS_LOW|PROCESS|PROVIDE|RAISING|RESERVE|SECONDS|SUMMARY|VISIBLE|BETWEEN|BIT-AND|BYTE-CS|CLEANUP|COMPUTE|CONTROL|CONVERT|DATASET|ENDCASE|FORWARD|HEADERS|HOTSPOT|INCLUDE|INVERSE|KEEPING|NO-ZERO|OBJECTS|OVERLAY|PADDING|PATTERN|PROGRAM|REFRESH|SECTION|SUMMING|TESTING|VERSION|WINDOWS|WITHOUT|BIT-NOT|BYTE-CA|BYTE-NA|CASTING|CONTEXT|COUNTRY|DYNAMIC|ENABLED|ENDLOOP|EXECUTE|FRIENDS|HANDLER|HEADING|INITIAL|\*-INPUT|LOGFILE|MAXIMUM|MINIMUM|NO-GAPS|NO-SIGN|PRAGMAS|PRIMARY|PRIVATE|REDUCED|REPLACE|REQUEST|RESULTS|UNICODE|WARNING|ALIASES|BYTE-CN|BYTE-NS|CALLING|COL_KEY|COLUMNS|CONNECT|ENDEXEC|ENTRIES|EXCLUDE|FILTERS|FURTHER|HELP-ID|LOGICAL|MAPPING|MESSAGE|NAMETAB|OPTIONS|PACKAGE|PERFORM|RECEIVE|STATICS|VARYING|BINDING|CHARLEN|GREATER|XSTRLEN|ACCEPT|APPEND|DETAIL|ELSEIF|ENDING|ENDTRY|FORMAT|FRAMES|GIVING|HASHED|HEADER|IMPORT|INSERT|MARGIN|MODULE|NATIVE|OBJECT|OFFSET|REMOTE|RESUME|SAVING|SIMPLE|SUBMIT|TABBED|TOKENS|UNIQUE|UNPACK|UPDATE|WINDOW|YELLOW|ACTUAL|ASPECT|CENTER|CURSOR|DELETE|DIALOG|DIVIDE|DURING|ERRORS|EVENTS|EXTEND|FILTER|HANDLE|HAVING|IGNORE|LITTLE|MEMORY|NO-GAP|OCCURS|OPTION|PERSON|PLACES|PUBLIC|REDUCE|REPORT|RESULT|SINGLE|SORTED|SWITCH|SYNTAX|TARGET|VALUES|WRITER|ASSERT|BLOCKS|BOUNDS|BUFFER|CHANGE|COLUMN|COMMIT|CONCAT|COPIES|CREATE|DDMMYY|DEFINE|ENDIAN|ESCAPE|EXPAND|KERNEL|LAYOUT|LEGACY|LEVELS|MMDDYY|NUMBER|OUTPUT|RANGES|READER|RETURN|SCREEN|SEARCH|SELECT|SHARED|SOURCE|STABLE|STATIC|SUBKEY|SUFFIX|TABLES|UNWIND|YYMMDD|ASSIGN|BACKUP|BEFORE|BINARY|BIT-OR|BLANKS|CLIENT|CODING|COMMON|DEMAND|DYNPRO|EXCEPT|EXISTS|EXPORT|FIELDS|GLOBAL|GROUPS|LENGTH|LOCALE|MEDIUM|METHOD|MODIFY|NESTED|OTHERS|REJECT|SCROLL|SUPPLY|SYMBOL|ENDFOR|STRLEN|ALIGN|BEGIN|BOUND|ENDAT|ENTRY|EVENT|FINAL|FLUSH|GRANT|INNER|SHORT|USING|WRITE|AFTER|BLACK|BLOCK|CLOCK|COLOR|COUNT|DUMMY|EMPTY|ENDDO|ENDON|GREEN|INDEX|INOUT|LEAVE|LEVEL|LINES|MODIF|ORDER|OUTER|RANGE|RESET|RETRY|RIGHT|SMART|SPLIT|STYLE|TABLE|THROW|UNDER|UNTIL|UPPER|UTF-8|WHERE|ALIAS|BLANK|CLEAR|CLOSE|EXACT|FETCH|FIRST|FOUND|GROUP|LLANG|LOCAL|OTHER|REGEX|SPOOL|TITLE|TYPES|VALID|WHILE|ALPHA|BOXED|CATCH|CHAIN|CHECK|CLASS|COVER|ENDIF|EQUIV|FIELD|FLOOR|FRAME|INPUT|LOWER|MATCH|NODES|PAGES|PRINT|RAISE|ROUND|SHIFT|SPACE|SPOTS|STAMP|STATE|TASKS|TIMES|TRMAC|ULINE|UNION|VALUE|WIDTH|EQUAL|LOG10|TRUNC|BLOB|CASE|CEIL|CLOB|COND|EXIT|FILE|GAPS|HOLD|INCL|INTO|KEEP|KEYS|LAST|LINE|LONG|LPAD|MAIL|MODE|OPEN|PINK|READ|ROWS|TEST|THEN|ZERO|AREA|BACK|BADI|BYTE|CAST|EDIT|EXEC|FAIL|FIND|FKEQ|FONT|FREE|GKEQ|HIDE|INIT|ITNO|LATE|LOOP|MAIN|MARK|MOVE|NEXT|NULL|RISK|ROLE|UNIT|WAIT|ZONE|BASE|CALL|CODE|DATA|DATE|FKGE|GKGE|HIGH|KIND|LEFT|LIST|MASK|MESH|NAME|NODE|PACK|PAGE|POOL|SEND|SIGN|SIZE|SOME|STOP|TASK|TEXT|TIME|USER|VARY|WITH|WORD|BLUE|CONV|COPY|DEEP|ELSE|FORM|FROM|HINT|ICON|JOIN|LIKE|LOAD|ONLY|PART|SCAN|SKIP|SORT|TYPE|UNIX|VIEW|WHEN|WORK|ACOS|ASIN|ATAN|COSH|EACH|FRAC|LESS|RTTI|SINH|SQRT|TANH|AVG|BIT|DIV|ISO|LET|OUT|PAD|SQL|ALL|CI_|CPI|END|LOB|LPI|MAX|MIN|NEW|OLE|RUN|SET|\?TO|YES|ABS|ADD|AND|BIG|FOR|HDB|JOB|LOW|NOT|SAP|TRY|VIA|XML|ANY|GET|IDS|KEY|MOD|OFF|PUT|RAW|RED|REF|SUM|TAB|XSD|CNT|COS|EXP|LOG|SIN|TAN|XOR|AT|CO|CP|DO|GT|ID|IF|NS|OR|BT|CA|CS|GE|NA|NB|EQ|IN|LT|NE|NO|OF|ON|PF|TO|AS|BY|CN|IS|LE|NP|UP|E|I|M|O|Z|C|X)\b/i, lookbehind: true }, /* Numbers can be only integers. Decimal or Hex appear only as strings */ 'number' : /\b\d+\b/, /* Operators must always be surrounded by whitespace, they cannot be put adjacent to operands. */ 'operator' : { pattern: /(\s)(?:\*\*?|<[=>]?|>=?|\?=|[-+\/=])(?=\s)/, lookbehind: true }, 'string-operator' : { pattern: /(\s)&&?(?=\s)/, lookbehind: true, /* The official editor highlights */ alias: "keyword" }, 'token-operator' : [{ /* Special operators used to access structure components, class methods/attributes, etc. */ pattern: /(\w)(?:->?|=>|[~|{}])(?=\w)/, lookbehind: true, alias: "punctuation" }, { /* Special tokens used do delimit string templates */ pattern: /[|{}]/, alias: "punctuation" }], 'punctuation' : /[,.:()]/ }; /***/ }), /***/ 2255: /***/ (function() { (function (Prism) { var coreRules = '(?:ALPHA|BIT|CHAR|CR|CRLF|CTL|DIGIT|DQUOTE|HEXDIG|HTAB|LF|LWSP|OCTET|SP|VCHAR|WSP)'; Prism.languages.abnf = { 'comment': /;.*/, 'string': { pattern: /(?:%[is])?"[^"\n\r]*"/, greedy: true, inside: { 'punctuation': /^%[is]/ } }, 'range': { pattern: /%(?:b[01]+-[01]+|d\d+-\d+|x[A-F\d]+-[A-F\d]+)/i, alias: 'number' }, 'terminal': { pattern: /%(?:b[01]+(?:\.[01]+)*|d\d+(?:\.\d+)*|x[A-F\d]+(?:\.[A-F\d]+)*)/i, alias: 'number' }, 'repetition': { pattern: /(^|[^\w-])(?:\d*\*\d*|\d+)/, lookbehind: true, alias: 'operator' }, 'definition': { pattern: /(^[ \t]*)(?:[a-z][\w-]*|<[^>\r\n]*>)(?=\s*=)/m, lookbehind: true, alias: 'keyword', inside: { 'punctuation': /<|>/ } }, 'core-rule': { pattern: RegExp('(?:(^|[^<\\w-])' + coreRules + '|<' + coreRules + '>)(?![\\w-])', 'i'), lookbehind: true, alias: ['rule', 'constant'], inside: { 'punctuation': /<|>/ } }, 'rule': { pattern: /(^|[^<\w-])[a-z][\w-]*|<[^>\r\n]*>/i, lookbehind: true, inside: { 'punctuation': /<|>/ } }, 'operator': /=\/?|\//, 'punctuation': /[()\[\]]/ }; })(Prism); /***/ }), /***/ 6394: /***/ (function() { Prism.languages.actionscript = Prism.languages.extend('javascript', { 'keyword': /\b(?:as|break|case|catch|class|const|default|delete|do|else|extends|finally|for|function|if|implements|import|in|instanceof|interface|internal|is|native|new|null|package|private|protected|public|return|super|switch|this|throw|try|typeof|use|var|void|while|with|dynamic|each|final|get|include|namespace|native|override|set|static)\b/, 'operator': /\+\+|--|(?:[+\-*\/%^]|&&?|\|\|?|<>?>?|[!=]=?)=?|[~?@]/ }); Prism.languages.actionscript['class-name'].alias = 'function'; if (Prism.languages.markup) { Prism.languages.insertBefore('actionscript', 'string', { 'xml': { pattern: /(^|[^.])<\/?\w+(?:\s+[^\s>\/=]+=("|')(?:\\[\s\S]|(?!\2)[^\\])*\2)*\s*\/?>/, lookbehind: true, inside: Prism.languages.markup } }); } /***/ }), /***/ 5143: /***/ (function() { Prism.languages.ada = { 'comment': /--.*/, 'string': /"(?:""|[^"\r\f\n])*"/i, 'number': [ { pattern: /\b\d(?:_?\d)*#[\dA-F](?:_?[\dA-F])*(?:\.[\dA-F](?:_?[\dA-F])*)?#(?:E[+-]?\d(?:_?\d)*)?/i }, { pattern: /\b\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:E[+-]?\d(?:_?\d)*)?\b/i } ], 'attr-name': /\b'\w+/i, 'keyword': /\b(?:abort|abs|abstract|accept|access|aliased|all|and|array|at|begin|body|case|constant|declare|delay|delta|digits|do|else|new|return|elsif|end|entry|exception|exit|for|function|generic|goto|if|in|interface|is|limited|loop|mod|not|null|of|others|out|overriding|package|pragma|private|procedure|protected|raise|range|record|rem|renames|requeue|reverse|select|separate|some|subtype|synchronized|tagged|task|terminate|then|type|until|use|when|while|with|xor)\b/i, 'boolean': /\b(?:true|false)\b/i, 'operator': /<[=>]?|>=?|=>?|:=|\/=?|\*\*?|[&+-]/, 'punctuation': /\.\.?|[,;():]/, 'char': /'.'/, 'variable': /\b[a-z](?:[_a-z\d])*\b/i }; /***/ }), /***/ 3426: /***/ (function() { (function (Prism) { Prism.languages.agda = { 'comment': /\{-[\s\S]*?(?:-\}|$)|--.*/, 'string': { pattern: /"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/, greedy: true, }, 'punctuation': /[(){}⦃⦄.;@]/, 'class-name': { pattern: /((?:data|record) +)\S+/, lookbehind: true, }, 'function': { pattern: /(^[ \t]*)(?!\s)[^:\r\n]+(?=:)/m, lookbehind: true, }, 'operator': { pattern: /(^\s*|\s)(?:[=|:∀→λ\\?_]|->)(?=\s)/, lookbehind: true, }, 'keyword': /\b(?:Set|abstract|constructor|data|eta-equality|field|forall|forall|hiding|import|in|inductive|infix|infixl|infixr|instance|let|macro|module|mutual|no-eta-equality|open|overlap|pattern|postulate|primitive|private|public|quote|quoteContext|quoteGoal|quoteTerm|record|renaming|rewrite|syntax|tactic|unquote|unquoteDecl|unquoteDef|using|variable|where|with)\b/, }; }(Prism)); /***/ }), /***/ 5625: /***/ (function() { // based on https://github.com/microsoft/AL/blob/master/grammar/alsyntax.tmlanguage Prism.languages.al = { 'comment': /\/\/.*|\/\*[\s\S]*?\*\//, 'string': { pattern: /'(?:''|[^'\r\n])*'(?!')|"(?:""|[^"\r\n])*"(?!")/, greedy: true }, 'function': { pattern: /(\b(?:event|procedure|trigger)\s+|(?:^|[^.])\.\s*)[a-z_]\w*(?=\s*\()/i, lookbehind: true }, 'keyword': [ // keywords /\b(?:array|asserterror|begin|break|case|do|downto|else|end|event|exit|for|foreach|function|if|implements|in|indataset|interface|internal|local|of|procedure|program|protected|repeat|runonclient|securityfiltering|suppressdispose|temporary|then|to|trigger|until|var|while|with|withevents)\b/i, // objects and metadata that are used like keywords /\b(?:action|actions|addafter|addbefore|addfirst|addlast|area|assembly|chartpart|codeunit|column|controladdin|cuegroup|customizes|dataitem|dataset|dotnet|elements|enum|enumextension|extends|field|fieldattribute|fieldelement|fieldgroup|fieldgroups|fields|filter|fixed|grid|group|key|keys|label|labels|layout|modify|moveafter|movebefore|movefirst|movelast|page|pagecustomization|pageextension|part|profile|query|repeater|report|requestpage|schema|separator|systempart|table|tableelement|tableextension|textattribute|textelement|type|usercontrol|value|xmlport)\b/i ], 'number': /\b(?:0x[\da-f]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?)(?:F|U(?:LL?)?|LL?)?\b/i, 'boolean': /\b(?:false|true)\b/i, 'variable': /\b(?:Curr(?:FieldNo|Page|Report)|RequestOptionsPage|x?Rec)\b/, 'class-name': /\b(?:automation|biginteger|bigtext|blob|boolean|byte|char|clienttype|code|completiontriggererrorlevel|connectiontype|database|dataclassification|datascope|date|dateformula|datetime|decimal|defaultlayout|dialog|dictionary|dotnetassembly|dotnettypedeclaration|duration|errorinfo|errortype|executioncontext|executionmode|fieldclass|fieldref|fieldtype|file|filterpagebuilder|guid|httpclient|httpcontent|httpheaders|httprequestmessage|httpresponsemessage|instream|integer|joker|jsonarray|jsonobject|jsontoken|jsonvalue|keyref|list|moduledependencyinfo|moduleinfo|none|notification|notificationscope|objecttype|option|outstream|pageresult|record|recordid|recordref|reportformat|securityfilter|sessionsettings|tableconnectiontype|tablefilter|testaction|testfield|testfilterfield|testpage|testpermissions|testrequestpage|text|textbuilder|textconst|textencoding|time|transactionmodel|transactiontype|variant|verbosity|version|view|views|webserviceactioncontext|webserviceactionresultcode|xmlattribute|xmlattributecollection|xmlcdata|xmlcomment|xmldeclaration|xmldocument|xmldocumenttype|xmlelement|xmlnamespacemanager|xmlnametable|xmlnode|xmlnodelist|xmlprocessinginstruction|xmlreadoptions|xmltext|xmlwriteoptions)\b/i, 'operator': /\.\.|:[=:]|[-+*/]=?|<>|[<>]=?|=|\b(?:and|div|mod|not|or|xor)\b/i, 'punctuation': /[()\[\]{}:.;,]/ }; /***/ }), /***/ 2259: /***/ (function() { Prism.languages.antlr4 = { 'comment': /\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/, 'string': { pattern: /'(?:\\.|[^\\'\r\n])*'/, greedy: true }, 'character-class': { pattern: /\[(?:\\.|[^\\\]\r\n])*\]/, greedy: true, alias: 'regex', inside: { 'range': { pattern: /([^[]|(?:^|[^\\])(?:\\\\)*\\\[)-(?!\])/, lookbehind: true, alias: 'punctuation' }, 'escape': /\\(?:u(?:[a-fA-F\d]{4}|\{[a-fA-F\d]+\})|[pP]\{[=\w-]+\}|[^\r\nupP])/, 'punctuation': /[\[\]]/ } }, 'action': { pattern: /\{(?:[^{}]|\{(?:[^{}]|\{(?:[^{}]|\{[^{}]*\})*\})*\})*\}/, greedy: true, inside: { 'content': { // this might be C, C++, Python, Java, C#, or any other language ANTLR4 compiles to pattern: /(\{)[\s\S]+(?=\})/, lookbehind: true }, 'punctuation': /[{}]/ } }, 'command': { pattern: /(->\s*(?!\s))(?:\s*(?:,\s*)?\b[a-z]\w*(?:\s*\([^()\r\n]*\))?)+(?=\s*;)/i, lookbehind: true, inside: { 'function': /\b\w+(?=\s*(?:[,(]|$))/, 'punctuation': /[,()]/ } }, 'annotation': { pattern: /@\w+(?:::\w+)*/, alias: 'keyword' }, 'label': { pattern: /#[ \t]*\w+/, alias: 'punctuation' }, 'keyword': /\b(?:catch|channels|finally|fragment|grammar|import|lexer|locals|mode|options|parser|returns|throws|tokens)\b/, 'definition': [ { pattern: /\b[a-z]\w*(?=\s*:)/, alias: ['rule', 'class-name'] }, { pattern: /\b[A-Z]\w*(?=\s*:)/, alias: ['token', 'constant'] }, ], 'constant': /\b[A-Z][A-Z_]*\b/, 'operator': /\.\.|->|[|~]|[*+?]\??/, 'punctuation': /[;:()=]/ }; Prism.languages.g4 = Prism.languages.antlr4; /***/ }), /***/ 253: /***/ (function() { Prism.languages.apacheconf = { 'comment': /#.*/, 'directive-inline': { pattern: /(^\s*)\b(?:AcceptFilter|AcceptPathInfo|AccessFileName|Action|Add(?:Alt|AltByEncoding|AltByType|Charset|DefaultCharset|Description|Encoding|Handler|Icon|IconByEncoding|IconByType|InputFilter|Language|ModuleInfo|OutputFilter|OutputFilterByType|Type)|Alias|AliasMatch|Allow(?:CONNECT|EncodedSlashes|Methods|Override|OverrideList)?|Anonymous(?:_LogEmail|_MustGiveEmail|_NoUserID|_VerifyEmail)?|AsyncRequestWorkerFactor|Auth(?:BasicAuthoritative|BasicFake|BasicProvider|BasicUseDigestAlgorithm|DBDUserPWQuery|DBDUserRealmQuery|DBMGroupFile|DBMType|DBMUserFile|Digest(?:Algorithm|Domain|NonceLifetime|Provider|Qop|ShmemSize)|Form(?:Authoritative|Body|DisableNoStore|FakeBasicAuth|Location|LoginRequiredLocation|LoginSuccessLocation|LogoutLocation|Method|Mimetype|Password|Provider|SitePassphrase|Size|Username)|GroupFile|LDAP(?:AuthorizePrefix|BindAuthoritative|BindDN|BindPassword|CharsetConfig|CompareAsUser|CompareDNOnServer|DereferenceAliases|GroupAttribute|GroupAttributeIsDN|InitialBindAsUser|InitialBindPattern|MaxSubGroupDepth|RemoteUserAttribute|RemoteUserIsDN|SearchAsUser|SubGroupAttribute|SubGroupClass|Url)|Merging|Name|Type|UserFile|nCache(?:Context|Enable|ProvideFor|SOCache|Timeout)|nzFcgiCheckAuthnProvider|nzFcgiDefineProvider|zDBDLoginToReferer|zDBDQuery|zDBDRedirectQuery|zDBMType|zSendForbiddenOnFailure)|BalancerGrowth|BalancerInherit|BalancerMember|BalancerPersist|BrowserMatch|BrowserMatchNoCase|BufferSize|BufferedLogs|CGIDScriptTimeout|CGIMapExtension|Cache(?:DefaultExpire|DetailHeader|DirLength|DirLevels|Disable|Enable|File|Header|IgnoreCacheControl|IgnoreHeaders|IgnoreNoLastMod|IgnoreQueryString|IgnoreURLSessionIdentifiers|KeyBaseURL|LastModifiedFactor|Lock|LockMaxAge|LockPath|MaxExpire|MaxFileSize|MinExpire|MinFileSize|NegotiatedDocs|QuickHandler|ReadSize|ReadTime|Root|Socache(?:MaxSize|MaxTime|MinTime|ReadSize|ReadTime)?|StaleOnError|StoreExpired|StoreNoStore|StorePrivate)|CharsetDefault|CharsetOptions|CharsetSourceEnc|CheckCaseOnly|CheckSpelling|ChrootDir|ContentDigest|CookieDomain|CookieExpires|CookieName|CookieStyle|CookieTracking|CoreDumpDirectory|CustomLog|DBDExptime|DBDInitSQL|DBDKeep|DBDMax|DBDMin|DBDParams|DBDPersist|DBDPrepareSQL|DBDriver|DTracePrivileges|Dav|DavDepthInfinity|DavGenericLockDB|DavLockDB|DavMinTimeout|DefaultIcon|DefaultLanguage|DefaultRuntimeDir|DefaultType|Define|Deflate(?:BufferSize|CompressionLevel|FilterNote|InflateLimitRequestBody|InflateRatio(?:Burst|Limit)|MemLevel|WindowSize)|Deny|DirectoryCheckHandler|DirectoryIndex|DirectoryIndexRedirect|DirectorySlash|DocumentRoot|DumpIOInput|DumpIOOutput|EnableExceptionHook|EnableMMAP|EnableSendfile|Error|ErrorDocument|ErrorLog|ErrorLogFormat|Example|ExpiresActive|ExpiresByType|ExpiresDefault|ExtFilterDefine|ExtFilterOptions|ExtendedStatus|FallbackResource|FileETag|FilterChain|FilterDeclare|FilterProtocol|FilterProvider|FilterTrace|ForceLanguagePriority|ForceType|ForensicLog|GprofDir|GracefulShutdownTimeout|Group|Header|HeaderName|Heartbeat(?:Address|Listen|MaxServers|Storage)|HostnameLookups|ISAPI(?:AppendLogToErrors|AppendLogToQuery|CacheFile|FakeAsync|LogNotSupported|ReadAheadBuffer)|IdentityCheck|IdentityCheckTimeout|ImapBase|ImapDefault|ImapMenu|Include|IncludeOptional|Index(?:HeadInsert|Ignore|IgnoreReset|Options|OrderDefault|StyleSheet)|InputSed|KeepAlive|KeepAliveTimeout|KeptBodySize|LDAP(?:CacheEntries|CacheTTL|ConnectionPoolTTL|ConnectionTimeout|LibraryDebug|OpCacheEntries|OpCacheTTL|ReferralHopLimit|Referrals|Retries|RetryDelay|SharedCacheFile|SharedCacheSize|Timeout|TrustedClientCert|TrustedGlobalCert|TrustedMode|VerifyServerCert)|LanguagePriority|Limit(?:InternalRecursion|Request(?:Body|FieldSize|Fields|Line)|XMLRequestBody)|Listen|ListenBackLog|LoadFile|LoadModule|LogFormat|LogLevel|LogMessage|LuaAuthzProvider|LuaCodeCache|Lua(?:Hook(?:AccessChecker|AuthChecker|CheckUserID|Fixups|InsertFilter|Log|MapToStorage|TranslateName|TypeChecker)|Inherit|InputFilter|MapHandler|OutputFilter|PackageCPath|PackagePath|QuickHandler|Root|Scope)|MMapFile|Max(?:ConnectionsPerChild|KeepAliveRequests|MemFree|RangeOverlaps|RangeReversals|Ranges|RequestWorkers|SpareServers|SpareThreads|Threads)|MergeTrailers|MetaDir|MetaFiles|MetaSuffix|MimeMagicFile|MinSpareServers|MinSpareThreads|ModMimeUsePathInfo|ModemStandard|MultiviewsMatch|Mutex|NWSSLTrustedCerts|NWSSLUpgradeable|NameVirtualHost|NoProxy|Options|Order|OutputSed|PassEnv|PidFile|PrivilegesMode|Protocol|ProtocolEcho|Proxy(?:AddHeaders|BadHeader|Block|Domain|ErrorOverride|ExpressDBMFile|ExpressDBMType|ExpressEnable|FtpDirCharset|FtpEscapeWildcards|FtpListOnWildcard|HTML(?:BufSize|CharsetOut|DocType|Enable|Events|Extended|Fixups|Interp|Links|Meta|StripComments|URLMap)|IOBufferSize|MaxForwards|Pass(?:Inherit|InterpolateEnv|Match|Reverse|ReverseCookieDomain|ReverseCookiePath)?|PreserveHost|ReceiveBufferSize|Remote|RemoteMatch|Requests|SCGIInternalRedirect|SCGISendfile|Set|SourceAddress|Status|Timeout|Via)|RLimitCPU|RLimitMEM|RLimitNPROC|ReadmeName|ReceiveBufferSize|Redirect|RedirectMatch|RedirectPermanent|RedirectTemp|ReflectorHeader|RemoteIP(?:Header|InternalProxy|InternalProxyList|ProxiesHeader|TrustedProxy|TrustedProxyList)|RemoveCharset|RemoveEncoding|RemoveHandler|RemoveInputFilter|RemoveLanguage|RemoveOutputFilter|RemoveType|RequestHeader|RequestReadTimeout|Require|Rewrite(?:Base|Cond|Engine|Map|Options|Rule)|SSIETag|SSIEndTag|SSIErrorMsg|SSILastModified|SSILegacyExprParser|SSIStartTag|SSITimeFormat|SSIUndefinedEcho|SSL(?:CACertificateFile|CACertificatePath|CADNRequestFile|CADNRequestPath|CARevocationCheck|CARevocationFile|CARevocationPath|CertificateChainFile|CertificateFile|CertificateKeyFile|CipherSuite|Compression|CryptoDevice|Engine|FIPS|HonorCipherOrder|InsecureRenegotiation|OCSP(?:DefaultResponder|Enable|OverrideResponder|ResponderTimeout|ResponseMaxAge|ResponseTimeSkew|UseRequestNonce)|OpenSSLConfCmd|Options|PassPhraseDialog|Protocol|Proxy(?:CACertificateFile|CACertificatePath|CARevocation(?:Check|File|Path)|CheckPeer(?:CN|Expire|Name)|CipherSuite|Engine|MachineCertificate(?:ChainFile|File|Path)|Protocol|Verify|VerifyDepth)|RandomSeed|RenegBufferSize|Require|RequireSSL|SRPUnknownUserSeed|SRPVerifierFile|Session(?:Cache|CacheTimeout|TicketKeyFile|Tickets)|Stapling(?:Cache|ErrorCacheTimeout|FakeTryLater|ForceURL|ResponderTimeout|ResponseMaxAge|ResponseTimeSkew|ReturnResponderErrors|StandardCacheTimeout)|StrictSNIVHostCheck|UseStapling|UserName|VerifyClient|VerifyDepth)|Satisfy|ScoreBoardFile|Script(?:Alias|AliasMatch|InterpreterSource|Log|LogBuffer|LogLength|Sock)?|SecureListen|SeeRequestTail|SendBufferSize|Server(?:Admin|Alias|Limit|Name|Path|Root|Signature|Tokens)|Session(?:Cookie(?:Name|Name2|Remove)|Crypto(?:Cipher|Driver|Passphrase|PassphraseFile)|DBD(?:CookieName|CookieName2|CookieRemove|DeleteLabel|InsertLabel|PerUser|SelectLabel|UpdateLabel)|Env|Exclude|Header|Include|MaxAge)?|SetEnv|SetEnvIf|SetEnvIfExpr|SetEnvIfNoCase|SetHandler|SetInputFilter|SetOutputFilter|StartServers|StartThreads|Substitute|Suexec|SuexecUserGroup|ThreadLimit|ThreadStackSize|ThreadsPerChild|TimeOut|TraceEnable|TransferLog|TypesConfig|UnDefine|UndefMacro|UnsetEnv|Use|UseCanonicalName|UseCanonicalPhysicalPort|User|UserDir|VHostCGIMode|VHostCGIPrivs|VHostGroup|VHostPrivs|VHostSecure|VHostUser|Virtual(?:DocumentRoot|ScriptAlias)(?:IP)?|WatchdogInterval|XBitHack|xml2EncAlias|xml2EncDefault|xml2StartParse)\b/im, lookbehind: true, alias: 'property' }, 'directive-block': { pattern: /<\/?\b(?:Auth[nz]ProviderAlias|Directory|DirectoryMatch|Else|ElseIf|Files|FilesMatch|If|IfDefine|IfModule|IfVersion|Limit|LimitExcept|Location|LocationMatch|Macro|Proxy|Require(?:All|Any|None)|VirtualHost)\b.*>/i, inside: { 'directive-block': { pattern: /^<\/?\w+/, inside: { 'punctuation': /^<\/?/ }, alias: 'tag' }, 'directive-block-parameter': { pattern: /.*[^>]/, inside: { 'punctuation': /:/, 'string': { pattern: /("|').*\1/, inside: { 'variable': /[$%]\{?(?:\w\.?[-+:]?)+\}?/ } } }, alias: 'attr-value' }, 'punctuation': />/ }, alias: 'tag' }, 'directive-flags': { pattern: /\[(?:[\w=],?)+\]/, alias: 'keyword' }, 'string': { pattern: /("|').*\1/, inside: { 'variable': /[$%]\{?(?:\w\.?[-+:]?)+\}?/ } }, 'variable': /[$%]\{?(?:\w\.?[-+:]?)+\}?/, 'regex': /\^?.*\$|\^.*\$?/ }; /***/ }), /***/ 1841: /***/ (function() { (function (Prism) { var keywords = /\b(?:abstract|activate|and|any|array|as|asc|autonomous|begin|bigdecimal|blob|boolean|break|bulk|by|byte|case|cast|catch|char|class|collect|commit|const|continue|currency|date|datetime|decimal|default|delete|desc|do|double|else|end|enum|exception|exit|export|extends|final|finally|float|for|from|global|goto|group|having|hint|if|implements|import|in|inner|insert|instanceof|int|integer|interface|into|join|like|limit|list|long|loop|map|merge|new|not|null|nulls|number|object|of|on|or|outer|override|package|parallel|pragma|private|protected|public|retrieve|return|rollback|select|set|short|sObject|sort|static|string|super|switch|synchronized|system|testmethod|then|this|throw|time|transaction|transient|trigger|try|undelete|update|upsert|using|virtual|void|webservice|when|where|while|get(?=\s*[{};])|(?:after|before)(?=\s+[a-z])|(?:inherited|with|without)\s+sharing)\b/i; var className = /\b(?:(?=[a-z_]\w*\s*[<\[])|(?!))[A-Z_]\w*(?:\s*\.\s*[A-Z_]\w*)*\b(?:\s*(?:\[\s*\]|<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>))*/.source .replace(//g, function () { return keywords.source; }); /** @param {string} pattern */ function insertClassName(pattern) { return RegExp(pattern.replace(//g, function () { return className; }), 'i'); } var classNameInside = { 'keyword': keywords, 'punctuation': /[()\[\]{};,:.<>]/ }; Prism.languages.apex = { 'comment': Prism.languages.clike.comment, 'string': Prism.languages.clike.string, 'sql': { pattern: /((?:[=,({:]|\breturn)\s*)\[[^\[\]]*\]/i, lookbehind: true, greedy: true, alias: 'language-sql', inside: Prism.languages.sql }, 'annotation': { pattern: /@\w+\b/, alias: 'punctuation' }, 'class-name': [ { pattern: insertClassName(/(\b(?:class|enum|extends|implements|instanceof|interface|new|trigger\s+\w+\s+on)\s+)/.source), lookbehind: true, inside: classNameInside }, { // cast pattern: insertClassName(/(\(\s*)(?=\s*\)\s*[\w(])/.source), lookbehind: true, inside: classNameInside }, { // variable/parameter declaration and return types pattern: insertClassName(/(?=\s*\w+\s*[;=,(){:])/.source), inside: classNameInside } ], 'trigger': { pattern: /(\btrigger\s+)\w+\b/i, lookbehind: true, alias: 'class-name' }, 'keyword': keywords, 'function': /\b[a-z_]\w*(?=\s*\()/i, 'boolean': /\b(?:false|true)\b/i, 'number': /(?:\B\.\d+|\b\d+(?:\.\d+|L)?)\b/i, 'operator': /[!=](?:==?)?|\?\.?|&&|\|\||--|\+\+|[-+*/^&|]=?|:|<{1,3}=?/, 'punctuation': /[()\[\]{};,.]/ }; })(Prism); /***/ }), /***/ 8444: /***/ (function() { Prism.languages.apl = { 'comment': /(?:⍝|#[! ]).*$/m, 'string': { pattern: /'(?:[^'\r\n]|'')*'/, greedy: true }, 'number': /¯?(?:\d*\.?\b\d+(?:e[+¯]?\d+)?|¯|∞)(?:j¯?(?:(?:\d+(?:\.\d+)?|\.\d+)(?:e[+¯]?\d+)?|¯|∞))?/i, 'statement': /:[A-Z][a-z][A-Za-z]*\b/, 'system-function': { pattern: /⎕[A-Z]+/i, alias: 'function' }, 'constant': /[⍬⌾#⎕⍞]/, 'function': /[-+×÷⌈⌊∣|⍳⍸?*⍟○!⌹<≤=>≥≠≡≢∊⍷∪∩~∨∧⍱⍲⍴,⍪⌽⊖⍉↑↓⊂⊃⊆⊇⌷⍋⍒⊤⊥⍕⍎⊣⊢⍁⍂≈⍯↗¤→]/, 'monadic-operator': { pattern: /[\\\/⌿⍀¨⍨⌶&∥]/, alias: 'operator' }, 'dyadic-operator': { pattern: /[.⍣⍠⍤∘⌸@⌺⍥]/, alias: 'operator' }, 'assignment': { pattern: /←/, alias: 'keyword' }, 'punctuation': /[\[;\]()◇⋄]/, 'dfn': { pattern: /[{}⍺⍵⍶⍹∇⍫:]/, alias: 'builtin' } }; /***/ }), /***/ 8287: /***/ (function() { Prism.languages.applescript = { 'comment': [ // Allow one level of nesting /\(\*(?:\(\*(?:[^*]|\*(?!\)))*\*\)|(?!\(\*)[\s\S])*?\*\)/, /--.+/, /#.+/ ], 'string': /"(?:\\.|[^"\\\r\n])*"/, 'number': /(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e-?\d+)?\b/i, 'operator': [ /[&=≠≤≥*+\-\/÷^]|[<>]=?/, /\b(?:(?:start|begin|end)s? with|(?:(?:does not|doesn't) contain|contains?)|(?:is|isn't|is not) (?:in|contained by)|(?:(?:is|isn't|is not) )?(?:greater|less) than(?: or equal)?(?: to)?|(?:(?:does not|doesn't) come|comes) (?:before|after)|(?:is|isn't|is not) equal(?: to)?|(?:(?:does not|doesn't) equal|equals|equal to|isn't|is not)|(?:a )?(?:ref(?: to)?|reference to)|(?:and|or|div|mod|as|not))\b/ ], 'keyword': /\b(?:about|above|after|against|apart from|around|aside from|at|back|before|beginning|behind|below|beneath|beside|between|but|by|considering|continue|copy|does|eighth|else|end|equal|error|every|exit|false|fifth|first|for|fourth|from|front|get|given|global|if|ignoring|in|instead of|into|is|it|its|last|local|me|middle|my|ninth|of|on|onto|out of|over|prop|property|put|repeat|return|returning|second|set|seventh|since|sixth|some|tell|tenth|that|the|then|third|through|thru|timeout|times|to|transaction|true|try|until|where|while|whose|with|without)\b/, 'class': { pattern: /\b(?:alias|application|boolean|class|constant|date|file|integer|list|number|POSIX file|real|record|reference|RGB color|script|text|centimetres|centimeters|feet|inches|kilometres|kilometers|metres|meters|miles|yards|square feet|square kilometres|square kilometers|square metres|square meters|square miles|square yards|cubic centimetres|cubic centimeters|cubic feet|cubic inches|cubic metres|cubic meters|cubic yards|gallons|litres|liters|quarts|grams|kilograms|ounces|pounds|degrees Celsius|degrees Fahrenheit|degrees Kelvin)\b/, alias: 'builtin' }, 'punctuation': /[{}():,¬«»《》]/ }; /***/ }), /***/ 469: /***/ (function() { Prism.languages.aql = { 'comment': /\/\/.*|\/\*[\s\S]*?\*\//, 'property': { pattern: /([{,]\s*)(?:(?!\d)\w+|(["'´`])(?:(?!\2)[^\\\r\n]|\\.)*\2)(?=\s*:)/, lookbehind: true, greedy: true }, 'string': { pattern: /(["'´`])(?:(?!\1)[^\\\r\n]|\\.)*\1/, greedy: true }, 'variable': /@@?\w+/, 'keyword': [ { pattern: /(\bWITH\s+)COUNT(?=\s+INTO\b)/i, lookbehind: true }, /\b(?:AGGREGATE|ALL|AND|ANY|ASC|COLLECT|DESC|DISTINCT|FILTER|FOR|GRAPH|IN|INBOUND|INSERT|INTO|K_SHORTEST_PATHS|LET|LIKE|LIMIT|NONE|NOT|NULL|OR|OUTBOUND|REMOVE|REPLACE|RETURN|SHORTEST_PATH|SORT|UPDATE|UPSERT|WITH)\b/i, // pseudo keywords get a lookbehind to avoid false positives { pattern: /(^|[^\w.[])(?:KEEP|PRUNE|SEARCH|TO)\b/i, lookbehind: true }, { pattern: /(^|[^\w.[])(?:CURRENT|NEW|OLD)\b/, lookbehind: true }, { pattern: /\bOPTIONS(?=\s*{)/i } ], 'function': /(?!\d)\w+(?=\s*\()/, 'boolean': /(?:true|false)/i, 'range': { pattern: /\.\./, alias: 'operator' }, 'number': /(?:\B\.\d+|\b(?:0|[1-9]\d*)(?:\.\d+)?)(?:e[+-]?\d+)?/i, 'operator': /\*{2,}|[=!]~|[!=<>]=?|&&|\|\||[-+*/%]/, 'punctuation': /::|[?.:,;()[\]{}]/ }; /***/ }), /***/ 4542: /***/ (function() { Prism.languages.arduino = Prism.languages.extend('cpp', { 'constant': /\b(?:DIGITAL_MESSAGE|FIRMATA_STRING|ANALOG_MESSAGE|REPORT_DIGITAL|REPORT_ANALOG|INPUT_PULLUP|SET_PIN_MODE|INTERNAL2V56|SYSTEM_RESET|LED_BUILTIN|INTERNAL1V1|SYSEX_START|INTERNAL|EXTERNAL|DEFAULT|OUTPUT|INPUT|HIGH|LOW)\b/, 'keyword': /\b(?:setup|if|else|while|do|for|return|in|instanceof|default|function|loop|goto|switch|case|new|try|throw|catch|finally|null|break|continue|boolean|bool|void|byte|word|string|String|array|int|long|integer|double)\b/, 'builtin': /\b(?:KeyboardController|MouseController|SoftwareSerial|EthernetServer|EthernetClient|LiquidCrystal|LiquidCrystal_I2C|RobotControl|GSMVoiceCall|EthernetUDP|EsploraTFT|HttpClient|RobotMotor|WiFiClient|GSMScanner|FileSystem|Scheduler|GSMServer|YunClient|YunServer|IPAddress|GSMClient|GSMModem|Keyboard|Ethernet|Console|GSMBand|Esplora|Stepper|Process|WiFiUDP|GSM_SMS|Mailbox|USBHost|Firmata|PImage|Client|Server|GSMPIN|FileIO|Bridge|Serial|EEPROM|Stream|Mouse|Audio|Servo|File|Task|GPRS|WiFi|Wire|TFT|GSM|SPI|SD|runShellCommandAsynchronously|analogWriteResolution|retrieveCallingNumber|printFirmwareVersion|analogReadResolution|sendDigitalPortPair|noListenOnLocalhost|readJoystickButton|setFirmwareVersion|readJoystickSwitch|scrollDisplayRight|getVoiceCallStatus|scrollDisplayLeft|writeMicroseconds|delayMicroseconds|beginTransmission|getSignalStrength|runAsynchronously|getAsynchronously|listenOnLocalhost|getCurrentCarrier|readAccelerometer|messageAvailable|sendDigitalPorts|lineFollowConfig|countryNameWrite|runShellCommand|readStringUntil|rewindDirectory|readTemperature|setClockDivider|readLightSensor|endTransmission|analogReference|detachInterrupt|countryNameRead|attachInterrupt|encryptionType|readBytesUntil|robotNameWrite|readMicrophone|robotNameRead|cityNameWrite|userNameWrite|readJoystickY|readJoystickX|mouseReleased|openNextFile|scanNetworks|noInterrupts|digitalWrite|beginSpeaker|mousePressed|isActionDone|mouseDragged|displayLogos|noAutoscroll|addParameter|remoteNumber|getModifiers|keyboardRead|userNameRead|waitContinue|processInput|parseCommand|printVersion|readNetworks|writeMessage|blinkVersion|cityNameRead|readMessage|setDataMode|parsePacket|isListening|setBitOrder|beginPacket|isDirectory|motorsWrite|drawCompass|digitalRead|clearScreen|serialEvent|rightToLeft|setTextSize|leftToRight|requestFrom|keyReleased|compassRead|analogWrite|interrupts|WiFiServer|disconnect|playMelody|parseFloat|autoscroll|getPINUsed|setPINUsed|setTimeout|sendAnalog|readSlider|analogRead|beginWrite|createChar|motorsStop|keyPressed|tempoWrite|readButton|subnetMask|debugPrint|macAddress|writeGreen|randomSeed|attachGPRS|readString|sendString|remotePort|releaseAll|mouseMoved|background|getXChange|getYChange|answerCall|getResult|voiceCall|endPacket|constrain|getSocket|writeJSON|getButton|available|connected|findUntil|readBytes|exitValue|readGreen|writeBlue|startLoop|isPressed|sendSysex|pauseMode|gatewayIP|setCursor|getOemKey|tuneWrite|noDisplay|loadImage|switchPIN|onRequest|onReceive|changePIN|playFile|noBuffer|parseInt|overflow|checkPIN|knobRead|beginTFT|bitClear|updateIR|bitWrite|position|writeRGB|highByte|writeRed|setSpeed|readBlue|noStroke|remoteIP|transfer|shutdown|hangCall|beginSMS|endWrite|attached|maintain|noCursor|checkReg|checkPUK|shiftOut|isValid|shiftIn|pulseIn|connect|println|localIP|pinMode|getIMEI|display|noBlink|process|getBand|running|beginSD|drawBMP|lowByte|setBand|release|bitRead|prepare|pointTo|readRed|setMode|noFill|remove|listen|stroke|detach|attach|noTone|exists|buffer|height|bitSet|circle|config|cursor|random|IRread|setDNS|endSMS|getKey|micros|millis|begin|print|write|ready|flush|width|isPIN|blink|clear|press|mkdir|rmdir|close|point|yield|image|BSSID|click|delay|read|text|move|peek|beep|rect|line|open|seek|fill|size|turn|stop|home|find|step|tone|sqrt|RSSI|SSID|end|bit|tan|cos|sin|pow|map|abs|max|min|get|run|put)\b/ }); /***/ }), /***/ 7625: /***/ (function() { Prism.languages.arff = { 'comment': /%.*/, 'string': { pattern: /(["'])(?:\\.|(?!\1)[^\\\r\n])*\1/, greedy: true }, 'keyword': /@(?:attribute|data|end|relation)\b/i, 'number': /\b\d+(?:\.\d+)?\b/, 'punctuation': /[{},]/ }; /***/ }), /***/ 3190: /***/ (function() { (function (Prism) { var attributes = { pattern: /(^[ \t]*)\[(?!\[)(?:(["'$`])(?:(?!\2)[^\\]|\\.)*\2|\[(?:[^\[\]\\]|\\.)*\]|[^\[\]\\"'$`]|\\.)*\]/m, lookbehind: true, inside: { 'quoted': { pattern: /([$`])(?:(?!\1)[^\\]|\\.)*\1/, inside: { 'punctuation': /^[$`]|[$`]$/ } }, 'interpreted': { pattern: /'(?:[^'\\]|\\.)*'/, inside: { 'punctuation': /^'|'$/ // See rest below } }, 'string': /"(?:[^"\\]|\\.)*"/, 'variable': /\w+(?==)/, 'punctuation': /^\[|\]$|,/, 'operator': /=/, // The negative look-ahead prevents blank matches 'attr-value': /(?!^\s+$).+/ } }; var asciidoc = Prism.languages.asciidoc = { 'comment-block': { pattern: /^(\/{4,})(?:\r?\n|\r)(?:[\s\S]*(?:\r?\n|\r))??\1/m, alias: 'comment' }, 'table': { pattern: /^\|={3,}(?:(?:\r?\n|\r(?!\n)).*)*?(?:\r?\n|\r)\|={3,}$/m, inside: { 'specifiers': { pattern: /(?!\|)(?:(?:(?:\d+(?:\.\d+)?|\.\d+)[+*])?(?:[<^>](?:\.[<^>])?|\.[<^>])?[a-z]*)(?=\|)/, alias: 'attr-value' }, 'punctuation': { pattern: /(^|[^\\])[|!]=*/, lookbehind: true } // See rest below } }, 'passthrough-block': { pattern: /^(\+{4,})(?:\r?\n|\r)(?:[\s\S]*(?:\r?\n|\r))??\1$/m, inside: { 'punctuation': /^\++|\++$/ // See rest below } }, // Literal blocks and listing blocks 'literal-block': { pattern: /^(-{4,}|\.{4,})(?:\r?\n|\r)(?:[\s\S]*(?:\r?\n|\r))??\1$/m, inside: { 'punctuation': /^(?:-+|\.+)|(?:-+|\.+)$/ // See rest below } }, // Sidebar blocks, quote blocks, example blocks and open blocks 'other-block': { pattern: /^(--|\*{4,}|_{4,}|={4,})(?:\r?\n|\r)(?:[\s\S]*(?:\r?\n|\r))??\1$/m, inside: { 'punctuation': /^(?:-+|\*+|_+|=+)|(?:-+|\*+|_+|=+)$/ // See rest below } }, // list-punctuation and list-label must appear before indented-block 'list-punctuation': { pattern: /(^[ \t]*)(?:-|\*{1,5}|\.{1,5}|(?:[a-z]|\d+)\.|[xvi]+\))(?= )/im, lookbehind: true, alias: 'punctuation' }, 'list-label': { pattern: /(^[ \t]*)[a-z\d].+(?::{2,4}|;;)(?=\s)/im, lookbehind: true, alias: 'symbol' }, 'indented-block': { pattern: /((\r?\n|\r)\2)([ \t]+)\S.*(?:(?:\r?\n|\r)\3.+)*(?=\2{2}|$)/, lookbehind: true }, 'comment': /^\/\/.*/m, 'title': { pattern: /^.+(?:\r?\n|\r)(?:={3,}|-{3,}|~{3,}|\^{3,}|\+{3,})$|^={1,5} .+|^\.(?![\s.]).*/m, alias: 'important', inside: { 'punctuation': /^(?:\.|=+)|(?:=+|-+|~+|\^+|\++)$/ // See rest below } }, 'attribute-entry': { pattern: /^:[^:\r\n]+:(?: .*?(?: \+(?:\r?\n|\r).*?)*)?$/m, alias: 'tag' }, 'attributes': attributes, 'hr': { pattern: /^'{3,}$/m, alias: 'punctuation' }, 'page-break': { pattern: /^<{3,}$/m, alias: 'punctuation' }, 'admonition': { pattern: /^(?:TIP|NOTE|IMPORTANT|WARNING|CAUTION):/m, alias: 'keyword' }, 'callout': [ { pattern: /(^[ \t]*)/m, lookbehind: true, alias: 'symbol' }, { pattern: /<\d+>/, alias: 'symbol' } ], 'macro': { pattern: /\b[a-z\d][a-z\d-]*::?(?:[^\s\[\]]*\[(?:[^\]\\"']|(["'])(?:(?!\1)[^\\]|\\.)*\1|\\.)*\])/, inside: { 'function': /^[a-z\d-]+(?=:)/, 'punctuation': /^::?/, 'attributes': { pattern: /(?:\[(?:[^\]\\"]|(["'])(?:(?!\1)[^\\]|\\.)*\1|\\.)*\])/, inside: attributes.inside } } }, 'inline': { /* The initial look-behind prevents the highlighting of escaped quoted text. Quoted text can be multi-line but cannot span an empty line. All quoted text can have attributes before [foobar, 'foobar', baz="bar"]. First, we handle the constrained quotes. Those must be bounded by non-word chars and cannot have spaces between the delimiter and the first char. They are, in order: _emphasis_, ``double quotes'', `single quotes', `monospace`, 'emphasis', *strong*, +monospace+ and #unquoted# Then we handle the unconstrained quotes. Those do not have the restrictions of the constrained quotes. They are, in order: __emphasis__, **strong**, ++monospace++, +++passthrough+++, ##unquoted##, $$passthrough$$, ~subscript~, ^superscript^, {attribute-reference}, [[anchor]], [[[bibliography anchor]]], <>, (((indexes))) and ((indexes)) */ pattern: /(^|[^\\])(?:(?:\B\[(?:[^\]\\"]|(["'])(?:(?!\2)[^\\]|\\.)*\2|\\.)*\])?(?:\b_(?!\s)(?: _|[^_\\\r\n]|\\.)+(?:(?:\r?\n|\r)(?: _|[^_\\\r\n]|\\.)+)*_\b|\B``(?!\s).+?(?:(?:\r?\n|\r).+?)*''\B|\B`(?!\s)(?:[^`'\s]|\s+\S)+['`]\B|\B(['*+#])(?!\s)(?: \3|(?!\3)[^\\\r\n]|\\.)+(?:(?:\r?\n|\r)(?: \3|(?!\3)[^\\\r\n]|\\.)+)*\3\B)|(?:\[(?:[^\]\\"]|(["'])(?:(?!\4)[^\\]|\\.)*\4|\\.)*\])?(?:(__|\*\*|\+\+\+?|##|\$\$|[~^]).+?(?:(?:\r?\n|\r).+?)*\5|\{[^}\r\n]+\}|\[\[\[?.+?(?:(?:\r?\n|\r).+?)*\]?\]\]|<<.+?(?:(?:\r?\n|\r).+?)*>>|\(\(\(?.+?(?:(?:\r?\n|\r).+?)*\)?\)\)))/m, lookbehind: true, inside: { 'attributes': attributes, 'url': { pattern: /^(?:\[\[\[?.+?\]?\]\]|<<.+?>>)$/, inside: { 'punctuation': /^(?:\[\[\[?|<<)|(?:\]\]\]?|>>)$/ } }, 'attribute-ref': { pattern: /^\{.+\}$/, inside: { 'variable': { pattern: /(^\{)[a-z\d,+_-]+/, lookbehind: true }, 'operator': /^[=?!#%@$]|!(?=[:}])/, 'punctuation': /^\{|\}$|::?/ } }, 'italic': { pattern: /^(['_])[\s\S]+\1$/, inside: { 'punctuation': /^(?:''?|__?)|(?:''?|__?)$/ } }, 'bold': { pattern: /^\*[\s\S]+\*$/, inside: { punctuation: /^\*\*?|\*\*?$/ } }, 'punctuation': /^(?:``?|\+{1,3}|##?|\$\$|[~^]|\(\(\(?)|(?:''?|\+{1,3}|##?|\$\$|[~^`]|\)?\)\))$/ } }, 'replacement': { pattern: /\((?:C|TM|R)\)/, alias: 'builtin' }, 'entity': /&#?[\da-z]{1,8};/i, 'line-continuation': { pattern: /(^| )\+$/m, lookbehind: true, alias: 'punctuation' } }; // Allow some nesting. There is no recursion though, so cloning should not be needed. function copyFromAsciiDoc(keys) { keys = keys.split(' '); var o = {}; for (var i = 0, l = keys.length; i < l; i++) { o[keys[i]] = asciidoc[keys[i]]; } return o; } attributes.inside['interpreted'].inside.rest = copyFromAsciiDoc('macro inline replacement entity'); asciidoc['passthrough-block'].inside.rest = copyFromAsciiDoc('macro'); asciidoc['literal-block'].inside.rest = copyFromAsciiDoc('callout'); asciidoc['table'].inside.rest = copyFromAsciiDoc('comment-block passthrough-block literal-block other-block list-punctuation indented-block comment title attribute-entry attributes hr page-break admonition list-label callout macro inline replacement entity line-continuation'); asciidoc['other-block'].inside.rest = copyFromAsciiDoc('table list-punctuation indented-block comment attribute-entry attributes hr page-break admonition list-label macro inline replacement entity line-continuation'); asciidoc['title'].inside.rest = copyFromAsciiDoc('macro inline replacement entity'); // Plugin to make entity title show the real entity, idea by Roman Komarov Prism.hooks.add('wrap', function (env) { if (env.type === 'entity') { env.attributes['title'] = env.content.replace(/&/, '&'); } }); Prism.languages.adoc = Prism.languages.asciidoc; }(Prism)); /***/ }), /***/ 9594: /***/ (function() { Prism.languages.asm6502 = { 'comment': /;.*/, 'directive': { pattern: /\.\w+(?= )/, alias: 'keyword' }, 'string': /(["'`])(?:\\.|(?!\1)[^\\\r\n])*\1/, 'opcode': { pattern: /\b(?:adc|and|asl|bcc|bcs|beq|bit|bmi|bne|bpl|brk|bvc|bvs|clc|cld|cli|clv|cmp|cpx|cpy|dec|dex|dey|eor|inc|inx|iny|jmp|jsr|lda|ldx|ldy|lsr|nop|ora|pha|php|pla|plp|rol|ror|rti|rts|sbc|sec|sed|sei|sta|stx|sty|tax|tay|tsx|txa|txs|tya|ADC|AND|ASL|BCC|BCS|BEQ|BIT|BMI|BNE|BPL|BRK|BVC|BVS|CLC|CLD|CLI|CLV|CMP|CPX|CPY|DEC|DEX|DEY|EOR|INC|INX|INY|JMP|JSR|LDA|LDX|LDY|LSR|NOP|ORA|PHA|PHP|PLA|PLP|ROL|ROR|RTI|RTS|SBC|SEC|SED|SEI|STA|STX|STY|TAX|TAY|TSX|TXA|TXS|TYA)\b/, alias: 'property' }, 'hexnumber': { pattern: /#?\$[\da-f]{2,4}\b/i, alias: 'string' }, 'binarynumber': { pattern: /#?%[01]+\b/, alias: 'string' }, 'decimalnumber': { pattern: /#?\b\d+\b/, alias: 'string' }, 'register': { pattern: /\b[xya]\b/i, alias: 'variable' } }; /***/ }), /***/ 1218: /***/ (function() { Prism.languages.aspnet = Prism.languages.extend('markup', { 'page-directive': { pattern: /<%\s*@.*%>/i, alias: 'tag', inside: { 'page-directive': { pattern: /<%\s*@\s*(?:Assembly|Control|Implements|Import|Master(?:Type)?|OutputCache|Page|PreviousPageType|Reference|Register)?|%>/i, alias: 'tag' }, rest: Prism.languages.markup.tag.inside } }, 'directive': { pattern: /<%.*%>/i, alias: 'tag', inside: { 'directive': { pattern: /<%\s*?[$=%#:]{0,2}|%>/i, alias: 'tag' }, rest: Prism.languages.csharp } } }); // Regexp copied from prism-markup, with a negative look-ahead added Prism.languages.aspnet.tag.pattern = /<(?!%)\/?[^\s>\/]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+))?)*\s*\/?>/i; // match directives of attribute value foo="<% Bar %>" Prism.languages.insertBefore('inside', 'punctuation', { 'directive': Prism.languages.aspnet['directive'] }, Prism.languages.aspnet.tag.inside["attr-value"]); Prism.languages.insertBefore('aspnet', 'comment', { 'asp-comment': { pattern: /<%--[\s\S]*?--%>/, alias: ['asp', 'comment'] } }); // script runat="server" contains csharp, not javascript Prism.languages.insertBefore('aspnet', Prism.languages.javascript ? 'script' : 'tag', { 'asp-script': { pattern: /(]*>)[\s\S]*?(?=<\/script>)/i, lookbehind: true, alias: ['asp', 'script'], inside: Prism.languages.csharp || {} } }); /***/ }), /***/ 193: /***/ (function() { // NOTES - follows first-first highlight method, block is locked after highlight, different from SyntaxHl Prism.languages.autohotkey = { 'comment': [ { pattern: /(^|\s);.*/, lookbehind: true }, { pattern: /(^\s*)\/\*(?:[\r\n](?![ \t]*\*\/)|[^\r\n])*(?:[\r\n][ \t]*\*\/)?/m, lookbehind: true, greedy: true } ], 'string': /"(?:[^"\n\r]|"")*"/m, 'tag': /^[ \t]*[^\s:]+?(?=:(?:[^:]|$))/m, //labels 'variable': /%\w+%/, 'number': /\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/, 'operator': /\?|\/\/?=?|:=|\|[=|]?|&[=&]?|\+[=+]?|-[=-]?|\*[=*]?|<(?:<=?|>|=)?|>>?=?|[.^!=~]=?|\b(?:AND|NOT|OR)\b/, 'boolean': /\b(?:true|false)\b/, 'selector': /\b(?:AutoTrim|BlockInput|Break|Click|ClipWait|Continue|Control|ControlClick|ControlFocus|ControlGet|ControlGetFocus|ControlGetPos|ControlGetText|ControlMove|ControlSend|ControlSendRaw|ControlSetText|CoordMode|Critical|DetectHiddenText|DetectHiddenWindows|Drive|DriveGet|DriveSpaceFree|EnvAdd|EnvDiv|EnvGet|EnvMult|EnvSet|EnvSub|EnvUpdate|Exit|ExitApp|FileAppend|FileCopy|FileCopyDir|FileCreateDir|FileCreateShortcut|FileDelete|FileEncoding|FileGetAttrib|FileGetShortcut|FileGetSize|FileGetTime|FileGetVersion|FileInstall|FileMove|FileMoveDir|FileRead|FileReadLine|FileRecycle|FileRecycleEmpty|FileRemoveDir|FileSelectFile|FileSelectFolder|FileSetAttrib|FileSetTime|FormatTime|GetKeyState|Gosub|Goto|GroupActivate|GroupAdd|GroupClose|GroupDeactivate|Gui|GuiControl|GuiControlGet|Hotkey|ImageSearch|IniDelete|IniRead|IniWrite|Input|InputBox|KeyWait|ListHotkeys|ListLines|ListVars|Loop|Menu|MouseClick|MouseClickDrag|MouseGetPos|MouseMove|MsgBox|OnExit|OutputDebug|Pause|PixelGetColor|PixelSearch|PostMessage|Process|Progress|Random|RegDelete|RegRead|RegWrite|Reload|Repeat|Return|Run|RunAs|RunWait|Send|SendEvent|SendInput|SendMessage|SendMode|SendPlay|SendRaw|SetBatchLines|SetCapslockState|SetControlDelay|SetDefaultMouseSpeed|SetEnv|SetFormat|SetKeyDelay|SetMouseDelay|SetNumlockState|SetRegView|SetScrollLockState|SetStoreCapslockMode|SetTimer|SetTitleMatchMode|SetWinDelay|SetWorkingDir|Shutdown|Sleep|Sort|SoundBeep|SoundGet|SoundGetWaveVolume|SoundPlay|SoundSet|SoundSetWaveVolume|SplashImage|SplashTextOff|SplashTextOn|SplitPath|StatusBarGetText|StatusBarWait|StringCaseSense|StringGetPos|StringLeft|StringLen|StringLower|StringMid|StringReplace|StringRight|StringSplit|StringTrimLeft|StringTrimRight|StringUpper|Suspend|SysGet|Thread|ToolTip|Transform|TrayTip|URLDownloadToFile|WinActivate|WinActivateBottom|WinClose|WinGet|WinGetActiveStats|WinGetActiveTitle|WinGetClass|WinGetPos|WinGetText|WinGetTitle|WinHide|WinKill|WinMaximize|WinMenuSelectItem|WinMinimize|WinMinimizeAll|WinMinimizeAllUndo|WinMove|WinRestore|WinSet|WinSetTitle|WinShow|WinWait|WinWaitActive|WinWaitClose|WinWaitNotActive)\b/i, 'constant': /\b(?:a_ahkpath|a_ahkversion|a_appdata|a_appdatacommon|a_autotrim|a_batchlines|a_caretx|a_carety|a_computername|a_controldelay|a_cursor|a_dd|a_ddd|a_dddd|a_defaultmousespeed|a_desktop|a_desktopcommon|a_detecthiddentext|a_detecthiddenwindows|a_endchar|a_eventinfo|a_exitreason|a_fileencoding|a_formatfloat|a_formatinteger|a_gui|a_guievent|a_guicontrol|a_guicontrolevent|a_guiheight|a_guiwidth|a_guix|a_guiy|a_hour|a_iconfile|a_iconhidden|a_iconnumber|a_icontip|a_index|a_ipaddress1|a_ipaddress2|a_ipaddress3|a_ipaddress4|a_is64bitos|a_isadmin|a_iscompiled|a_iscritical|a_ispaused|a_issuspended|a_isunicode|a_keydelay|a_language|a_lasterror|a_linefile|a_linenumber|a_loopfield|a_loopfileattrib|a_loopfiledir|a_loopfileext|a_loopfilefullpath|a_loopfilelongpath|a_loopfilename|a_loopfileshortname|a_loopfileshortpath|a_loopfilesize|a_loopfilesizekb|a_loopfilesizemb|a_loopfiletimeaccessed|a_loopfiletimecreated|a_loopfiletimemodified|a_loopreadline|a_loopregkey|a_loopregname|a_loopregsubkey|a_loopregtimemodified|a_loopregtype|a_mday|a_min|a_mm|a_mmm|a_mmmm|a_mon|a_mousedelay|a_msec|a_mydocuments|a_now|a_nowutc|a_numbatchlines|a_ostype|a_osversion|a_priorhotkey|a_priorkey|programfiles|a_programfiles|a_programs|a_programscommon|a_ptrsize|a_regview|a_screendpi|a_screenheight|a_screenwidth|a_scriptdir|a_scriptfullpath|a_scripthwnd|a_scriptname|a_sec|a_space|a_startmenu|a_startmenucommon|a_startup|a_startupcommon|a_stringcasesense|a_tab|a_temp|a_thisfunc|a_thishotkey|a_thislabel|a_thismenu|a_thismenuitem|a_thismenuitempos|a_tickcount|a_timeidle|a_timeidlephysical|a_timesincepriorhotkey|a_timesincethishotkey|a_titlematchmode|a_titlematchmodespeed|a_username|a_wday|a_windelay|a_windir|a_workingdir|a_yday|a_year|a_yweek|a_yyyy|clipboard|clipboardall|comspec|errorlevel)\b/i, 'builtin': /\b(?:abs|acos|asc|asin|atan|ceil|chr|class|comobjactive|comobjarray|comobjconnect|comobjcreate|comobjerror|comobjflags|comobjget|comobjquery|comobjtype|comobjvalue|cos|dllcall|exp|fileexist|Fileopen|floor|format|il_add|il_create|il_destroy|instr|substr|isfunc|islabel|IsObject|ln|log|lv_add|lv_delete|lv_deletecol|lv_getcount|lv_getnext|lv_gettext|lv_insert|lv_insertcol|lv_modify|lv_modifycol|lv_setimagelist|ltrim|rtrim|mod|onmessage|numget|numput|registercallback|regexmatch|regexreplace|round|sin|tan|sqrt|strlen|strreplace|sb_seticon|sb_setparts|sb_settext|strsplit|tv_add|tv_delete|tv_getchild|tv_getcount|tv_getnext|tv_get|tv_getparent|tv_getprev|tv_getselection|tv_gettext|tv_modify|varsetcapacity|winactive|winexist|__New|__Call|__Get|__Set)\b/i, 'symbol': /\b(?:alt|altdown|altup|appskey|backspace|browser_back|browser_favorites|browser_forward|browser_home|browser_refresh|browser_search|browser_stop|bs|capslock|ctrl|ctrlbreak|ctrldown|ctrlup|del|delete|down|end|enter|esc|escape|f1|f10|f11|f12|f13|f14|f15|f16|f17|f18|f19|f2|f20|f21|f22|f23|f24|f3|f4|f5|f6|f7|f8|f9|home|ins|insert|joy1|joy10|joy11|joy12|joy13|joy14|joy15|joy16|joy17|joy18|joy19|joy2|joy20|joy21|joy22|joy23|joy24|joy25|joy26|joy27|joy28|joy29|joy3|joy30|joy31|joy32|joy4|joy5|joy6|joy7|joy8|joy9|joyaxes|joybuttons|joyinfo|joyname|joypov|joyr|joyu|joyv|joyx|joyy|joyz|lalt|launch_app1|launch_app2|launch_mail|launch_media|lbutton|lcontrol|lctrl|left|lshift|lwin|lwindown|lwinup|mbutton|media_next|media_play_pause|media_prev|media_stop|numlock|numpad0|numpad1|numpad2|numpad3|numpad4|numpad5|numpad6|numpad7|numpad8|numpad9|numpadadd|numpadclear|numpaddel|numpaddiv|numpaddot|numpaddown|numpadend|numpadenter|numpadhome|numpadins|numpadleft|numpadmult|numpadpgdn|numpadpgup|numpadright|numpadsub|numpadup|pgdn|pgup|printscreen|ralt|rbutton|rcontrol|rctrl|right|rshift|rwin|rwindown|rwinup|scrolllock|shift|shiftdown|shiftup|space|tab|up|volume_down|volume_mute|volume_up|wheeldown|wheelleft|wheelright|wheelup|xbutton1|xbutton2)\b/i, 'important': /#\b(?:AllowSameLineComments|ClipboardTimeout|CommentFlag|DerefChar|ErrorStdOut|EscapeChar|HotkeyInterval|HotkeyModifierTimeout|Hotstring|If|IfTimeout|IfWinActive|IfWinExist|IfWinNotActive|IfWinNotExist|Include|IncludeAgain|InputLevel|InstallKeybdHook|InstallMouseHook|KeyHistory|MaxHotkeysPerInterval|MaxMem|MaxThreads|MaxThreadsBuffer|MaxThreadsPerHotkey|MenuMaskKey|NoEnv|NoTrayIcon|Persistent|SingleInstance|UseHook|Warn|WinActivateForce)\b/i, 'keyword': /\b(?:Abort|AboveNormal|Add|ahk_class|ahk_exe|ahk_group|ahk_id|ahk_pid|All|Alnum|Alpha|AltSubmit|AltTab|AltTabAndMenu|AltTabMenu|AltTabMenuDismiss|AlwaysOnTop|AutoSize|Background|BackgroundTrans|BelowNormal|between|BitAnd|BitNot|BitOr|BitShiftLeft|BitShiftRight|BitXOr|Bold|Border|Button|ByRef|Checkbox|Checked|CheckedGray|Choose|ChooseString|Close|Color|ComboBox|Contains|ControlList|Count|Date|DateTime|Days|DDL|Default|DeleteAll|Delimiter|Deref|Destroy|Digit|Disable|Disabled|DropDownList|Edit|Eject|Else|Enable|Enabled|Error|Exist|Expand|ExStyle|FileSystem|First|Flash|Float|FloatFast|Focus|Font|for|global|Grid|Group|GroupBox|GuiClose|GuiContextMenu|GuiDropFiles|GuiEscape|GuiSize|Hdr|Hidden|Hide|High|HKCC|HKCR|HKCU|HKEY_CLASSES_ROOT|HKEY_CURRENT_CONFIG|HKEY_CURRENT_USER|HKEY_LOCAL_MACHINE|HKEY_USERS|HKLM|HKU|Hours|HScroll|Icon|IconSmall|ID|IDLast|If|IfEqual|IfExist|IfGreater|IfGreaterOrEqual|IfInString|IfLess|IfLessOrEqual|IfMsgBox|IfNotEqual|IfNotExist|IfNotInString|IfWinActive|IfWinExist|IfWinNotActive|IfWinNotExist|Ignore|ImageList|in|Integer|IntegerFast|Interrupt|is|italic|Join|Label|LastFound|LastFoundExist|Limit|Lines|List|ListBox|ListView|local|Lock|Logoff|Low|Lower|Lowercase|MainWindow|Margin|Maximize|MaximizeBox|MaxSize|Minimize|MinimizeBox|MinMax|MinSize|Minutes|MonthCal|Mouse|Move|Multi|NA|No|NoActivate|NoDefault|NoHide|NoIcon|NoMainWindow|norm|Normal|NoSort|NoSortHdr|NoStandard|Not|NoTab|NoTimers|Number|Off|Ok|On|OwnDialogs|Owner|Parse|Password|Picture|Pixel|Pos|Pow|Priority|ProcessName|Radio|Range|Read|ReadOnly|Realtime|Redraw|REG_BINARY|REG_DWORD|REG_EXPAND_SZ|REG_MULTI_SZ|REG_SZ|Region|Relative|Rename|Report|Resize|Restore|Retry|RGB|Screen|Seconds|Section|Serial|SetLabel|ShiftAltTab|Show|Single|Slider|SortDesc|Standard|static|Status|StatusBar|StatusCD|strike|Style|Submit|SysMenu|Tab2|TabStop|Text|Theme|Tile|ToggleCheck|ToggleEnable|ToolWindow|Top|Topmost|TransColor|Transparent|Tray|TreeView|TryAgain|Throw|Try|Catch|Finally|Type|UnCheck|underline|Unicode|Unlock|Until|UpDown|Upper|Uppercase|UseErrorLevel|Vis|VisFirst|Visible|VScroll|Wait|WaitClose|WantCtrlA|WantF2|WantReturn|While|Wrap|Xdigit|xm|xp|xs|Yes|ym|yp|ys)\b/i, 'function': /[^(); \t,\n+*\-=?>:\\\/<&%\[\]]+?(?=\()/m, 'punctuation': /[{}[\]():,]/ }; /***/ }), /***/ 2146: /***/ (function() { Prism.languages.autoit = { "comment": [ /;.*/, { // The multi-line comments delimiters can actually be commented out with ";" pattern: /(^\s*)#(?:comments-start|cs)[\s\S]*?^[ \t]*#(?:comments-end|ce)/m, lookbehind: true } ], "url": { pattern: /(^\s*#include\s+)(?:<[^\r\n>]+>|"[^\r\n"]+")/m, lookbehind: true }, "string": { pattern: /(["'])(?:\1\1|(?!\1)[^\r\n])*\1/, greedy: true, inside: { "variable": /([%$@])\w+\1/ } }, "directive": { pattern: /(^\s*)#\w+/m, lookbehind: true, alias: 'keyword' }, "function": /\b\w+(?=\()/, // Variables and macros "variable": /[$@]\w+/, "keyword": /\b(?:Case|Const|Continue(?:Case|Loop)|Default|Dim|Do|Else(?:If)?|End(?:Func|If|Select|Switch|With)|Enum|Exit(?:Loop)?|For|Func|Global|If|In|Local|Next|Null|ReDim|Select|Static|Step|Switch|Then|To|Until|Volatile|WEnd|While|With)\b/i, "number": /\b(?:0x[\da-f]+|\d+(?:\.\d+)?(?:e[+-]?\d+)?)\b/i, "boolean": /\b(?:True|False)\b/i, "operator": /<[=>]?|[-+*\/=&>]=?|[?^]|\b(?:And|Or|Not)\b/i, "punctuation": /[\[\]().,:]/ }; /***/ }), /***/ 8650: /***/ (function() { (function(Prism) { // $ set | grep '^[A-Z][^[:space:]]*=' | cut -d= -f1 | tr '\n' '|' // + LC_ALL, RANDOM, REPLY, SECONDS. // + make sure PS1..4 are here as they are not always set, // - some useless things. var envVars = '\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b'; var commandAfterHeredoc = { pattern: /(^(["']?)\w+\2)[ \t]+\S.*/, lookbehind: true, alias: 'punctuation', // this looks reasonably well in all themes inside: null // see below }; var insideString = { 'bash': commandAfterHeredoc, 'environment': { pattern: RegExp("\\$" + envVars), alias: 'constant' }, 'variable': [ // [0]: Arithmetic Environment { pattern: /\$?\(\([\s\S]+?\)\)/, greedy: true, inside: { // If there is a $ sign at the beginning highlight $(( and )) as variable 'variable': [ { pattern: /(^\$\(\([\s\S]+)\)\)/, lookbehind: true }, /^\$\(\(/ ], 'number': /\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/, // Operators according to https://www.gnu.org/software/bash/manual/bashref.html#Shell-Arithmetic 'operator': /--?|-=|\+\+?|\+=|!=?|~|\*\*?|\*=|\/=?|%=?|<<=?|>>=?|<=?|>=?|==?|&&?|&=|\^=?|\|\|?|\|=|\?|:/, // If there is no $ sign at the beginning highlight (( and )) as punctuation 'punctuation': /\(\(?|\)\)?|,|;/ } }, // [1]: Command Substitution { pattern: /\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/, greedy: true, inside: { 'variable': /^\$\(|^`|\)$|`$/ } }, // [2]: Brace expansion { pattern: /\$\{[^}]+\}/, greedy: true, inside: { 'operator': /:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/, 'punctuation': /[\[\]]/, 'environment': { pattern: RegExp("(\\{)" + envVars), lookbehind: true, alias: 'constant' } } }, /\$(?:\w+|[#?*!@$])/ ], // Escape sequences from echo and printf's manuals, and escaped quotes. 'entity': /\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|x[0-9a-fA-F]{1,2}|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8})/ }; Prism.languages.bash = { 'shebang': { pattern: /^#!\s*\/.*/, alias: 'important' }, 'comment': { pattern: /(^|[^"{\\$])#.*/, lookbehind: true }, 'function-name': [ // a) function foo { // b) foo() { // c) function foo() { // but not “foo {” { // a) and c) pattern: /(\bfunction\s+)\w+(?=(?:\s*\(?:\s*\))?\s*\{)/, lookbehind: true, alias: 'function' }, { // b) pattern: /\b\w+(?=\s*\(\s*\)\s*\{)/, alias: 'function' } ], // Highlight variable names as variables in for and select beginnings. 'for-or-select': { pattern: /(\b(?:for|select)\s+)\w+(?=\s+in\s)/, alias: 'variable', lookbehind: true }, // Highlight variable names as variables in the left-hand part // of assignments (“=” and “+=”). 'assign-left': { pattern: /(^|[\s;|&]|[<>]\()\w+(?=\+?=)/, inside: { 'environment': { pattern: RegExp("(^|[\\s;|&]|[<>]\\()" + envVars), lookbehind: true, alias: 'constant' } }, alias: 'variable', lookbehind: true }, 'string': [ // Support for Here-documents https://en.wikipedia.org/wiki/Here_document { pattern: /((?:^|[^<])<<-?\s*)(\w+?)\s[\s\S]*?(?:\r?\n|\r)\2/, lookbehind: true, greedy: true, inside: insideString }, // Here-document with quotes around the tag // → No expansion (so no “inside”). { pattern: /((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/, lookbehind: true, greedy: true, inside: { 'bash': commandAfterHeredoc } }, // “Normal” string { pattern: /(^|[^\\](?:\\\\)*)(["'])(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|(?!\2)[^\\`$])*\2/, lookbehind: true, greedy: true, inside: insideString } ], 'environment': { pattern: RegExp("\\$?" + envVars), alias: 'constant' }, 'variable': insideString.variable, 'function': { pattern: /(^|[\s;|&]|[<>]\()(?:add|apropos|apt|aptitude|apt-cache|apt-get|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/, lookbehind: true }, 'keyword': { pattern: /(^|[\s;|&]|[<>]\()(?:if|then|else|elif|fi|for|while|in|case|esac|function|select|do|done|until)(?=$|[)\s;|&])/, lookbehind: true }, // https://www.gnu.org/software/bash/manual/html_node/Shell-Builtin-Commands.html 'builtin': { pattern: /(^|[\s;|&]|[<>]\()(?:\.|:|break|cd|continue|eval|exec|exit|export|getopts|hash|pwd|readonly|return|shift|test|times|trap|umask|unset|alias|bind|builtin|caller|command|declare|echo|enable|help|let|local|logout|mapfile|printf|read|readarray|source|type|typeset|ulimit|unalias|set|shopt)(?=$|[)\s;|&])/, lookbehind: true, // Alias added to make those easier to distinguish from strings. alias: 'class-name' }, 'boolean': { pattern: /(^|[\s;|&]|[<>]\()(?:true|false)(?=$|[)\s;|&])/, lookbehind: true }, 'file-descriptor': { pattern: /\B&\d\b/, alias: 'important' }, 'operator': { // Lots of redirections here, but not just that. pattern: /\d?<>|>\||\+=|==?|!=?|=~|<<[<-]?|[&\d]?>>|\d?[<>]&?|&[>&]?|\|[&|]?|<=?|>=?/, inside: { 'file-descriptor': { pattern: /^\d/, alias: 'important' } } }, 'punctuation': /\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/, 'number': { pattern: /(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/, lookbehind: true } }; commandAfterHeredoc.inside = Prism.languages.bash; /* Patterns in command substitution. */ var toBeCopied = [ 'comment', 'function-name', 'for-or-select', 'assign-left', 'string', 'environment', 'function', 'keyword', 'builtin', 'boolean', 'file-descriptor', 'operator', 'punctuation', 'number' ]; var inside = insideString.variable[1].inside; for(var i = 0; i < toBeCopied.length; i++) { inside[toBeCopied[i]] = Prism.languages.bash[toBeCopied[i]]; } Prism.languages.shell = Prism.languages.bash; })(Prism); /***/ }), /***/ 3855: /***/ (function() { Prism.languages.basic = { 'comment': { pattern: /(?:!|REM\b).+/i, inside: { 'keyword': /^REM/i } }, 'string': { pattern: /"(?:""|[!#$%&'()*,\/:;<=>?^_ +\-.A-Z\d])*"/i, greedy: true }, 'number': /(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:E[+-]?\d+)?/i, 'keyword': /\b(?:AS|BEEP|BLOAD|BSAVE|CALL(?: ABSOLUTE)?|CASE|CHAIN|CHDIR|CLEAR|CLOSE|CLS|COM|COMMON|CONST|DATA|DECLARE|DEF(?: FN| SEG|DBL|INT|LNG|SNG|STR)|DIM|DO|DOUBLE|ELSE|ELSEIF|END|ENVIRON|ERASE|ERROR|EXIT|FIELD|FILES|FOR|FUNCTION|GET|GOSUB|GOTO|IF|INPUT|INTEGER|IOCTL|KEY|KILL|LINE INPUT|LOCATE|LOCK|LONG|LOOP|LSET|MKDIR|NAME|NEXT|OFF|ON(?: COM| ERROR| KEY| TIMER)?|OPEN|OPTION BASE|OUT|POKE|PUT|READ|REDIM|REM|RESTORE|RESUME|RETURN|RMDIR|RSET|RUN|SHARED|SINGLE|SELECT CASE|SHELL|SLEEP|STATIC|STEP|STOP|STRING|SUB|SWAP|SYSTEM|THEN|TIMER|TO|TROFF|TRON|TYPE|UNLOCK|UNTIL|USING|VIEW PRINT|WAIT|WEND|WHILE|WRITE)(?:\$|\b)/i, 'function': /\b(?:ABS|ACCESS|ACOS|ANGLE|AREA|ARITHMETIC|ARRAY|ASIN|ASK|AT|ATN|BASE|BEGIN|BREAK|CAUSE|CEIL|CHR|CLIP|COLLATE|COLOR|CON|COS|COSH|COT|CSC|DATE|DATUM|DEBUG|DECIMAL|DEF|DEG|DEGREES|DELETE|DET|DEVICE|DISPLAY|DOT|ELAPSED|EPS|ERASABLE|EXLINE|EXP|EXTERNAL|EXTYPE|FILETYPE|FIXED|FP|GO|GRAPH|HANDLER|IDN|IMAGE|IN|INT|INTERNAL|IP|IS|KEYED|LBOUND|LCASE|LEFT|LEN|LENGTH|LET|LINE|LINES|LOG|LOG10|LOG2|LTRIM|MARGIN|MAT|MAX|MAXNUM|MID|MIN|MISSING|MOD|NATIVE|NUL|NUMERIC|OF|OPTION|ORD|ORGANIZATION|OUTIN|OUTPUT|PI|POINT|POINTER|POINTS|POS|PRINT|PROGRAM|PROMPT|RAD|RADIANS|RANDOMIZE|RECORD|RECSIZE|RECTYPE|RELATIVE|REMAINDER|REPEAT|REST|RETRY|REWRITE|RIGHT|RND|ROUND|RTRIM|SAME|SEC|SELECT|SEQUENTIAL|SET|SETTER|SGN|SIN|SINH|SIZE|SKIP|SQR|STANDARD|STATUS|STR|STREAM|STYLE|TAB|TAN|TANH|TEMPLATE|TEXT|THERE|TIME|TIMEOUT|TRACE|TRANSFORM|TRUNCATE|UBOUND|UCASE|USE|VAL|VARIABLE|VIEWPORT|WHEN|WINDOW|WITH|ZER|ZONEWIDTH)(?:\$|\b)/i, 'operator': /<[=>]?|>=?|[+\-*\/^=&]|\b(?:AND|EQV|IMP|NOT|OR|XOR)\b/i, 'punctuation': /[,;:()]/ }; /***/ }), /***/ 9774: /***/ (function() { (function (Prism) { var variable = /%%?[~:\w]+%?|!\S+!/; var parameter = { pattern: /\/[a-z?]+(?=[ :]|$):?|-[a-z]\b|--[a-z-]+\b/im, alias: 'attr-name', inside: { 'punctuation': /:/ } }; var string = /"(?:[\\"]"|[^"])*"(?!")/; var number = /(?:\b|-)\d+\b/; Prism.languages.batch = { 'comment': [ /^::.*/m, { pattern: /((?:^|[&(])[ \t]*)rem\b(?:[^^&)\r\n]|\^(?:\r\n|[\s\S]))*/im, lookbehind: true } ], 'label': { pattern: /^:.*/m, alias: 'property' }, 'command': [ { // FOR command pattern: /((?:^|[&(])[ \t]*)for(?: \/[a-z?](?:[ :](?:"[^"]*"|[^\s"/]\S*))?)* \S+ in \([^)]+\) do/im, lookbehind: true, inside: { 'keyword': /^for\b|\b(?:in|do)\b/i, 'string': string, 'parameter': parameter, 'variable': variable, 'number': number, 'punctuation': /[()',]/ } }, { // IF command pattern: /((?:^|[&(])[ \t]*)if(?: \/[a-z?](?:[ :](?:"[^"]*"|[^\s"/]\S*))?)* (?:not )?(?:cmdextversion \d+|defined \w+|errorlevel \d+|exist \S+|(?:"[^"]*"|(?!")(?:(?!==)\S)+)?(?:==| (?:equ|neq|lss|leq|gtr|geq) )(?:"[^"]*"|[^\s"]\S*))/im, lookbehind: true, inside: { 'keyword': /^if\b|\b(?:not|cmdextversion|defined|errorlevel|exist)\b/i, 'string': string, 'parameter': parameter, 'variable': variable, 'number': number, 'operator': /\^|==|\b(?:equ|neq|lss|leq|gtr|geq)\b/i } }, { // ELSE command pattern: /((?:^|[&()])[ \t]*)else\b/im, lookbehind: true, inside: { 'keyword': /^else\b/i } }, { // SET command pattern: /((?:^|[&(])[ \t]*)set(?: \/[a-z](?:[ :](?:"[^"]*"|[^\s"/]\S*))?)* (?:[^^&)\r\n]|\^(?:\r\n|[\s\S]))*/im, lookbehind: true, inside: { 'keyword': /^set\b/i, 'string': string, 'parameter': parameter, 'variable': [ variable, /\w+(?=(?:[*\/%+\-&^|]|<<|>>)?=)/ ], 'number': number, 'operator': /[*\/%+\-&^|]=?|<<=?|>>=?|[!~_=]/, 'punctuation': /[()',]/ } }, { // Other commands pattern: /((?:^|[&(])[ \t]*@?)\w+\b(?:"(?:[\\"]"|[^"])*"(?!")|[^"^&)\r\n]|\^(?:\r\n|[\s\S]))*/im, lookbehind: true, inside: { 'keyword': /^\w+\b/i, 'string': string, 'parameter': parameter, 'label': { pattern: /(^\s*):\S+/m, lookbehind: true, alias: 'property' }, 'variable': variable, 'number': number, 'operator': /\^/ } } ], 'operator': /[&@]/, 'punctuation': /[()']/ }; }(Prism)); /***/ }), /***/ 9379: /***/ (function() { Prism.languages.bbcode = { 'tag': { pattern: /\[\/?[^\s=\]]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'"\]=]+))?(?:\s+[^\s=\]]+\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'"\]=]+))*\s*\]/, inside: { 'tag': { pattern: /^\[\/?[^\s=\]]+/, inside: { 'punctuation': /^\[\/?/ } }, 'attr-value': { pattern: /=\s*(?:"[^"]*"|'[^']*'|[^\s'"\]=]+)/i, inside: { 'punctuation': [ /^=/, { pattern: /^(\s*)["']|["']$/, lookbehind: true } ] } }, 'punctuation': /\]/, 'attr-name': /[^\s=\]]+/ } } }; Prism.languages.shortcode = Prism.languages.bbcode; /***/ }), /***/ 1782: /***/ (function() { Prism.languages.birb = Prism.languages.extend('clike', { 'string': { pattern: /r?("|')(?:\\.|(?!\1)[^\\])*\1/, greedy: true }, 'class-name': [ /\b[A-Z](?:[\d_]*[a-zA-Z]\w*)?\b/, // matches variable and function return types (parameters as well). /\b[A-Z]\w*(?=\s+\w+\s*[;,=()])/ ], 'keyword': /\b(?:assert|break|case|class|const|default|else|enum|final|follows|for|grab|if|nest|next|new|noSeeb|return|static|switch|throw|var|void|while)\b/, 'operator': /\+\+|--|&&|\|\||<<=?|>>=?|~(?:\/=?)?|[+\-*\/%&^|=!<>]=?|\?|:/, 'variable': /\b[a-z_]\w*\b/, }); Prism.languages.insertBefore('birb', 'function', { 'metadata': { pattern: /<\w+>/, greedy: true, alias: 'symbol' } }); /***/ }), /***/ 1600: /***/ (function() { Prism.languages.bison = Prism.languages.extend('c', {}); Prism.languages.insertBefore('bison', 'comment', { 'bison': { // This should match all the beginning of the file // including the prologue(s), the bison declarations and // the grammar rules. pattern: /^(?:[^%]|%(?!%))*%%[\s\S]*?%%/, inside: { 'c': { // Allow for one level of nested braces pattern: /%\{[\s\S]*?%\}|\{(?:\{[^}]*\}|[^{}])*\}/, inside: { 'delimiter': { pattern: /^%?\{|%?\}$/, alias: 'punctuation' }, 'bison-variable': { pattern: /[$@](?:<[^\s>]+>)?[\w$]+/, alias: 'variable', inside: { 'punctuation': /<|>/ } }, rest: Prism.languages.c } }, 'comment': Prism.languages.c.comment, 'string': Prism.languages.c.string, 'property': /\S+(?=:)/, 'keyword': /%\w+/, 'number': { pattern: /(^|[^@])\b(?:0x[\da-f]+|\d+)/i, lookbehind: true }, 'punctuation': /%[%?]|[|:;\[\]<>]/ } } }); /***/ }), /***/ 3182: /***/ (function() { Prism.languages.bnf = { 'string': { pattern: /"[^\r\n"]*"|'[^\r\n']*'/ }, 'definition': { pattern: /<[^<>\r\n\t]+>(?=\s*::=)/, alias: ['rule', 'keyword'], inside: { 'punctuation': /^<|>$/ } }, 'rule': { pattern: /<[^<>\r\n\t]+>/, inside: { 'punctuation': /^<|>$/ } }, 'operator': /::=|[|()[\]{}*+?]|\.{3}/ }; Prism.languages.rbnf = Prism.languages.bnf; /***/ }), /***/ 9426: /***/ (function() { Prism.languages.brainfuck = { 'pointer': { pattern: /<|>/, alias: 'keyword' }, 'increment': { pattern: /\+/, alias: 'inserted' }, 'decrement': { pattern: /-/, alias: 'deleted' }, 'branching': { pattern: /\[|\]/, alias: 'important' }, 'operator': /[.,]/, 'comment': /\S+/ }; /***/ }), /***/ 7037: /***/ (function() { Prism.languages.brightscript = { 'comment': /(?:\brem|').*/i, 'directive-statement': { pattern: /(^[\t ]*)#(?:const|else(?:[\t ]+if)?|end[\t ]+if|error|if).*/im, lookbehind: true, alias: 'property', inside: { 'error-message': { pattern: /(^#error).+/, lookbehind: true }, 'directive': { pattern: /^#(?:const|else(?:[\t ]+if)?|end[\t ]+if|error|if)/, alias: 'keyword' }, 'expression': { pattern: /[\s\S]+/, inside: null // see below } } }, 'property': { pattern: /([\r\n{,][\t ]*)(?:(?!\d)\w+|"(?:[^"\r\n]|"")*"(?!"))(?=[ \t]*:)/, lookbehind: true, greedy: true }, 'string': { pattern: /"(?:[^"\r\n]|"")*"(?!")/, greedy: true }, 'class-name': { pattern: /(\bAs[\t ]+)\w+/i, lookbehind: true }, 'keyword': /\b(?:As|Dim|Each|Else|Elseif|End|Exit|For|Function|Goto|If|In|Print|Return|Step|Stop|Sub|Then|To|While)\b/i, 'boolean': /\b(?:true|false)\b/i, 'function': /\b(?!\d)\w+(?=[\t ]*\()/i, 'number': /(?:\b\d+(?:\.\d+)?(?:[ed][+-]\d+)?|&h[a-f\d]+)\b[%&!#]?/i, 'operator': /--|\+\+|>>=?|<<=?|<>|[-+*/\\<>]=?|[:^=?]|\b(?:and|mod|not|or)\b/i, 'punctuation': /[.,;()[\]{}]/, 'constant': /\b(?:LINE_NUM)\b/i }; Prism.languages.brightscript['directive-statement'].inside.expression.inside = Prism.languages.brightscript; /***/ }), /***/ 6857: /***/ (function() { Prism.languages.bro = { 'comment': { pattern: /(^|[^\\$])#.*/, lookbehind: true, inside: { 'italic': /\b(?:TODO|FIXME|XXX)\b/ } }, 'string': { pattern: /(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/, greedy: true }, 'boolean': /\b[TF]\b/, 'function': { pattern: /(?:function|hook|event) \w+(?:::\w+)?/, inside: { keyword: /^(?:function|hook|event)/ } }, 'variable': { pattern: /(?:global|local) \w+/i, inside: { keyword: /(?:global|local)/ } }, 'builtin': /(?:@(?:load(?:-(?:sigs|plugin))?|unload|prefixes|ifn?def|else|(?:end)?if|DIR|FILENAME))|(?:&?(?:redef|priority|log|optional|default|add_func|delete_func|expire_func|read_expire|write_expire|create_expire|synchronized|persistent|rotate_interval|rotate_size|encrypt|raw_output|mergeable|group|error_handler|type_column))/, 'constant': { pattern: /const \w+/i, inside: { keyword: /const/ } }, 'keyword': /\b(?:break|next|continue|alarm|using|of|add|delete|export|print|return|schedule|when|timeout|addr|any|bool|count|double|enum|file|int|interval|pattern|opaque|port|record|set|string|subnet|table|time|vector|for|if|else|in|module|function)\b/, 'operator': /--?|\+\+?|!=?=?|<=?|>=?|==?=?|&&|\|\|?|\?|\*|\/|~|\^|%/, 'number': /\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i, 'punctuation': /[{}[\];(),.:]/ }; /***/ }), /***/ 6742: /***/ (function() { // 1C:Enterprise // https://github.com/Diversus23/ // Prism.languages.bsl = { 'comment': /\/\/.*/, 'string': [ // Строки // Strings { pattern: /"(?:[^"]|"")*"(?!")/, greedy: true }, // Дата и время // Date & time { pattern: /'(?:[^'\r\n\\]|\\.)*'/ } ], 'keyword': [ { // RU pattern: /(^|[^\w\u0400-\u0484\u0487-\u052f\u1c80-\u1c88\u1d2b\u1d78\u2de0-\u2dff\ua640-\ua69f\ufe2e\ufe2f])(?:пока|для|новый|прервать|попытка|исключение|вызватьисключение|иначе|конецпопытки|неопределено|функция|перем|возврат|конецфункции|если|иначеесли|процедура|конецпроцедуры|тогда|знач|экспорт|конецесли|из|каждого|истина|ложь|по|цикл|конеццикла|выполнить)(?![\w\u0400-\u0484\u0487-\u052f\u1c80-\u1c88\u1d2b\u1d78\u2de0-\u2dff\ua640-\ua69f\ufe2e\ufe2f])/i, lookbehind: true }, { // EN pattern: /\b(?:while|for|new|break|try|except|raise|else|endtry|undefined|function|var|return|endfunction|null|if|elseif|procedure|endprocedure|then|val|export|endif|in|each|true|false|to|do|enddo|execute)\b/i } ], 'number': { pattern: /(^(?=\d)|[^\w\u0400-\u0484\u0487-\u052f\u1c80-\u1c88\u1d2b\u1d78\u2de0-\u2dff\ua640-\ua69f\ufe2e\ufe2f])(?:\d+(?:\.\d*)?|\.\d+)(?:E[+-]?\d+)?/i, lookbehind: true }, 'operator': [ /[<>+\-*/]=?|[%=]/, // RU { pattern: /(^|[^\w\u0400-\u0484\u0487-\u052f\u1c80-\u1c88\u1d2b\u1d78\u2de0-\u2dff\ua640-\ua69f\ufe2e\ufe2f])(?:и|или|не)(?![\w\u0400-\u0484\u0487-\u052f\u1c80-\u1c88\u1d2b\u1d78\u2de0-\u2dff\ua640-\ua69f\ufe2e\ufe2f])/i, lookbehind: true }, // EN { pattern: /\b(?:and|or|not)\b/i } ], 'punctuation': /\(\.|\.\)|[()\[\]:;,.]/, 'directive': [ // Теги препроцессора вида &Клиент, &Сервер, ... // Preprocessor tags of the type &Client, &Server, ... { pattern: /^(\s*)&.*/m, lookbehind: true, alias: 'important' }, // Инструкции препроцессора вида: // #Если Сервер Тогда // ... // #КонецЕсли // Preprocessor instructions of the form: // #If Server Then // ... // #EndIf { pattern: /^\s*#.*/gm, alias: 'important' } ] }; Prism.languages.oscript = Prism.languages['bsl']; /***/ }), /***/ 4089: /***/ (function() { Prism.languages.c = Prism.languages.extend('clike', { 'comment': { pattern: /\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/, greedy: true }, 'class-name': { pattern: /(\b(?:enum|struct)\s+(?:__attribute__\s*\(\([\s\S]*?\)\)\s*)?)\w+|\b[a-z]\w*_t\b/, lookbehind: true }, 'keyword': /\b(?:__attribute__|_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|asm|typeof|inline|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|union|unsigned|void|volatile|while)\b/, 'function': /[a-z_]\w*(?=\s*\()/i, 'number': /(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i, 'operator': />>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/ }); Prism.languages.insertBefore('c', 'string', { 'macro': { // allow for multiline macro definitions // spaces after the # character compile fine with gcc pattern: /(^\s*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im, lookbehind: true, greedy: true, alias: 'property', inside: { 'string': [ { // highlight the path of the include statement as a string pattern: /^(#\s*include\s*)<[^>]+>/, lookbehind: true }, Prism.languages.c['string'] ], 'comment': Prism.languages.c['comment'], 'macro-name': [ { pattern: /(^#\s*define\s+)\w+\b(?!\()/i, lookbehind: true }, { pattern: /(^#\s*define\s+)\w+\b(?=\()/i, lookbehind: true, alias: 'function' } ], // highlight macro directives as keywords 'directive': { pattern: /^(#\s*)[a-z]+/, lookbehind: true, alias: 'keyword' }, 'directive-hash': /^#/, 'punctuation': /##|\\(?=[\r\n])/, 'expression': { pattern: /\S[\s\S]*/, inside: Prism.languages.c } } }, // highlight predefined macros as constants 'constant': /\b(?:__FILE__|__LINE__|__DATE__|__TIME__|__TIMESTAMP__|__func__|EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|stdin|stdout|stderr)\b/ }); delete Prism.languages.c['boolean']; /***/ }), /***/ 5934: /***/ (function() { Prism.languages.cil = { 'comment': /\/\/.*/, 'string': { pattern: /(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/, greedy: true }, 'directive': { pattern: /(^|\W)\.[a-z]+(?=\s)/, lookbehind: true, alias: 'class-name' }, // Actually an assembly reference 'variable': /\[[\w\.]+\]/, 'keyword': /\b(?:abstract|ansi|assembly|auto|autochar|beforefieldinit|bool|bstr|byvalstr|catch|char|cil|class|currency|date|decimal|default|enum|error|explicit|extends|extern|famandassem|family|famorassem|final(?:ly)?|float32|float64|hidebysig|iant|idispatch|implements|import|initonly|instance|u?int(?:8|16|32|64)?|interface|iunknown|literal|lpstr|lpstruct|lptstr|lpwstr|managed|method|native(?:Type)?|nested|newslot|object(?:ref)?|pinvokeimpl|private|privatescope|public|reqsecobj|rtspecialname|runtime|sealed|sequential|serializable|specialname|static|string|struct|syschar|tbstr|unicode|unmanagedexp|unsigned|value(?:type)?|variant|virtual|void)\b/, 'function': /\b(?:(?:constrained|unaligned|volatile|readonly|tail|no)\.)?(?:conv\.(?:[iu][1248]?|ovf\.[iu][1248]?(?:\.un)?|r\.un|r4|r8)|ldc\.(?:i4(?:\.[0-9]+|\.[mM]1|\.s)?|i8|r4|r8)|ldelem(?:\.[iu][1248]?|\.r[48]|\.ref|a)?|ldind\.(?:[iu][1248]?|r[48]|ref)|stelem\.?(?:i[1248]?|r[48]|ref)?|stind\.(?:i[1248]?|r[48]|ref)?|end(?:fault|filter|finally)|ldarg(?:\.[0-3s]|a(?:\.s)?)?|ldloc(?:\.[0-9]+|\.s)?|sub(?:\.ovf(?:\.un)?)?|mul(?:\.ovf(?:\.un)?)?|add(?:\.ovf(?:\.un)?)?|stloc(?:\.[0-3s])?|refany(?:type|val)|blt(?:\.un)?(?:\.s)?|ble(?:\.un)?(?:\.s)?|bgt(?:\.un)?(?:\.s)?|bge(?:\.un)?(?:\.s)?|unbox(?:\.any)?|init(?:blk|obj)|call(?:i|virt)?|brfalse(?:\.s)?|bne\.un(?:\.s)?|ldloca(?:\.s)?|brzero(?:\.s)?|brtrue(?:\.s)?|brnull(?:\.s)?|brinst(?:\.s)?|starg(?:\.s)?|leave(?:\.s)?|shr(?:\.un)?|rem(?:\.un)?|div(?:\.un)?|clt(?:\.un)?|alignment|ldvirtftn|castclass|beq(?:\.s)?|mkrefany|localloc|ckfinite|rethrow|ldtoken|ldsflda|cgt\.un|arglist|switch|stsfld|sizeof|newobj|newarr|ldsfld|ldnull|ldflda|isinst|throw|stobj|stfld|ldstr|ldobj|ldlen|ldftn|ldfld|cpobj|cpblk|break|br\.s|xor|shl|ret|pop|not|nop|neg|jmp|dup|cgt|ceq|box|and|or|br)\b/, 'boolean': /\b(?:true|false)\b/, 'number': /\b-?(?:0x[0-9a-fA-F]+|[0-9]+)(?:\.[0-9a-fA-F]+)?\b/i, 'punctuation': /[{}[\];(),:=]|IL_[0-9A-Za-z]+/ } /***/ }), /***/ 1057: /***/ (function() { // Copied from https://github.com/jeluard/prism-clojure Prism.languages.clojure = { 'comment': /;.*/, 'string': { pattern: /"(?:[^"\\]|\\.)*"/, greedy: true }, 'operator': /(?:::|[:|'])\b[a-z][\w*+!?-]*\b/i, //used for symbols and keywords 'keyword': { pattern: /([^\w+*'?-])(?:def|if|do|let|\.\.|quote|var|->>|->|fn|loop|recur|throw|try|monitor-enter|\.|new|set!|def\-|defn|defn\-|defmacro|defmulti|defmethod|defstruct|defonce|declare|definline|definterface|defprotocol|==|defrecord|>=|deftype|<=|defproject|ns|\*|\+|\-|\/|<|=|>|accessor|agent|agent-errors|aget|alength|all-ns|alter|and|append-child|apply|array-map|aset|aset-boolean|aset-byte|aset-char|aset-double|aset-float|aset-int|aset-long|aset-short|assert|assoc|await|await-for|bean|binding|bit-and|bit-not|bit-or|bit-shift-left|bit-shift-right|bit-xor|boolean|branch\?|butlast|byte|cast|char|children|class|clear-agent-errors|comment|commute|comp|comparator|complement|concat|conj|cons|constantly|cond|if-not|construct-proxy|contains\?|count|create-ns|create-struct|cycle|dec|deref|difference|disj|dissoc|distinct|doall|doc|dorun|doseq|dosync|dotimes|doto|double|down|drop|drop-while|edit|end\?|ensure|eval|every\?|false\?|ffirst|file-seq|filter|find|find-doc|find-ns|find-var|first|float|flush|for|fnseq|frest|gensym|get-proxy-class|get|hash-map|hash-set|identical\?|identity|if-let|import|in-ns|inc|index|insert-child|insert-left|insert-right|inspect-table|inspect-tree|instance\?|int|interleave|intersection|into|into-array|iterate|join|key|keys|keyword|keyword\?|last|lazy-cat|lazy-cons|left|lefts|line-seq|list\*|list|load|load-file|locking|long|macroexpand|macroexpand-1|make-array|make-node|map|map-invert|map\?|mapcat|max|max-key|memfn|merge|merge-with|meta|min|min-key|name|namespace|neg\?|newline|next|nil\?|node|not|not-any\?|not-every\?|not=|ns-imports|ns-interns|ns-map|ns-name|ns-publics|ns-refers|ns-resolve|ns-unmap|nth|nthrest|or|parse|partial|path|peek|pop|pos\?|pr|pr-str|print|print-str|println|println-str|prn|prn-str|project|proxy|proxy-mappings|quot|rand|rand-int|range|re-find|re-groups|re-matcher|re-matches|re-pattern|re-seq|read|read-line|reduce|ref|ref-set|refer|rem|remove|remove-method|remove-ns|rename|rename-keys|repeat|replace|replicate|resolve|rest|resultset-seq|reverse|rfirst|right|rights|root|rrest|rseq|second|select|select-keys|send|send-off|seq|seq-zip|seq\?|set|short|slurp|some|sort|sort-by|sorted-map|sorted-map-by|sorted-set|special-symbol\?|split-at|split-with|str|string\?|struct|struct-map|subs|subvec|symbol|symbol\?|sync|take|take-nth|take-while|test|time|to-array|to-array-2d|tree-seq|true\?|union|up|update-proxy|val|vals|var-get|var-set|var\?|vector|vector-zip|vector\?|when|when-first|when-let|when-not|with-local-vars|with-meta|with-open|with-out-str|xml-seq|xml-zip|zero\?|zipmap|zipper)(?=[^\w+*'?-])/, lookbehind: true }, 'boolean': /\b(?:true|false|nil)\b/, 'number': /\b[\da-f]+\b/i, 'punctuation': /[{}\[\](),]/ }; /***/ }), /***/ 1735: /***/ (function() { Prism.languages.cmake = { 'comment': /#.*/, 'string': { pattern: /"(?:[^\\"]|\\.)*"/, greedy: true, inside: { 'interpolation': { pattern: /\${(?:[^{}$]|\${[^{}$]*})*}/, inside: { 'punctuation': /\${|}/, 'variable': /\w+/ } } } }, 'variable': /\b(?:CMAKE_\w+|\w+_(?:VERSION(?:_MAJOR|_MINOR|_PATCH|_TWEAK)?|(?:BINARY|SOURCE)_DIR|DESCRIPTION|HOMEPAGE_URL|ROOT)|(?:CTEST_CUSTOM_(?:MAXIMUM_(?:(?:FAIL|PASS)ED_TEST_OUTPUT_SIZE|NUMBER_OF_(?:ERROR|WARNING)S)|ERROR_(?:P(?:OST|RE)_CONTEXT|EXCEPTION|MATCH)|P(?:OST|RE)_MEMCHECK|WARNING_(?:EXCEPTION|MATCH)|(?:MEMCHECK|TESTS)_IGNORE|P(?:OST|RE)_TEST|COVERAGE_EXCLUDE)|ANDROID|APPLE|BORLAND|BUILD_SHARED_LIBS|CACHE|CPACK_(?:ABSOLUTE_DESTINATION_FILES|COMPONENT_INCLUDE_TOPLEVEL_DIRECTORY|ERROR_ON_ABSOLUTE_INSTALL_DESTINATION|INCLUDE_TOPLEVEL_DIRECTORY|INSTALL_DEFAULT_DIRECTORY_PERMISSIONS|INSTALL_SCRIPT|PACKAGING_INSTALL_PREFIX|SET_DESTDIR|WARN_ON_ABSOLUTE_INSTALL_DESTINATION)|CTEST_(?:BINARY_DIRECTORY|BUILD_COMMAND|BUILD_NAME|BZR_COMMAND|BZR_UPDATE_OPTIONS|CHANGE_ID|CHECKOUT_COMMAND|CONFIGURATION_TYPE|CONFIGURE_COMMAND|COVERAGE_COMMAND|COVERAGE_EXTRA_FLAGS|CURL_OPTIONS|CUSTOM_(?:COVERAGE_EXCLUDE|ERROR_EXCEPTION|ERROR_MATCH|ERROR_POST_CONTEXT|ERROR_PRE_CONTEXT|MAXIMUM_FAILED_TEST_OUTPUT_SIZE|MAXIMUM_NUMBER_OF_(?:ERRORS|WARNINGS)|MAXIMUM_PASSED_TEST_OUTPUT_SIZE|MEMCHECK_IGNORE|POST_MEMCHECK|POST_TEST|PRE_MEMCHECK|PRE_TEST|TESTS_IGNORE|WARNING_EXCEPTION|WARNING_MATCH)|CVS_CHECKOUT|CVS_COMMAND|CVS_UPDATE_OPTIONS|DROP_LOCATION|DROP_METHOD|DROP_SITE|DROP_SITE_CDASH|DROP_SITE_PASSWORD|DROP_SITE_USER|EXTRA_COVERAGE_GLOB|GIT_COMMAND|GIT_INIT_SUBMODULES|GIT_UPDATE_CUSTOM|GIT_UPDATE_OPTIONS|HG_COMMAND|HG_UPDATE_OPTIONS|LABELS_FOR_SUBPROJECTS|MEMORYCHECK_(?:COMMAND|COMMAND_OPTIONS|SANITIZER_OPTIONS|SUPPRESSIONS_FILE|TYPE)|NIGHTLY_START_TIME|P4_CLIENT|P4_COMMAND|P4_OPTIONS|P4_UPDATE_OPTIONS|RUN_CURRENT_SCRIPT|SCP_COMMAND|SITE|SOURCE_DIRECTORY|SUBMIT_URL|SVN_COMMAND|SVN_OPTIONS|SVN_UPDATE_OPTIONS|TEST_LOAD|TEST_TIMEOUT|TRIGGER_SITE|UPDATE_COMMAND|UPDATE_OPTIONS|UPDATE_VERSION_ONLY|USE_LAUNCHERS)|CYGWIN|ENV|EXECUTABLE_OUTPUT_PATH|GHS-MULTI|IOS|LIBRARY_OUTPUT_PATH|MINGW|MSVC(?:10|11|12|14|60|70|71|80|90|_IDE|_TOOLSET_VERSION|_VERSION)?|MSYS|PROJECT_(?:BINARY_DIR|DESCRIPTION|HOMEPAGE_URL|NAME|SOURCE_DIR|VERSION|VERSION_(?:MAJOR|MINOR|PATCH|TWEAK))|UNIX|WIN32|WINCE|WINDOWS_PHONE|WINDOWS_STORE|XCODE|XCODE_VERSION))\b/, 'property': /\b(?:cxx_\w+|(?:ARCHIVE_OUTPUT_(?:DIRECTORY|NAME)|COMPILE_DEFINITIONS|COMPILE_PDB_NAME|COMPILE_PDB_OUTPUT_DIRECTORY|EXCLUDE_FROM_DEFAULT_BUILD|IMPORTED_(?:IMPLIB|LIBNAME|LINK_DEPENDENT_LIBRARIES|LINK_INTERFACE_LANGUAGES|LINK_INTERFACE_LIBRARIES|LINK_INTERFACE_MULTIPLICITY|LOCATION|NO_SONAME|OBJECTS|SONAME)|INTERPROCEDURAL_OPTIMIZATION|LIBRARY_OUTPUT_DIRECTORY|LIBRARY_OUTPUT_NAME|LINK_FLAGS|LINK_INTERFACE_LIBRARIES|LINK_INTERFACE_MULTIPLICITY|LOCATION|MAP_IMPORTED_CONFIG|OSX_ARCHITECTURES|OUTPUT_NAME|PDB_NAME|PDB_OUTPUT_DIRECTORY|RUNTIME_OUTPUT_DIRECTORY|RUNTIME_OUTPUT_NAME|STATIC_LIBRARY_FLAGS|VS_CSHARP|VS_DOTNET_REFERENCEPROP|VS_DOTNET_REFERENCE|VS_GLOBAL_SECTION_POST|VS_GLOBAL_SECTION_PRE|VS_GLOBAL|XCODE_ATTRIBUTE)_\w+|\w+_(?:CLANG_TIDY|COMPILER_LAUNCHER|CPPCHECK|CPPLINT|INCLUDE_WHAT_YOU_USE|OUTPUT_NAME|POSTFIX|VISIBILITY_PRESET)|ABSTRACT|ADDITIONAL_MAKE_CLEAN_FILES|ADVANCED|ALIASED_TARGET|ALLOW_DUPLICATE_CUSTOM_TARGETS|ANDROID_(?:ANT_ADDITIONAL_OPTIONS|API|API_MIN|ARCH|ASSETS_DIRECTORIES|GUI|JAR_DEPENDENCIES|NATIVE_LIB_DEPENDENCIES|NATIVE_LIB_DIRECTORIES|PROCESS_MAX|PROGUARD|PROGUARD_CONFIG_PATH|SECURE_PROPS_PATH|SKIP_ANT_STEP|STL_TYPE)|ARCHIVE_OUTPUT_DIRECTORY|ARCHIVE_OUTPUT_NAME|ATTACHED_FILES|ATTACHED_FILES_ON_FAIL|AUTOGEN_(?:BUILD_DIR|ORIGIN_DEPENDS|PARALLEL|SOURCE_GROUP|TARGETS_FOLDER|TARGET_DEPENDS)|AUTOMOC|AUTOMOC_(?:COMPILER_PREDEFINES|DEPEND_FILTERS|EXECUTABLE|MACRO_NAMES|MOC_OPTIONS|SOURCE_GROUP|TARGETS_FOLDER)|AUTORCC|AUTORCC_EXECUTABLE|AUTORCC_OPTIONS|AUTORCC_SOURCE_GROUP|AUTOUIC|AUTOUIC_EXECUTABLE|AUTOUIC_OPTIONS|AUTOUIC_SEARCH_PATHS|BINARY_DIR|BUILDSYSTEM_TARGETS|BUILD_RPATH|BUILD_RPATH_USE_ORIGIN|BUILD_WITH_INSTALL_NAME_DIR|BUILD_WITH_INSTALL_RPATH|BUNDLE|BUNDLE_EXTENSION|CACHE_VARIABLES|CLEAN_NO_CUSTOM|COMMON_LANGUAGE_RUNTIME|COMPATIBLE_INTERFACE_(?:BOOL|NUMBER_MAX|NUMBER_MIN|STRING)|COMPILE_(?:DEFINITIONS|FEATURES|FLAGS|OPTIONS|PDB_NAME|PDB_OUTPUT_DIRECTORY)|COST|CPACK_DESKTOP_SHORTCUTS|CPACK_NEVER_OVERWRITE|CPACK_PERMANENT|CPACK_STARTUP_SHORTCUTS|CPACK_START_MENU_SHORTCUTS|CPACK_WIX_ACL|CROSSCOMPILING_EMULATOR|CUDA_EXTENSIONS|CUDA_PTX_COMPILATION|CUDA_RESOLVE_DEVICE_SYMBOLS|CUDA_SEPARABLE_COMPILATION|CUDA_STANDARD|CUDA_STANDARD_REQUIRED|CXX_EXTENSIONS|CXX_STANDARD|CXX_STANDARD_REQUIRED|C_EXTENSIONS|C_STANDARD|C_STANDARD_REQUIRED|DEBUG_CONFIGURATIONS|DEBUG_POSTFIX|DEFINE_SYMBOL|DEFINITIONS|DEPENDS|DEPLOYMENT_ADDITIONAL_FILES|DEPLOYMENT_REMOTE_DIRECTORY|DISABLED|DISABLED_FEATURES|ECLIPSE_EXTRA_CPROJECT_CONTENTS|ECLIPSE_EXTRA_NATURES|ENABLED_FEATURES|ENABLED_LANGUAGES|ENABLE_EXPORTS|ENVIRONMENT|EXCLUDE_FROM_ALL|EXCLUDE_FROM_DEFAULT_BUILD|EXPORT_NAME|EXPORT_PROPERTIES|EXTERNAL_OBJECT|EchoString|FAIL_REGULAR_EXPRESSION|FIND_LIBRARY_USE_LIB32_PATHS|FIND_LIBRARY_USE_LIB64_PATHS|FIND_LIBRARY_USE_LIBX32_PATHS|FIND_LIBRARY_USE_OPENBSD_VERSIONING|FIXTURES_CLEANUP|FIXTURES_REQUIRED|FIXTURES_SETUP|FOLDER|FRAMEWORK|Fortran_FORMAT|Fortran_MODULE_DIRECTORY|GENERATED|GENERATOR_FILE_NAME|GENERATOR_IS_MULTI_CONFIG|GHS_INTEGRITY_APP|GHS_NO_SOURCE_GROUP_FILE|GLOBAL_DEPENDS_DEBUG_MODE|GLOBAL_DEPENDS_NO_CYCLES|GNUtoMS|HAS_CXX|HEADER_FILE_ONLY|HELPSTRING|IMPLICIT_DEPENDS_INCLUDE_TRANSFORM|IMPORTED|IMPORTED_(?:COMMON_LANGUAGE_RUNTIME|CONFIGURATIONS|GLOBAL|IMPLIB|LIBNAME|LINK_DEPENDENT_LIBRARIES|LINK_INTERFACE_(?:LANGUAGES|LIBRARIES|MULTIPLICITY)|LOCATION|NO_SONAME|OBJECTS|SONAME)|IMPORT_PREFIX|IMPORT_SUFFIX|INCLUDE_DIRECTORIES|INCLUDE_REGULAR_EXPRESSION|INSTALL_NAME_DIR|INSTALL_RPATH|INSTALL_RPATH_USE_LINK_PATH|INTERFACE_(?:AUTOUIC_OPTIONS|COMPILE_DEFINITIONS|COMPILE_FEATURES|COMPILE_OPTIONS|INCLUDE_DIRECTORIES|LINK_DEPENDS|LINK_DIRECTORIES|LINK_LIBRARIES|LINK_OPTIONS|POSITION_INDEPENDENT_CODE|SOURCES|SYSTEM_INCLUDE_DIRECTORIES)|INTERPROCEDURAL_OPTIMIZATION|IN_TRY_COMPILE|IOS_INSTALL_COMBINED|JOB_POOLS|JOB_POOL_COMPILE|JOB_POOL_LINK|KEEP_EXTENSION|LABELS|LANGUAGE|LIBRARY_OUTPUT_DIRECTORY|LIBRARY_OUTPUT_NAME|LINKER_LANGUAGE|LINK_(?:DEPENDS|DEPENDS_NO_SHARED|DIRECTORIES|FLAGS|INTERFACE_LIBRARIES|INTERFACE_MULTIPLICITY|LIBRARIES|OPTIONS|SEARCH_END_STATIC|SEARCH_START_STATIC|WHAT_YOU_USE)|LISTFILE_STACK|LOCATION|MACOSX_BUNDLE|MACOSX_BUNDLE_INFO_PLIST|MACOSX_FRAMEWORK_INFO_PLIST|MACOSX_PACKAGE_LOCATION|MACOSX_RPATH|MACROS|MANUALLY_ADDED_DEPENDENCIES|MEASUREMENT|MODIFIED|NAME|NO_SONAME|NO_SYSTEM_FROM_IMPORTED|OBJECT_DEPENDS|OBJECT_OUTPUTS|OSX_ARCHITECTURES|OUTPUT_NAME|PACKAGES_FOUND|PACKAGES_NOT_FOUND|PARENT_DIRECTORY|PASS_REGULAR_EXPRESSION|PDB_NAME|PDB_OUTPUT_DIRECTORY|POSITION_INDEPENDENT_CODE|POST_INSTALL_SCRIPT|PREDEFINED_TARGETS_FOLDER|PREFIX|PRE_INSTALL_SCRIPT|PRIVATE_HEADER|PROCESSORS|PROCESSOR_AFFINITY|PROJECT_LABEL|PUBLIC_HEADER|REPORT_UNDEFINED_PROPERTIES|REQUIRED_FILES|RESOURCE|RESOURCE_LOCK|RULE_LAUNCH_COMPILE|RULE_LAUNCH_CUSTOM|RULE_LAUNCH_LINK|RULE_MESSAGES|RUNTIME_OUTPUT_DIRECTORY|RUNTIME_OUTPUT_NAME|RUN_SERIAL|SKIP_AUTOGEN|SKIP_AUTOMOC|SKIP_AUTORCC|SKIP_AUTOUIC|SKIP_BUILD_RPATH|SKIP_RETURN_CODE|SOURCES|SOURCE_DIR|SOVERSION|STATIC_LIBRARY_FLAGS|STATIC_LIBRARY_OPTIONS|STRINGS|SUBDIRECTORIES|SUFFIX|SYMBOLIC|TARGET_ARCHIVES_MAY_BE_SHARED_LIBS|TARGET_MESSAGES|TARGET_SUPPORTS_SHARED_LIBS|TESTS|TEST_INCLUDE_FILE|TEST_INCLUDE_FILES|TIMEOUT|TIMEOUT_AFTER_MATCH|TYPE|USE_FOLDERS|VALUE|VARIABLES|VERSION|VISIBILITY_INLINES_HIDDEN|VS_(?:CONFIGURATION_TYPE|COPY_TO_OUT_DIR|DEBUGGER_(?:COMMAND|COMMAND_ARGUMENTS|ENVIRONMENT|WORKING_DIRECTORY)|DEPLOYMENT_CONTENT|DEPLOYMENT_LOCATION|DOTNET_REFERENCES|DOTNET_REFERENCES_COPY_LOCAL|GLOBAL_KEYWORD|GLOBAL_PROJECT_TYPES|GLOBAL_ROOTNAMESPACE|INCLUDE_IN_VSIX|IOT_STARTUP_TASK|KEYWORD|RESOURCE_GENERATOR|SCC_AUXPATH|SCC_LOCALPATH|SCC_PROJECTNAME|SCC_PROVIDER|SDK_REFERENCES|SHADER_(?:DISABLE_OPTIMIZATIONS|ENABLE_DEBUG|ENTRYPOINT|FLAGS|MODEL|OBJECT_FILE_NAME|OUTPUT_HEADER_FILE|TYPE|VARIABLE_NAME)|STARTUP_PROJECT|TOOL_OVERRIDE|USER_PROPS|WINRT_COMPONENT|WINRT_EXTENSIONS|WINRT_REFERENCES|XAML_TYPE)|WILL_FAIL|WIN32_EXECUTABLE|WINDOWS_EXPORT_ALL_SYMBOLS|WORKING_DIRECTORY|WRAP_EXCLUDE|XCODE_(?:EMIT_EFFECTIVE_PLATFORM_NAME|EXPLICIT_FILE_TYPE|FILE_ATTRIBUTES|LAST_KNOWN_FILE_TYPE|PRODUCT_TYPE|SCHEME_(?:ADDRESS_SANITIZER|ADDRESS_SANITIZER_USE_AFTER_RETURN|ARGUMENTS|DISABLE_MAIN_THREAD_CHECKER|DYNAMIC_LIBRARY_LOADS|DYNAMIC_LINKER_API_USAGE|ENVIRONMENT|EXECUTABLE|GUARD_MALLOC|MAIN_THREAD_CHECKER_STOP|MALLOC_GUARD_EDGES|MALLOC_SCRIBBLE|MALLOC_STACK|THREAD_SANITIZER(?:_STOP)?|UNDEFINED_BEHAVIOUR_SANITIZER(?:_STOP)?|ZOMBIE_OBJECTS))|XCTEST)\b/, 'keyword': /\b(?:add_compile_definitions|add_compile_options|add_custom_command|add_custom_target|add_definitions|add_dependencies|add_executable|add_library|add_link_options|add_subdirectory|add_test|aux_source_directory|break|build_command|build_name|cmake_host_system_information|cmake_minimum_required|cmake_parse_arguments|cmake_policy|configure_file|continue|create_test_sourcelist|ctest_build|ctest_configure|ctest_coverage|ctest_empty_binary_directory|ctest_memcheck|ctest_read_custom_files|ctest_run_script|ctest_sleep|ctest_start|ctest_submit|ctest_test|ctest_update|ctest_upload|define_property|else|elseif|enable_language|enable_testing|endforeach|endfunction|endif|endmacro|endwhile|exec_program|execute_process|export|export_library_dependencies|file|find_file|find_library|find_package|find_path|find_program|fltk_wrap_ui|foreach|function|get_cmake_property|get_directory_property|get_filename_component|get_property|get_source_file_property|get_target_property|get_test_property|if|include|include_directories|include_external_msproject|include_guard|include_regular_expression|install|install_files|install_programs|install_targets|link_directories|link_libraries|list|load_cache|load_command|macro|make_directory|mark_as_advanced|math|message|option|output_required_files|project|qt_wrap_cpp|qt_wrap_ui|remove|remove_definitions|return|separate_arguments|set|set_directory_properties|set_property|set_source_files_properties|set_target_properties|set_tests_properties|site_name|source_group|string|subdir_depends|subdirs|target_compile_definitions|target_compile_features|target_compile_options|target_include_directories|target_link_directories|target_link_libraries|target_link_options|target_sources|try_compile|try_run|unset|use_mangled_mesa|utility_source|variable_requires|variable_watch|while|write_file)(?=\s*\()\b/, 'boolean': /\b(?:ON|OFF|TRUE|FALSE)\b/, 'namespace': /\b(?:PROPERTIES|SHARED|PRIVATE|STATIC|PUBLIC|INTERFACE|TARGET_OBJECTS)\b/, 'operator': /\b(?:NOT|AND|OR|MATCHES|LESS|GREATER|EQUAL|STRLESS|STRGREATER|STREQUAL|VERSION_LESS|VERSION_EQUAL|VERSION_GREATER|DEFINED)\b/, 'inserted': { pattern: /\b\w+::\w+\b/, alias: 'class-name' }, 'number': /\b\d+(?:\.\d+)*\b/, 'function': /\b[a-z_]\w*(?=\s*\()\b/i, 'punctuation': /[()>}]|\$[<{]/ }; /***/ }), /***/ 1075: /***/ (function() { (function(Prism) { // Ignore comments starting with { to privilege string interpolation highlighting var comment = /#(?!\{).+/, interpolation = { pattern: /#\{[^}]+\}/, alias: 'variable' }; Prism.languages.coffeescript = Prism.languages.extend('javascript', { 'comment': comment, 'string': [ // Strings are multiline { pattern: /'(?:\\[\s\S]|[^\\'])*'/, greedy: true }, { // Strings are multiline pattern: /"(?:\\[\s\S]|[^\\"])*"/, greedy: true, inside: { 'interpolation': interpolation } } ], 'keyword': /\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/, 'class-member': { pattern: /@(?!\d)\w+/, alias: 'variable' } }); Prism.languages.insertBefore('coffeescript', 'comment', { 'multiline-comment': { pattern: /###[\s\S]+?###/, alias: 'comment' }, // Block regexp can contain comments and interpolation 'block-regex': { pattern: /\/{3}[\s\S]*?\/{3}/, alias: 'regex', inside: { 'comment': comment, 'interpolation': interpolation } } }); Prism.languages.insertBefore('coffeescript', 'string', { 'inline-javascript': { pattern: /`(?:\\[\s\S]|[^\\`])*`/, inside: { 'delimiter': { pattern: /^`|`$/, alias: 'punctuation' }, 'script': { pattern: /[\s\S]+/, alias: 'language-javascript', inside: Prism.languages.javascript } } }, // Block strings 'multiline-string': [ { pattern: /'''[\s\S]*?'''/, greedy: true, alias: 'string' }, { pattern: /"""[\s\S]*?"""/, greedy: true, alias: 'string', inside: { interpolation: interpolation } } ] }); Prism.languages.insertBefore('coffeescript', 'keyword', { // Object property 'property': /(?!\d)\w+(?=\s*:(?!:))/ }); delete Prism.languages.coffeescript['template-string']; Prism.languages.coffee = Prism.languages.coffeescript; }(Prism)); /***/ }), /***/ 7941: /***/ (function() { Prism.languages.concurnas = { 'comment': [ { pattern: /(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/, lookbehind: true }, { pattern: /(^|[^\\:])\/\/.*/, lookbehind: true, greedy: true } ], 'langext': { pattern: /\w+\s*\|\|[\s\S]+?\|\|/, greedy: true, alias: 'string' }, 'function': { pattern: /((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/, lookbehind: true }, 'keyword': /\b(?:abstract|actor|also|annotation|assert|async|await|bool|boolean|break|byte|case|catch|changed|char|class|closed|constant|continue|def|default|del|double|elif|else|enum|every|extends|false|finally|float|for|from|global|gpudef|gpukernel|if|import|in|init|inject|int|lambda|local|long|loop|match|new|nodefault|null|of|onchange|open|out|override|package|parfor|parforsync|post|pre|private|protected|provide|provider|public|return|shared|short|single|size_t|sizeof|super|sync|this|throw|trait|trans|transient|true|try|typedef|unchecked|using|val|var|void|while|with)\b/, 'boolean': /\b(?:false|true)\b/, 'number': /\b0b[01][01_]*L?\b|\b0x(?:[\da-f_]*\.)?[\da-f_p+-]+\b|(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?\d[\d_]*)?[dfls]?/i, 'punctuation': /[{}[\];(),.:]/, 'operator': /<==|>==|=>|->|<-|<>|\^|&==|&<>|!|\?|\?:|\.\?|\+\+|--|[-+*/=<>]=?|\b(?:and|as|band|bor|bxor|comp|is|isnot|mod|or)\b=?/, 'annotation': { pattern: /@(?:\w+:)?(?:\w*|\[[^\]]+\])/, alias: 'builtin' } }; Prism.languages.insertBefore('concurnas', 'langext', { 'string': { pattern: /[rs]?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/, greedy: true, inside: { 'interpolation': { pattern: /((?:^|[^\\])(?:\\{2})*){(?:[^{}]|{(?:[^{}]|{[^}]*})*})+}/, lookbehind: true, inside: Prism.languages.concurnas }, 'string': /[\s\S]+/ } } }); Prism.languages.conc = Prism.languages.concurnas; /***/ }), /***/ 6869: /***/ (function() { (function (Prism) { var keyword = /\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char8_t|char16_t|char32_t|class|compl|concept|const|consteval|constexpr|constinit|const_cast|continue|co_await|co_return|co_yield|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|float|for|friend|goto|if|inline|int|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|long|mutable|namespace|new|noexcept|nullptr|operator|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/; Prism.languages.cpp = Prism.languages.extend('c', { 'class-name': [ { pattern: RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!)\w+/.source .replace(//g, function () { return keyword.source; })), lookbehind: true }, // This is intended to capture the class name of method implementations like: // void foo::bar() const {} // However! The `foo` in the above example could also be a namespace, so we only capture the class name if // it starts with an uppercase letter. This approximation should give decent results. /\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/, // This will capture the class name before destructors like: // Foo::~Foo() {} /\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i, // This also intends to capture the class name of method implementations but here the class has template // parameters, so it can't be a namespace (until C++ adds generic namespaces). /\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/ ], 'keyword': keyword, 'number': { pattern: /(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i, greedy: true }, 'operator': />>=?|<<=?|->|([-+&|:])\1|[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/, 'boolean': /\b(?:true|false)\b/ }); Prism.languages.insertBefore('cpp', 'string', { 'raw-string': { pattern: /R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/, alias: 'string', greedy: true } }); Prism.languages.insertBefore('cpp', 'class-name', { // the base clause is an optional list of parent classes // https://en.cppreference.com/w/cpp/language/class 'base-clause': { pattern: /(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/, lookbehind: true, greedy: true, inside: Prism.languages.extend('cpp', {}) } }); Prism.languages.insertBefore('inside', 'operator', { // All untokenized words that are not namespaces should be class names 'class-name': /\b[a-z_]\w*\b(?!\s*::)/i }, Prism.languages.cpp['base-clause']); }(Prism)); /***/ }), /***/ 6895: /***/ (function() { (function(Prism) { Prism.languages.crystal = Prism.languages.extend('ruby', { keyword: [ /\b(?:abstract|alias|as|asm|begin|break|case|class|def|do|else|elsif|end|ensure|enum|extend|for|fun|if|include|instance_sizeof|lib|macro|module|next|of|out|pointerof|private|protected|rescue|return|require|select|self|sizeof|struct|super|then|type|typeof|uninitialized|union|unless|until|when|while|with|yield|__DIR__|__END_LINE__|__FILE__|__LINE__)\b/, { pattern: /(\.\s*)(?:is_a|responds_to)\?/, lookbehind: true } ], number: /\b(?:0b[01_]*[01]|0o[0-7_]*[0-7]|0x[\da-fA-F_]*[\da-fA-F]|(?:\d(?:[\d_]*\d)?)(?:\.[\d_]*\d)?(?:[eE][+-]?[\d_]*\d)?)(?:_(?:[uif](?:8|16|32|64))?)?\b/ }); Prism.languages.insertBefore('crystal', 'string', { attribute: { pattern: /@\[.+?\]/, alias: 'attr-name', inside: { delimiter: { pattern: /^@\[|\]$/, alias: 'tag' }, rest: Prism.languages.crystal } }, expansion: [ { pattern: /\{\{.+?\}\}/, inside: { delimiter: { pattern: /^\{\{|\}\}$/, alias: 'tag' }, rest: Prism.languages.crystal } }, { pattern: /\{%.+?%\}/, inside: { delimiter: { pattern: /^\{%|%\}$/, alias: 'tag' }, rest: Prism.languages.crystal } } ] }); }(Prism)); /***/ }), /***/ 8423: /***/ (function() { (function (Prism) { /** * Replaces all placeholders "<>" of given pattern with the n-th replacement (zero based). * * Note: This is a simple text based replacement. Be careful when using backreferences! * * @param {string} pattern the given pattern. * @param {string[]} replacements a list of replacement which can be inserted into the given pattern. * @returns {string} the pattern with all placeholders replaced with their corresponding replacements. * @example replace(/a<<0>>a/.source, [/b+/.source]) === /a(?:b+)a/.source */ function replace(pattern, replacements) { return pattern.replace(/<<(\d+)>>/g, function (m, index) { return '(?:' + replacements[+index] + ')'; }); } /** * @param {string} pattern * @param {string[]} replacements * @param {string} [flags] * @returns {RegExp} */ function re(pattern, replacements, flags) { return RegExp(replace(pattern, replacements), flags || ''); } /** * Creates a nested pattern where all occurrences of the string `<>` are replaced with the pattern itself. * * @param {string} pattern * @param {number} depthLog2 * @returns {string} */ function nested(pattern, depthLog2) { for (var i = 0; i < depthLog2; i++) { pattern = pattern.replace(/<>/g, function () { return '(?:' + pattern + ')'; }); } return pattern.replace(/<>/g, '[^\\s\\S]'); } // https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/ var keywordKinds = { // keywords which represent a return or variable type type: 'bool byte char decimal double dynamic float int long object sbyte short string uint ulong ushort var void', // keywords which are used to declare a type typeDeclaration: 'class enum interface struct', // contextual keywords // ("var" and "dynamic" are missing because they are used like types) contextual: 'add alias and ascending async await by descending from get global group into join let nameof not notnull on or orderby partial remove select set unmanaged value when where', // all other keywords other: 'abstract as base break case catch checked const continue default delegate do else event explicit extern finally fixed for foreach goto if implicit in internal is lock namespace new null operator out override params private protected public readonly ref return sealed sizeof stackalloc static switch this throw try typeof unchecked unsafe using virtual volatile while yield' }; // keywords function keywordsToPattern(words) { return '\\b(?:' + words.trim().replace(/ /g, '|') + ')\\b'; } var typeDeclarationKeywords = keywordsToPattern(keywordKinds.typeDeclaration); var keywords = RegExp(keywordsToPattern(keywordKinds.type + ' ' + keywordKinds.typeDeclaration + ' ' + keywordKinds.contextual + ' ' + keywordKinds.other)); var nonTypeKeywords = keywordsToPattern(keywordKinds.typeDeclaration + ' ' + keywordKinds.contextual + ' ' + keywordKinds.other); var nonContextualKeywords = keywordsToPattern(keywordKinds.type + ' ' + keywordKinds.typeDeclaration + ' ' + keywordKinds.other); // types var generic = nested(/<(?:[^<>;=+\-*/%&|^]|<>)*>/.source, 2); // the idea behind the other forbidden characters is to prevent false positives. Same for tupleElement. var nestedRound = nested(/\((?:[^()]|<>)*\)/.source, 2); var name = /@?\b[A-Za-z_]\w*\b/.source; var genericName = replace(/<<0>>(?:\s*<<1>>)?/.source, [name, generic]); var identifier = replace(/(?!<<0>>)<<1>>(?:\s*\.\s*<<1>>)*/.source, [nonTypeKeywords, genericName]); var array = /\[\s*(?:,\s*)*\]/.source; var typeExpressionWithoutTuple = replace(/<<0>>(?:\s*(?:\?\s*)?<<1>>)*(?:\s*\?)?/.source, [identifier, array]); var tupleElement = replace(/[^,()<>[\];=+\-*/%&|^]|<<0>>|<<1>>|<<2>>/.source, [generic, nestedRound, array]) var tuple = replace(/\(<<0>>+(?:,<<0>>+)+\)/.source, [tupleElement]); var typeExpression = replace(/(?:<<0>>|<<1>>)(?:\s*(?:\?\s*)?<<2>>)*(?:\s*\?)?/.source, [tuple, identifier, array]); var typeInside = { 'keyword': keywords, 'punctuation': /[<>()?,.:[\]]/ }; // strings & characters // https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#character-literals // https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#string-literals var character = /'(?:[^\r\n'\\]|\\.|\\[Uux][\da-fA-F]{1,8})'/.source; // simplified pattern var regularString = /"(?:\\.|[^\\"\r\n])*"/.source; var verbatimString = /@"(?:""|\\[\s\S]|[^\\"])*"(?!")/.source; Prism.languages.csharp = Prism.languages.extend('clike', { 'string': [ { pattern: re(/(^|[^$\\])<<0>>/.source, [verbatimString]), lookbehind: true, greedy: true }, { pattern: re(/(^|[^@$\\])<<0>>/.source, [regularString]), lookbehind: true, greedy: true }, { pattern: RegExp(character), greedy: true, alias: 'character' } ], 'class-name': [ { // Using static // using static System.Math; pattern: re(/(\busing\s+static\s+)<<0>>(?=\s*;)/.source, [identifier]), lookbehind: true, inside: typeInside }, { // Using alias (type) // using Project = PC.MyCompany.Project; pattern: re(/(\busing\s+<<0>>\s*=\s*)<<1>>(?=\s*;)/.source, [name, typeExpression]), lookbehind: true, inside: typeInside }, { // Using alias (alias) // using Project = PC.MyCompany.Project; pattern: re(/(\busing\s+)<<0>>(?=\s*=)/.source, [name]), lookbehind: true }, { // Type declarations // class Foo // interface Foo pattern: re(/(\b<<0>>\s+)<<1>>/.source, [typeDeclarationKeywords, genericName]), lookbehind: true, inside: typeInside }, { // Single catch exception declaration // catch(Foo) // (things like catch(Foo e) is covered by variable declaration) pattern: re(/(\bcatch\s*\(\s*)<<0>>/.source, [identifier]), lookbehind: true, inside: typeInside }, { // Name of the type parameter of generic constraints // where Foo : class pattern: re(/(\bwhere\s+)<<0>>/.source, [name]), lookbehind: true }, { // Casts and checks via as and is. // as Foo, is Bar // (things like if(a is Foo b) is covered by variable declaration) pattern: re(/(\b(?:is(?:\s+not)?|as)\s+)<<0>>/.source, [typeExpressionWithoutTuple]), lookbehind: true, inside: typeInside }, { // Variable, field and parameter declaration // (Foo bar, Bar baz, Foo[,,] bay, Foo> bax) pattern: re(/\b<<0>>(?=\s+(?!<<1>>)<<2>>(?:\s*[=,;:{)\]]|\s+(?:in|when)\b))/.source, [typeExpression, nonContextualKeywords, name]), inside: typeInside } ], 'keyword': keywords, // https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#literals 'number': /(?:\b0(?:x[\da-f_]*[\da-f]|b[01_]*[01])|(?:\B\.\d+(?:_+\d+)*|\b\d+(?:_+\d+)*(?:\.\d+(?:_+\d+)*)?)(?:e[-+]?\d+(?:_+\d+)*)?)(?:ul|lu|[dflmu])?\b/i, 'operator': />>=?|<<=?|[-=]>|([-+&|])\1|~|\?\?=?|[-+*/%&|^!=<>]=?/, 'punctuation': /\?\.?|::|[{}[\];(),.:]/ }); Prism.languages.insertBefore('csharp', 'number', { 'range': { pattern: /\.\./, alias: 'operator' } }); Prism.languages.insertBefore('csharp', 'punctuation', { 'named-parameter': { pattern: re(/([(,]\s*)<<0>>(?=\s*:)/.source, [name]), lookbehind: true, alias: 'punctuation' } }); Prism.languages.insertBefore('csharp', 'class-name', { 'namespace': { // namespace Foo.Bar {} // using Foo.Bar; pattern: re(/(\b(?:namespace|using)\s+)<<0>>(?:\s*\.\s*<<0>>)*(?=\s*[;{])/.source, [name]), lookbehind: true, inside: { 'punctuation': /\./ } }, 'type-expression': { // default(Foo), typeof(Foo), sizeof(int) pattern: re(/(\b(?:default|typeof|sizeof)\s*\(\s*(?!\s))(?:[^()\s]|\s(?!\s)|<<0>>)*(?=\s*\))/.source, [nestedRound]), lookbehind: true, alias: 'class-name', inside: typeInside }, 'return-type': { // Foo ForBar(); Foo IFoo.Bar() => 0 // int this[int index] => 0; T IReadOnlyList.this[int index] => this[index]; // int Foo => 0; int Foo { get; set } = 0; pattern: re(/<<0>>(?=\s+(?:<<1>>\s*(?:=>|[({]|\.\s*this\s*\[)|this\s*\[))/.source, [typeExpression, identifier]), inside: typeInside, alias: 'class-name' }, 'constructor-invocation': { // new List> { } pattern: re(/(\bnew\s+)<<0>>(?=\s*[[({])/.source, [typeExpression]), lookbehind: true, inside: typeInside, alias: 'class-name' }, /*'explicit-implementation': { // int IFoo.Bar => 0; void IFoo>.Foo(); pattern: replace(/\b<<0>>(?=\.<<1>>)/, className, methodOrPropertyDeclaration), inside: classNameInside, alias: 'class-name' },*/ 'generic-method': { // foo() pattern: re(/<<0>>\s*<<1>>(?=\s*\()/.source, [name, generic]), inside: { 'function': re(/^<<0>>/.source, [name]), 'generic': { pattern: RegExp(generic), alias: 'class-name', inside: typeInside } } }, 'type-list': { // The list of types inherited or of generic constraints // class Foo : Bar, IList // where F : Bar, IList pattern: re( /\b((?:<<0>>\s+<<1>>|where\s+<<2>>)\s*:\s*)(?:<<3>>|<<4>>)(?:\s*,\s*(?:<<3>>|<<4>>))*(?=\s*(?:where|[{;]|=>|$))/.source, [typeDeclarationKeywords, genericName, name, typeExpression, keywords.source] ), lookbehind: true, inside: { 'keyword': keywords, 'class-name': { pattern: RegExp(typeExpression), greedy: true, inside: typeInside }, 'punctuation': /,/ } }, 'preprocessor': { pattern: /(^\s*)#.*/m, lookbehind: true, alias: 'property', inside: { // highlight preprocessor directives as keywords 'directive': { pattern: /(\s*#)\b(?:define|elif|else|endif|endregion|error|if|line|pragma|region|undef|warning)\b/, lookbehind: true, alias: 'keyword' } } } }); // attributes var regularStringOrCharacter = regularString + '|' + character; var regularStringCharacterOrComment = replace(/\/(?![*/])|\/\/[^\r\n]*[\r\n]|\/\*(?:[^*]|\*(?!\/))*\*\/|<<0>>/.source, [regularStringOrCharacter]); var roundExpression = nested(replace(/[^"'/()]|<<0>>|\(<>*\)/.source, [regularStringCharacterOrComment]), 2); // https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/attributes/#attribute-targets var attrTarget = /\b(?:assembly|event|field|method|module|param|property|return|type)\b/.source; var attr = replace(/<<0>>(?:\s*\(<<1>>*\))?/.source, [identifier, roundExpression]); Prism.languages.insertBefore('csharp', 'class-name', { 'attribute': { // Attributes // [Foo], [Foo(1), Bar(2, Prop = "foo")], [return: Foo(1), Bar(2)], [assembly: Foo(Bar)] pattern: re(/((?:^|[^\s\w>)?])\s*\[\s*)(?:<<0>>\s*:\s*)?<<1>>(?:\s*,\s*<<1>>)*(?=\s*\])/.source, [attrTarget, attr]), lookbehind: true, greedy: true, inside: { 'target': { pattern: re(/^<<0>>(?=\s*:)/.source, [attrTarget]), alias: 'keyword' }, 'attribute-arguments': { pattern: re(/\(<<0>>*\)/.source, [roundExpression]), inside: Prism.languages.csharp }, 'class-name': { pattern: RegExp(identifier), inside: { 'punctuation': /\./ } }, 'punctuation': /[:,]/ } } }); // string interpolation var formatString = /:[^}\r\n]+/.source; // multi line var mInterpolationRound = nested(replace(/[^"'/()]|<<0>>|\(<>*\)/.source, [regularStringCharacterOrComment]), 2) var mInterpolation = replace(/\{(?!\{)(?:(?![}:])<<0>>)*<<1>>?\}/.source, [mInterpolationRound, formatString]); // single line var sInterpolationRound = nested(replace(/[^"'/()]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|<<0>>|\(<>*\)/.source, [regularStringOrCharacter]), 2) var sInterpolation = replace(/\{(?!\{)(?:(?![}:])<<0>>)*<<1>>?\}/.source, [sInterpolationRound, formatString]); function createInterpolationInside(interpolation, interpolationRound) { return { 'interpolation': { pattern: re(/((?:^|[^{])(?:\{\{)*)<<0>>/.source, [interpolation]), lookbehind: true, inside: { 'format-string': { pattern: re(/(^\{(?:(?![}:])<<0>>)*)<<1>>(?=\}$)/.source, [interpolationRound, formatString]), lookbehind: true, inside: { 'punctuation': /^:/ } }, 'punctuation': /^\{|\}$/, 'expression': { pattern: /[\s\S]+/, alias: 'language-csharp', inside: Prism.languages.csharp } } }, 'string': /[\s\S]+/ }; } Prism.languages.insertBefore('csharp', 'string', { 'interpolation-string': [ { pattern: re(/(^|[^\\])(?:\$@|@\$)"(?:""|\\[\s\S]|\{\{|<<0>>|[^\\{"])*"/.source, [mInterpolation]), lookbehind: true, greedy: true, inside: createInterpolationInside(mInterpolation, mInterpolationRound), }, { pattern: re(/(^|[^@\\])\$"(?:\\.|\{\{|<<0>>|[^\\"{])*"/.source, [sInterpolation]), lookbehind: true, greedy: true, inside: createInterpolationInside(sInterpolation, sInterpolationRound), } ] }); }(Prism)); Prism.languages.dotnet = Prism.languages.cs = Prism.languages.csharp; /***/ }), /***/ 5415: /***/ (function() { /** * Original by Scott Helme. * * Reference: https://scotthelme.co.uk/csp-cheat-sheet/ * * Supports the following: * - CSP Level 1 * - CSP Level 2 * - CSP Level 3 */ Prism.languages.csp = { 'directive': { pattern: /(^|[^-\da-z])(?:base-uri|block-all-mixed-content|(?:child|connect|default|font|frame|img|manifest|media|object|prefetch|script|style|worker)-src|disown-opener|form-action|frame-(?:ancestors|options)|input-protection(?:-(?:clip|selectors))?|navigate-to|plugin-types|policy-uri|referrer|reflected-xss|report-(?:to|uri)|require-sri-for|sandbox|(?:script|style)-src-(?:attr|elem)|upgrade-insecure-requests)(?=[^-\da-z]|$)/i, lookbehind: true, alias: 'keyword' }, 'safe': { // CSP2 hashes and nonces are base64 values. CSP3 accepts both base64 and base64url values. // See https://tools.ietf.org/html/rfc4648#section-4 // See https://tools.ietf.org/html/rfc4648#section-5 pattern: /'(?:deny|none|report-sample|self|strict-dynamic|top-only|(?:nonce|sha(?:256|384|512))-[-+/\d=_a-z]+)'/i, alias: 'selector' }, 'unsafe': { pattern: /(?:'unsafe-(?:allow-redirects|dynamic|eval|hash-attributes|hashed-attributes|hashes|inline)'|\*)/i, alias: 'function' } }; /***/ }), /***/ 7608: /***/ (function() { (function (Prism) { var string = /("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/; var selectorInside; Prism.languages.css.selector = { pattern: Prism.languages.css.selector, inside: selectorInside = { 'pseudo-element': /:(?:after|before|first-letter|first-line|selection)|::[-\w]+/, 'pseudo-class': /:[-\w]+/, 'class': /\.[-\w]+/, 'id': /#[-\w]+/, 'attribute': { pattern: RegExp('\\[(?:[^[\\]"\']|' + string.source + ')*\\]'), greedy: true, inside: { 'punctuation': /^\[|\]$/, 'case-sensitivity': { pattern: /(\s)[si]$/i, lookbehind: true, alias: 'keyword' }, 'namespace': { pattern: /^(\s*)(?:(?!\s)[-*\w\xA0-\uFFFF])*\|(?!=)/, lookbehind: true, inside: { 'punctuation': /\|$/ } }, 'attr-name': { pattern: /^(\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+/, lookbehind: true }, 'attr-value': [ string, { pattern: /(=\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+(?=\s*$)/, lookbehind: true } ], 'operator': /[|~*^$]?=/ } }, 'n-th': [ { pattern: /(\(\s*)[+-]?\d*[\dn](?:\s*[+-]\s*\d+)?(?=\s*\))/, lookbehind: true, inside: { 'number': /[\dn]+/, 'operator': /[+-]/ } }, { pattern: /(\(\s*)(?:even|odd)(?=\s*\))/i, lookbehind: true } ], 'combinator': />|\+|~|\|\|/, // the `tag` token has been existed and removed. // because we can't find a perfect tokenize to match it. // if you want to add it, please read https://github.com/PrismJS/prism/pull/2373 first. 'punctuation': /[(),]/, } }; Prism.languages.css['atrule'].inside['selector-function-argument'].inside = selectorInside; Prism.languages.insertBefore('css', 'property', { 'variable': { pattern: /(^|[^-\w\xA0-\uFFFF])--(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*/i, lookbehind: true } }); var unit = { pattern: /(\b\d+)(?:%|[a-z]+\b)/, lookbehind: true }; // 123 -123 .123 -.123 12.3 -12.3 var number = { pattern: /(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/, lookbehind: true }; Prism.languages.insertBefore('css', 'function', { 'operator': { pattern: /(\s)[+\-*\/](?=\s)/, lookbehind: true }, // CAREFUL! // Previewers and Inline color use hexcode and color. 'hexcode': { pattern: /\B#(?:[\da-f]{1,2}){3,4}\b/i, alias: 'color' }, 'color': [ /\b(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)\b/i, { pattern: /\b(?:rgb|hsl)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:rgb|hsl)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i, inside: { 'unit': unit, 'number': number, 'function': /[\w-]+(?=\()/, 'punctuation': /[(),]/ } } ], // it's important that there is no boundary assertion after the hex digits 'entity': /\\[\da-f]{1,8}/i, 'unit': unit, 'number': number }); })(Prism); /***/ }), /***/ 403: /***/ (function() { Prism.languages.cypher = { // https://neo4j.com/docs/cypher-manual/current/syntax/comments/ 'comment': /\/\/.*/, 'string': { pattern: /"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/, greedy: true }, 'class-name': { pattern: /(:\s*)(?:\w+|`(?:[^`\\\r\n])*`)(?=\s*[{):])/, lookbehind: true, greedy: true }, 'relationship': { pattern: /(-\[\s*(?:\w+\s*|`(?:[^`\\\r\n])*`\s*)?:\s*|\|\s*:\s*)(?:\w+|`(?:[^`\\\r\n])*`)/, lookbehind: true, greedy: true, alias: 'property' }, 'identifier': { pattern: /`(?:[^`\\\r\n])*`/, greedy: true, alias: 'symbol' }, 'variable': /\$\w+/, // https://neo4j.com/docs/cypher-manual/current/syntax/reserved/ 'keyword': /\b(?:ADD|ALL|AND|AS|ASC|ASCENDING|ASSERT|BY|CALL|CASE|COMMIT|CONSTRAINT|CONTAINS|CREATE|CSV|DELETE|DESC|DESCENDING|DETACH|DISTINCT|DO|DROP|ELSE|END|ENDS|EXISTS|FOR|FOREACH|IN|INDEX|IS|JOIN|KEY|LIMIT|LOAD|MANDATORY|MATCH|MERGE|NODE|NOT|OF|ON|OPTIONAL|OR|ORDER(?=\s+BY)|PERIODIC|REMOVE|REQUIRE|RETURN|SCALAR|SCAN|SET|SKIP|START|STARTS|THEN|UNION|UNIQUE|UNWIND|USING|WHEN|WHERE|WITH|XOR|YIELD)\b/i, 'function': /\b\w+\b(?=\s*\()/, 'boolean': /\b(?:true|false|null)\b/i, 'number': /\b(?:0x[\da-fA-F]+|\d+(?:\.\d+)?(?:[eE][+-]?\d+)?)\b/, // https://neo4j.com/docs/cypher-manual/current/syntax/operators/ 'operator': /:|<--?|--?>?|<>|=~?|[<>]=?|[+*/%^|]|\.\.\.?/, 'punctuation': /[()[\]{},;.]/ }; /***/ }), /***/ 1876: /***/ (function() { Prism.languages.d = Prism.languages.extend('clike', { 'comment': [ { // Shebang pattern: /^\s*#!.+/, greedy: true }, { pattern: RegExp(/(^|[^\\])/.source + '(?:' + [ // /+ comment +/ // Allow one level of nesting /\/\+(?:\/\+(?:[^+]|\+(?!\/))*\+\/|(?!\/\+)[\s\S])*?\+\//.source, // // comment /\/\/.*/.source, // /* comment */ /\/\*[\s\S]*?\*\//.source ].join('|') + ')'), lookbehind: true, greedy: true } ], 'string': [ { pattern: RegExp([ // r"", x"" /\b[rx]"(?:\\[\s\S]|[^\\"])*"[cwd]?/.source, // q"[]", q"()", q"<>", q"{}" /\bq"(?:\[[\s\S]*?\]|\([\s\S]*?\)|<[\s\S]*?>|\{[\s\S]*?\})"/.source, // q"IDENT // ... // IDENT" /\bq"((?!\d)\w+)$[\s\S]*?^\1"/.source, // q"//", q"||", etc. /\bq"(.)[\s\S]*?\2"/.source, // Characters // 'a', '\\', '\n', '\xFF', '\377', '\uFFFF', '\U0010FFFF', '\quot' /'(?:\\(?:\W|\w+)|[^\\])'/.source, /(["`])(?:\\[\s\S]|(?!\3)[^\\])*\3[cwd]?/.source ].join('|'), 'm'), greedy: true }, { pattern: /\bq\{(?:\{[^{}]*\}|[^{}])*\}/, greedy: true, alias: 'token-string' } ], // In order: $, keywords and special tokens, globally defined symbols 'keyword': /\$|\b(?:abstract|alias|align|asm|assert|auto|body|bool|break|byte|case|cast|catch|cdouble|cent|cfloat|char|class|const|continue|creal|dchar|debug|default|delegate|delete|deprecated|do|double|else|enum|export|extern|false|final|finally|float|for|foreach|foreach_reverse|function|goto|idouble|if|ifloat|immutable|import|inout|int|interface|invariant|ireal|lazy|long|macro|mixin|module|new|nothrow|null|out|override|package|pragma|private|protected|public|pure|real|ref|return|scope|shared|short|static|struct|super|switch|synchronized|template|this|throw|true|try|typedef|typeid|typeof|ubyte|ucent|uint|ulong|union|unittest|ushort|version|void|volatile|wchar|while|with|__(?:(?:FILE|MODULE|LINE|FUNCTION|PRETTY_FUNCTION|DATE|EOF|TIME|TIMESTAMP|VENDOR|VERSION)__|gshared|traits|vector|parameters)|string|wstring|dstring|size_t|ptrdiff_t)\b/, 'number': [ // The lookbehind and the negative look-ahead try to prevent bad highlighting of the .. operator // Hexadecimal numbers must be handled separately to avoid problems with exponent "e" /\b0x\.?[a-f\d_]+(?:(?!\.\.)\.[a-f\d_]*)?(?:p[+-]?[a-f\d_]+)?[ulfi]{0,4}/i, { pattern: /((?:\.\.)?)(?:\b0b\.?|\b|\.)\d[\d_]*(?:(?!\.\.)\.[\d_]*)?(?:e[+-]?\d[\d_]*)?[ulfi]{0,4}/i, lookbehind: true } ], 'operator': /\|[|=]?|&[&=]?|\+[+=]?|-[-=]?|\.?\.\.|=[>=]?|!(?:i[ns]\b|<>?=?|>=?|=)?|\bi[ns]\b|(?:<[<>]?|>>?>?|\^\^|[*\/%^~])=?/ }); Prism.languages.insertBefore('d', 'keyword', { 'property': /\B@\w*/ }); Prism.languages.insertBefore('d', 'function', { 'register': { // Iasm registers pattern: /\b(?:[ABCD][LHX]|E[ABCD]X|E?(?:BP|SP|DI|SI)|[ECSDGF]S|CR[0234]|DR[012367]|TR[3-7]|X?MM[0-7]|R[ABCD]X|[BS]PL|R[BS]P|[DS]IL|R[DS]I|R(?:[89]|1[0-5])[BWD]?|XMM(?:[89]|1[0-5])|YMM(?:1[0-5]|\d))\b|\bST(?:\([0-7]\)|\b)/, alias: 'variable' } }); /***/ }), /***/ 2458: /***/ (function() { Prism.languages.dart = Prism.languages.extend('clike', { 'string': [ { pattern: /r?("""|''')[\s\S]*?\1/, greedy: true }, { pattern: /r?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/, greedy: true } ], 'keyword': [ /\b(?:async|sync|yield)\*/, /\b(?:abstract|assert|async|await|break|case|catch|class|const|continue|covariant|default|deferred|do|dynamic|else|enum|export|extension|external|extends|factory|final|finally|for|Function|get|hide|if|implements|interface|import|in|library|mixin|new|null|on|operator|part|rethrow|return|set|show|static|super|switch|sync|this|throw|try|typedef|var|void|while|with|yield)\b/ ], 'operator': /\bis!|\b(?:as|is)\b|\+\+|--|&&|\|\||<<=?|>>=?|~(?:\/=?)?|[+\-*\/%&^|=!<>]=?|\?/ }); Prism.languages.insertBefore('dart','function',{ 'metadata': { pattern: /@\w+/, alias: 'symbol' } }); /***/ }), /***/ 5737: /***/ (function() { (function (Prism) { Prism.languages.dataweave = { 'url': /\b[A-Za-z]+:\/\/[\w/:.?=&-]+|\burn:[\w:.?=&-]+/, 'property': { pattern: /(?:\w+#)?(?:"(?:\\.|[^\\"\r\n])*"|\w+)(?=\s*[:@])/, greedy: true }, 'string': { pattern: /(["'`])(?:\\[\s\S]|(?!\1)[^\\])*\1/, greedy: true }, 'mime-type': /\b(?:text|audio|video|application|multipart|image)\/[\w+-]+/, 'date': { pattern: /\|[\w:+-]+\|/, greedy: true }, 'comment': [ { pattern: /(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/, lookbehind: true, greedy: true }, { pattern: /(^|[^\\:])\/\/.*/, lookbehind: true, greedy: true } ], 'regex': { pattern: /\/(?:[^\\\/\r\n]|\\[^\r\n])+\//, greedy: true }, 'function': /\b[A-Za-z_]\w*(?=\s*\()/i, 'number': /-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i, 'punctuation': /[{}[\];(),.:@]/, 'operator': /<<|>>|->|[<>~=]=?|!=|--?-?|\+\+?|\!|\?/, 'boolean': /\b(?:true|false)\b/, 'keyword': /\b(?:match|input|output|ns|type|update|null|if|else|using|unless|at|is|as|case|do|fun|var|not|and|or)\b/ }; }(Prism)); /***/ }), /***/ 3419: /***/ (function() { Prism.languages.dax = { 'comment': { pattern: /(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/).*)/, lookbehind: true }, 'data-field': { pattern: /'(?:[^']|'')*'(?!')(?:\[[ \w\xA0-\uFFFF]+\])?|\w+\[[ \w\xA0-\uFFFF]+\]/, alias: 'symbol' }, 'measure': { pattern: /\[[ \w\xA0-\uFFFF]+\]/, alias: 'constant' }, 'string': { pattern: /"(?:[^"]|"")*"(?!")/, greedy: true }, 'function': /\b(?:ABS|ACOS|ACOSH|ACOT|ACOTH|ADDCOLUMNS|ADDMISSINGITEMS|ALL|ALLCROSSFILTERED|ALLEXCEPT|ALLNOBLANKROW|ALLSELECTED|AND|APPROXIMATEDISTINCTCOUNT|ASIN|ASINH|ATAN|ATANH|AVERAGE|AVERAGEA|AVERAGEX|BETA\.DIST|BETA\.INV|BLANK|CALCULATE|CALCULATETABLE|CALENDAR|CALENDARAUTO|CEILING|CHISQ\.DIST|CHISQ\.DIST\.RT|CHISQ\.INV|CHISQ\.INV\.RT|CLOSINGBALANCEMONTH|CLOSINGBALANCEQUARTER|CLOSINGBALANCEYEAR|COALESCE|COMBIN|COMBINA|COMBINEVALUES|CONCATENATE|CONCATENATEX|CONFIDENCE\.NORM|CONFIDENCE\.T|CONTAINS|CONTAINSROW|CONTAINSSTRING|CONTAINSSTRINGEXACT|CONVERT|COS|COSH|COT|COTH|COUNT|COUNTA|COUNTAX|COUNTBLANK|COUNTROWS|COUNTX|CROSSFILTER|CROSSJOIN|CURRENCY|CURRENTGROUP|CUSTOMDATA|DATATABLE|DATE|DATEADD|DATEDIFF|DATESBETWEEN|DATESINPERIOD|DATESMTD|DATESQTD|DATESYTD|DATEVALUE|DAY|DEGREES|DETAILROWS|DISTINCT|DISTINCTCOUNT|DISTINCTCOUNTNOBLANK|DIVIDE|EARLIER|EARLIEST|EDATE|ENDOFMONTH|ENDOFQUARTER|ENDOFYEAR|EOMONTH|ERROR|EVEN|EXACT|EXCEPT|EXP|EXPON\.DIST|FACT|FALSE|FILTER|FILTERS|FIND|FIRSTDATE|FIRSTNONBLANK|FIRSTNONBLANKVALUE|FIXED|FLOOR|FORMAT|GCD|GENERATE|GENERATEALL|GENERATESERIES|GEOMEAN|GEOMEANX|GROUPBY|HASONEFILTER|HASONEVALUE|HOUR|IF|IF\.EAGER|IFERROR|IGNORE|INT|INTERSECT|ISBLANK|ISCROSSFILTERED|ISEMPTY|ISERROR|ISEVEN|ISFILTERED|ISINSCOPE|ISLOGICAL|ISNONTEXT|ISNUMBER|ISO\.CEILING|ISODD|ISONORAFTER|ISSELECTEDMEASURE|ISSUBTOTAL|ISTEXT|KEEPFILTERS|KEYWORDMATCH|LASTDATE|LASTNONBLANK|LASTNONBLANKVALUE|LCM|LEFT|LEN|LN|LOG|LOG10|LOOKUPVALUE|LOWER|MAX|MAXA|MAXX|MEDIAN|MEDIANX|MID|MIN|MINA|MINUTE|MINX|MOD|MONTH|MROUND|NATURALINNERJOIN|NATURALLEFTOUTERJOIN|NEXTDAY|NEXTMONTH|NEXTQUARTER|NEXTYEAR|NONVISUAL|NORM\.DIST|NORM\.INV|NORM\.S\.DIST|NORM\.S\.INV|NOT|NOW|ODD|OPENINGBALANCEMONTH|OPENINGBALANCEQUARTER|OPENINGBALANCEYEAR|OR|PARALLELPERIOD|PATH|PATHCONTAINS|PATHITEM|PATHITEMREVERSE|PATHLENGTH|PERCENTILE\.EXC|PERCENTILE\.INC|PERCENTILEX\.EXC|PERCENTILEX\.INC|PERMUT|PI|POISSON\.DIST|POWER|PREVIOUSDAY|PREVIOUSMONTH|PREVIOUSQUARTER|PREVIOUSYEAR|PRODUCT|PRODUCTX|QUARTER|QUOTIENT|RADIANS|RAND|RANDBETWEEN|RANK\.EQ|RANKX|RELATED|RELATEDTABLE|REMOVEFILTERS|REPLACE|REPT|RIGHT|ROLLUP|ROLLUPADDISSUBTOTAL|ROLLUPGROUP|ROLLUPISSUBTOTAL|ROUND|ROUNDDOWN|ROUNDUP|ROW|SAMEPERIODLASTYEAR|SAMPLE|SEARCH|SECOND|SELECTCOLUMNS|SELECTEDMEASURE|SELECTEDMEASUREFORMATSTRING|SELECTEDMEASURENAME|SELECTEDVALUE|SIGN|SIN|SINH|SQRT|SQRTPI|STARTOFMONTH|STARTOFQUARTER|STARTOFYEAR|STDEV\.P|STDEV\.S|STDEVX\.P|STDEVX\.S|SUBSTITUTE|SUBSTITUTEWITHINDEX|SUM|SUMMARIZE|SUMMARIZECOLUMNS|SUMX|SWITCH|T\.DIST|T\.DIST\.2T|T\.DIST\.RT|T\.INV|T\.INV\.2T|TAN|TANH|TIME|TIMEVALUE|TODAY|TOPN|TOPNPERLEVEL|TOPNSKIP|TOTALMTD|TOTALQTD|TOTALYTD|TREATAS|TRIM|TRUE|TRUNC|UNICHAR|UNICODE|UNION|UPPER|USERELATIONSHIP|USERNAME|USEROBJECTID|USERPRINCIPALNAME|UTCNOW|UTCTODAY|VALUE|VALUES|VAR\.P|VAR\.S|VARX\.P|VARX\.S|WEEKDAY|WEEKNUM|XIRR|XNPV|YEAR|YEARFRAC)(?=\s*\()/i, 'keyword': /\b(?:DEFINE|MEASURE|EVALUATE|ORDER\s+BY|RETURN|VAR|START\s+AT|ASC|DESC)\b/i, 'boolean': { pattern: /\b(?:TRUE|FALSE|NULL)\b/i, alias: 'constant' }, 'number': /\b\d+(?:\.\d*)?|\B\.\d+\b/i, 'operator': /:=|[-+*\/=^]|&&?|\|\||<(?:=>?|<|>)?|>[>=]?|\b(?:IN|NOT)\b/i, 'punctuation': /[;\[\](){}`,.]/ }; /***/ }), /***/ 2657: /***/ (function() { // ABNF grammar: // https://github.com/dhall-lang/dhall-lang/blob/master/standard/dhall.abnf Prism.languages.dhall = { // Multi-line comments can be nested. E.g. {- foo {- bar -} -} // The multi-line pattern is essentially this: // \{-(?:[^-{]|-(?!\})|\{(?!-)|)*-\} 'comment': /--.*|\{-(?:[^-{]|-(?!\})|\{(?!-)|\{-(?:[^-{]|-(?!\})|\{(?!-))*-\})*-\}/, 'string': { pattern: /"(?:[^"\\]|\\.)*"|''(?:[^']|'(?!')|'''|''\$\{)*''(?!'|\$)/, greedy: true, inside: { 'interpolation': { pattern: /\$\{[^{}]*\}/, inside: { 'expression': { pattern: /(^\$\{)[\s\S]+(?=\}$)/, lookbehind: true, alias: 'language-dhall', inside: null // see blow }, 'punctuation': /\$\{|\}/ } } } }, 'label': { pattern: /`[^`]*`/, greedy: true }, 'url': { // https://github.com/dhall-lang/dhall-lang/blob/5fde8ef1bead6fb4e999d3c1ffe7044cd019d63a/standard/dhall.abnf#L596 pattern: /\bhttps?:\/\/[\w.:%!$&'*+;=@~-]+(?:\/[\w.:%!$&'*+;=@~-]*)*(?:\?[/?\w.:%!$&'*+;=@~-]*)?/, greedy: true }, 'env': { // https://github.com/dhall-lang/dhall-lang/blob/5fde8ef1bead6fb4e999d3c1ffe7044cd019d63a/standard/dhall.abnf#L661 pattern: /\benv:(?:(?!\d)\w+|"(?:[^"\\=]|\\.)*")/, greedy: true, inside: { 'function': /^env/, 'operator': /^:/, 'variable': /[\s\S]+/ } }, 'hash': { // https://github.com/dhall-lang/dhall-lang/blob/5fde8ef1bead6fb4e999d3c1ffe7044cd019d63a/standard/dhall.abnf#L725 pattern: /\bsha256:[\da-fA-F]{64}\b/, inside: { 'function': /sha256/, 'operator': /:/, 'number': /[\da-fA-F]{64}/ } }, // https://github.com/dhall-lang/dhall-lang/blob/5fde8ef1bead6fb4e999d3c1ffe7044cd019d63a/standard/dhall.abnf#L359 'keyword': /\b(?:as|assert|else|forall|if|in|let|merge|missing|then|toMap|using|with)\b|\u2200/, 'builtin': /\b(?:Some|None)\b/, 'boolean': /\b(?:False|True)\b/, 'number': /\bNaN\b|-?\bInfinity\b|[+-]?\b(?:0x[\da-fA-F]+|\d+(?:\.\d+)?(?:e[+-]?\d+)?)\b/, 'operator': /\/\\|\/\/\\\\|&&|\|\||[!=]=|===|\/\/|->|\+\+|::|[+*#@=:?<>|\\\u2227\u2a53\u2261\u2afd\u03bb\u2192]/, 'punctuation': /\.\.|[{}\[\](),./]/, // we'll just assume that every capital word left is a type name 'class-name': /\b[A-Z]\w*\b/ }; Prism.languages.dhall.string.inside.interpolation.inside.expression.inside = Prism.languages.dhall; /***/ }), /***/ 7973: /***/ (function() { (function (Prism) { Prism.languages.diff = { 'coord': [ // Match all kinds of coord lines (prefixed by "+++", "---" or "***"). /^(?:\*{3}|-{3}|\+{3}).*$/m, // Match "@@ ... @@" coord lines in unified diff. /^@@.*@@$/m, // Match coord lines in normal diff (starts with a number). /^\d.*$/m ] // deleted, inserted, unchanged, diff }; /** * A map from the name of a block to its line prefix. * * @type {Object} */ var PREFIXES = { 'deleted-sign': '-', 'deleted-arrow': '<', 'inserted-sign': '+', 'inserted-arrow': '>', 'unchanged': ' ', 'diff': '!', }; // add a token for each prefix Object.keys(PREFIXES).forEach(function (name) { var prefix = PREFIXES[name]; var alias = []; if (!/^\w+$/.test(name)) { // "deleted-sign" -> "deleted" alias.push(/\w+/.exec(name)[0]); } if (name === "diff") { alias.push("bold"); } Prism.languages.diff[name] = { pattern: RegExp('^(?:[' + prefix + '].*(?:\r\n?|\n|(?![\\s\\S])))+', 'm'), alias: alias, inside: { 'line': { pattern: /(.)(?=[\s\S]).*(?:\r\n?|\n)?/, lookbehind: true }, 'prefix': { pattern: /[\s\S]/, alias: /\w+/.exec(name)[0] } } }; }); // make prefixes available to Diff plugin Object.defineProperty(Prism.languages.diff, 'PREFIXES', { value: PREFIXES }); }(Prism)); /***/ }), /***/ 6044: /***/ (function() { // Django/Jinja2 syntax definition for Prism.js syntax highlighter. // Mostly it works OK but can paint code incorrectly on complex html/template tag combinations. (function (Prism) { Prism.languages.django = { 'comment': /^{#[\s\S]*?#}$/, 'tag': { pattern: /(^{%[+-]?\s*)\w+/, lookbehind: true, alias: 'keyword' }, 'delimiter': { pattern: /^{[{%][+-]?|[+-]?[}%]}$/, alias: 'punctuation' }, 'string': { pattern: /("|')(?:\\.|(?!\1)[^\\\r\n])*\1/, greedy: true }, 'filter': { pattern: /(\|)\w+/, lookbehind: true, alias: 'function' }, 'test': { pattern: /(\bis\s+(?:not\s+)?)(?!not\b)\w+/, lookbehind: true, alias: 'function' }, 'function': /\b[a-z_]\w+(?=\s*\()/i, 'keyword': /\b(?:and|as|by|else|for|if|import|in|is|loop|not|or|recursive|with|without)\b/, 'operator': /[-+*/%=]=?|!=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/, 'number': /\b\d+(?:\.\d+)?\b/, 'boolean': /[Tt]rue|[Ff]alse|[Nn]one/, 'variable': /\b\w+?\b/, 'punctuation': /[{}[\](),.:;]/ }; var pattern = /{{[\s\S]*?}}|{%[\s\S]*?%}|{#[\s\S]*?#}/g; var markupTemplating = Prism.languages['markup-templating']; Prism.hooks.add('before-tokenize', function (env) { markupTemplating.buildPlaceholders(env, 'django', pattern); }); Prism.hooks.add('after-tokenize', function (env) { markupTemplating.tokenizePlaceholders(env, 'django'); }); // Add an Jinja2 alias Prism.languages.jinja2 = Prism.languages.django; Prism.hooks.add('before-tokenize', function (env) { markupTemplating.buildPlaceholders(env, 'jinja2', pattern); }); Prism.hooks.add('after-tokenize', function (env) { markupTemplating.tokenizePlaceholders(env, 'jinja2'); }); })(Prism); /***/ }), /***/ 2803: /***/ (function() { Prism.languages['dns-zone-file'] = { 'comment': /;.*/, 'string': { pattern: /"(?:\\.|[^"\\\r\n])*"/, greedy: true }, 'variable': [ { pattern: /(^\$ORIGIN[ \t]+)\S+/m, lookbehind: true, }, { pattern: /(^|\s)@(?=\s|$)/, lookbehind: true, } ], 'keyword': /^\$(?:ORIGIN|INCLUDE|TTL)(?=\s|$)/m, 'class': { // https://tools.ietf.org/html/rfc1035#page-13 pattern: /(^|\s)(?:IN|CH|CS|HS)(?=\s|$)/, lookbehind: true, alias: 'keyword' }, 'type': { // https://en.wikipedia.org/wiki/List_of_DNS_record_types pattern: /(^|\s)(?:A|A6|AAAA|AFSDB|APL|ATMA|CAA|CDNSKEY|CDS|CERT|CNAME|DHCID|DLV|DNAME|DNSKEY|DS|EID|GID|GPOS|HINFO|HIP|IPSECKEY|ISDN|KEY|KX|LOC|MAILA|MAILB|MB|MD|MF|MG|MINFO|MR|MX|NAPTR|NB|NBSTAT|NIMLOC|NINFO|NS|NSAP|NSAP-PTR|NSEC|NSEC3|NSEC3PARAM|NULL|NXT|OPENPGPKEY|PTR|PX|RKEY|RP|RRSIG|RT|SIG|SINK|SMIMEA|SOA|SPF|SRV|SSHFP|TA|TKEY|TLSA|TSIG|TXT|UID|UINFO|UNSPEC|URI|WKS|X25)(?=\s|$)/, lookbehind: true, alias: 'keyword' }, 'punctuation': /[()]/ }; Prism.languages['dns-zone'] = Prism.languages['dns-zone-file'] /***/ }), /***/ 4019: /***/ (function() { Prism.languages.docker = { 'keyword': { pattern: /(^\s*)(?:ADD|ARG|CMD|COPY|ENTRYPOINT|ENV|EXPOSE|FROM|HEALTHCHECK|LABEL|MAINTAINER|ONBUILD|RUN|SHELL|STOPSIGNAL|USER|VOLUME|WORKDIR)(?=\s)/mi, lookbehind: true }, 'string': /("|')(?:(?!\1)[^\\\r\n]|\\(?:\r\n|[\s\S]))*\1/, 'comment': { pattern: /#.*/, greedy: true }, 'punctuation': /---|\.\.\.|[:[\]{}\-,|>?]/ }; Prism.languages.dockerfile = Prism.languages.docker; /***/ }), /***/ 8912: /***/ (function() { Prism.languages.ebnf = { 'comment': /\(\*[\s\S]*?\*\)/, 'string': { pattern: /"[^"\r\n]*"|'[^'\r\n]*'/, greedy: true }, 'special': { pattern: /\?[^?\r\n]*\?/, greedy: true, alias: 'class-name' }, 'definition': { pattern: /^(\s*)[a-z]\w*(?:[ \t]+[a-z]\w*)*(?=\s*=)/im, lookbehind: true, alias: ['rule', 'keyword'] }, 'rule': /\b[a-z]\w*(?:[ \t]+[a-z]\w*)*\b/i, 'punctuation': /\([:/]|[:/]\)|[.,;()[\]{}]/, 'operator': /[-=|*/!]/ }; /***/ }), /***/ 2489: /***/ (function() { Prism.languages.editorconfig = { // https://editorconfig-specification.readthedocs.io/en/latest/ 'comment': /[;#].*/, 'section': { pattern: /(^[ \t]*)\[.+]/m, lookbehind: true, alias: 'keyword', inside: { 'regex': /\\\\[\[\]{},!?.*]/, // Escape special characters with '\\' 'operator': /[!?]|\.\.|\*{1,2}/, 'punctuation': /[\[\]{},]/ } }, 'property': { pattern: /(^[ \t]*)[^\s=]+(?=[ \t]*=)/m, lookbehind: true }, 'value': { pattern: /=.*/, alias: 'string', inside: { 'punctuation': /^=/ } } }; /***/ }), /***/ 6084: /***/ (function() { Prism.languages.eiffel = { 'comment': /--.*/, 'string': [ // Aligned-verbatim-strings { pattern: /"([^[]*)\[[\s\S]*?\]\1"/, greedy: true }, // Non-aligned-verbatim-strings { pattern: /"([^{]*)\{[\s\S]*?\}\1"/, greedy: true }, // Single-line string { pattern: /"(?:%(?:(?!\n)\s)*\n\s*%|%\S|[^%"\r\n])*"/, greedy: true } ], // normal char | special char | char code 'char': /'(?:%.|[^%'\r\n])+'/, 'keyword': /\b(?:across|agent|alias|all|and|attached|as|assign|attribute|check|class|convert|create|Current|debug|deferred|detachable|do|else|elseif|end|ensure|expanded|export|external|feature|from|frozen|if|implies|inherit|inspect|invariant|like|local|loop|not|note|obsolete|old|once|or|Precursor|redefine|rename|require|rescue|Result|retry|select|separate|some|then|undefine|until|variant|Void|when|xor)\b/i, 'boolean': /\b(?:True|False)\b/i, // Convention: class-names are always all upper-case characters 'class-name': { 'pattern': /\b[A-Z][\dA-Z_]*\b/, 'alias': 'builtin' }, 'number': [ // hexa | octal | bin /\b0[xcb][\da-f](?:_*[\da-f])*\b/i, // Decimal /(?:\b\d(?:_*\d)*)?\.(?:(?:\d(?:_*\d)*)?e[+-]?)?\d(?:_*\d)*\b|\b\d(?:_*\d)*\b\.?/i ], 'punctuation': /:=|<<|>>|\(\||\|\)|->|\.(?=\w)|[{}[\];(),:?]/, 'operator': /\\\\|\|\.\.\||\.\.|\/[~\/=]?|[><]=?|[-+*^=~]/ }; /***/ }), /***/ 32: /***/ (function() { (function (Prism) { Prism.languages.ejs = { 'delimiter': { pattern: /^<%[-_=]?|[-_]?%>$/, alias: 'punctuation' }, 'comment': /^#[\s\S]*/, 'language-javascript': { pattern: /[\s\S]+/, inside: Prism.languages.javascript } }; Prism.hooks.add('before-tokenize', function(env) { var ejsPattern = /<%(?!%)[\s\S]+?%>/g; Prism.languages['markup-templating'].buildPlaceholders(env, 'ejs', ejsPattern); }); Prism.hooks.add('after-tokenize', function(env) { Prism.languages['markup-templating'].tokenizePlaceholders(env, 'ejs'); }); Prism.languages.eta = Prism.languages.ejs; }(Prism)); /***/ }), /***/ 9375: /***/ (function() { Prism.languages.elixir = { 'comment': /#.*/m, // ~r"""foo""" (multi-line), ~r'''foo''' (multi-line), ~r/foo/, ~r|foo|, ~r"foo", ~r'foo', ~r(foo), ~r[foo], ~r{foo}, ~r 'regex': { pattern: /~[rR](?:("""|''')(?:\\[\s\S]|(?!\1)[^\\])+\1|([\/|"'])(?:\\.|(?!\2)[^\\\r\n])+\2|\((?:\\.|[^\\)\r\n])+\)|\[(?:\\.|[^\\\]\r\n])+\]|\{(?:\\.|[^\\}\r\n])+\}|<(?:\\.|[^\\>\r\n])+>)[uismxfr]*/, greedy: true }, 'string': [ { // ~s"""foo""" (multi-line), ~s'''foo''' (multi-line), ~s/foo/, ~s|foo|, ~s"foo", ~s'foo', ~s(foo), ~s[foo], ~s{foo} (with interpolation care), ~s pattern: /~[cCsSwW](?:("""|''')(?:\\[\s\S]|(?!\1)[^\\])+\1|([\/|"'])(?:\\.|(?!\2)[^\\\r\n])+\2|\((?:\\.|[^\\)\r\n])+\)|\[(?:\\.|[^\\\]\r\n])+\]|\{(?:\\.|#\{[^}]+\}|#(?!\{)|[^#\\}\r\n])+\}|<(?:\\.|[^\\>\r\n])+>)[csa]?/, greedy: true, inside: { // See interpolation below } }, { pattern: /("""|''')[\s\S]*?\1/, greedy: true, inside: { // See interpolation below } }, { // Multi-line strings are allowed pattern: /("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/, greedy: true, inside: { // See interpolation below } } ], 'atom': { // Look-behind prevents bad highlighting of the :: operator pattern: /(^|[^:]):\w+/, lookbehind: true, alias: 'symbol' }, // Look-ahead prevents bad highlighting of the :: operator 'attr-name': /\w+\??:(?!:)/, 'capture': { // Look-behind prevents bad highlighting of the && operator pattern: /(^|[^&])&(?:[^&\s\d()][^\s()]*|(?=\())/, lookbehind: true, alias: 'function' }, 'argument': { // Look-behind prevents bad highlighting of the && operator pattern: /(^|[^&])&\d+/, lookbehind: true, alias: 'variable' }, 'attribute': { pattern: /@\w+/, alias: 'variable' }, 'number': /\b(?:0[box][a-f\d_]+|\d[\d_]*)(?:\.[\d_]+)?(?:e[+-]?[\d_]+)?\b/i, 'keyword': /\b(?:after|alias|and|case|catch|cond|def(?:callback|exception|impl|module|p|protocol|struct)?|do|else|end|fn|for|if|import|not|or|require|rescue|try|unless|use|when)\b/, 'boolean': /\b(?:true|false|nil)\b/, 'operator': [ /\bin\b|&&?|\|[|>]?|\\\\|::|\.\.\.?|\+\+?|-[->]?|<[-=>]|>=|!==?|\B!|=(?:==?|[>~])?|[*\/^]/, { // We don't want to match << pattern: /([^<])<(?!<)/, lookbehind: true }, { // We don't want to match >> pattern: /([^>])>(?!>)/, lookbehind: true } ], 'punctuation': /<<|>>|[.,%\[\]{}()]/ }; Prism.languages.elixir.string.forEach(function(o) { o.inside = { 'interpolation': { pattern: /#\{[^}]+\}/, inside: { 'delimiter': { pattern: /^#\{|\}$/, alias: 'punctuation' }, rest: Prism.languages.elixir } } }; }); /***/ }), /***/ 886: /***/ (function() { Prism.languages.elm = { 'comment': /--.*|{-[\s\S]*?-}/, 'char': { pattern: /'(?:[^\\'\r\n]|\\(?:[abfnrtv\\']|\d+|x[0-9a-fA-F]+))'/, greedy: true }, 'string': [ { // Multiline strings are wrapped in triple ". Quotes may appear unescaped. pattern: /"""[\s\S]*?"""/, greedy: true }, { pattern: /"(?:[^\\"\r\n]|\\.)*"/, greedy: true } ], 'import-statement': { // The imported or hidden names are not included in this import // statement. This is because we want to highlight those exactly like // we do for the names in the program. pattern: /^\s*import\s+[A-Z]\w*(?:\.[A-Z]\w*)*(?:\s+as\s+(?:[A-Z]\w*)(?:\.[A-Z]\w*)*)?(?:\s+exposing\s+)?/m, inside: { 'keyword': /\b(?:import|as|exposing)\b/ } }, 'keyword': /\b(?:alias|as|case|else|exposing|if|in|infixl|infixr|let|module|of|then|type)\b/, // These are builtin variables only. Constructors are highlighted later as a constant. 'builtin': /\b(?:abs|acos|always|asin|atan|atan2|ceiling|clamp|compare|cos|curry|degrees|e|flip|floor|fromPolar|identity|isInfinite|isNaN|logBase|max|min|negate|never|not|pi|radians|rem|round|sin|sqrt|tan|toFloat|toPolar|toString|truncate|turns|uncurry|xor)\b/, // decimal integers and floating point numbers | hexadecimal integers 'number': /\b(?:\d+(?:\.\d+)?(?:e[+-]?\d+)?|0x[0-9a-f]+)\b/i, // Most of this is needed because of the meaning of a single '.'. // If it stands alone freely, it is the function composition. // It may also be a separator between a module name and an identifier => no // operator. If it comes together with other special characters it is an // operator too. // Valid operator characters in 0.18: +-/*=.$<>:&|^?%#@~! // Ref: https://groups.google.com/forum/#!msg/elm-dev/0AHSnDdkSkQ/E0SVU70JEQAJ 'operator': /\s\.\s|[+\-/*=.$<>:&|^?%#@~!]{2,}|[+\-/*=$<>:&|^?%#@~!]/, // In Elm, nearly everything is a variable, do not highlight these. 'hvariable': /\b(?:[A-Z]\w*\.)*[a-z]\w*\b/, 'constant': /\b(?:[A-Z]\w*\.)*[A-Z]\w*\b/, 'punctuation': /[{}[\]|(),.:]/ }; /***/ }), /***/ 9599: /***/ (function() { (function (Prism) { Prism.languages.erb = Prism.languages.extend('ruby', {}); Prism.languages.insertBefore('erb', 'comment', { 'delimiter': { pattern: /^<%=?|%>$/, alias: 'punctuation' } }); Prism.hooks.add('before-tokenize', function(env) { var erbPattern = /<%=?(?:[^\r\n]|[\r\n](?!=begin)|[\r\n]=begin\s[\s\S]*?^=end)+?%>/gm; Prism.languages['markup-templating'].buildPlaceholders(env, 'erb', erbPattern); }); Prism.hooks.add('after-tokenize', function(env) { Prism.languages['markup-templating'].tokenizePlaceholders(env, 'erb'); }); }(Prism)); /***/ }), /***/ 2442: /***/ (function() { Prism.languages.erlang = { 'comment': /%.+/, 'string': { pattern: /"(?:\\.|[^\\"\r\n])*"/, greedy: true }, 'quoted-function': { pattern: /'(?:\\.|[^\\'\r\n])+'(?=\()/, alias: 'function' }, 'quoted-atom': { pattern: /'(?:\\.|[^\\'\r\n])+'/, alias: 'atom' }, 'boolean': /\b(?:true|false)\b/, 'keyword': /\b(?:fun|when|case|of|end|if|receive|after|try|catch)\b/, 'number': [ /\$\\?./, /\d+#[a-z0-9]+/i, /(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i ], 'function': /\b[a-z][\w@]*(?=\()/, 'variable': { // Look-behind is used to prevent wrong highlighting of atoms containing "@" pattern: /(^|[^@])(?:\b|\?)[A-Z_][\w@]*/, lookbehind: true }, 'operator': [ /[=\/<>:]=|=[:\/]=|\+\+?|--?|[=*\/!]|\b(?:bnot|div|rem|band|bor|bxor|bsl|bsr|not|and|or|xor|orelse|andalso)\b/, { // We don't want to match << pattern: /(^|[^<])<(?!<)/, lookbehind: true }, { // We don't want to match >> pattern: /(^|[^>])>(?!>)/, lookbehind: true } ], 'atom': /\b[a-z][\w@]*/, 'punctuation': /[()[\]{}:;,.#|]|<<|>>/ }; /***/ }), /***/ 3062: /***/ (function() { (function (Prism) { Prism.languages.etlua = { 'delimiter': { pattern: /^<%[-=]?|-?%>$/, alias: 'punctuation' }, 'language-lua': { pattern: /[\s\S]+/, inside: Prism.languages.lua } }; Prism.hooks.add('before-tokenize', function (env) { var pattern = /<%[\s\S]+?%>/g; Prism.languages['markup-templating'].buildPlaceholders(env, 'etlua', pattern); }); Prism.hooks.add('after-tokenize', function (env) { Prism.languages['markup-templating'].tokenizePlaceholders(env, 'etlua'); }); }(Prism)); /***/ }), /***/ 9884: /***/ (function() { Prism.languages['excel-formula'] = { 'comment': { pattern: /(\bN\(\s*)"(?:[^"]|"")*"(?=\s*\))/i, lookbehind: true, greedy: true }, 'string': { pattern: /"(?:[^"]|"")*"(?!")/, greedy: true }, 'reference': { // https://www.ablebits.com/office-addins-blog/2015/12/08/excel-reference-another-sheet-workbook/ // Sales!B2 // 'Winter sales'!B2 // [Sales.xlsx]Jan!B2:B5 // D:\Reports\[Sales.xlsx]Jan!B2:B5 // '[Sales.xlsx]Jan sales'!B2:B5 // 'D:\Reports\[Sales.xlsx]Jan sales'!B2:B5 pattern: /(?:'[^']*'|(?:[^\s()[\]{}<>*?"';,$&]*\[[^^\s()[\]{}<>*?"']+\])?\w+)!/, greedy: true, alias: 'string', inside: { 'operator': /!$/, 'punctuation': /'/, 'sheet': { pattern: /[^[\]]+$/, alias: 'function' }, 'file': { pattern: /\[[^[\]]+\]$/, inside: { 'punctuation': /[[\]]/ } }, 'path': /[\s\S]+/ } }, 'function-name': { pattern: /\b[A-Z]\w*(?=\()/i, alias: 'keyword' }, 'range': { pattern: /\$?\b(?:[A-Z]+\$?\d+:\$?[A-Z]+\$?\d+|[A-Z]+:\$?[A-Z]+|\d+:\$?\d+)\b/i, alias: 'property', inside: { 'operator': /:/, 'cell': /\$?[A-Z]+\$?\d+/i, 'column': /\$?[A-Z]+/i, 'row': /\$?\d+/ } }, 'cell': { // Excel is case insensitive, so the string "foo1" could be either a variable or a cell. // To combat this, we match cells case insensitive, if the contain at least one "$", and case sensitive otherwise. pattern: /\b[A-Z]+\d+\b|\$[A-Za-z]+\$?\d+\b|\b[A-Za-z]+\$\d+\b/, alias: 'property' }, 'number': /(?:\b\d+(?:\.\d+)?|\B\.\d+)(?:e[+-]?\d+)?\b/i, 'boolean': /\b(?:TRUE|FALSE)\b/i, 'operator': /[-+*/^%=&,]|<[=>]?|>=?/, 'punctuation': /[[\]();{}|]/ }; Prism.languages['xlsx'] = Prism.languages['xls'] = Prism.languages['excel-formula']; /***/ }), /***/ 2630: /***/ (function() { (function (Prism) { var comment_inside = { 'function': /\b(?:TODOS?|FIX(?:MES?)?|NOTES?|BUGS?|XX+|HACKS?|WARN(?:ING)?|\?{2,}|!{2,})\b/ }; var string_inside = { 'number': /\\[^\s']|%\w/ }; var factor = { 'comment': [ { // ! single-line exclamation point comments with whitespace after/around the ! pattern: /(^|\s)(?:! .*|!$)/, lookbehind: true, inside: comment_inside }, /* from basis/multiline: */ { // /* comment */, /* comment*/ pattern: /(^|\s)\/\*\s[\s\S]*?\*\/(?=\s|$)/, lookbehind: true, greedy: true, inside: comment_inside }, { // ![[ comment ]] , ![===[ comment]===] pattern: /(^|\s)!\[(={0,6})\[\s[\s\S]*?\]\2\](?=\s|$)/, lookbehind: true, greedy: true, inside: comment_inside } ], 'number': [ { // basic base 10 integers 9, -9 pattern: /(^|\s)[+-]?\d+(?=\s|$)/, lookbehind: true }, { // base prefix integers 0b010 0o70 0xad 0d10 0XAD -0xa9 pattern: /(^|\s)[+-]?0(?:b[01]+|o[0-7]+|d\d+|x[\dA-F]+)(?=\s|$)/i, lookbehind: true }, { // fractional ratios 1/5 -1/5 and the literal float approximations 1/5. -1/5. pattern: /(^|\s)[+-]?\d+\/\d+\.?(?=\s|$)/, lookbehind: true }, { // positive mixed numbers 23+1/5 +23+1/5 pattern: /(^|\s)\+?\d+\+\d+\/\d+(?=\s|$)/, lookbehind: true }, { // negative mixed numbers -23-1/5 pattern: /(^|\s)-\d+-\d+\/\d+(?=\s|$)/, lookbehind: true }, { // basic decimal floats -0.01 0. .0 .1 -.1 -1. -12.13 +12.13 // and scientific notation with base 10 exponents 3e4 3e-4 .3e-4 pattern: /(^|\s)[+-]?(?:\d*\.\d+|\d+\.\d*|\d+)(?:e[+-]?\d+)?(?=\s|$)/i, lookbehind: true }, { // NAN literal syntax NAN: 80000deadbeef, NAN: a pattern: /(^|\s)NAN:\s+[\da-fA-F]+(?=\s|$)/, lookbehind: true }, { /* base prefix floats 0x1.0p3 (8.0) 0b1.010p2 (5.0) 0x1.p1 0b1.11111111p11111... "The normalized hex form ±0x1.MMMMMMMMMMMMM[pP]±EEEE allows any floating-point number to be specified precisely. The values of MMMMMMMMMMMMM and EEEE map directly to the mantissa and exponent fields of the binary IEEE 754 representation." */ pattern: /(^|\s)[+-]?0(?:b1\.[01]*|o1\.[0-7]*|d1\.\d*|x1\.[\dA-F]*)p\d+(?=\s|$)/i, lookbehind: true } ], // R/ regexp?\/\\/ 'regexp': { pattern: /(^|\s)R\/\s(?:\\\S|[^\\/])*\/(?:[idmsr]*|[idmsr]+-[idmsr]+)(?=\s|$)/, lookbehind: true, alias: 'number', inside: { 'variable': /\\\S/, 'keyword': /[+?*\[\]^$(){}.|]/, 'operator': { pattern: /(\/)[idmsr]+(?:-[idmsr]+)?/, lookbehind: true } } }, 'boolean': { pattern: /(^|\s)[tf](?=\s|$)/, lookbehind: true }, // SBUF" asd", URL" ://...", P" /etc/" 'custom-string': { pattern: /(^|\s)[A-Z0-9\-]+"\s(?:\\\S|[^"\\])*"/, lookbehind: true, greedy: true, alias: 'string', inside: { 'number': /\\\S|%\w|\// } }, 'multiline-string': [ { // STRING: name \n content \n ; -> CONSTANT: name "content" (symbol) pattern: /(^|\s)STRING:\s+\S+(?:\n|\r\n).*(?:\n|\r\n)\s*;(?=\s|$)/, lookbehind: true, greedy: true, alias: 'string', inside: { 'number': string_inside.number, // trailing semicolon on its own line 'semicolon-or-setlocal': { pattern: /((?:\n|\r\n)\s*);(?=\s|$)/, lookbehind: true, alias: 'function' } } }, { // HEREDOC: marker \n content \n marker ; -> "content" (immediate) pattern: /(^|\s)HEREDOC:\s+\S+(?:\n|\r\n).*(?:\n|\r\n)\s*\S+(?=\s|$)/, lookbehind: true, greedy: true, alias: 'string', inside: string_inside }, { // [[ string ]], [==[ string]==] pattern: /(^|\s)\[(={0,6})\[\s[\s\S]*?\]\2\](?=\s|$)/, lookbehind: true, greedy: true, alias: 'string', inside: string_inside } ], 'special-using': { pattern: /(^|\s)USING:(?:\s\S+)*(?=\s+;(?:\s|$))/, lookbehind: true, alias: 'function', inside: { // this is essentially a regex for vocab names, which i don't want to specify // but the USING: gets picked up as a vocab name 'string': { pattern: /(\s)[^:\s]+/, lookbehind: true } } }, /* this description of stack effect literal syntax is not complete and not as specific as theoretically possible trying to do better is more work and regex-computation-time than it's worth though. - we'd like to have the "delimiter" parts of the stack effect [ (, --, and ) ] be a different (less-important or comment-like) colour to the stack effect contents - we'd like if nested stack effects were treated as such rather than just appearing flat (with `inside`) - we'd like if the following variable name conventions were recognised specifically: special row variables = ..a b.. type and stack effect annotations end with a colon = ( quot: ( a: ( -- ) -- b ) -- x ), ( x: number -- ) word throws unconditional error = * any other word-like variable name = a ? q' etc https://docs.factorcode.org/content/article-effects.html these are pretty complicated to highlight properly without a real parser, and therefore out of scope the old pattern, which may be later useful, was: (^|\s)(?:call|execute|eval)?\((?:\s+[^"\r\n\t ]\S*)*?\s+--(?:\s+[^"\n\t ]\S*)*?\s+\)(?=\s|$) */ // current solution is not great 'stack-effect-delimiter': [ { // opening parenthesis pattern: /(^|\s)(?:call|execute|eval)?\((?=\s)/, lookbehind: true, alias: 'operator' }, { // middle -- pattern: /(\s)--(?=\s)/, lookbehind: true, alias: 'operator' }, { // closing parenthesis pattern: /(\s)\)(?=\s|$)/, lookbehind: true, alias: 'operator' } ], 'combinators': { pattern: null, lookbehind: true, alias: 'keyword' }, 'kernel-builtin': { pattern: null, lookbehind: true, alias: 'variable' }, 'sequences-builtin': { pattern: null, lookbehind: true, alias: 'variable' }, 'math-builtin': { pattern: null, lookbehind: true, alias: 'variable' }, 'constructor-word': { // but not <=> pattern: /(^|\s)<(?!=+>|-+>)\S+>(?=\s|$)/, lookbehind: true, alias: 'keyword' }, 'other-builtin-syntax': { pattern: null, lookbehind: true, alias: 'operator' }, /* full list of supported word naming conventions: (the convention appears outside of the [brackets]) set-[x] change-[x] with-[x] new-[x] >[string] [base]> [string]>[number] +[symbol]+ [boolean-word]? ?[of] [slot-reader]>> >>[slot-setter] [slot-writer]<< ([implementation-detail]) [mutater]! [variant]* [prettyprint]. $[help-markup] , SYNTAX:, etc are supported by their own patterns. `with` and `new` from `kernel` are their own builtins. see */ 'conventionally-named-word': { pattern: /(^|\s)(?!")(?:(?:set|change|with|new)-\S+|\$\S+|>[^>\s]+|[^:>\s]+>|[^>\s]+>[^>\s]+|\+[^+\s]+\+|[^?\s]+\?|\?[^?\s]+|[^>\s]+>>|>>[^>\s]+|[^<\s]+<<|\([^()\s]+\)|[^!\s]+!|[^*\s]\S*\*|[^.\s]\S*\.)(?=\s|$)/, lookbehind: true, alias: 'keyword' }, 'colon-syntax': { pattern: /(^|\s)(?:[A-Z0-9\-]+#?)?:{1,2}\s+(?:;\S+|(?!;)\S+)(?=\s|$)/, lookbehind: true, greedy: true, alias: 'function' }, 'semicolon-or-setlocal': { pattern: /(\s)(?:;|:>)(?=\s|$)/, lookbehind: true, alias: 'function' }, // do not highlight leading } or trailing X{ at the begin/end of the file as it's invalid syntax 'curly-brace-literal-delimiter': [ { // opening pattern: /(^|\s)[a-z]*\{(?=\s)/i, lookbehind: true, alias: 'operator' }, { // closing pattern: /(\s)\}(?=\s|$)/, lookbehind: true, alias: 'operator' }, ], // do not highlight leading ] or trailing [ at the begin/end of the file as it's invalid syntax 'quotation-delimiter': [ { // opening pattern: /(^|\s)\[(?=\s)/, lookbehind: true, alias: 'operator' }, { // closing pattern: /(\s)\](?=\s|$)/, lookbehind: true, alias: 'operator' }, ], 'normal-word': { pattern: /(^|\s)[^"\s]\S*(?=\s|$)/, lookbehind: true }, /* basic first-class string "a" with escaped double-quote "a\"" escaped backslash "\\" and general escapes since Factor has so many "\N" syntax that works in the reference implementation that isn't fully supported because it's an implementation detail: "string 1""string 2" -> 2 strings (works anyway) "string"5 -> string, 5 "string"[ ] -> string, quotation { "a"} -> array the rest of those examples all properly recognise the string, but not the other object (number, quotation, etc) this is fine for a regex-only implementation. */ 'string': { pattern: /"(?:\\\S|[^"\\])*"/, greedy: true, inside: string_inside } }; var escape = function (str) { return (str+'').replace(/([.?*+\^$\[\]\\(){}|\-])/g, '\\$1'); }; var arrToWordsRegExp = function (arr) { return new RegExp( '(^|\\s)(?:' + arr.map(escape).join('|') + ')(?=\\s|$)' ); }; var builtins = { 'kernel-builtin': [ 'or', '2nipd', '4drop', 'tuck', 'wrapper', 'nip', 'wrapper?', 'callstack>array', 'die', 'dupd', 'callstack', 'callstack?', '3dup', 'hashcode', 'pick', '4nip', 'build', '>boolean', 'nipd', 'clone', '5nip', 'eq?', '?', '=', 'swapd', '2over', 'clear', '2dup', 'get-retainstack', 'not', 'tuple?', 'dup', '3nipd', 'call', '-rotd', 'object', 'drop', 'assert=', 'assert?', '-rot', 'execute', 'boa', 'get-callstack', 'curried?', '3drop', 'pickd', 'overd', 'over', 'roll', '3nip', 'swap', 'and', '2nip', 'rotd', 'throw', '(clone)', 'hashcode*', 'spin', 'reach', '4dup', 'equal?', 'get-datastack', 'assert', '2drop', '', 'boolean?', 'identity-hashcode', 'identity-tuple?', 'null', 'composed?', 'new', '5drop', 'rot', '-roll', 'xor', 'identity-tuple', 'boolean' ], 'other-builtin-syntax': [ // syntax '=======', 'recursive', 'flushable', '>>', '<<<<<<', 'M\\', 'B', 'PRIVATE>', '\\', '======', 'final', 'inline', 'delimiter', 'deprecated', '>>>>>', '<<<<<<<', 'parse-complex', 'malformed-complex', 'read-only', '>>>>>>>', 'call-next-method', '<<', 'foldable', // literals '$', '$[', '${' ], 'sequences-builtin': [ 'member-eq?', 'mismatch', 'append', 'assert-sequence=', 'longer', 'repetition', 'clone-like', '3sequence', 'assert-sequence?', 'last-index-from', 'reversed', 'index-from', 'cut*', 'pad-tail', 'join-as', 'remove-eq!', 'concat-as', 'but-last', 'snip', 'nths', 'nth', 'sequence', 'longest', 'slice?', '', 'remove-nth', 'tail-slice', 'empty?', 'tail*', 'member?', 'virtual-sequence?', 'set-length', 'drop-prefix', 'iota', 'unclip', 'bounds-error?', 'unclip-last-slice', 'non-negative-integer-expected', 'non-negative-integer-expected?', 'midpoint@', 'longer?', '?set-nth', '?first', 'rest-slice', 'prepend-as', 'prepend', 'fourth', 'sift', 'subseq-start', 'new-sequence', '?last', 'like', 'first4', '1sequence', 'reverse', 'slice', 'virtual@', 'repetition?', 'set-last', 'index', '4sequence', 'max-length', 'set-second', 'immutable-sequence', 'first2', 'first3', 'supremum', 'unclip-slice', 'suffix!', 'insert-nth', 'tail', '3append', 'short', 'suffix', 'concat', 'flip', 'immutable?', 'reverse!', '2sequence', 'sum', 'delete-all', 'indices', 'snip-slice', '', 'check-slice', 'sequence?', 'head', 'append-as', 'halves', 'sequence=', 'collapse-slice', '?second', 'slice-error?', 'product', 'bounds-check?', 'bounds-check', 'immutable', 'virtual-exemplar', 'harvest', 'remove', 'pad-head', 'last', 'set-fourth', 'cartesian-product', 'remove-eq', 'shorten', 'shorter', 'reversed?', 'shorter?', 'shortest', 'head-slice', 'pop*', 'tail-slice*', 'but-last-slice', 'iota?', 'append!', 'cut-slice', 'new-resizable', 'head-slice*', 'sequence-hashcode', 'pop', 'set-nth', '?nth', 'second', 'join', 'immutable-sequence?', '', '3append-as', 'virtual-sequence', 'subseq?', 'remove-nth!', 'length', 'last-index', 'lengthen', 'assert-sequence', 'copy', 'move', 'third', 'first', 'tail?', 'set-first', 'prefix', 'bounds-error', '', 'exchange', 'surround', 'cut', 'min-length', 'set-third', 'push-all', 'head?', 'subseq-start-from', 'delete-slice', 'rest', 'sum-lengths', 'head*', 'infimum', 'remove!', 'glue', 'slice-error', 'subseq', 'push', 'replace-slice', 'subseq-as', 'unclip-last' ], 'math-builtin': [ 'number=', 'next-power-of-2', '?1+', 'fp-special?', 'imaginary-part', 'float>bits', 'number?', 'fp-infinity?', 'bignum?', 'fp-snan?', 'denominator', 'gcd', '*', '+', 'fp-bitwise=', '-', 'u>=', '/', '>=', 'bitand', 'power-of-2?', 'log2-expects-positive', 'neg?', '<', 'log2', '>', 'integer?', 'number', 'bits>double', '2/', 'zero?', 'bits>float', 'float?', 'shift', 'ratio?', 'rect>', 'even?', 'ratio', 'fp-sign', 'bitnot', '>fixnum', 'complex?', '/i', 'integer>fixnum', '/f', 'sgn', '>bignum', 'next-float', 'u<', 'u>', 'mod', 'recip', 'rational', '>float', '2^', 'integer', 'fixnum?', 'neg', 'fixnum', 'sq', 'bignum', '>rect', 'bit?', 'fp-qnan?', 'simple-gcd', 'complex', '', 'real', '>fraction', 'double>bits', 'bitor', 'rem', 'fp-nan-payload', 'real-part', 'log2-expects-positive?', 'prev-float', 'align', 'unordered?', 'float', 'fp-nan?', 'abs', 'bitxor', 'integer>fixnum-strict', 'u<=', 'odd?', '<=', '/mod', '>integer', 'real?', 'rational?', 'numerator' ] // that's all for now }; Object.keys(builtins).forEach(function (k) { factor[k].pattern = arrToWordsRegExp( builtins[k] ); }); var combinators = [ // kernel '2bi', 'while', '2tri', 'bi*', '4dip', 'both?', 'same?', 'tri@', 'curry', 'prepose', '3bi', '?if', 'tri*', '2keep', '3keep', 'curried', '2keepd', 'when', '2bi*', '2tri*', '4keep', 'bi@', 'keepdd', 'do', 'unless*', 'tri-curry', 'if*', 'loop', 'bi-curry*', 'when*', '2bi@', '2tri@', 'with', '2with', 'either?', 'bi', 'until', '3dip', '3curry', 'tri-curry*', 'tri-curry@', 'bi-curry', 'keepd', 'compose', '2dip', 'if', '3tri', 'unless', 'tuple', 'keep', '2curry', 'tri', 'most', 'while*', 'dip', 'composed', 'bi-curry@', // sequences 'find-last-from', 'trim-head-slice', 'map-as', 'each-from', 'none?', 'trim-tail', 'partition', 'if-empty', 'accumulate*', 'reject!', 'find-from', 'accumulate-as', 'collector-for-as', 'reject', 'map', 'map-sum', 'accumulate!', '2each-from', 'follow', 'supremum-by', 'map!', 'unless-empty', 'collector', 'padding', 'reduce-index', 'replicate-as', 'infimum-by', 'trim-tail-slice', 'count', 'find-index', 'filter', 'accumulate*!', 'reject-as', 'map-integers', 'map-find', 'reduce', 'selector', 'interleave', '2map', 'filter-as', 'binary-reduce', 'map-index-as', 'find', 'produce', 'filter!', 'replicate', 'cartesian-map', 'cartesian-each', 'find-index-from', 'map-find-last', '3map-as', '3map', 'find-last', 'selector-as', '2map-as', '2map-reduce', 'accumulate', 'each', 'each-index', 'accumulate*-as', 'when-empty', 'all?', 'collector-as', 'push-either', 'new-like', 'collector-for', '2selector', 'push-if', '2all?', 'map-reduce', '3each', 'any?', 'trim-slice', '2reduce', 'change-nth', 'produce-as', '2each', 'trim', 'trim-head', 'cartesian-find', 'map-index', // math 'if-zero', 'each-integer', 'unless-zero', '(find-integer)', 'when-zero', 'find-last-integer', '(all-integers?)', 'times', '(each-integer)', 'find-integer', 'all-integers?', // math.combinators 'unless-negative', 'if-positive', 'when-positive', 'when-negative', 'unless-positive', 'if-negative', // combinators 'case', '2cleave', 'cond>quot', 'case>quot', '3cleave', 'wrong-values', 'to-fixed-point', 'alist>quot', 'cond', 'cleave', 'call-effect', 'recursive-hashcode', 'spread', 'deep-spread>quot', // combinators.short-circuit '2||', '0||', 'n||', '0&&', '2&&', '3||', '1||', '1&&', 'n&&', '3&&', // combinators.smart 'smart-unless*', 'keep-inputs', 'reduce-outputs', 'smart-when*', 'cleave>array', 'smart-with', 'smart-apply', 'smart-if', 'inputs/outputs', 'output>sequence-n', 'map-outputs', 'map-reduce-outputs', 'dropping', 'output>array', 'smart-map-reduce', 'smart-2map-reduce', 'output>array-n', 'nullary', 'inputsequence', // tafn ]; factor.combinators.pattern = arrToWordsRegExp(combinators); Prism.languages.factor = factor; })(Prism); /***/ }), /***/ 5309: /***/ (function() { Prism.languages['firestore-security-rules'] = Prism.languages.extend('clike', { 'comment': /\/\/.*/, 'keyword': /\b(?:allow|function|if|match|null|return|rules_version|service)\b/, 'operator': /&&|\|\||[<>!=]=?|[-+*/%]|\b(?:in|is)\b/, }); delete Prism.languages['firestore-security-rules']['class-name']; Prism.languages.insertBefore('firestore-security-rules', 'keyword', { 'path': { pattern: /(^|[\s(),])(?:\/(?:[\w\xA0-\uFFFF]+|\{[\w\xA0-\uFFFF]+(?:=\*\*)?\}|\$\([\w\xA0-\uFFFF.]+\)))+/, lookbehind: true, greedy: true, inside: { 'variable': { pattern: /\{[\w\xA0-\uFFFF]+(?:=\*\*)?\}|\$\([\w\xA0-\uFFFF.]+\)/, inside: { 'operator': /=/, 'keyword': /\*\*/, 'punctuation': /[.$(){}]/ } }, 'punctuation': /[/]/ } }, 'method': { // to make the pattern shorter, the actual method names are omitted pattern: /(\ballow\s+)[a-z]+(?:\s*,\s*[a-z]+)*(?=\s*[:;])/, lookbehind: true, alias: 'builtin', inside: { 'punctuation': /,/ } }, }); /***/ }), /***/ 2081: /***/ (function() { (function (Prism) { Prism.languages.flow = Prism.languages.extend('javascript', {}); Prism.languages.insertBefore('flow', 'keyword', { 'type': [ { pattern: /\b(?:[Nn]umber|[Ss]tring|[Bb]oolean|Function|any|mixed|null|void)\b/, alias: 'tag' } ] }); Prism.languages.flow['function-variable'].pattern = /(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=\s*(?:function\b|(?:\([^()]*\)(?:\s*:\s*\w+)?|(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/i; delete Prism.languages.flow['parameter']; Prism.languages.insertBefore('flow', 'operator', { 'flow-punctuation': { pattern: /\{\||\|\}/, alias: 'punctuation' } }); if (!Array.isArray(Prism.languages.flow.keyword)) { Prism.languages.flow.keyword = [Prism.languages.flow.keyword]; } Prism.languages.flow.keyword.unshift( { pattern: /(^|[^$]\b)(?:type|opaque|declare|Class)\b(?!\$)/, lookbehind: true }, { pattern: /(^|[^$]\B)\$(?:await|Diff|Exact|Keys|ObjMap|PropertyType|Shape|Record|Supertype|Subtype|Enum)\b(?!\$)/, lookbehind: true } ); }(Prism)); /***/ }), /***/ 6186: /***/ (function() { Prism.languages.fortran = { 'quoted-number': { pattern: /[BOZ](['"])[A-F0-9]+\1/i, alias: 'number' }, 'string': { pattern: /(?:\w+_)?(['"])(?:\1\1|&(?:\r\n?|\n)(?:[ \t]*!.*(?:\r\n?|\n)|(?![ \t]*!))|(?!\1).)*(?:\1|&)/, inside: { 'comment': { pattern: /(&(?:\r\n?|\n)\s*)!.*/, lookbehind: true } } }, 'comment': { pattern: /!.*/, greedy: true }, 'boolean': /\.(?:TRUE|FALSE)\.(?:_\w+)?/i, 'number': /(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[ED][+-]?\d+)?(?:_\w+)?/i, 'keyword': [ // Types /\b(?:INTEGER|REAL|DOUBLE ?PRECISION|COMPLEX|CHARACTER|LOGICAL)\b/i, // END statements /\b(?:END ?)?(?:BLOCK ?DATA|DO|FILE|FORALL|FUNCTION|IF|INTERFACE|MODULE(?! PROCEDURE)|PROGRAM|SELECT|SUBROUTINE|TYPE|WHERE)\b/i, // Statements /\b(?:ALLOCATABLE|ALLOCATE|BACKSPACE|CALL|CASE|CLOSE|COMMON|CONTAINS|CONTINUE|CYCLE|DATA|DEALLOCATE|DIMENSION|DO|END|EQUIVALENCE|EXIT|EXTERNAL|FORMAT|GO ?TO|IMPLICIT(?: NONE)?|INQUIRE|INTENT|INTRINSIC|MODULE PROCEDURE|NAMELIST|NULLIFY|OPEN|OPTIONAL|PARAMETER|POINTER|PRINT|PRIVATE|PUBLIC|READ|RETURN|REWIND|SAVE|SELECT|STOP|TARGET|WHILE|WRITE)\b/i, // Others /\b(?:ASSIGNMENT|DEFAULT|ELEMENTAL|ELSE|ELSEWHERE|ELSEIF|ENTRY|IN|INCLUDE|INOUT|KIND|NULL|ONLY|OPERATOR|OUT|PURE|RECURSIVE|RESULT|SEQUENCE|STAT|THEN|USE)\b/i ], 'operator': [ /\*\*|\/\/|=>|[=\/]=|[<>]=?|::|[+\-*=%]|\.[A-Z]+\./i, { // Use lookbehind to prevent confusion with (/ /) pattern: /(^|(?!\().)\/(?!\))/, lookbehind: true } ], 'punctuation': /\(\/|\/\)|[(),;:&]/ }; /***/ }), /***/ 4250: /***/ (function() { Prism.languages.fsharp = Prism.languages.extend('clike', { 'comment': [ { pattern: /(^|[^\\])\(\*[\s\S]*?\*\)/, lookbehind: true }, { pattern: /(^|[^\\:])\/\/.*/, lookbehind: true } ], 'string': { pattern: /(?:"""[\s\S]*?"""|@"(?:""|[^"])*"|"(?:\\[\s\S]|[^\\"])*")B?|'(?:[^\\']|\\(?:.|\d{3}|x[a-fA-F\d]{2}|u[a-fA-F\d]{4}|U[a-fA-F\d]{8}))'B?/, greedy: true }, 'class-name': { pattern: /(\b(?:exception|inherit|interface|new|of|type)\s+|\w\s*:\s*|\s:\??>\s*)[.\w]+\b(?:\s*(?:->|\*)\s*[.\w]+\b)*(?!\s*[:.])/, lookbehind: true, inside: { 'operator': /->|\*/, 'punctuation': /\./ } }, 'keyword': /\b(?:let|return|use|yield)(?:!\B|\b)|\b(?:abstract|and|as|assert|base|begin|class|default|delegate|do|done|downcast|downto|elif|else|end|exception|extern|false|finally|for|fun|function|global|if|in|inherit|inline|interface|internal|lazy|match|member|module|mutable|namespace|new|not|null|of|open|or|override|private|public|rec|select|static|struct|then|to|true|try|type|upcast|val|void|when|while|with|asr|land|lor|lsl|lsr|lxor|mod|sig|atomic|break|checked|component|const|constraint|constructor|continue|eager|event|external|fixed|functor|include|method|mixin|object|parallel|process|protected|pure|sealed|tailcall|trait|virtual|volatile)\b/, 'number': [ /\b0x[\da-fA-F]+(?:un|lf|LF)?\b/, /\b0b[01]+(?:y|uy)?\b/, /(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[fm]|e[+-]?\d+)?\b/i, /\b\d+(?:[IlLsy]|u[lsy]?|UL)?\b/ ], 'operator': /([<>~&^])\1\1|([*.:<>&])\2|<-|->|[!=:]=|?|\??(?:<=|>=|<>|[-+*/%=<>])\??|[!?^&]|~[+~-]|:>|:\?>?/ }); Prism.languages.insertBefore('fsharp', 'keyword', { 'preprocessor': { pattern: /^[^\r\n\S]*#.*/m, alias: 'property', inside: { 'directive': { pattern: /(\s*#)\b(?:else|endif|if|light|line|nowarn)\b/, lookbehind: true, alias: 'keyword' } } } }); Prism.languages.insertBefore('fsharp', 'punctuation', { 'computation-expression': { pattern: /[_a-z]\w*(?=\s*\{)/i, alias: 'keyword' } }); Prism.languages.insertBefore('fsharp', 'string', { 'annotation': { pattern: /\[<.+?>\]/, inside: { 'punctuation': /^\[<|>\]$/, 'class-name': { pattern: /^\w+$|(^|;\s*)[A-Z]\w*(?=\()/, lookbehind: true }, 'annotation-content': { pattern: /[\s\S]+/, inside: Prism.languages.fsharp } } } }); /***/ }), /***/ 8463: /***/ (function() { (function (Prism) { // https://freemarker.apache.org/docs/dgui_template_exp.html // FTL expression with 4 levels of nesting supported var FTL_EXPR = /[^<()"']|\((?:)*\)|<(?!#--)|<#--(?:[^-]|-(?!->))*-->|"(?:[^\\"]|\\.)*"|'(?:[^\\']|\\.)*'/.source; for (var i = 0; i < 2; i++) { FTL_EXPR = FTL_EXPR.replace(//g, function () { return FTL_EXPR; }); } FTL_EXPR = FTL_EXPR.replace(//g, /[^\s\S]/.source); var ftl = { 'comment': /<#--[\s\S]*?-->/, 'string': [ { // raw string pattern: /\br("|')(?:(?!\1)[^\\]|\\.)*\1/, greedy: true }, { pattern: RegExp(/("|')(?:(?!\1|\$\{)[^\\]|\\.|\$\{(?:(?!\})(?:))*\})*\1/.source.replace(//g, function () { return FTL_EXPR; })), greedy: true, inside: { 'interpolation': { pattern: RegExp(/((?:^|[^\\])(?:\\\\)*)\$\{(?:(?!\})(?:))*\}/.source.replace(//g, function () { return FTL_EXPR; })), lookbehind: true, inside: { 'interpolation-punctuation': { pattern: /^\$\{|\}$/, alias: 'punctuation' }, rest: null } } } } ], 'keyword': /\b(?:as)\b/, 'boolean': /\b(?:true|false)\b/, 'builtin-function': { pattern: /((?:^|[^?])\?\s*)\w+/, lookbehind: true, alias: 'function' }, 'function': /\w+(?=\s*\()/, 'number': /\d+(?:\.\d+)?/, 'operator': /\.\.[<*!]?|->|--|\+\+|&&|\|\||\?{1,2}|[-+*/%!=<>]=?|\b(?:gt|gte|lt|lte)\b/, 'punctuation': /[,;.:()[\]{}]/ }; ftl.string[1].inside.interpolation.inside.rest = ftl; Prism.languages.ftl = { 'ftl-comment': { // the pattern is shortened to be more efficient pattern: /^<#--[\s\S]*/, alias: 'comment' }, 'ftl-directive': { pattern: /^<[\s\S]+>$/, inside: { 'directive': { pattern: /(^<\/?)[#@][a-z]\w*/i, lookbehind: true, alias: 'keyword' }, 'punctuation': /^<\/?|\/?>$/, 'content': { pattern: /\s*\S[\s\S]*/, alias: 'ftl', inside: ftl } } }, 'ftl-interpolation': { pattern: /^\$\{[\s\S]*\}$/, inside: { 'punctuation': /^\$\{|\}$/, 'content': { pattern: /\s*\S[\s\S]*/, alias: 'ftl', inside: ftl } } } }; Prism.hooks.add('before-tokenize', function (env) { var pattern = RegExp(/<#--[\s\S]*?-->|<\/?[#@][a-zA-Z](?:)*?>|\$\{(?:)*?\}/.source.replace(//g, function () { return FTL_EXPR; }), 'gi'); Prism.languages['markup-templating'].buildPlaceholders(env, 'ftl', pattern); }); Prism.hooks.add('after-tokenize', function (env) { Prism.languages['markup-templating'].tokenizePlaceholders(env, 'ftl'); }); }(Prism)); /***/ }), /***/ 6735: /***/ (function() { Prism.languages.gcode = { 'comment': /;.*|\B\(.*?\)\B/, 'string': { pattern: /"(?:""|[^"])*"/, greedy: true }, 'keyword': /\b[GM]\d+(?:\.\d+)?\b/, 'property': /\b[A-Z]/, 'checksum': { pattern: /\*\d+/, alias: 'punctuation' }, // T0:0:0 'punctuation': /:/ }; /***/ }), /***/ 4626: /***/ (function() { Prism.languages.gdscript = { 'comment': /#.*/, 'string': { pattern: /@?(?:("|')(?:(?!\1)[^\n\\]|\\[\s\S])*\1(?!"|')|"""(?:[^\\]|\\[\s\S])*?""")/, greedy: true }, 'class-name': { // class_name Foo, extends Bar, class InnerClass // export(int) var baz, export(int, 0) var i // as Node // const FOO: int = 9, var bar: bool = true // func add(reference: Item, amount: int) -> Item: pattern: /(^(?:class_name|class|extends)[ \t]+|^export\([ \t]*|\bas[ \t]+|(?:\b(?:const|var)[ \t]|[,(])[ \t]*\w+[ \t]*:[ \t]*|->[ \t]*)[a-zA-Z_]\w*/m, lookbehind: true }, 'keyword': /\b(?:and|as|assert|break|breakpoint|class|class_name|const|continue|elif|else|enum|export|extends|for|func|if|in|is|master|mastersync|match|not|null|onready|or|pass|preload|puppet|puppetsync|remote|remotesync|return|self|setget|signal|static|tool|var|while|yield)\b/, 'function': /[a-z_]\w*(?=[ \t]*\()/i, 'variable': /\$\w+/, 'number': [ /\b0b[01_]+\b|\b0x[\da-fA-F_]+\b|(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.[\d_]+)(?:e[+-]?[\d_]+)?\b/, /\b(?:INF|NAN|PI|TAU)\b/ ], 'constant': /\b[A-Z][A-Z_\d]*\b/, 'boolean': /\b(?:false|true)\b/, 'operator': /->|:=|&&|\|\||<<|>>|[-+*/%&|!<>=]=?|[~^]/, 'punctuation': /[.:,;()[\]{}]/ }; /***/ }), /***/ 9767: /***/ (function() { Prism.languages.gedcom = { 'line-value': { // Preceded by level, optional pointer, and tag pattern: /(^\s*\d+ +(?:@\w[\w!"$%&'()*+,\-./:;<=>?[\\\]^`{|}~\x80-\xfe #]*@ +)?\w+ ).+/m, lookbehind: true, inside: { 'pointer': { pattern: /^@\w[\w!"$%&'()*+,\-./:;<=>?[\\\]^`{|}~\x80-\xfe #]*@$/, alias: 'variable' } } }, 'tag': { // Preceded by level and optional pointer pattern: /(^\s*\d+ +(?:@\w[\w!"$%&'()*+,\-./:;<=>?[\\\]^`{|}~\x80-\xfe #]*@ +)?)\w+/m, lookbehind: true, alias: 'string' }, 'level': { pattern: /(^\s*)\d+/m, lookbehind: true, alias: 'number' }, 'pointer': { pattern: /@\w[\w!"$%&'()*+,\-./:;<=>?[\\\]^`{|}~\x80-\xfe #]*@/, alias: 'variable' } }; /***/ }), /***/ 7252: /***/ (function() { (function (Prism) { var tableRow = /(?:\r?\n|\r)[ \t]*\|.+\|(?:(?!\|).)*/.source; Prism.languages.gherkin = { 'pystring': { pattern: /("""|''')[\s\S]+?\1/, alias: 'string' }, 'comment': { pattern: /(^[ \t]*)#.*/m, lookbehind: true }, 'tag': { pattern: /(^[ \t]*)@\S*/m, lookbehind: true }, 'feature': { pattern: /((?:^|\r?\n|\r)[ \t]*)(?:Ability|Ahoy matey!|Arwedd|Aspekt|Besigheid Behoefte|Business Need|Caracteristica|Característica|Egenskab|Egenskap|Eiginleiki|Feature|Fīča|Fitur|Fonctionnalité|Fonksyonalite|Funcionalidade|Funcionalitat|Functionalitate|Funcţionalitate|Funcționalitate|Functionaliteit|Fungsi|Funkcia|Funkcija|Funkcionalitāte|Funkcionalnost|Funkcja|Funksie|Funktionalität|Funktionalitéit|Funzionalità|Hwaet|Hwæt|Jellemző|Karakteristik|laH|Lastnost|Mak|Mogucnost|Mogućnost|Moznosti|Možnosti|OH HAI|Omadus|Ominaisuus|Osobina|Özellik|perbogh|poQbogh malja'|Potrzeba biznesowa|Požadavek|Požiadavka|Pretty much|Qap|Qu'meH 'ut|Savybė|Tính năng|Trajto|Vermoë|Vlastnosť|Właściwość|Značilnost|Δυνατότητα|Λειτουργία|Могућност|Мөмкинлек|Особина|Свойство|Үзенчәлеклелек|Функционал|Функционалност|Функция|Функціонал|תכונה|خاصية|خصوصیت|صلاحیت|کاروبار کی ضرورت|وِیژگی|रूप लेख|ਖਾਸੀਅਤ|ਨਕਸ਼ ਨੁਹਾਰ|ਮੁਹਾਂਦਰਾ|గుణము|ಹೆಚ್ಚಳ|ความต้องการทางธุรกิจ|ความสามารถ|โครงหลัก|기능|フィーチャ|功能|機能):(?:[^:\r\n]+(?:\r?\n|\r|$))*/, lookbehind: true, inside: { 'important': { pattern: /(:)[^\r\n]+/, lookbehind: true }, 'keyword': /[^:\r\n]+:/ } }, 'scenario': { pattern: /(^[ \t]*)(?:Abstract Scenario|Abstrakt Scenario|Achtergrond|Aer|Ær|Agtergrond|All y'all|Antecedentes|Antecedents|Atburðarás|Atburðarásir|Awww, look mate|B4|Background|Baggrund|Bakgrund|Bakgrunn|Bakgrunnur|Beispiele|Beispiller|Bối cảnh|Cefndir|Cenario|Cenário|Cenario de Fundo|Cenário de Fundo|Cenarios|Cenários|Contesto|Context|Contexte|Contexto|Conto|Contoh|Contone|Dæmi|Dasar|Dead men tell no tales|Delineacao do Cenario|Delineação do Cenário|Dis is what went down|Dữ liệu|Dyagram senaryo|Dyagram Senaryo|Egzanp|Ejemplos|Eksempler|Ekzemploj|Enghreifftiau|Esbozo do escenario|Escenari|Escenario|Esempi|Esquema de l'escenari|Esquema del escenario|Esquema do Cenario|Esquema do Cenário|Examples|EXAMPLZ|Exempel|Exemple|Exemples|Exemplos|First off|Fono|Forgatókönyv|Forgatókönyv vázlat|Fundo|Geçmiş|ghantoH|Grundlage|Hannergrond|Háttér|Heave to|Istorik|Juhtumid|Keadaan|Khung kịch bản|Khung tình huống|Kịch bản|Koncept|Konsep skenario|Kontèks|Kontekst|Kontekstas|Konteksts|Kontext|Konturo de la scenaro|Latar Belakang|lut|lut chovnatlh|lutmey|Lýsing Atburðarásar|Lýsing Dæma|Menggariskan Senario|MISHUN|MISHUN SRSLY|mo'|Náčrt Scenára|Náčrt Scénáře|Náčrt Scenáru|Oris scenarija|Örnekler|Osnova|Osnova Scenára|Osnova scénáře|Osnutek|Ozadje|Paraugs|Pavyzdžiai|Példák|Piemēri|Plan du scénario|Plan du Scénario|Plan senaryo|Plan Senaryo|Plang vum Szenario|Pozadí|Pozadie|Pozadina|Príklady|Příklady|Primer|Primeri|Primjeri|Przykłady|Raamstsenaarium|Reckon it's like|Rerefons|Scenár|Scénář|Scenarie|Scenarij|Scenarijai|Scenarijaus šablonas|Scenariji|Scenārijs|Scenārijs pēc parauga|Scenarijus|Scenario|Scénario|Scenario Amlinellol|Scenario Outline|Scenario Template|Scenariomal|Scenariomall|Scenarios|Scenariu|Scenariusz|Scenaro|Schema dello scenario|Se ðe|Se the|Se þe|Senario|Senaryo|Senaryo deskripsyon|Senaryo Deskripsyon|Senaryo taslağı|Shiver me timbers|Situācija|Situai|Situasie|Situasie Uiteensetting|Skenario|Skenario konsep|Skica|Structura scenariu|Structură scenariu|Struktura scenarija|Stsenaarium|Swa|Swa hwaer swa|Swa hwær swa|Szablon scenariusza|Szenario|Szenariogrundriss|Tapaukset|Tapaus|Tapausaihio|Taust|Tausta|Template Keadaan|Template Senario|Template Situai|The thing of it is|Tình huống|Variantai|Voorbeelde|Voorbeelden|Wharrimean is|Yo\-ho\-ho|You'll wanna|Założenia|Παραδείγματα|Περιγραφή Σεναρίου|Σενάρια|Σενάριο|Υπόβαθρο|Кереш|Контекст|Концепт|Мисаллар|Мисоллар|Основа|Передумова|Позадина|Предистория|Предыстория|Приклади|Пример|Примери|Примеры|Рамка на сценарий|Скица|Структура сценарија|Структура сценария|Структура сценарію|Сценарий|Сценарий структураси|Сценарийның төзелеше|Сценарији|Сценарио|Сценарій|Тарих|Үрнәкләр|דוגמאות|רקע|תבנית תרחיש|תרחיש|الخلفية|الگوی سناریو|امثلة|پس منظر|زمینه|سناریو|سيناريو|سيناريو مخطط|مثالیں|منظر نامے کا خاکہ|منظرنامہ|نمونه ها|उदाहरण|परिदृश्य|परिदृश्य रूपरेखा|पृष्ठभूमि|ਉਦਾਹਰਨਾਂ|ਪਟਕਥਾ|ਪਟਕਥਾ ਢਾਂਚਾ|ਪਟਕਥਾ ਰੂਪ ਰੇਖਾ|ਪਿਛੋਕੜ|ఉదాహరణలు|కథనం|నేపథ్యం|సన్నివేశం|ಉದಾಹರಣೆಗಳು|ಕಥಾಸಾರಾಂಶ|ವಿವರಣೆ|ಹಿನ್ನೆಲೆ|โครงสร้างของเหตุการณ์|ชุดของตัวอย่าง|ชุดของเหตุการณ์|แนวคิด|สรุปเหตุการณ์|เหตุการณ์|배경|시나리오|시나리오 개요|예|サンプル|シナリオ|シナリオアウトライン|シナリオテンプレ|シナリオテンプレート|テンプレ|例|例子|剧本|剧本大纲|劇本|劇本大綱|场景|场景大纲|場景|場景大綱|背景):[^:\r\n]*/m, lookbehind: true, inside: { 'important': { pattern: /(:)[^\r\n]*/, lookbehind: true }, 'keyword': /[^:\r\n]+:/ } }, 'table-body': { // Look-behind is used to skip the table head, which has the same format as any table row pattern: RegExp('(' + tableRow + ')(?:' + tableRow + ')+'), lookbehind: true, inside: { 'outline': { pattern: /<[^>]+?>/, alias: 'variable' }, 'td': { pattern: /\s*[^\s|][^|]*/, alias: 'string' }, 'punctuation': /\|/ } }, 'table-head': { pattern: RegExp(tableRow), inside: { 'th': { pattern: /\s*[^\s|][^|]*/, alias: 'variable' }, 'punctuation': /\|/ } }, 'atrule': { pattern: /(^[ \t]+)(?:'ach|'a|'ej|7|a|A také|A taktiež|A tiež|A zároveň|Aber|Ac|Adott|Akkor|Ak|Aleshores|Ale|Ali|Allora|Alors|Als|Ama|Amennyiben|Amikor|Ampak|an|AN|Ananging|And y'all|And|Angenommen|Anrhegedig a|An|Apabila|Atès|Atesa|Atunci|Avast!|Aye|A|awer|Bagi|Banjur|Bet|Biết|Blimey!|Buh|But at the end of the day I reckon|But y'all|But|BUT|Cal|Când|Cando|Cand|Ce|Cuando|Če|Ða ðe|Ða|Dadas|Dada|Dados|Dado|DaH ghu' bejlu'|dann|Dann|Dano|Dan|Dar|Dat fiind|Data|Date fiind|Date|Dati fiind|Dati|Daţi fiind|Dați fiind|Dato|DEN|Den youse gotta|Dengan|De|Diberi|Diyelim ki|Donada|Donat|Donitaĵo|Do|Dun|Duota|Ðurh|Eeldades|Ef|Eğer ki|Entao|Então|Entón|Entonces|En|Epi|E|És|Etant donnée|Etant donné|Et|Étant données|Étant donnée|Étant donné|Etant données|Etant donnés|Étant donnés|Fakat|Gangway!|Gdy|Gegeben seien|Gegeben sei|Gegeven|Gegewe|ghu' noblu'|Gitt|Given y'all|Given|Givet|Givun|Ha|Cho|I CAN HAZ|In|Ir|It's just unbelievable|I|Ja|Jeśli|Jeżeli|Kadar|Kada|Kad|Kai|Kaj|Když|Keď|Kemudian|Ketika|Khi|Kiedy|Ko|Kuid|Kui|Kun|Lan|latlh|Le sa a|Let go and haul|Le|Lè sa a|Lè|Logo|Lorsqu'<|Lorsque|mä|Maar|Mais|Mając|Majd|Maka|Manawa|Mas|Ma|Menawa|Men|Mutta|Nalikaning|Nalika|Nanging|Når|När|Nato|Nhưng|Niin|Njuk|O zaman|Og|Och|Oletetaan|Onda|Ond|Oraz|Pak|Pero|Però|Podano|Pokiaľ|Pokud|Potem|Potom|Privzeto|Pryd|qaSDI'|Quando|Quand|Quan|Så|Sed|Se|Siis|Sipoze ke|Sipoze Ke|Sipoze|Si|Şi|Și|Soit|Stel|Tada|Tad|Takrat|Tak|Tapi|Ter|Tetapi|Tha the|Tha|Then y'all|Then|Thì|Thurh|Toda|Too right|ugeholl|Und|Un|Và|vaj|Vendar|Ve|wann|Wanneer|WEN|Wenn|When y'all|When|Wtedy|Wun|Y'know|Yeah nah|Yna|Youse know like when|Youse know when youse got|Y|Za predpokladu|Za předpokladu|Zadani|Zadano|Zadan|Zadate|Zadato|Zakładając|Zaradi|Zatati|Þa þe|Þa|Þá|Þegar|Þurh|Αλλά|Δεδομένου|Και|Όταν|Τότε|А також|Агар|Але|Али|Аммо|А|Әгәр|Әйтик|Әмма|Бирок|Ва|Вә|Дадено|Дано|Допустим|Если|Задате|Задати|Задато|И|І|К тому же|Када|Кад|Когато|Когда|Коли|Ләкин|Лекин|Нәтиҗәдә|Нехай|Но|Онда|Припустимо, що|Припустимо|Пусть|Также|Та|Тогда|Тоді|То|Унда|Һәм|Якщо|אבל|אזי|אז|בהינתן|וגם|כאשר|آنگاه|اذاً|اگر|اما|اور|با فرض|بالفرض|بفرض|پھر|تب|ثم|جب|عندما|فرض کیا|لكن|لیکن|متى|هنگامی|و|अगर|और|कदा|किन्तु|चूंकि|जब|तथा|तदा|तब|परन्तु|पर|यदि|ਅਤੇ|ਜਦੋਂ|ਜਿਵੇਂ ਕਿ|ਜੇਕਰ|ਤਦ|ਪਰ|అప్పుడు|ఈ పరిస్థితిలో|కాని|చెప్పబడినది|మరియు|ಆದರೆ|ನಂತರ|ನೀಡಿದ|ಮತ್ತು|ಸ್ಥಿತಿಯನ್ನು|กำหนดให้|ดังนั้น|แต่|เมื่อ|และ|그러면<|그리고<|단<|만약<|만일<|먼저<|조건<|하지만<|かつ<|しかし<|ただし<|ならば<|もし<|並且<|但し<|但是<|假如<|假定<|假設<|假设<|前提<|同时<|同時<|并且<|当<|當<|而且<|那么<|那麼<)(?=[ \t])/m, lookbehind: true }, 'string': { pattern: /"(?:\\.|[^"\\\r\n])*"|'(?:\\.|[^'\\\r\n])*'/, inside: { 'outline': { pattern: /<[^>]+?>/, alias: 'variable' } } }, 'outline': { pattern: /<[^>]+?>/, alias: 'variable' } }; }(Prism)); /***/ }), /***/ 1702: /***/ (function() { Prism.languages.git = { /* * A simple one line comment like in a git status command * For instance: * $ git status * # On branch infinite-scroll * # Your branch and 'origin/sharedBranches/frontendTeam/infinite-scroll' have diverged, * # and have 1 and 2 different commits each, respectively. * nothing to commit (working directory clean) */ 'comment': /^#.*/m, /* * Regexp to match the changed lines in a git diff output. Check the example below. */ 'deleted': /^[-–].*/m, 'inserted': /^\+.*/m, /* * a string (double and simple quote) */ 'string': /("|')(?:\\.|(?!\1)[^\\\r\n])*\1/m, /* * a git command. It starts with a random prompt finishing by a $, then "git" then some other parameters * For instance: * $ git add file.txt */ 'command': { pattern: /^.*\$ git .*$/m, inside: { /* * A git command can contain a parameter starting by a single or a double dash followed by a string * For instance: * $ git diff --cached * $ git log -p */ 'parameter': /\s--?\w+/m } }, /* * Coordinates displayed in a git diff command * For instance: * $ git diff * diff --git file.txt file.txt * index 6214953..1d54a52 100644 * --- file.txt * +++ file.txt * @@ -1 +1,2 @@ * -Here's my tetx file * +Here's my text file * +And this is the second line */ 'coord': /^@@.*@@$/m, /* * Match a "commit [SHA1]" line in a git log output. * For instance: * $ git log * commit a11a14ef7e26f2ca62d4b35eac455ce636d0dc09 * Author: lgiraudel * Date: Mon Feb 17 11:18:34 2014 +0100 * * Add of a new line */ 'commit-sha1': /^commit \w{40}$/m }; /***/ }), /***/ 7052: /***/ (function() { Prism.languages.glsl = Prism.languages.extend('c', { 'keyword': /\b(?:attribute|const|uniform|varying|buffer|shared|coherent|volatile|restrict|readonly|writeonly|atomic_uint|layout|centroid|flat|smooth|noperspective|patch|sample|break|continue|do|for|while|switch|case|default|if|else|subroutine|in|out|inout|float|double|int|void|bool|true|false|invariant|precise|discard|return|d?mat[234](?:x[234])?|[ibdu]?vec[234]|uint|lowp|mediump|highp|precision|[iu]?sampler[123]D|[iu]?samplerCube|sampler[12]DShadow|samplerCubeShadow|[iu]?sampler[12]DArray|sampler[12]DArrayShadow|[iu]?sampler2DRect|sampler2DRectShadow|[iu]?samplerBuffer|[iu]?sampler2DMS(?:Array)?|[iu]?samplerCubeArray|samplerCubeArrayShadow|[iu]?image[123]D|[iu]?image2DRect|[iu]?imageCube|[iu]?imageBuffer|[iu]?image[12]DArray|[iu]?imageCubeArray|[iu]?image2DMS(?:Array)?|struct|common|partition|active|asm|class|union|enum|typedef|template|this|resource|goto|inline|noinline|public|static|extern|external|interface|long|short|half|fixed|unsigned|superp|input|output|hvec[234]|fvec[234]|sampler3DRect|filter|sizeof|cast|namespace|using)\b/ }); /***/ }), /***/ 2940: /***/ (function() { Prism.languages.gamemakerlanguage = Prism.languages.gml = Prism.languages.extend('clike', { 'keyword': /\b(?:if|else|switch|case|default|break|for|repeat|while|do|until|continue|exit|return|globalvar|var|enum)\b/, 'number': /(?:\b0x[\da-f]+|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ulf]{0,4}/i, 'operator': /[-+%=]=?|!=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]|\b(?:or|and|not|with|at|xor)\b/, 'constant': /\b(?:self|other|all|noone|global|local|undefined|pointer_(?:invalid|null)|action_(?:stop|restart|continue|reverse)|pi|GM_build_date|GM_version|timezone_(?:local|utc)|gamespeed_(?:fps|microseconds)|ev_(?:create|destroy|step|alarm|keyboard|mouse|collision|other|draw|draw_(?:begin|end|pre|post)|keypress|keyrelease|trigger|(?:left|right|middle|no)_button|(?:left|right|middle)_press|(?:left|right|middle)_release|mouse_(?:enter|leave|wheel_up|wheel_down)|global_(?:left|right|middle)_button|global_(?:left|right|middle)_press|global_(?:left|right|middle)_release|joystick(?:1|2)_(?:left|right|up|down|button1|button2|button3|button4|button5|button6|button7|button8)|outside|boundary|game_start|game_end|room_start|room_end|no_more_lives|animation_end|end_of_path|no_more_health|user\d|step_(?:normal|begin|end)|gui|gui_begin|gui_end)|vk_(?:nokey|anykey|enter|return|shift|control|alt|escape|space|backspace|tab|pause|printscreen|left|right|up|down|home|end|delete|insert|pageup|pagedown|f\d|numpad\d|divide|multiply|subtract|add|decimal|lshift|lcontrol|lalt|rshift|rcontrol|ralt)|mb_(?:any|none|left|right|middle)|c_(?:aqua|black|blue|dkgray|fuchsia|gray|green|lime|ltgray|maroon|navy|olive|purple|red|silver|teal|white|yellow|orange)|fa_(?:left|center|right|top|middle|bottom|readonly|hidden|sysfile|volumeid|directory|archive)|pr_(?:pointlist|linelist|linestrip|trianglelist|trianglestrip|trianglefan)|bm_(?:complex|normal|add|max|subtract|zero|one|src_colour|inv_src_colour|src_color|inv_src_color|src_alpha|inv_src_alpha|dest_alpha|inv_dest_alpha|dest_colour|inv_dest_colour|dest_color|inv_dest_color|src_alpha_sat)|audio_(?:falloff_(?:none|inverse_distance|inverse_distance_clamped|linear_distance|linear_distance_clamped|exponent_distance|exponent_distance_clamped)|old_system|new_system|mono|stereo|3d)|cr_(?:default|none|arrow|cross|beam|size_nesw|size_ns|size_nwse|size_we|uparrow|hourglass|drag|appstart|handpoint|size_all)|spritespeed_framesper(?:second|gameframe)|asset_(?:object|unknown|sprite|sound|room|path|script|font|timeline|tiles|shader)|ds_type_(?:map|list|stack|queue|grid|priority)|ef_(?:explosion|ring|ellipse|firework|smoke|smokeup|star|spark|flare|cloud|rain|snow)|pt_shape_(?:pixel|disk|square|line|star|circle|ring|sphere|flare|spark|explosion|cloud|smoke|snow)|ps_(?:distr|shape)_(?:linear|gaussian|invgaussian|rectangle|ellipse|diamond|line)|ty_(?:real|string)|dll_(?:cdel|cdecl|stdcall)|matrix_(?:view|projection|world)|os_(?:win32|windows|macosx|ios|android|linux|unknown|winphone|win8native|psvita|ps4|xboxone|ps3|uwp)|browser_(?:not_a_browser|unknown|ie|firefox|chrome|safari|safari_mobile|opera|tizen|windows_store|ie_mobile)|device_ios_(?:unknown|iphone|iphone_retina|ipad|ipad_retina|iphone5|iphone6|iphone6plus)|device_(?:emulator|tablet)|display_(?:landscape|landscape_flipped|portrait|portrait_flipped)|of_challenge_(?:win|lose|tie)|leaderboard_type_(?:number|time_mins_secs)|cmpfunc_(?:never|less|equal|lessequal|greater|notequal|greaterequal|always)|cull_(?:noculling|clockwise|counterclockwise)|lighttype_(?:dir|point)|iap_(?:ev_storeload|ev_product|ev_purchase|ev_consume|ev_restore|storeload_ok|storeload_failed|status_uninitialised|status_unavailable|status_loading|status_available|status_processing|status_restoring|failed|unavailable|available|purchased|canceled|refunded)|fb_login_(?:default|fallback_to_webview|no_fallback_to_webview|forcing_webview|use_system_account|forcing_safari)|phy_joint_(?:anchor_1_x|anchor_1_y|anchor_2_x|anchor_2_y|reaction_force_x|reaction_force_y|reaction_torque|motor_speed|angle|motor_torque|max_motor_torque|translation|speed|motor_force|max_motor_force|length_1|length_2|damping_ratio|frequency|lower_angle_limit|upper_angle_limit|angle_limits|max_length|max_torque|max_force)|phy_debug_render_(?:aabb|collision_pairs|coms|core_shapes|joints|obb|shapes)|phy_particle_flag_(?:water|zombie|wall|spring|elastic|viscous|powder|tensile|colourmixing|colormixing)|phy_particle_group_flag_(?:solid|rigid)|phy_particle_data_flag_(?:typeflags|position|velocity|colour|color|category)|achievement_(?:our_info|friends_info|leaderboard_info|info|filter_(?:all_players|friends_only|favorites_only)|type_challenge|type_score_challenge|pic_loaded|show_(?:ui|profile|leaderboard|achievement|bank|friend_picker|purchase_prompt))|network_(?:socket_(?:tcp|udp|bluetooth)|type_(?:connect|disconnect|data|non_blocking_connect)|config_(?:connect_timeout|use_non_blocking_socket|enable_reliable_udp|disable_reliable_udp))|buffer_(?:fixed|grow|wrap|fast|vbuffer|network|u8|s8|u16|s16|u32|s32|u64|f16|f32|f64|bool|text|string|seek_start|seek_relative|seek_end|generalerror|outofspace|outofbounds|invalidtype)|gp_(?:face\d|shoulderl|shoulderr|shoulderlb|shoulderrb|select|start|stickl|stickr|padu|padd|padl|padr|axislh|axislv|axisrh|axisrv)|ov_(?:friends|community|players|settings|gamegroup|achievements)|lb_sort_(?:none|ascending|descending)|lb_disp_(?:none|numeric|time_sec|time_ms)|ugc_(?:result_success|filetype_(?:community|microtrans)|visibility_(?:public|friends_only|private)|query_RankedBy(?:Vote|PublicationDate|Trend|NumTimesReported|TotalVotesAsc|VotesUp|TextSearch)|query_(?:AcceptedForGameRankedByAcceptanceDate|FavoritedByFriendsRankedByPublicationDate|CreatedByFriendsRankedByPublicationDate|NotYetRated)|sortorder_CreationOrder(?:Desc|Asc)|sortorder_(?:TitleAsc|LastUpdatedDesc|SubscriptionDateDesc|VoteScoreDesc|ForModeration)|list_(?:Published|VotedOn|VotedUp|VotedDown|WillVoteLater|Favorited|Subscribed|UsedOrPlayed|Followed)|match_(?:Items|Items_Mtx|Items_ReadyToUse|Collections|Artwork|Videos|Screenshots|AllGuides|WebGuides|IntegratedGuides|UsableInGame|ControllerBindings))|vertex_usage_(?:position|colour|color|normal|texcoord|textcoord|blendweight|blendindices|psize|tangent|binormal|fog|depth|sample)|vertex_type_(?:float\d|colour|color|ubyte4)|layerelementtype_(?:undefined|background|instance|oldtilemap|sprite|tilemap|particlesystem|tile)|tile_(?:rotate|flip|mirror|index_mask)|input_type|se_(?:chorus|compressor|echo|equalizer|flanger|gargle|none|reverb)|text_type|(?:obj|scr|spr|rm)\w+)\b/, 'variable': /\b(?:x|y|(?:x|y)(?:previous|start)|(?:h|v)speed|direction|speed|friction|gravity|gravity_direction|path_(?:index|position|positionprevious|speed|scale|orientation|endaction)|object_index|id|solid|persistent|mask_index|instance_(?:count|id)|alarm|timeline_(?:index|position|speed|running|loop)|visible|sprite_(?:index|width|height|xoffset|yoffset)|image_(?:number|index|speed|depth|xscale|yscale|angle|alpha|blend)|bbox_(?:left|right|top|bottom)|layer|phy_(?:rotation|(?:position|linear_velocity|speed|com|collision|col_normal)_(?:x|y)|angular_(?:velocity|damping)|position_(?:x|y)previous|speed|linear_damping|bullet|fixed_rotation|active|mass|inertia|dynamic|kinematic|sleeping|collision_points)|working_directory|webgl_enabled|view_(?:(?:y|x|w|h)view|(?:y|x|w|h)port|(?:v|h)(?:speed|border)|visible|surface_id|object|enabled|current|angle)|undefined|transition_(?:steps|kind|color)|temp_directory|show_(?:score|lives|health)|secure_mode|score|room_(?:width|speed|persistent|last|height|first|caption)|room|pointer_(?:null|invalid)|os_(?:version|type|device|browser)|mouse_(?:y|x|lastbutton|button)|lives|keyboard_(?:string|lastkey|lastchar|key)|iap_data|health|gamemaker_(?:version|registered|pro)|game_(?:save|project|display)_(?:id|name)|fps_real|fps|event_(?:type|object|number|action)|error_(?:occurred|last)|display_aa|delta_time|debug_mode|cursor_sprite|current_(?:year|weekday|time|second|month|minute|hour|day)|caption_(?:score|lives|health)|browser_(?:width|height)|background_(?:yscale|y|xscale|x|width|vtiled|vspeed|visible|showcolour|showcolor|index|htiled|hspeed|height|foreground|colour|color|blend|alpha)|async_load|application_surface|argument(?:_relitive|_count|\d)|argument|global|local|self|other)\b/ }); /***/ }), /***/ 5586: /***/ (function() { Prism.languages.go = Prism.languages.extend('clike', { 'string': { pattern: /(["'`])(?:\\[\s\S]|(?!\1)[^\\])*\1/, greedy: true }, 'keyword': /\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/, 'boolean': /\b(?:_|iota|nil|true|false)\b/, 'number': /(?:\b0x[a-f\d]+|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[-+]?\d+)?)i?/i, 'operator': /[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./, 'builtin': /\b(?:bool|byte|complex(?:64|128)|error|float(?:32|64)|rune|string|u?int(?:8|16|32|64)?|uintptr|append|cap|close|complex|copy|delete|imag|len|make|new|panic|print(?:ln)?|real|recover)\b/ }); delete Prism.languages.go['class-name']; /***/ }), /***/ 6546: /***/ (function() { Prism.languages.graphql = { 'comment': /#.*/, 'description': { pattern: /(?:"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*")(?=\s*[a-z_])/i, greedy: true, alias: 'string', inside: { 'language-markdown': { pattern: /(^"(?:"")?)(?!\1)[\s\S]+(?=\1$)/, lookbehind: true, inside: Prism.languages.markdown } } }, 'string': { pattern: /"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*"/, greedy: true }, 'number': /(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i, 'boolean': /\b(?:true|false)\b/, 'variable': /\$[a-z_]\w*/i, 'directive': { pattern: /@[a-z_]\w*/i, alias: 'function' }, 'attr-name': { pattern: /[a-z_]\w*(?=\s*(?:\((?:[^()"]|"(?:\\.|[^\\"\r\n])*")*\))?:)/i, greedy: true }, 'class-name': { pattern: /(\b(?:enum|implements|interface|on|scalar|type|union)\s+|&\s*)[a-zA-Z_]\w*/, lookbehind: true }, 'fragment': { pattern: /(\bfragment\s+|\.{3}\s*(?!on\b))[a-zA-Z_]\w*/, lookbehind: true, alias: 'function' }, 'keyword': /\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\b/, 'operator': /[!=|&]|\.{3}/, 'punctuation': /[!(){}\[\]:=,]/, 'constant': /\b(?!ID\b)[A-Z][A-Z_\d]*\b/ }; /***/ }), /***/ 6215: /***/ (function() { Prism.languages.groovy = Prism.languages.extend('clike', { 'string': [ { // https://groovy-lang.org/syntax.html#_dollar_slashy_string pattern: /("""|''')(?:[^\\]|\\[\s\S])*?\1|\$\/(?:[^/$]|\$(?:[/$]|(?![/$]))|\/(?!\$))*\/\$/, greedy: true }, { // TODO: Slash strings (e.g. /foo/) can contain line breaks but this will cause a lot of trouble with // simple division (see JS regex), so find a fix maybe? pattern: /(["'/])(?:\\.|(?!\1)[^\\\r\n])*\1/, greedy: true } ], 'keyword': /\b(?:as|def|in|abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|native|new|package|private|protected|public|return|short|static|strictfp|super|switch|synchronized|this|throw|throws|trait|transient|try|void|volatile|while)\b/, 'number': /\b(?:0b[01_]+|0x[\da-f_]+(?:\.[\da-f_p\-]+)?|[\d_]+(?:\.[\d_]+)?(?:e[+-]?[\d]+)?)[glidf]?\b/i, 'operator': { pattern: /(^|[^.])(?:~|==?~?|\?[.:]?|\*(?:[.=]|\*=?)?|\.[@&]|\.\.<|\.\.(?!\.)|-[-=>]?|\+[+=]?|!=?|<(?:<=?|=>?)?|>(?:>>?=?|=)?|&[&=]?|\|[|=]?|\/=?|\^=?|%=?)/, lookbehind: true }, 'punctuation': /\.+|[{}[\];(),:$]/ }); Prism.languages.insertBefore('groovy', 'string', { 'shebang': { pattern: /#!.+/, alias: 'comment' } }); Prism.languages.insertBefore('groovy', 'punctuation', { 'spock-block': /\b(?:setup|given|when|then|and|cleanup|expect|where):/ }); Prism.languages.insertBefore('groovy', 'function', { 'annotation': { pattern: /(^|[^.])@\w+/, lookbehind: true, alias: 'punctuation' } }); // Handle string interpolation Prism.hooks.add('wrap', function(env) { if (env.language === 'groovy' && env.type === 'string') { var delimiter = env.content[0]; if (delimiter != "'") { var pattern = /([^\\])(?:\$(?:\{.*?\}|[\w.]+))/; if (delimiter === '$') { pattern = /([^\$])(?:\$(?:\{.*?\}|[\w.]+))/; } // To prevent double HTML-encoding we have to decode env.content first env.content = env.content.replace(/</g, '<').replace(/&/g, '&'); env.content = Prism.highlight(env.content, { 'expression': { pattern: pattern, lookbehind: true, inside: Prism.languages.groovy } }); env.classes.push(delimiter === '/' ? 'regex' : 'gstring'); } } }); /***/ }), /***/ 8689: /***/ (function() { /* TODO Handle multiline code after tag %foo= some | multiline | code | */ (function(Prism) { Prism.languages.haml = { // Multiline stuff should appear before the rest 'multiline-comment': { pattern: /((?:^|\r?\n|\r)([\t ]*))(?:\/|-#).*(?:(?:\r?\n|\r)\2[\t ].+)*/, lookbehind: true, alias: 'comment' }, 'multiline-code': [ { pattern: /((?:^|\r?\n|\r)([\t ]*)(?:[~-]|[&!]?=)).*,[\t ]*(?:(?:\r?\n|\r)\2[\t ].*,[\t ]*)*(?:(?:\r?\n|\r)\2[\t ].+)/, lookbehind: true, inside: Prism.languages.ruby }, { pattern: /((?:^|\r?\n|\r)([\t ]*)(?:[~-]|[&!]?=)).*\|[\t ]*(?:(?:\r?\n|\r)\2[\t ].*\|[\t ]*)*/, lookbehind: true, inside: Prism.languages.ruby } ], // See at the end of the file for known filters 'filter': { pattern: /((?:^|\r?\n|\r)([\t ]*)):[\w-]+(?:(?:\r?\n|\r)(?:\2[\t ].+|\s*?(?=\r?\n|\r)))+/, lookbehind: true, inside: { 'filter-name': { pattern: /^:[\w-]+/, alias: 'variable' } } }, 'markup': { pattern: /((?:^|\r?\n|\r)[\t ]*)<.+/, lookbehind: true, inside: Prism.languages.markup }, 'doctype': { pattern: /((?:^|\r?\n|\r)[\t ]*)!!!(?: .+)?/, lookbehind: true }, 'tag': { // Allows for one nested group of braces pattern: /((?:^|\r?\n|\r)[\t ]*)[%.#][\w\-#.]*[\w\-](?:\([^)]+\)|\{(?:\{[^}]+\}|[^{}])+\}|\[[^\]]+\])*[\/<>]*/, lookbehind: true, inside: { 'attributes': [ { // Lookbehind tries to prevent interpolations from breaking it all // Allows for one nested group of braces pattern: /(^|[^#])\{(?:\{[^}]+\}|[^{}])+\}/, lookbehind: true, inside: Prism.languages.ruby }, { pattern: /\([^)]+\)/, inside: { 'attr-value': { pattern: /(=\s*)(?:"(?:\\.|[^\\"\r\n])*"|[^)\s]+)/, lookbehind: true }, 'attr-name': /[\w:-]+(?=\s*!?=|\s*[,)])/, 'punctuation': /[=(),]/ } }, { pattern: /\[[^\]]+\]/, inside: Prism.languages.ruby } ], 'punctuation': /[<>]/ } }, 'code': { pattern: /((?:^|\r?\n|\r)[\t ]*(?:[~-]|[&!]?=)).+/, lookbehind: true, inside: Prism.languages.ruby }, // Interpolations in plain text 'interpolation': { pattern: /#\{[^}]+\}/, inside: { 'delimiter': { pattern: /^#\{|\}$/, alias: 'punctuation' }, rest: Prism.languages.ruby } }, 'punctuation': { pattern: /((?:^|\r?\n|\r)[\t ]*)[~=\-&!]+/, lookbehind: true } }; var filter_pattern = '((?:^|\\r?\\n|\\r)([\\t ]*)):{{filter_name}}(?:(?:\\r?\\n|\\r)(?:\\2[\\t ].+|\\s*?(?=\\r?\\n|\\r)))+'; // Non exhaustive list of available filters and associated languages var filters = [ 'css', {filter:'coffee',language:'coffeescript'}, 'erb', 'javascript', 'less', 'markdown', 'ruby', 'scss', 'textile' ]; var all_filters = {}; for (var i = 0, l = filters.length; i < l; i++) { var filter = filters[i]; filter = typeof filter === 'string' ? {filter: filter, language: filter} : filter; if (Prism.languages[filter.language]) { all_filters['filter-' + filter.filter] = { pattern: RegExp(filter_pattern.replace('{{filter_name}}', function () { return filter.filter; })), lookbehind: true, inside: { 'filter-name': { pattern: /^:[\w-]+/, alias: 'variable' }, rest: Prism.languages[filter.language] } } } } Prism.languages.insertBefore('haml', 'filter', all_filters); }(Prism)); /***/ }), /***/ 1223: /***/ (function() { (function(Prism) { Prism.languages.handlebars = { 'comment': /\{\{![\s\S]*?\}\}/, 'delimiter': { pattern: /^\{\{\{?|\}\}\}?$/i, alias: 'punctuation' }, 'string': /(["'])(?:\\.|(?!\1)[^\\\r\n])*\1/, 'number': /\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee][+-]?\d+)?/, 'boolean': /\b(?:true|false)\b/, 'block': { pattern: /^(\s*(?:~\s*)?)[#\/]\S+?(?=\s*(?:~\s*)?$|\s)/i, lookbehind: true, alias: 'keyword' }, 'brackets': { pattern: /\[[^\]]+\]/, inside: { punctuation: /\[|\]/, variable: /[\s\S]+/ } }, 'punctuation': /[!"#%&':()*+,.\/;<=>@\[\\\]^`{|}~]/, 'variable': /[^!"#%&'()*+,\/;<=>@\[\\\]^`{|}~\s]+/ }; Prism.hooks.add('before-tokenize', function(env) { var handlebarsPattern = /\{\{\{[\s\S]+?\}\}\}|\{\{[\s\S]+?\}\}/g; Prism.languages['markup-templating'].buildPlaceholders(env, 'handlebars', handlebarsPattern); }); Prism.hooks.add('after-tokenize', function(env) { Prism.languages['markup-templating'].tokenizePlaceholders(env, 'handlebars'); }); }(Prism)); /***/ }), /***/ 1234: /***/ (function() { Prism.languages.haskell = { 'comment': { pattern: /(^|[^-!#$%*+=?&@|~.:<>^\\\/])(?:--(?:(?=.)[^-!#$%*+=?&@|~.:<>^\\\/].*|$)|{-[\s\S]*?-})/m, lookbehind: true }, 'char': { pattern: /'(?:[^\\']|\\(?:[abfnrtv\\"'&]|\^[A-Z@[\]^_]|NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|\d+|o[0-7]+|x[0-9a-fA-F]+))'/, alias: 'string' }, 'string': { pattern: /"(?:[^\\"]|\\(?:\S|\s+\\))*"/, greedy: true }, 'keyword': /\b(?:case|class|data|deriving|do|else|if|in|infixl|infixr|instance|let|module|newtype|of|primitive|then|type|where)\b/, 'import-statement': { // The imported or hidden names are not included in this import // statement. This is because we want to highlight those exactly like // we do for the names in the program. pattern: /(^\s*)import\s+(?:qualified\s+)?(?:[A-Z][\w']*)(?:\.[A-Z][\w']*)*(?:\s+as\s+(?:[A-Z][\w']*)(?:\.[A-Z][\w']*)*)?(?:\s+hiding\b)?/m, lookbehind: true, inside: { 'keyword': /\b(?:import|qualified|as|hiding)\b/ } }, // These are builtin variables only. Constructors are highlighted later as a constant. 'builtin': /\b(?:abs|acos|acosh|all|and|any|appendFile|approxRational|asTypeOf|asin|asinh|atan|atan2|atanh|basicIORun|break|catch|ceiling|chr|compare|concat|concatMap|const|cos|cosh|curry|cycle|decodeFloat|denominator|digitToInt|div|divMod|drop|dropWhile|either|elem|encodeFloat|enumFrom|enumFromThen|enumFromThenTo|enumFromTo|error|even|exp|exponent|fail|filter|flip|floatDigits|floatRadix|floatRange|floor|fmap|foldl|foldl1|foldr|foldr1|fromDouble|fromEnum|fromInt|fromInteger|fromIntegral|fromRational|fst|gcd|getChar|getContents|getLine|group|head|id|inRange|index|init|intToDigit|interact|ioError|isAlpha|isAlphaNum|isAscii|isControl|isDenormalized|isDigit|isHexDigit|isIEEE|isInfinite|isLower|isNaN|isNegativeZero|isOctDigit|isPrint|isSpace|isUpper|iterate|last|lcm|length|lex|lexDigits|lexLitChar|lines|log|logBase|lookup|map|mapM|mapM_|max|maxBound|maximum|maybe|min|minBound|minimum|mod|negate|not|notElem|null|numerator|odd|or|ord|otherwise|pack|pi|pred|primExitWith|print|product|properFraction|putChar|putStr|putStrLn|quot|quotRem|range|rangeSize|read|readDec|readFile|readFloat|readHex|readIO|readInt|readList|readLitChar|readLn|readOct|readParen|readSigned|reads|readsPrec|realToFrac|recip|rem|repeat|replicate|return|reverse|round|scaleFloat|scanl|scanl1|scanr|scanr1|seq|sequence|sequence_|show|showChar|showInt|showList|showLitChar|showParen|showSigned|showString|shows|showsPrec|significand|signum|sin|sinh|snd|sort|span|splitAt|sqrt|subtract|succ|sum|tail|take|takeWhile|tan|tanh|threadToIOResult|toEnum|toInt|toInteger|toLower|toRational|toUpper|truncate|uncurry|undefined|unlines|until|unwords|unzip|unzip3|userError|words|writeFile|zip|zip3|zipWith|zipWith3)\b/, // decimal integers and floating point numbers | octal integers | hexadecimal integers 'number': /\b(?:\d+(?:\.\d+)?(?:e[+-]?\d+)?|0o[0-7]+|0x[0-9a-f]+)\b/i, // Most of this is needed because of the meaning of a single '.'. // If it stands alone freely, it is the function composition. // It may also be a separator between a module name and an identifier => no // operator. If it comes together with other special characters it is an // operator too. 'operator': /\s\.\s|[-!#$%*+=?&@|~:<>^\\\/]*\.[-!#$%*+=?&@|~.:<>^\\\/]+|[-!#$%*+=?&@|~.:<>^\\\/]+\.[-!#$%*+=?&@|~:<>^\\\/]*|[-!#$%*+=?&@|~:<>^\\\/]+|`(?:[A-Z][\w']*\.)*[_a-z][\w']*`/, // In Haskell, nearly everything is a variable, do not highlight these. 'hvariable': /\b(?:[A-Z][\w']*\.)*[_a-z][\w']*\b/, 'constant': /\b(?:[A-Z][\w']*\.)*[A-Z][\w']*\b/, 'punctuation': /[{}[\];(),.:]/ }; Prism.languages.hs = Prism.languages.haskell; /***/ }), /***/ 8537: /***/ (function() { Prism.languages.haxe = Prism.languages.extend('clike', { // Strings can be multi-line 'string': { pattern: /(["'])(?:(?!\1)[^\\]|\\[\s\S])*\1/, greedy: true, inside: { 'interpolation': { pattern: /(^|[^\\])\$(?:\w+|\{[^}]+\})/, lookbehind: true, inside: { 'interpolation': { pattern: /^\$\w*/, alias: 'variable' } // See rest below } } } }, // The final look-ahead prevents highlighting of keywords if expressions such as "haxe.macro.Expr" 'keyword': /\bthis\b|\b(?:abstract|as|break|case|cast|catch|class|continue|default|do|dynamic|else|enum|extends|extern|from|for|function|if|implements|import|in|inline|interface|macro|new|null|override|public|private|return|static|super|switch|throw|to|try|typedef|using|var|while)(?!\.)\b/, 'operator': /\.{3}|\+\+?|-[->]?|[=!]=?|&&?|\|\|?|<[<=]?|>[>=]?|[*\/%~^]/ }); Prism.languages.insertBefore('haxe', 'class-name', { 'regex': { pattern: /~\/(?:[^\/\\\r\n]|\\.)+\/[igmsu]*/, greedy: true } }); Prism.languages.insertBefore('haxe', 'keyword', { 'preprocessor': { pattern: /#\w+/, alias: 'builtin' }, 'metadata': { pattern: /@:?\w+/, alias: 'symbol' }, 'reification': { pattern: /\$(?:\w+|(?=\{))/, alias: 'variable' } }); Prism.languages.haxe['string'].inside['interpolation'].inside.rest = Prism.languages.haxe; delete Prism.languages.haxe['class-name']; /***/ }), /***/ 280: /***/ (function() { Prism.languages.hcl = { 'comment': /(?:\/\/|#).*|\/\*[\s\S]*?(?:\*\/|$)/, 'heredoc': { pattern: /<<-?(\w+\b)[\s\S]*?^[ \t]*\1/m, greedy: true, alias: 'string' }, 'keyword': [ { pattern: /(?:resource|data)\s+(?:"(?:\\[\s\S]|[^\\"])*")(?=\s+"[\w-]+"\s+{)/i, inside: { 'type': { pattern: /(resource|data|\s+)(?:"(?:\\[\s\S]|[^\\"])*")/i, lookbehind: true, alias: 'variable' } } }, { pattern: /(?:provider|provisioner|variable|output|module|backend)\s+(?:[\w-]+|"(?:\\[\s\S]|[^\\"])*")\s+(?={)/i, inside: { 'type': { pattern: /(provider|provisioner|variable|output|module|backend)\s+(?:[\w-]+|"(?:\\[\s\S]|[^\\"])*")\s+/i, lookbehind: true, alias: 'variable' } } }, /[\w-]+(?=\s+{)/ ], 'property': [ /[\w-\.]+(?=\s*=(?!=))/, /"(?:\\[\s\S]|[^\\"])+"(?=\s*[:=])/, ], 'string': { pattern: /"(?:[^\\$"]|\\[\s\S]|\$(?:(?=")|\$+(?!\$)|[^"${])|\$\{(?:[^{}"]|"(?:[^\\"]|\\[\s\S])*")*\})*"/, greedy: true, inside: { 'interpolation': { pattern: /(^|[^$])\$\{(?:[^{}"]|"(?:[^\\"]|\\[\s\S])*")*\}/, lookbehind: true, inside: { 'type': { pattern: /(\b(?:terraform|var|self|count|module|path|data|local)\b\.)[\w\*]+/i, lookbehind: true, alias: 'variable' }, 'keyword': /\b(?:terraform|var|self|count|module|path|data|local)\b/i, 'function': /\w+(?=\()/, 'string': { pattern: /"(?:\\[\s\S]|[^\\"])*"/, greedy: true, }, 'number': /\b0x[\da-f]+\b|\b\d+(?:\.\d*)?(?:e[+-]?\d+)?/i, 'punctuation': /[!\$#%&'()*+,.\/;<=>@\[\\\]^`{|}~?:]/, } }, } }, 'number': /\b0x[\da-f]+\b|\b\d+(?:\.\d*)?(?:e[+-]?\d+)?/i, 'boolean': /\b(?:true|false)\b/i, 'punctuation': /[=\[\]{}]/, }; /***/ }), /***/ 2926: /***/ (function() { Prism.languages.hlsl = Prism.languages.extend('c', { // Regarding keywords and class names: // The list of all keywords was split into 'keyword' and 'class-name' tokens based on whether they are capitalized. // https://docs.microsoft.com/en-us/windows/win32/direct3dhlsl/dx-graphics-hlsl-appendix-keywords // https://docs.microsoft.com/en-us/windows/win32/direct3dhlsl/dx-graphics-hlsl-appendix-reserved-words 'class-name': [ Prism.languages.c['class-name'], /\b(?:AppendStructuredBuffer|BlendState|Buffer|ByteAddressBuffer|CompileShader|ComputeShader|ConsumeStructuredBuffer|DepthStencilState|DepthStencilView|DomainShader|GeometryShader|Hullshader|InputPatch|LineStream|OutputPatch|PixelShader|PointStream|RasterizerState|RenderTargetView|RWBuffer|RWByteAddressBuffer|RWStructuredBuffer|RWTexture(?:1D|1DArray|2D|2DArray|3D)|SamplerComparisonState|SamplerState|StructuredBuffer|Texture(?:1D|1DArray|2D|2DArray|2DMS|2DMSArray|3D|Cube|CubeArray)|TriangleStream|VertexShader)\b/ ], 'keyword': [ // HLSL keyword /\b(?:asm|asm_fragment|auto|break|case|catch|cbuffer|centroid|char|class|column_major|compile|compile_fragment|const|const_cast|continue|default|delete|discard|do|dynamic_cast|else|enum|explicit|export|extern|for|friend|fxgroup|goto|groupshared|if|in|inline|inout|interface|line|lineadj|linear|long|matrix|mutable|namespace|new|nointerpolation|noperspective|operator|out|packoffset|pass|pixelfragment|point|precise|private|protected|public|register|reinterpret_cast|return|row_major|sample|sampler|shared|short|signed|sizeof|snorm|stateblock|stateblock_state|static|static_cast|string|struct|switch|tbuffer|technique|technique10|technique11|template|texture|this|throw|triangle|triangleadj|try|typedef|typename|uniform|union|unorm|unsigned|using|vector|vertexfragment|virtual|void|volatile|while)\b/, // scalar, vector, and matrix types /\b(?:bool|double|dword|float|half|int|min(?:10float|12int|16(?:float|int|uint))|uint)(?:[1-4](?:x[1-4])?)?\b/ ], // https://docs.microsoft.com/en-us/windows/win32/direct3dhlsl/dx-graphics-hlsl-appendix-grammar#floating-point-numbers 'number': /(?:(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[eE][+-]?\d+)?|\b0x[\da-fA-F]+)[fFhHlLuU]?\b/, 'boolean': /\b(?:false|true)\b/ }); /***/ }), /***/ 4807: /***/ (function() { /** * Original by Scott Helme. * * Reference: https://scotthelme.co.uk/hpkp-cheat-sheet/ */ Prism.languages.hpkp = { 'directive': { pattern: /\b(?:(?:includeSubDomains|preload|strict)(?: |;)|pin-sha256="[a-zA-Z\d+=/]+"|(?:max-age|report-uri)=|report-to )/, alias: 'keyword' }, 'safe': { pattern: /\b\d{7,}\b/, alias: 'selector' }, 'unsafe': { pattern: /\b\d{1,6}\b/, alias: 'function' } }; /***/ }), /***/ 9400: /***/ (function() { /** * Original by Scott Helme. * * Reference: https://scotthelme.co.uk/hsts-cheat-sheet/ */ Prism.languages.hsts = { 'directive': { pattern: /\b(?:max-age=|includeSubDomains|preload)/, alias: 'keyword' }, 'safe': { pattern: /\b\d{8,}\b/, alias: 'selector' }, 'unsafe': { pattern: /\b\d{1,7}\b/, alias: 'function' } }; /***/ }), /***/ 4326: /***/ (function() { (function (Prism) { Prism.languages.http = { 'request-line': { pattern: /^(?:POST|GET|PUT|DELETE|OPTIONS|PATCH|TRACE|CONNECT)\s(?:https?:\/\/|\/)\S+\sHTTP\/[0-9.]+/m, inside: { // HTTP Verb 'property': /^(?:POST|GET|PUT|DELETE|OPTIONS|PATCH|TRACE|CONNECT)\b/, // Path or query argument 'attr-name': /:\w+/ } }, 'response-status': { pattern: /^HTTP\/1.[01] \d.*/m, inside: { // Status, e.g. 200 OK 'property': { pattern: /(^HTTP\/1.[01] )\d.*/i, lookbehind: true } } }, // HTTP header name 'header-name': { pattern: /^[\w-]+:(?=.)/m, alias: 'keyword' } }; // Create a mapping of Content-Type headers to language definitions var langs = Prism.languages; var httpLanguages = { 'application/javascript': langs.javascript, 'application/json': langs.json || langs.javascript, 'application/xml': langs.xml, 'text/xml': langs.xml, 'text/html': langs.html, 'text/css': langs.css }; // Declare which types can also be suffixes var suffixTypes = { 'application/json': true, 'application/xml': true }; /** * Returns a pattern for the given content type which matches it and any type which has it as a suffix. * * @param {string} contentType * @returns {string} */ function getSuffixPattern(contentType) { var suffix = contentType.replace(/^[a-z]+\//, ''); var suffixPattern = '\\w+/(?:[\\w.-]+\\+)+' + suffix + '(?![+\\w.-])'; return '(?:' + contentType + '|' + suffixPattern + ')'; } // Insert each content type parser that has its associated language // currently loaded. var options; for (var contentType in httpLanguages) { if (httpLanguages[contentType]) { options = options || {}; var pattern = suffixTypes[contentType] ? getSuffixPattern(contentType) : contentType; options[contentType.replace(/\//g, '-')] = { pattern: RegExp('(content-type:\\s*' + pattern + '.*)(?:\\r?\\n|\\r){2}[\\s\\S]*', 'i'), lookbehind: true, inside: httpLanguages[contentType] }; } } if (options) { Prism.languages.insertBefore('http', 'header-name', options); } }(Prism)); /***/ }), /***/ 877: /***/ (function() { // according to the offical reference (EN) // https://ichigojam.net/IchigoJam-en.html Prism.languages.ichigojam = { 'comment': /(?:\B'|REM)(?:[^\n\r]*)/i, 'string': { pattern: /"(?:""|[!#$%&'()*,\/:;<=>?^_ +\-.A-Z\d])*"/i, greedy: true }, 'number': /\B#[0-9A-F]+|\B`[01]+|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:E[+-]?\d+)?/i, 'keyword': /\b(?:BEEP|BPS|CASE|CLEAR|CLK|CLO|CLP|CLS|CLT|CLV|CONT|COPY|ELSE|END|FILE|FILES|FOR|GOSUB|GSB|GOTO|IF|INPUT|KBD|LED|LET|LIST|LOAD|LOCATE|LRUN|NEW|NEXT|OUT|RIGHT|PLAY|POKE|PRINT|PWM|REM|RENUM|RESET|RETURN|RTN|RUN|SAVE|SCROLL|SLEEP|SRND|STEP|STOP|SUB|TEMPO|THEN|TO|UART|VIDEO|WAIT)(?:\$|\b)/i, 'function': /\b(?:ABS|ANA|ASC|BIN|BTN|DEC|END|FREE|HELP|HEX|I2CR|I2CW|IN|INKEY|LEN|LINE|PEEK|RND|SCR|SOUND|STR|TICK|USR|VER|VPEEK|ZER)(?:\$|\b)/i, 'label': /(?:\B@[^\s]+)/i, 'operator': /<[=>]?|>=?|\|\||&&|[+\-*\/=|&^~!]|\b(?:AND|NOT|OR)\b/i, 'punctuation': /[\[,;:()\]]/ }; /***/ }), /***/ 8651: /***/ (function() { Prism.languages.icon = { 'comment': /#.*/, 'string': { pattern: /(["'])(?:(?!\1)[^\\\r\n_]|\\.|_(?!\1)(?:\r\n|[\s\S]))*\1/, greedy: true }, 'number': /\b(?:\d+r[a-z\d]+|\d+(?:\.\d+)?(?:e[+-]?\d+)?)\b|\.\d+\b/i, 'builtin-keyword': { pattern: /&(?:allocated|ascii|clock|collections|cset|current|date|dateline|digits|dump|e|error(?:number|text|value)?|errout|fail|features|file|host|input|lcase|letters|level|line|main|null|output|phi|pi|pos|progname|random|regions|source|storage|subject|time|trace|ucase|version)\b/, alias: 'variable' }, 'directive': { pattern: /\$\w+/, alias: 'builtin' }, 'keyword': /\b(?:break|by|case|create|default|do|else|end|every|fail|global|if|initial|invocable|link|local|next|not|of|procedure|record|repeat|return|static|suspend|then|to|until|while)\b/, 'function': /(?!\d)\w+(?=\s*[({]|\s*!\s*\[)/, 'operator': /[+-]:(?!=)|(?:[\/?@^%&]|\+\+?|--?|==?=?|~==?=?|\*\*?|\|\|\|?|<(?:->?|>?=?)(?::=)?|:(?:=:?)?|[!.\\|~]/, 'punctuation': /[\[\](){},;]/ }; /***/ }), /***/ 7014: /***/ (function() { Prism.languages.iecst = { 'comment': [ { pattern: /(^|[^\\])(?:\/\*[\s\S]*?(?:\*\/|$)|\(\*[\s\S]*?(?:\*\)|$)|\{[\s\S]*?(?:\}|$))/, lookbehind: true, }, { pattern: /(^|[^\\:])\/\/.*/, lookbehind: true, greedy: true, }, ], 'string': { pattern: /(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/, greedy: true, }, 'class-name': /\b(?:END_)?(?:PROGRAM|CONFIGURATION|INTERFACE|FUNCTION_BLOCK|FUNCTION|ACTION|TRANSITION|TYPE|STRUCT|(?:INITIAL_)?STEP|NAMESPACE|LIBRARY|CHANNEL|FOLDER|RESOURCE|VAR_(?:GLOBAL|INPUT|PUTPUT|IN_OUT|ACCESS|TEMP|EXTERNAL|CONFIG)|VAR|METHOD|PROPERTY)\b/i, 'keyword': /\b(?:(?:END_)?(?:IF|WHILE|REPEAT|CASE|FOR)|ELSE|FROM|THEN|ELSIF|DO|TO|BY|PRIVATE|PUBLIC|PROTECTED|CONSTANT|RETURN|EXIT|CONTINUE|GOTO|JMP|AT|RETAIN|NON_RETAIN|TASK|WITH|UNTIL|USING|EXTENDS|IMPLEMENTS|GET|SET|__TRY|__CATCH|__FINALLY|__ENDTRY)\b/, 'variable': /\b(?:AT|BOOL|BYTE|(?:D|L)?WORD|U?(?:S|D|L)?INT|L?REAL|TIME(?:_OF_DAY)?|TOD|DT|DATE(?:_AND_TIME)?|STRING|ARRAY|ANY|POINTER)\b/, 'symbol': /%[IQM][XBWDL][\d.]*|%[IQ][\d.]*/, 'number': /\b(?:16#[\da-f]+|2#[01_]+|0x[\da-f]+)\b|\b(?:T|D|DT|TOD)#[\d_shmd:]*|\b[A-Z]*\#[\d.,_]*|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i, 'boolean': /\b(?:TRUE|FALSE|NULL)\b/, 'function': /\w+(?=\()/, 'operator': /(?:S?R?:?=>?|&&?|\*\*?|<=?|>=?|[-:^/+])|\b(?:OR|AND|MOD|NOT|XOR|LE|GE|EQ|NE|GT|LT)\b/, 'punctuation': /[();]/, 'type': { 'pattern': /#/, 'alias': 'selector', }, }; /***/ }), /***/ 6053: /***/ (function() { (function (Prism) { Prism.languages.ignore = { // https://git-scm.com/docs/gitignore 'comment': /^#.*/m, 'entry': { pattern: /\S(?:.*(?:(?:\\ )|\S))?/, alias: 'string', inside: { 'operator': /^!|\*\*?|\?/, 'regex': { pattern: /(^|[^\\])\[[^\[\]]*\]/, lookbehind: true }, 'punctuation': /\// } } }; Prism.languages.gitignore = Prism.languages.ignore Prism.languages.hgignore = Prism.languages.ignore Prism.languages.npmignore = Prism.languages.ignore }(Prism)); /***/ }), /***/ 6759: /***/ (function() { Prism.languages.inform7 = { 'string': { pattern: /"[^"]*"/, inside: { 'substitution': { pattern: /\[[^\]]+\]/, inside: { 'delimiter': { pattern:/\[|\]/, alias: 'punctuation' } // See rest below } } } }, 'comment': { pattern: /\[[^\]]+\]/, greedy: true }, 'title': { pattern: /^[ \t]*(?:volume|book|part(?! of)|chapter|section|table)\b.+/im, alias: 'important' }, 'number': { pattern: /(^|[^-])(?:\b\d+(?:\.\d+)?(?:\^\d+)?(?:(?!\d)\w+)?|\b(?:one|two|three|four|five|six|seven|eight|nine|ten|eleven|twelve))\b(?!-)/i, lookbehind: true }, 'verb': { pattern: /(^|[^-])\b(?:applying to|are|attacking|answering|asking|be(?:ing)?|burning|buying|called|carries|carry(?! out)|carrying|climbing|closing|conceal(?:s|ing)?|consulting|contain(?:s|ing)?|cutting|drinking|dropping|eating|enclos(?:es?|ing)|entering|examining|exiting|getting|giving|going|ha(?:ve|s|ving)|hold(?:s|ing)?|impl(?:y|ies)|incorporat(?:es?|ing)|inserting|is|jumping|kissing|listening|locking|looking|mean(?:s|ing)?|opening|provid(?:es?|ing)|pulling|pushing|putting|relat(?:es?|ing)|removing|searching|see(?:s|ing)?|setting|showing|singing|sleeping|smelling|squeezing|switching|support(?:s|ing)?|swearing|taking|tasting|telling|thinking|throwing|touching|turning|tying|unlock(?:s|ing)?|var(?:y|ies|ying)|waiting|waking|waving|wear(?:s|ing)?)\b(?!-)/i, lookbehind: true, alias: 'operator' }, 'keyword': { pattern: /(^|[^-])\b(?:after|before|carry out|check|continue the action|definition(?= *:)|do nothing|else|end (?:if|unless|the story)|every turn|if|include|instead(?: of)?|let|move|no|now|otherwise|repeat|report|resume the story|rule for|running through|say(?:ing)?|stop the action|test|try(?:ing)?|understand|unless|use|when|while|yes)\b(?!-)/i, lookbehind: true }, 'property': { pattern: /(^|[^-])\b(?:adjacent(?! to)|carried|closed|concealed|contained|dark|described|edible|empty|enclosed|enterable|even|female|fixed in place|full|handled|held|improper-named|incorporated|inedible|invisible|lighted|lit|lock(?:able|ed)|male|marked for listing|mentioned|negative|neuter|non-(?:empty|full|recurring)|odd|opaque|open(?:able)?|plural-named|portable|positive|privately-named|proper-named|provided|publically-named|pushable between rooms|recurring|related|rubbing|scenery|seen|singular-named|supported|swinging|switch(?:able|ed(?: on| off)?)|touch(?:able|ed)|transparent|unconcealed|undescribed|unlit|unlocked|unmarked for listing|unmentioned|unopenable|untouchable|unvisited|variable|visible|visited|wearable|worn)\b(?!-)/i, lookbehind: true, alias: 'symbol' }, 'position': { pattern: /(^|[^-])\b(?:above|adjacent to|back side of|below|between|down|east|everywhere|front side|here|in|inside(?: from)?|north(?:east|west)?|nowhere|on(?: top of)?|other side|outside(?: from)?|parts? of|regionally in|south(?:east|west)?|through|up|west|within)\b(?!-)/i, lookbehind: true, alias: 'keyword' }, 'type': { pattern: /(^|[^-])\b(?:actions?|activit(?:y|ies)|actors?|animals?|backdrops?|containers?|devices?|directions?|doors?|holders?|kinds?|lists?|m[ae]n|nobody|nothing|nouns?|numbers?|objects?|people|persons?|player(?:'s holdall)?|regions?|relations?|rooms?|rule(?:book)?s?|scenes?|someone|something|supporters?|tables?|texts?|things?|time|vehicles?|wom[ae]n)\b(?!-)/i, lookbehind: true, alias: 'variable' }, 'punctuation': /[.,:;(){}]/ }; Prism.languages.inform7['string'].inside['substitution'].inside.rest = Prism.languages.inform7; // We don't want the remaining text in the substitution to be highlighted as the string. Prism.languages.inform7['string'].inside['substitution'].inside.rest.text = { pattern: /\S(?:\s*\S)*/, alias: 'comment' }; /***/ }), /***/ 5329: /***/ (function() { Prism.languages.ini= { 'comment': /^[ \t]*[;#].*$/m, 'selector': /^[ \t]*\[.*?\]/m, 'constant': /^[ \t]*[^\s=]+?(?=[ \t]*=)/m, 'attr-value': { pattern: /=.*/, inside: { 'punctuation': /^[=]/ } } }; /***/ }), /***/ 9147: /***/ (function() { Prism.languages.io = { 'comment': [ { pattern: /(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/, lookbehind: true }, { pattern: /(^|[^\\])\/\/.*/, lookbehind: true }, { pattern: /(^|[^\\])#.*/, lookbehind: true } ], 'triple-quoted-string': { pattern: /"""(?:\\[\s\S]|(?!""")[^\\])*"""/, greedy: true, alias: 'string' }, 'string': { pattern: /"(?:\\.|[^\\\r\n"])*"/, greedy: true }, 'keyword': /\b(?:activate|activeCoroCount|asString|block|break|catch|clone|collectGarbage|compileString|continue|do|doFile|doMessage|doString|else|elseif|exit|for|foreach|forward|getSlot|getEnvironmentVariable|hasSlot|if|ifFalse|ifNil|ifNilEval|ifTrue|isActive|isNil|isResumable|list|message|method|parent|pass|pause|perform|performWithArgList|print|println|proto|raise|raiseResumable|removeSlot|resend|resume|schedulerSleepSeconds|self|sender|setSchedulerSleepSeconds|setSlot|shallowCopy|slotNames|super|system|then|thisBlock|thisContext|call|try|type|uniqueId|updateSlot|wait|while|write|yield)\b/, 'builtin':/\b(?:Array|AudioDevice|AudioMixer|Block|Box|Buffer|CFunction|CGI|Color|Curses|DBM|DNSResolver|DOConnection|DOProxy|DOServer|Date|Directory|Duration|DynLib|Error|Exception|FFT|File|Fnmatch|Font|Future|GL|GLE|GLScissor|GLU|GLUCylinder|GLUQuadric|GLUSphere|GLUT|Host|Image|Importer|LinkList|List|Lobby|Locals|MD5|MP3Decoder|MP3Encoder|Map|Message|Movie|Notification|Number|Object|OpenGL|Point|Protos|Regex|SGML|SGMLElement|SGMLParser|SQLite|Server|Sequence|ShowMessage|SleepyCat|SleepyCatCursor|Socket|SocketManager|Sound|Soup|Store|String|Tree|UDPSender|UPDReceiver|URL|User|Warning|WeakLink|Random|BigNum)\b/, 'boolean': /\b(?:true|false|nil)\b/, 'number': /\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e-?\d+)?/i, 'operator': /[=!*/%+\-^&|]=|>>?=?|<+*\-%$|,#][.:]?|[?^]\.?|[;\[]:?|[~}"i][.:]|[ACeEIjLor]\.|(?:[_\/\\qsux]|_?\d):)/, alias: 'keyword' }, 'number': /\b_?(?:(?!\d:)\d+(?:\.\d+)?(?:(?:[ejpx]|ad|ar)_?\d+(?:\.\d+)?)*(?:b_?[\da-z]+(?:\.[\da-z]+)?)?|_\b(?!\.))/, 'adverb': { pattern: /[~}]|[\/\\]\.?|[bfM]\.|t[.:]/, alias: 'builtin' }, 'operator': /[=a][.:]|_\./, 'conjunction': { pattern: /&(?:\.:?|:)?|[.:@][.:]?|[!D][.:]|[;dHT]\.|`:?|[\^LS]:|"/, alias: 'variable' }, 'punctuation': /[()]/ }; /***/ }), /***/ 3701: /***/ (function() { (function (Prism) { var keywords = /\b(?:abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|exports|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|module|native|new|non-sealed|null|open|opens|package|permits|private|protected|provides|public|record|requires|return|sealed|short|static|strictfp|super|switch|synchronized|this|throw|throws|to|transient|transitive|try|uses|var|void|volatile|while|with|yield)\b/; // full package (optional) + parent classes (optional) var classNamePrefix = /(^|[^\w.])(?:[a-z]\w*\s*\.\s*)*(?:[A-Z]\w*\s*\.\s*)*/.source; // based on the java naming conventions var className = { pattern: RegExp(classNamePrefix + /[A-Z](?:[\d_A-Z]*[a-z]\w*)?\b/.source), lookbehind: true, inside: { 'namespace': { pattern: /^[a-z]\w*(?:\s*\.\s*[a-z]\w*)*(?:\s*\.)?/, inside: { 'punctuation': /\./ } }, 'punctuation': /\./ } }; Prism.languages.java = Prism.languages.extend('clike', { 'class-name': [ className, { // variables and parameters // this to support class names (or generic parameters) which do not contain a lower case letter (also works for methods) pattern: RegExp(classNamePrefix + /[A-Z]\w*(?=\s+\w+\s*[;,=())])/.source), lookbehind: true, inside: className.inside } ], 'keyword': keywords, 'function': [ Prism.languages.clike.function, { pattern: /(\:\:\s*)[a-z_]\w*/, lookbehind: true } ], 'number': /\b0b[01][01_]*L?\b|\b0x(?:\.[\da-f_p+-]+|[\da-f_]+(?:\.[\da-f_p+-]+)?)\b|(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?\d[\d_]*)?[dfl]?/i, 'operator': { pattern: /(^|[^.])(?:<<=?|>>>?=?|->|--|\+\+|&&|\|\||::|[?:~]|[-+*/%&|^!=<>]=?)/m, lookbehind: true } }); Prism.languages.insertBefore('java', 'string', { 'triple-quoted-string': { // http://openjdk.java.net/jeps/355#Description pattern: /"""[ \t]*[\r\n](?:(?:"|"")?(?:\\.|[^"\\]))*"""/, greedy: true, alias: 'string' } }); Prism.languages.insertBefore('java', 'class-name', { 'annotation': { pattern: /(^|[^.])@\w+(?:\s*\.\s*\w+)*/, lookbehind: true, alias: 'punctuation' }, 'generics': { pattern: /<(?:[\w\s,.&?]|<(?:[\w\s,.&?]|<(?:[\w\s,.&?]|<[\w\s,.&?]*>)*>)*>)*>/, inside: { 'class-name': className, 'keyword': keywords, 'punctuation': /[<>(),.:]/, 'operator': /[?&|]/ } }, 'namespace': { pattern: RegExp( /(\b(?:exports|import(?:\s+static)?|module|open|opens|package|provides|requires|to|transitive|uses|with)\s+)(?!)[a-z]\w*(?:\.[a-z]\w*)*\.?/ .source.replace(//g, function () { return keywords.source; })), lookbehind: true, inside: { 'punctuation': /\./, } } }); }(Prism)); /***/ }), /***/ 7002: /***/ (function() { (function (Prism) { var codeLinePattern = /(^(?:\s*(?:\*\s*)*))[^*\s].*$/m; var memberReference = /#\s*\w+(?:\s*\([^()]*\))?/.source; var reference = /(?:[a-zA-Z]\w+\s*\.\s*)*[A-Z]\w*(?:\s*)?|/.source.replace(//g, function () { return memberReference }); Prism.languages.javadoc = Prism.languages.extend('javadoclike', {}); Prism.languages.insertBefore('javadoc', 'keyword', { 'reference': { pattern: RegExp(/(@(?:exception|throws|see|link|linkplain|value)\s+(?:\*\s*)?)/.source + '(?:' + reference + ')'), lookbehind: true, inside: { 'function': { pattern: /(#\s*)\w+(?=\s*\()/, lookbehind: true }, 'field': { pattern: /(#\s*)\w+/, lookbehind: true }, 'namespace': { pattern: /\b(?:[a-z]\w*\s*\.\s*)+/, inside: { 'punctuation': /\./ } }, 'class-name': /\b[A-Z]\w*/, 'keyword': Prism.languages.java.keyword, 'punctuation': /[#()[\],.]/ } }, 'class-name': { // @param the first generic type parameter pattern: /(@param\s+)<[A-Z]\w*>/, lookbehind: true, inside: { 'punctuation': /[.<>]/ } }, 'code-section': [ { pattern: /(\{@code\s+(?!\s))(?:[^\s{}]|\s+(?![\s}])|\{(?:[^{}]|\{(?:[^{}]|\{(?:[^{}]|\{[^{}]*\})*\})*\})*\})+(?=\s*\})/, lookbehind: true, inside: { 'code': { // there can't be any HTML inside of {@code} tags pattern: codeLinePattern, lookbehind: true, inside: Prism.languages.java, alias: 'language-java' } } }, { pattern: /(<(code|pre|tt)>(?!)\s*)\S(?:\S|\s+\S)*?(?=\s*<\/\2>)/, lookbehind: true, inside: { 'line': { pattern: codeLinePattern, lookbehind: true, inside: { // highlight HTML tags and entities 'tag': Prism.languages.markup.tag, 'entity': Prism.languages.markup.entity, 'code': { // everything else is Java code pattern: /.+/, inside: Prism.languages.java, alias: 'language-java' } } } } } ], 'tag': Prism.languages.markup.tag, 'entity': Prism.languages.markup.entity, }); Prism.languages.javadoclike.addSupport('java', Prism.languages.javadoc); }(Prism)); /***/ }), /***/ 5800: /***/ (function() { (function (Prism) { var javaDocLike = Prism.languages.javadoclike = { 'parameter': { pattern: /(^\s*(?:\/{3}|\*|\/\*\*)\s*@(?:param|arg|arguments)\s+)\w+/m, lookbehind: true }, 'keyword': { // keywords are the first word in a line preceded be an `@` or surrounded by curly braces. // @word, {@word} pattern: /(^\s*(?:\/{3}|\*|\/\*\*)\s*|\{)@[a-z][a-zA-Z-]+\b/m, lookbehind: true }, 'punctuation': /[{}]/ }; /** * Adds doc comment support to the given language and calls a given callback on each doc comment pattern. * * @param {string} lang the language add doc comment support to. * @param {(pattern: {inside: {rest: undefined}}) => void} callback the function called with each doc comment pattern as argument. */ function docCommentSupport(lang, callback) { var tokenName = 'doc-comment'; var grammar = Prism.languages[lang]; if (!grammar) { return; } var token = grammar[tokenName]; if (!token) { // add doc comment: /** */ var definition = {}; definition[tokenName] = { pattern: /(^|[^\\])\/\*\*[^/][\s\S]*?(?:\*\/|$)/, lookbehind: true, alias: 'comment' }; grammar = Prism.languages.insertBefore(lang, 'comment', definition); token = grammar[tokenName]; } if (token instanceof RegExp) { // convert regex to object token = grammar[tokenName] = { pattern: token }; } if (Array.isArray(token)) { for (var i = 0, l = token.length; i < l; i++) { if (token[i] instanceof RegExp) { token[i] = { pattern: token[i] }; } callback(token[i]); } } else { callback(token); } } /** * Adds doc-comment support to the given languages for the given documentation language. * * @param {string[]|string} languages * @param {Object} docLanguage */ function addSupport(languages, docLanguage) { if (typeof languages === 'string') { languages = [languages]; } languages.forEach(function (lang) { docCommentSupport(lang, function (pattern) { if (!pattern.inside) { pattern.inside = {}; } pattern.inside.rest = docLanguage; }); }); } Object.defineProperty(javaDocLike, 'addSupport', { value: addSupport }); javaDocLike.addSupport(['java', 'javascript', 'php'], javaDocLike); }(Prism)); /***/ }), /***/ 6563: /***/ (function() { // Specification: // https://docs.oracle.com/en/java/javase/13/docs/api/java.base/java/lang/Throwable.html#printStackTrace() Prism.languages.javastacktrace = { // java.sql.SQLException: Violation of unique constraint MY_ENTITY_UK_1: duplicate value(s) for column(s) MY_COLUMN in statement [...] // Caused by: java.sql.SQLException: Violation of unique constraint MY_ENTITY_UK_1: duplicate value(s) for column(s) MY_COLUMN in statement [...] // Caused by: com.example.myproject.MyProjectServletException // Caused by: MidLevelException: LowLevelException // Suppressed: Resource$CloseFailException: Resource ID = 0 'summary': { pattern: /^[\t ]*(?:(?:Caused by:|Suppressed:|Exception in thread "[^"]*")[\t ]+)?[\w$.]+(?:\:.*)?$/m, inside: { 'keyword': { pattern: /^(\s*)(?:(?:Caused by|Suppressed)(?=:)|Exception in thread)/m, lookbehind: true }, // the current thread if the summary starts with 'Exception in thread' 'string': { pattern: /^(\s*)"[^"]*"/, lookbehind: true }, 'exceptions': { pattern: /^(:?\s*)[\w$.]+(?=:|$)/, lookbehind: true, inside: { 'class-name': /[\w$]+(?=$|:)/, 'namespace': /[a-z]\w*/, 'punctuation': /[.:]/ } }, 'message': { pattern: /(:\s*)\S.*/, lookbehind: true, alias: 'string' }, 'punctuation': /[:]/ } }, // at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166) // at org.hsqldb.jdbc.Util.throwError(Unknown Source) here could be some notes // at java.base/java.lang.Class.forName0(Native Method) // at Util.(Unknown Source) // at com.foo.loader/foo@9.0/com.foo.Main.run(Main.java:101) // at com.foo.loader//com.foo.bar.App.run(App.java:12) // at acme@2.1/org.acme.Lib.test(Lib.java:80) // at MyClass.mash(MyClass.java:9) // // More information: // https://docs.oracle.com/en/java/javase/13/docs/api/java.base/java/lang/StackTraceElement.html#toString() // // A valid Java module name is defined as: // "A module name consists of one or more Java identifiers (§3.8) separated by "." tokens." // https://docs.oracle.com/javase/specs/jls/se9/html/jls-6.html#jls-ModuleName // // A Java module version is defined by this class: // https://docs.oracle.com/javase/9/docs/api/java/lang/module/ModuleDescriptor.Version.html // This is the implementation of the `parse` method in JDK13: // https://github.com/matcdac/jdk/blob/2305df71d1b7710266ae0956d73927a225132c0f/src/java.base/share/classes/java/lang/module/ModuleDescriptor.java#L1108 // However, to keep this simple, a version will be matched by the pattern /@[\w$.+-]*/. 'stack-frame': { pattern: /^[\t ]*at (?:[\w$./]|@[\w$.+-]*\/)+(?:)?\([^()]*\)/m, inside: { 'keyword': { pattern: /^(\s*)at(?= )/, lookbehind: true }, 'source': [ // (Main.java:15) // (Main.scala:15) { pattern: /(\()\w+\.\w+:\d+(?=\))/, lookbehind: true, inside: { 'file': /^\w+\.\w+/, 'punctuation': /:/, 'line-number': { pattern: /\d+/, alias: 'number' } } }, // (Unknown Source) // (Native Method) // (...something...) { pattern: /(\()[^()]*(?=\))/, lookbehind: true, inside: { 'keyword': /^(?:Unknown Source|Native Method)$/ } } ], 'class-name': /[\w$]+(?=\.(?:|[\w$]+)\()/, 'function': /(?:|[\w$]+)(?=\()/, 'class-loader': { pattern: /(\s)[a-z]\w*(?:\.[a-z]\w*)*(?=\/[\w@$.]*\/)/, lookbehind: true, alias: 'namespace', inside: { 'punctuation': /\./ } }, 'module': { pattern: /([\s/])[a-z]\w*(?:\.[a-z]\w*)*(?:@[\w$.+-]*)?(?=\/)/, lookbehind: true, inside: { 'version': { pattern: /(@)[\s\S]+/, lookbehind: true, alias: 'number' }, 'punctuation': /[@.]/ } }, 'namespace': { pattern: /(?:[a-z]\w*\.)+/, inside: { 'punctuation': /\./ } }, 'punctuation': /[()/.]/ } }, // ... 32 more // ... 32 common frames omitted 'more': { pattern: /^[\t ]*\.{3} \d+ [a-z]+(?: [a-z]+)*/m, inside: { 'punctuation': /\.{3}/, 'number': /\d+/, 'keyword': /\b[a-z]+(?: [a-z]+)*\b/ } } }; /***/ }), /***/ 7474: /***/ (function() { Prism.languages.jolie = Prism.languages.extend('clike', { 'string': { pattern: /(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/, greedy: true }, 'keyword': /\b(?:include|define|is_defined|undef|main|init|outputPort|inputPort|Location|Protocol|Interfaces|RequestResponse|OneWay|type|interface|extender|throws|cset|csets|forward|Aggregates|Redirects|embedded|courier|execution|sequential|concurrent|single|scope|install|throw|comp|cH|default|global|linkIn|linkOut|synchronized|this|new|for|if|else|while|in|Jolie|Java|Javascript|nullProcess|spawn|constants|with|provide|until|exit|foreach|instanceof|over|service)\b/, 'number': /(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?l?/i, 'operator': /-[-=>]?|\+[+=]?|<[<=]?|[>=*!]=?|&&|\|\||[:?\/%^]/, 'punctuation': /[,.]/, 'builtin': /\b(?:undefined|string|int|void|long|Byte|bool|double|float|char|any)\b/, 'symbol': /[|;@]/ }); delete Prism.languages.jolie['class-name']; Prism.languages.insertBefore( 'jolie', 'keyword', { 'function': { pattern: /((?:\b(?:outputPort|inputPort|in|service|courier)\b|@)\s*)\w+/, lookbehind: true }, 'aggregates': { pattern: /(\bAggregates\s*:\s*)(?:\w+(?:\s+with\s+\w+)?\s*,\s*)*\w+(?:\s+with\s+\w+)?/, lookbehind: true, inside: { 'with-extension': { pattern: /\bwith\s+\w+/, inside: { 'keyword' : /\bwith\b/ } }, 'function': { pattern: /\w+/ }, 'punctuation': { pattern: /,/ } } }, 'redirects': { pattern: /(\bRedirects\s*:\s*)(?:\w+\s*=>\s*\w+\s*,\s*)*(?:\w+\s*=>\s*\w+)/, lookbehind: true, inside: { 'punctuation': { pattern: /,/ }, 'function': { pattern: /\w+/ }, 'symbol': { pattern: /=>/ } } } }); /***/ }), /***/ 2938: /***/ (function() { (function (Prism) { var interpolation = /\\\((?:[^()]|\([^()]*\))*\)/.source; var string = RegExp(/"(?:[^"\r\n\\]|\\[^\r\n(]|__)*"/.source.replace(/__/g, function () { return interpolation; })); var stringInterpolation = { 'interpolation': { pattern: RegExp(/((?:^|[^\\])(?:\\{2})*)/.source + interpolation), lookbehind: true, inside: { 'content': { pattern: /^(\\\()[\s\S]+(?=\)$)/, lookbehind: true, inside: null // see below }, 'punctuation': /^\\\(|\)$/ } } }; var jq = Prism.languages.jq = { 'comment': /#.*/, 'property': { pattern: RegExp(string.source + /(?=\s*:(?!:))/.source), greedy: true, inside: stringInterpolation }, 'string': { pattern: string, greedy: true, inside: stringInterpolation }, 'function': { pattern: /(\bdef\s+)[a-z_]\w+/i, lookbehind: true }, 'variable': /\B\$\w+/, 'property-literal': { pattern: /\b[a-z_]\w*(?=\s*:(?!:))/i, alias: 'property' }, 'keyword': /\b(?:as|break|catch|def|elif|else|end|foreach|if|import|include|label|module|modulemeta|null|reduce|then|try|while)\b/, 'boolean': /\b(?:true|false)\b/, 'number': /(?:\b\d+\.|\B\.)?\b\d+(?:[eE][+-]?\d+)?\b/, 'operator': [ { pattern: /\|=?/, alias: 'pipe' }, /\.\.|[!=<>]?=|\?\/\/|\/\/=?|[-+*/%]=?|[<>?]|\b(?:and|or|not)\b/ ], 'c-style-function': { pattern: /\b[a-z_]\w*(?=\s*\()/i, alias: 'function' }, 'punctuation': /::|[()\[\]{},:;]|\.(?=\s*[\[\w$])/, 'dot': { pattern: /\./, alias: 'important' } } stringInterpolation.interpolation.inside.content.inside = jq; }(Prism)); /***/ }), /***/ 6624: /***/ (function() { (function (Prism) { Prism.languages.insertBefore('javascript', 'function-variable', { 'method-variable': { pattern: RegExp('(\\.\\s*)' + Prism.languages.javascript['function-variable'].pattern.source), lookbehind: true, alias: ['function-variable', 'method', 'function', 'property-access'] } }); Prism.languages.insertBefore('javascript', 'function', { 'method': { pattern: RegExp('(\\.\\s*)' + Prism.languages.javascript['function'].source), lookbehind: true, alias: ['function', 'property-access'] } }); Prism.languages.insertBefore('javascript', 'constant', { 'known-class-name': [ { // standard built-ins // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects pattern: /\b(?:(?:(?:Uint|Int)(?:8|16|32)|Uint8Clamped|Float(?:32|64))?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|(?:Weak)?(?:Set|Map)|WebAssembly)\b/, alias: 'class-name' }, { // errors pattern: /\b(?:[A-Z]\w*)Error\b/, alias: 'class-name' } ] }); /** * Replaces the `` placeholder in the given pattern with a pattern for general JS identifiers. * * @param {string} source * @param {string} [flags] * @returns {RegExp} */ function withId(source, flags) { return RegExp( source.replace(//g, function () { return /(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/.source; }), flags); } Prism.languages.insertBefore('javascript', 'keyword', { 'imports': { // https://tc39.es/ecma262/#sec-imports pattern: withId(/(\bimport\b\s*)(?:(?:\s*,\s*(?:\*\s*as\s+|\{[^{}]*\}))?|\*\s*as\s+|\{[^{}]*\})(?=\s*\bfrom\b)/.source), lookbehind: true, inside: Prism.languages.javascript }, 'exports': { // https://tc39.es/ecma262/#sec-exports pattern: withId(/(\bexport\b\s*)(?:\*(?:\s*as\s+)?(?=\s*\bfrom\b)|\{[^{}]*\})/.source), lookbehind: true, inside: Prism.languages.javascript } }); Prism.languages.javascript['keyword'].unshift( { pattern: /\b(?:as|default|export|from|import)\b/, alias: 'module' }, { pattern: /\b(?:await|break|catch|continue|do|else|for|finally|if|return|switch|throw|try|while|yield)\b/, alias: 'control-flow' }, { pattern: /\bnull\b/, alias: ['null', 'nil'] }, { pattern: /\bundefined\b/, alias: 'nil' } ); Prism.languages.insertBefore('javascript', 'operator', { 'spread': { pattern: /\.{3}/, alias: 'operator' }, 'arrow': { pattern: /=>/, alias: 'operator' } }); Prism.languages.insertBefore('javascript', 'punctuation', { 'property-access': { pattern: withId(/(\.\s*)#?/.source), lookbehind: true }, 'maybe-class-name': { pattern: /(^|[^$\w\xA0-\uFFFF])[A-Z][$\w\xA0-\uFFFF]+/, lookbehind: true }, 'dom': { // this contains only a few commonly used DOM variables pattern: /\b(?:document|location|navigator|performance|(?:local|session)Storage|window)\b/, alias: 'variable' }, 'console': { pattern: /\bconsole(?=\s*\.)/, alias: 'class-name' } }); // add 'maybe-class-name' to tokens which might be a class name var maybeClassNameTokens = ['function', 'function-variable', 'method', 'method-variable', 'property-access']; for (var i = 0; i < maybeClassNameTokens.length; i++) { var token = maybeClassNameTokens[i]; var value = Prism.languages.javascript[token]; // convert regex to object if (Prism.util.type(value) === 'RegExp') { value = Prism.languages.javascript[token] = { pattern: value }; } // keep in mind that we don't support arrays var inside = value.inside || {}; value.inside = inside; inside['maybe-class-name'] = /^[A-Z][\s\S]*/; } }(Prism)); /***/ }), /***/ 1530: /***/ (function() { (function (Prism) { var templateString = Prism.languages.javascript['template-string']; // see the pattern in prism-javascript.js var templateLiteralPattern = templateString.pattern.source; var interpolationObject = templateString.inside['interpolation']; var interpolationPunctuationObject = interpolationObject.inside['interpolation-punctuation']; var interpolationPattern = interpolationObject.pattern.source; /** * Creates a new pattern to match a template string with a special tag. * * This will return `undefined` if there is no grammar with the given language id. * * @param {string} language The language id of the embedded language. E.g. `markdown`. * @param {string} tag The regex pattern to match the tag. * @returns {object | undefined} * @example * createTemplate('css', /\bcss/.source); */ function createTemplate(language, tag) { if (!Prism.languages[language]) { return undefined; } return { pattern: RegExp('((?:' + tag + ')\\s*)' + templateLiteralPattern), lookbehind: true, greedy: true, inside: { 'template-punctuation': { pattern: /^`|`$/, alias: 'string' }, 'embedded-code': { pattern: /[\s\S]+/, alias: language } } }; } Prism.languages.javascript['template-string'] = [ // styled-jsx: // css`a { color: #25F; }` // styled-components: // styled.h1`color: red;` createTemplate('css', /\b(?:styled(?:\([^)]*\))?(?:\s*\.\s*\w+(?:\([^)]*\))*)*|css(?:\s*\.\s*(?:global|resolve))?|createGlobalStyle|keyframes)/.source), // html`

` // div.innerHTML = `

` createTemplate('html', /\bhtml|\.\s*(?:inner|outer)HTML\s*\+?=/.source), // svg`` createTemplate('svg', /\bsvg/.source), // md`# h1`, markdown`## h2` createTemplate('markdown', /\b(?:md|markdown)/.source), // gql`...`, graphql`...`, graphql.experimental`...` createTemplate('graphql', /\b(?:gql|graphql(?:\s*\.\s*experimental)?)/.source), // vanilla template string templateString ].filter(Boolean); /** * Returns a specific placeholder literal for the given language. * * @param {number} counter * @param {string} language * @returns {string} */ function getPlaceholder(counter, language) { return '___' + language.toUpperCase() + '_' + counter + '___'; } /** * Returns the tokens of `Prism.tokenize` but also runs the `before-tokenize` and `after-tokenize` hooks. * * @param {string} code * @param {any} grammar * @param {string} language * @returns {(string|Token)[]} */ function tokenizeWithHooks(code, grammar, language) { var env = { code: code, grammar: grammar, language: language }; Prism.hooks.run('before-tokenize', env); env.tokens = Prism.tokenize(env.code, env.grammar); Prism.hooks.run('after-tokenize', env); return env.tokens; } /** * Returns the token of the given JavaScript interpolation expression. * * @param {string} expression The code of the expression. E.g. `"${42}"` * @returns {Token} */ function tokenizeInterpolationExpression(expression) { var tempGrammar = {}; tempGrammar['interpolation-punctuation'] = interpolationPunctuationObject; /** @type {Array} */ var tokens = Prism.tokenize(expression, tempGrammar); if (tokens.length === 3) { /** * The token array will look like this * [ * ["interpolation-punctuation", "${"] * "..." // JavaScript expression of the interpolation * ["interpolation-punctuation", "}"] * ] */ var args = [1, 1]; args.push.apply(args, tokenizeWithHooks(tokens[1], Prism.languages.javascript, 'javascript')); tokens.splice.apply(tokens, args); } return new Prism.Token('interpolation', tokens, interpolationObject.alias, expression); } /** * Tokenizes the given code with support for JavaScript interpolation expressions mixed in. * * This function has 3 phases: * * 1. Replace all JavaScript interpolation expression with a placeholder. * The placeholder will have the syntax of a identify of the target language. * 2. Tokenize the code with placeholders. * 3. Tokenize the interpolation expressions and re-insert them into the tokenize code. * The insertion only works if a placeholder hasn't been "ripped apart" meaning that the placeholder has been * tokenized as two tokens by the grammar of the embedded language. * * @param {string} code * @param {object} grammar * @param {string} language * @returns {Token} */ function tokenizeEmbedded(code, grammar, language) { // 1. First filter out all interpolations // because they might be escaped, we need a lookbehind, so we use Prism /** @type {(Token|string)[]} */ var _tokens = Prism.tokenize(code, { 'interpolation': { pattern: RegExp(interpolationPattern), lookbehind: true } }); // replace all interpolations with a placeholder which is not in the code already var placeholderCounter = 0; /** @type {Object} */ var placeholderMap = {}; var embeddedCode = _tokens.map(function (token) { if (typeof token === 'string') { return token; } else { var interpolationExpression = token.content; var placeholder; while (code.indexOf(placeholder = getPlaceholder(placeholderCounter++, language)) !== -1) { } placeholderMap[placeholder] = interpolationExpression; return placeholder; } }).join(''); // 2. Tokenize the embedded code var embeddedTokens = tokenizeWithHooks(embeddedCode, grammar, language); // 3. Re-insert the interpolation var placeholders = Object.keys(placeholderMap); placeholderCounter = 0; /** * * @param {(Token|string)[]} tokens * @returns {void} */ function walkTokens(tokens) { for (var i = 0; i < tokens.length; i++) { if (placeholderCounter >= placeholders.length) { return; } var token = tokens[i]; if (typeof token === 'string' || typeof token.content === 'string') { var placeholder = placeholders[placeholderCounter]; var s = typeof token === 'string' ? token : /** @type {string} */ (token.content); var index = s.indexOf(placeholder); if (index !== -1) { ++placeholderCounter; var before = s.substring(0, index); var middle = tokenizeInterpolationExpression(placeholderMap[placeholder]); var after = s.substring(index + placeholder.length); var replacement = []; if (before) { replacement.push(before); } replacement.push(middle); if (after) { var afterTokens = [after]; walkTokens(afterTokens); replacement.push.apply(replacement, afterTokens); } if (typeof token === 'string') { tokens.splice.apply(tokens, [i, 1].concat(replacement)); i += replacement.length - 1; } else { token.content = replacement; } } } else { var content = token.content; if (Array.isArray(content)) { walkTokens(content); } else { walkTokens([content]); } } } } walkTokens(embeddedTokens); return new Prism.Token(language, embeddedTokens, 'language-' + language, code); } /** * The languages for which JS templating will handle tagged template literals. * * JS templating isn't active for only JavaScript but also related languages like TypeScript, JSX, and TSX. */ var supportedLanguages = { 'javascript': true, 'js': true, 'typescript': true, 'ts': true, 'jsx': true, 'tsx': true, }; Prism.hooks.add('after-tokenize', function (env) { if (!(env.language in supportedLanguages)) { return; } /** * Finds and tokenizes all template strings with an embedded languages. * * @param {(Token | string)[]} tokens * @returns {void} */ function findTemplateStrings(tokens) { for (var i = 0, l = tokens.length; i < l; i++) { var token = tokens[i]; if (typeof token === 'string') { continue; } var content = token.content; if (!Array.isArray(content)) { if (typeof content !== 'string') { findTemplateStrings([content]); } continue; } if (token.type === 'template-string') { /** * A JavaScript template-string token will look like this: * * ["template-string", [ * ["template-punctuation", "`"], * ( * An array of "string" and "interpolation" tokens. This is the simple string case. * or * ["embedded-code", "..."] This is the token containing the embedded code. * It also has an alias which is the language of the embedded code. * ), * ["template-punctuation", "`"] * ]] */ var embedded = content[1]; if (content.length === 3 && typeof embedded !== 'string' && embedded.type === 'embedded-code') { // get string content var code = stringContent(embedded); var alias = embedded.alias; var language = Array.isArray(alias) ? alias[0] : alias; var grammar = Prism.languages[language]; if (!grammar) { // the embedded language isn't registered. continue; } content[1] = tokenizeEmbedded(code, grammar, language); } } else { findTemplateStrings(content); } } } findTemplateStrings(env.tokens); }); /** * Returns the string content of a token or token stream. * * @param {string | Token | (string | Token)[]} value * @returns {string} */ function stringContent(value) { if (typeof value === 'string') { return value; } else if (Array.isArray(value)) { return value.map(stringContent).join(''); } else { return stringContent(value.content); } } }(Prism)); /***/ }), /***/ 4545: /***/ (function() { (function (Prism) { var javascript = Prism.languages.javascript; var type = /{(?:[^{}]|{(?:[^{}]|{[^{}]*})*})+}/.source; var parameterPrefix = '(@(?:param|arg|argument|property)\\s+(?:' + type + '\\s+)?)'; Prism.languages.jsdoc = Prism.languages.extend('javadoclike', { 'parameter': { // @param {string} foo - foo bar pattern: RegExp(parameterPrefix + /(?:(?!\s)[$\w\xA0-\uFFFF.])+(?=\s|$)/.source), lookbehind: true, inside: { 'punctuation': /\./ } } }); Prism.languages.insertBefore('jsdoc', 'keyword', { 'optional-parameter': { // @param {string} [baz.foo="bar"] foo bar pattern: RegExp(parameterPrefix + /\[(?:(?!\s)[$\w\xA0-\uFFFF.])+(?:=[^[\]]+)?\](?=\s|$)/.source), lookbehind: true, inside: { 'parameter': { pattern: /(^\[)[$\w\xA0-\uFFFF\.]+/, lookbehind: true, inside: { 'punctuation': /\./ } }, 'code': { pattern: /(=)[\s\S]*(?=\]$)/, lookbehind: true, inside: javascript, alias: 'language-javascript' }, 'punctuation': /[=[\]]/ } }, 'class-name': [ { pattern: RegExp(/(@(?:augments|extends|class|interface|memberof!?|template|this|typedef)\s+(?:\s+)?)[A-Z]\w*(?:\.[A-Z]\w*)*/.source.replace(//g, function () { return type; })), lookbehind: true, inside: { 'punctuation': /\./ } }, { pattern: RegExp('(@[a-z]+\\s+)' + type), lookbehind: true, inside: { 'string': javascript.string, 'number': javascript.number, 'boolean': javascript.boolean, 'keyword': Prism.languages.typescript.keyword, 'operator': /=>|\.\.\.|[&|?:*]/, 'punctuation': /[.,;=<>{}()[\]]/ } } ], 'example': { pattern: /(@example\s+(?!\s))(?:[^@\s]|\s+(?!\s))+?(?=\s*(?:\*\s*)?(?:@\w|\*\/))/, lookbehind: true, inside: { 'code': { pattern: /^(\s*(?:\*\s*)?)\S.*$/m, lookbehind: true, inside: javascript, alias: 'language-javascript' } } } }); Prism.languages.javadoclike.addSupport('javascript', Prism.languages.jsdoc); }(Prism)); /***/ }), /***/ 2363: /***/ (function() { // https://www.json.org/json-en.html Prism.languages.json = { 'property': { pattern: /"(?:\\.|[^\\"\r\n])*"(?=\s*:)/, greedy: true }, 'string': { pattern: /"(?:\\.|[^\\"\r\n])*"(?!\s*:)/, greedy: true }, 'comment': { pattern: /\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/, greedy: true }, 'number': /-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i, 'punctuation': /[{}[\],]/, 'operator': /:/, 'boolean': /\b(?:true|false)\b/, 'null': { pattern: /\bnull\b/, alias: 'keyword' } }; Prism.languages.webmanifest = Prism.languages.json; /***/ }), /***/ 6840: /***/ (function() { (function (Prism) { var string = /("|')(?:\\(?:\r\n?|\n|.)|(?!\1)[^\\\r\n])*\1/ Prism.languages.json5 = Prism.languages.extend('json', { 'property': [ { pattern: RegExp(string.source + '(?=\\s*:)'), greedy: true }, { pattern: /(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/, alias: 'unquoted' } ], 'string': { pattern: string, greedy: true }, 'number': /[+-]?\b(?:NaN|Infinity|0x[a-fA-F\d]+)\b|[+-]?(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[eE][+-]?\d+\b)?/ }); }(Prism)); /***/ }), /***/ 9962: /***/ (function() { Prism.languages.jsonp = Prism.languages.extend('json', { 'punctuation': /[{}[\]();,.]/ }); Prism.languages.insertBefore('jsonp', 'punctuation', { 'function': /(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*\()/ }); /***/ }), /***/ 1629: /***/ (function() { Prism.languages.jsstacktrace = { 'error-message': { pattern: /^\S.*/m, alias: 'string' }, 'stack-frame': { pattern: /^[ \t]+at[ \t].*/m, inside: { 'not-my-code': { pattern: /[ \t]+at[ \t]+(?!\s)(?:node\.js|\|.*(?:node_modules|\(\\)|\(\|\$|\(internal\/|\(node\.js)).*/m, alias: 'comment' }, 'filename': { pattern: /(\bat\s+(?!\s)|\()(?:[a-zA-Z]:)?[^():]+(?=:)/, lookbehind: true, alias: 'url' }, 'function': { pattern: /(at\s+(?:new\s+)?)(?!\s)[_$a-zA-Z\xA0-\uFFFF<][.$\w\xA0-\uFFFF<>]*/, lookbehind: true, inside: { 'punctuation': /\./ } }, 'punctuation': /[()]/, 'keyword': /\b(?:at|new)\b/, 'alias': { pattern: /\[(?:as\s+)?(?!\s)[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*\]/, alias: 'variable' }, 'line-number': { pattern: /:[0-9]+(?::[0-9]+)?\b/, alias: 'number', inside: { 'punctuation': /:/ } }, } } } /***/ }), /***/ 662: /***/ (function() { (function(Prism) { var javascript = Prism.util.clone(Prism.languages.javascript); Prism.languages.jsx = Prism.languages.extend('markup', javascript); Prism.languages.jsx.tag.pattern = /<\/?(?:[\w.:-]+(?:\s+(?:[\w.:$-]+(?:=(?:"(?:\\[^]|[^\\"])*"|'(?:\\[^]|[^\\'])*'|[^\s{'">=]+|\{(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])+\}))?|\{\s*\.{3}\s*[a-z_$][\w$]*(?:\.[a-z_$][\w$]*)*\s*\}))*\s*\/?)?>/i; Prism.languages.jsx.tag.inside['tag'].pattern = /^<\/?[^\s>\/]*/i; Prism.languages.jsx.tag.inside['attr-value'].pattern = /=(?!\{)(?:"(?:\\[^]|[^\\"])*"|'(?:\\[^]|[^\\'])*'|[^\s'">]+)/i; Prism.languages.jsx.tag.inside['tag'].inside['class-name'] = /^[A-Z]\w*(?:\.[A-Z]\w*)*$/; Prism.languages.insertBefore('inside', 'attr-name', { 'spread': { pattern: /\{\s*\.{3}\s*[a-z_$][\w$]*(?:\.[a-z_$][\w$]*)*\s*\}/, inside: { 'punctuation': /\.{3}|[{}.]/, 'attr-value': /\w+/ } } }, Prism.languages.jsx.tag); Prism.languages.insertBefore('inside', 'attr-value',{ 'script': { // Allow for two levels of nesting pattern: /=(?:\{(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])+\})/i, inside: { 'script-punctuation': { pattern: /^=(?={)/, alias: 'punctuation' }, rest: Prism.languages.jsx }, 'alias': 'language-javascript' } }, Prism.languages.jsx.tag); // The following will handle plain text inside tags var stringifyToken = function (token) { if (!token) { return ''; } if (typeof token === 'string') { return token; } if (typeof token.content === 'string') { return token.content; } return token.content.map(stringifyToken).join(''); }; var walkTokens = function (tokens) { var openedTags = []; for (var i = 0; i < tokens.length; i++) { var token = tokens[i]; var notTagNorBrace = false; if (typeof token !== 'string') { if (token.type === 'tag' && token.content[0] && token.content[0].type === 'tag') { // We found a tag, now find its kind if (token.content[0].content[0].content === ' 0 && openedTags[openedTags.length - 1].tagName === stringifyToken(token.content[0].content[1])) { // Pop matching opening tag openedTags.pop(); } } else { if (token.content[token.content.length - 1].content === '/>') { // Autoclosed tag, ignore } else { // Opening tag openedTags.push({ tagName: stringifyToken(token.content[0].content[1]), openedBraces: 0 }); } } } else if (openedTags.length > 0 && token.type === 'punctuation' && token.content === '{') { // Here we might have entered a JSX context inside a tag openedTags[openedTags.length - 1].openedBraces++; } else if (openedTags.length > 0 && openedTags[openedTags.length - 1].openedBraces > 0 && token.type === 'punctuation' && token.content === '}') { // Here we might have left a JSX context inside a tag openedTags[openedTags.length - 1].openedBraces--; } else { notTagNorBrace = true } } if (notTagNorBrace || typeof token === 'string') { if (openedTags.length > 0 && openedTags[openedTags.length - 1].openedBraces === 0) { // Here we are inside a tag, and not inside a JSX context. // That's plain text: drop any tokens matched. var plainText = stringifyToken(token); // And merge text with adjacent text if (i < tokens.length - 1 && (typeof tokens[i + 1] === 'string' || tokens[i + 1].type === 'plain-text')) { plainText += stringifyToken(tokens[i + 1]); tokens.splice(i + 1, 1); } if (i > 0 && (typeof tokens[i - 1] === 'string' || tokens[i - 1].type === 'plain-text')) { plainText = stringifyToken(tokens[i - 1]) + plainText; tokens.splice(i - 1, 1); i--; } tokens[i] = new Prism.Token('plain-text', plainText, null, plainText); } } if (token.content && typeof token.content !== 'string') { walkTokens(token.content); } } }; Prism.hooks.add('after-tokenize', function (env) { if (env.language !== 'jsx' && env.language !== 'tsx') { return; } walkTokens(env.tokens); }); }(Prism)); /***/ }), /***/ 8946: /***/ (function() { Prism.languages.julia = { 'comment': { // support one level of nested comments // https://github.com/JuliaLang/julia/pull/6128 pattern: /(^|[^\\])(?:#=(?:[^#=]|=(?!#)|#(?!=)|#=(?:[^#=]|=(?!#)|#(?!=))*=#)*=#|#.*)/, lookbehind: true }, 'regex': { // https://docs.julialang.org/en/v1/manual/strings/#Regular-Expressions-1 pattern: /r"(?:\\.|[^"\\\r\n])*"[imsx]{0,4}/, greedy: true }, 'string': { // https://docs.julialang.org/en/v1/manual/strings/#man-characters-1 // https://docs.julialang.org/en/v1/manual/strings/#String-Basics-1 // https://docs.julialang.org/en/v1/manual/strings/#non-standard-string-literals-1 // https://docs.julialang.org/en/v1/manual/running-external-programs/#Running-External-Programs-1 pattern: /"""[\s\S]+?"""|\w*"(?:\\.|[^"\\\r\n])*"|(^|[^\w'])'(?:\\[^\r\n][^'\r\n]*|[^\\\r\n])'|`(?:[^\\`\r\n]|\\.)*`/, lookbehind: true, greedy: true }, 'keyword': /\b(?:abstract|baremodule|begin|bitstype|break|catch|ccall|const|continue|do|else|elseif|end|export|finally|for|function|global|if|immutable|import|importall|in|let|local|macro|module|print|println|quote|return|struct|try|type|typealias|using|while)\b/, 'boolean': /\b(?:true|false)\b/, 'number': /(?:\b(?=\d)|\B(?=\.))(?:0[box])?(?:[\da-f]+(?:_[\da-f]+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[efp][+-]?\d+(?:_\d+)*)?j?/i, // https://docs.julialang.org/en/v1/manual/mathematical-operations/ // https://docs.julialang.org/en/v1/manual/mathematical-operations/#Operator-Precedence-and-Associativity-1 'operator': /&&|\|\||[-+*^%÷⊻&$\\]=?|\/[\/=]?|!=?=?|\|[=>]?|<(?:<=?|[=:|])?|>(?:=|>>?=?)?|==?=?|[~≠≤≥'√∛]/, 'punctuation': /::?|[{}[\]();,.?]/, // https://docs.julialang.org/en/v1/base/numbers/#Base.im 'constant': /\b(?:(?:NaN|Inf)(?:16|32|64)?|im|pi)\b|[πℯ]/ }; /***/ }), /***/ 4738: /***/ (function() { Prism.languages.keyman = { 'comment': /\bc\s.*/i, 'function': /\[\s*(?:(?:CTRL|SHIFT|ALT|LCTRL|RCTRL|LALT|RALT|CAPS|NCAPS)\s+)*(?:[TKU]_[\w?]+|".+?"|'.+?')\s*\]/i, // virtual key 'string': /("|').*?\1/, 'bold': [ // header statements, system stores and variable system stores /&(?:baselayout|bitmap|capsononly|capsalwaysoff|shiftfreescaps|copyright|ethnologuecode|hotkey|includecodes|keyboardversion|kmw_embedcss|kmw_embedjs|kmw_helpfile|kmw_helptext|kmw_rtl|language|layer|layoutfile|message|mnemoniclayout|name|oldcharposmatching|platform|targets|version|visualkeyboard|windowslanguages)\b/i, /\b(?:bitmap|bitmaps|caps on only|caps always off|shift frees caps|copyright|hotkey|language|layout|message|name|version)\b/i ], 'keyword': /\b(?:any|baselayout|beep|call|context|deadkey|dk|if|index|layer|notany|nul|outs|platform|return|reset|save|set|store|use)\b/i, // rule keywords 'atrule': /\b(?:ansi|begin|unicode|group|using keys|match|nomatch)\b/i, // structural keywords 'number': /\b(?:U\+[\dA-F]+|d\d+|x[\da-f]+|\d+)\b/i, // U+####, x###, d### characters and numbers 'operator': /[+>\\,()]/, 'tag': /\$(?:keyman|kmfl|weaver|keymanweb|keymanonly):/i // prefixes }; /***/ }), /***/ 17: /***/ (function() { (function (Prism) { Prism.languages.kotlin = Prism.languages.extend('clike', { 'keyword': { // The lookbehind prevents wrong highlighting of e.g. kotlin.properties.get pattern: /(^|[^.])\b(?:abstract|actual|annotation|as|break|by|catch|class|companion|const|constructor|continue|crossinline|data|do|dynamic|else|enum|expect|external|final|finally|for|fun|get|if|import|in|infix|init|inline|inner|interface|internal|is|lateinit|noinline|null|object|open|operator|out|override|package|private|protected|public|reified|return|sealed|set|super|suspend|tailrec|this|throw|to|try|typealias|val|var|vararg|when|where|while)\b/, lookbehind: true }, 'function': [ { pattern: /(?:`[^\r\n`]+`|\w+)(?=\s*\()/, greedy: true }, { pattern: /(\.)(?:`[^\r\n`]+`|\w+)(?=\s*\{)/, lookbehind: true, greedy: true } ], 'number': /\b(?:0[xX][\da-fA-F]+(?:_[\da-fA-F]+)*|0[bB][01]+(?:_[01]+)*|\d+(?:_\d+)*(?:\.\d+(?:_\d+)*)?(?:[eE][+-]?\d+(?:_\d+)*)?[fFL]?)\b/, 'operator': /\+[+=]?|-[-=>]?|==?=?|!(?:!|==?)?|[\/*%<>]=?|[?:]:?|\.\.|&&|\|\||\b(?:and|inv|or|shl|shr|ushr|xor)\b/ }); delete Prism.languages.kotlin["class-name"]; Prism.languages.insertBefore('kotlin', 'string', { 'raw-string': { pattern: /("""|''')[\s\S]*?\1/, alias: 'string' // See interpolation below } }); Prism.languages.insertBefore('kotlin', 'keyword', { 'annotation': { pattern: /\B@(?:\w+:)?(?:[A-Z]\w*|\[[^\]]+\])/, alias: 'builtin' } }); Prism.languages.insertBefore('kotlin', 'function', { 'label': { pattern: /\w+@|@\w+/, alias: 'symbol' } }); var interpolation = [ { pattern: /\$\{[^}]+\}/, inside: { 'delimiter': { pattern: /^\$\{|\}$/, alias: 'variable' }, rest: Prism.languages.kotlin } }, { pattern: /\$\w+/, alias: 'variable' } ]; Prism.languages.kotlin['string'].inside = Prism.languages.kotlin['raw-string'].inside = { interpolation: interpolation }; Prism.languages.kt = Prism.languages.kotlin; Prism.languages.kts = Prism.languages.kotlin; }(Prism)); /***/ }), /***/ 8361: /***/ (function() { (function (Prism) { var funcPattern = /\\(?:[^a-z()[\]]|[a-z*]+)/i; var insideEqu = { 'equation-command': { pattern: funcPattern, alias: 'regex' } }; Prism.languages.latex = { 'comment': /%.*/m, // the verbatim environment prints whitespace to the document 'cdata': { pattern: /(\\begin\{((?:verbatim|lstlisting)\*?)\})[\s\S]*?(?=\\end\{\2\})/, lookbehind: true }, /* * equations can be between $$ $$ or $ $ or \( \) or \[ \] * (all are multiline) */ 'equation': [ { pattern: /\$\$(?:\\[\s\S]|[^\\$])+\$\$|\$(?:\\[\s\S]|[^\\$])+\$|\\\([\s\S]*?\\\)|\\\[[\s\S]*?\\\]/, inside: insideEqu, alias: 'string' }, { pattern: /(\\begin\{((?:equation|math|eqnarray|align|multline|gather)\*?)\})[\s\S]*?(?=\\end\{\2\})/, lookbehind: true, inside: insideEqu, alias: 'string' } ], /* * arguments which are keywords or references are highlighted * as keywords */ 'keyword': { pattern: /(\\(?:begin|end|ref|cite|label|usepackage|documentclass)(?:\[[^\]]+\])?\{)[^}]+(?=\})/, lookbehind: true }, 'url': { pattern: /(\\url\{)[^}]+(?=\})/, lookbehind: true }, /* * section or chapter headlines are highlighted as bold so that * they stand out more */ 'headline': { pattern: /(\\(?:part|chapter|section|subsection|frametitle|subsubsection|paragraph|subparagraph|subsubparagraph|subsubsubparagraph)\*?(?:\[[^\]]+\])?\{)[^}]+(?=\}(?:\[[^\]]+\])?)/, lookbehind: true, alias: 'class-name' }, 'function': { pattern: funcPattern, alias: 'selector' }, 'punctuation': /[[\]{}&]/ }; Prism.languages.tex = Prism.languages.latex; Prism.languages.context = Prism.languages.latex; })(Prism); /***/ }), /***/ 3242: /***/ (function() { (function (Prism) { Prism.languages.latte = { 'comment': /^\{\*[\s\S]*/, 'ld': { pattern: /^\{(?:[=_]|\/?(?!\d|\w+\()\w+|)/, inside: { 'punctuation': /^\{\/?/, 'tag': { pattern: /.+/, alias: 'important' } } }, 'rd': { pattern: /\}$/, inside: { 'punctuation': /.+/ } }, 'php': { pattern: /\S(?:[\s\S]*\S)?/, alias: 'language-php', inside: Prism.languages.php } }; var markupLatte = Prism.languages.extend('markup', {}); Prism.languages.insertBefore('inside', 'attr-value', { 'n-attr': { pattern: /n:[\w-]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+))?/, inside: { 'attr-name': { pattern: /^[^\s=]+/, alias: 'important' }, 'attr-value': { pattern: /=[\s\S]+/, inside: { 'punctuation': [ /^=/, { pattern: /^(\s*)["']|["']$/, lookbehind: true } ], 'php': { pattern: /\S(?:[\s\S]*\S)?/, inside: Prism.languages.php } } }, } }, }, markupLatte.tag); Prism.hooks.add('before-tokenize', function(env) { if (env.language !== 'latte') { return; } var lattePattern = /\{\*[\s\S]*?\*\}|\{[^'"\s{}*](?:[^"'/{}]|\/(?![*/])|("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|\/\*(?:[^*]|\*(?!\/))*\*\/)*?\}/g; Prism.languages['markup-templating'].buildPlaceholders(env, 'latte', lattePattern); env.grammar = markupLatte; }); Prism.hooks.add('after-tokenize', function(env) { Prism.languages['markup-templating'].tokenizePlaceholders(env, 'latte'); }); }(Prism)); /***/ }), /***/ 3872: /***/ (function() { /* FIXME : :extend() is not handled specifically : its highlighting is buggy. Mixin usage must be inside a ruleset to be highlighted. At-rules (e.g. import) containing interpolations are buggy. Detached rulesets are highlighted as at-rules. A comment before a mixin usage prevents the latter to be properly highlighted. */ Prism.languages.less = Prism.languages.extend('css', { 'comment': [ /\/\*[\s\S]*?\*\//, { pattern: /(^|[^\\])\/\/.*/, lookbehind: true } ], 'atrule': { pattern: /@[\w-](?:\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};\s]|\s+(?!\s))*?(?=\s*\{)/, inside: { 'punctuation': /[:()]/ } }, // selectors and mixins are considered the same 'selector': { pattern: /(?:@\{[\w-]+\}|[^{};\s@])(?:@\{[\w-]+\}|\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};@\s]|\s+(?!\s))*?(?=\s*\{)/, inside: { // mixin parameters 'variable': /@+[\w-]+/ } }, 'property': /(?:@\{[\w-]+\}|[\w-])+(?:\+_?)?(?=\s*:)/i, 'operator': /[+\-*\/]/ }); Prism.languages.insertBefore('less', 'property', { 'variable': [ // Variable declaration (the colon must be consumed!) { pattern: /@[\w-]+\s*:/, inside: { "punctuation": /:/ } }, // Variable usage /@@?[\w-]+/ ], 'mixin-usage': { pattern: /([{;]\s*)[.#](?!\d)[\w-].*?(?=[(;])/, lookbehind: true, alias: 'function' } }); /***/ }), /***/ 7743: /***/ (function() { (function (Prism) { var schemeExpression = /\((?:[^();"#\\]|\\[\s\S]|;.*(?!.)|"(?:[^"\\]|\\.)*"|#(?:\{(?:(?!#\})[\s\S])*#\}|[^{])|)*\)/.source; // allow for up to pow(2, recursivenessLog2) many levels of recursive brace expressions // For some reason, this can't be 4 var recursivenessLog2 = 5; for (var i = 0; i < recursivenessLog2; i++) { schemeExpression = schemeExpression.replace(//g, function () { return schemeExpression; }); } schemeExpression = schemeExpression.replace(//g, /[^\s\S]/.source); var lilypond = Prism.languages.lilypond = { 'comment': /%(?:(?!\{).*|\{[\s\S]*?%\})/, 'embedded-scheme': { pattern: RegExp(/(^|[=\s])#(?:"(?:[^"\\]|\\.)*"|[^\s()"]*(?:[^\s()]|))/.source.replace(//g, function () { return schemeExpression; }), 'm'), lookbehind: true, greedy: true, inside: { 'scheme': { pattern: /^(#)[\s\S]+$/, lookbehind: true, alias: 'language-scheme', inside: { 'embedded-lilypond': { pattern: /#\{[\s\S]*?#\}/, greedy: true, inside: { 'punctuation': /^#\{|#\}$/, 'lilypond': { pattern: /[\s\S]+/, alias: 'language-lilypond', inside: null // see below } } }, rest: Prism.languages.scheme } }, 'punctuation': /#/ } }, 'string': { pattern: /"(?:[^"\\]|\\.)*"/, greedy: true }, 'class-name': { pattern: /(\\new\s+)[\w-]+/, lookbehind: true }, 'keyword': { pattern: /\\[a-z][-\w]*/i, inside: { 'punctuation': /^\\/ } }, 'operator': /[=|]|<<|>>/, 'punctuation': { pattern: /(^|[a-z\d])(?:'+|,+|[_^]?-[_^]?(?:[-+^!>._]|(?=\d))|[_^]\.?|[.!])|[{}()[\]<>^~]|\\[()[\]<>\\!]|--|__/, lookbehind: true }, 'number': /\b\d+(?:\/\d+)?\b/ }; lilypond['embedded-scheme'].inside['scheme'].inside['embedded-lilypond'].inside['lilypond'].inside = lilypond; Prism.languages.ly = lilypond; }(Prism)); /***/ }), /***/ 1676: /***/ (function() { Prism.languages.liquid = { 'keyword': /\b(?:comment|endcomment|if|elsif|else|endif|unless|endunless|for|endfor|case|endcase|when|in|break|assign|continue|limit|offset|range|reversed|raw|endraw|capture|endcapture|tablerow|endtablerow)\b/, 'number': /\b0b[01]+\b|\b0x(?:\.[\da-fp-]+|[\da-f]+(?:\.[\da-fp-]+)?)\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?[df]?/i, 'operator': { pattern: /(^|[^.])(?:\+[+=]?|-[-=]?|!=?|<>?>?=?|==?|&[&=]?|\|[|=]?|\*=?|\/=?|%=?|\^=?|[?:~])/m, lookbehind: true }, 'function': { pattern: /(^|[\s;|&])(?:append|prepend|capitalize|cycle|cols|increment|decrement|abs|at_least|at_most|ceil|compact|concat|date|default|divided_by|downcase|escape|escape_once|first|floor|join|last|lstrip|map|minus|modulo|newline_to_br|plus|remove|remove_first|replace|replace_first|reverse|round|rstrip|size|slice|sort|sort_natural|split|strip|strip_html|strip_newlines|times|truncate|truncatewords|uniq|upcase|url_decode|url_encode|include|paginate)(?=$|[\s;|&])/, lookbehind: true } }; /***/ }), /***/ 5042: /***/ (function() { (function (Prism) { // Functions to construct regular expressions // simple form // e.g. (interactive ... or (interactive) function simple_form(name) { return RegExp('(\\()' + name + '(?=[\\s\\)])'); } // booleans and numbers function primitive(pattern) { return RegExp('([\\s([])' + pattern + '(?=[\\s)])'); } // Patterns in regular expressions // Symbol name. See https://www.gnu.org/software/emacs/manual/html_node/elisp/Symbol-Type.html // & and : are excluded as they are usually used for special purposes var symbol = '[-+*/_~!@$%^=<>{}\\w]+'; // symbol starting with & used in function arguments var marker = '&' + symbol; // Open parenthesis for look-behind var par = '(\\()'; var endpar = '(?=\\))'; // End the pattern with look-ahead space var space = '(?=\\s)'; var language = { // Three or four semicolons are considered a heading. // See https://www.gnu.org/software/emacs/manual/html_node/elisp/Comment-Tips.html heading: { pattern: /;;;.*/, alias: ['comment', 'title'] }, comment: /;.*/, string: { pattern: /"(?:[^"\\]|\\.)*"/, greedy: true, inside: { argument: /[-A-Z]+(?=[.,\s])/, symbol: RegExp('`' + symbol + "'") } }, 'quoted-symbol': { pattern: RegExp("#?'" + symbol), alias: ['variable', 'symbol'] }, 'lisp-property': { pattern: RegExp(':' + symbol), alias: 'property' }, splice: { pattern: RegExp(',@?' + symbol), alias: ['symbol', 'variable'] }, keyword: [ { pattern: RegExp( par + '(?:(?:lexical-)?let\\*?|(?:cl-)?letf|if|when|while|unless|cons|cl-loop|and|or|not|cond|setq|error|message|null|require|provide|use-package)' + space ), lookbehind: true }, { pattern: RegExp( par + '(?:for|do|collect|return|finally|append|concat|in|by)' + space ), lookbehind: true }, ], declare: { pattern: simple_form('declare'), lookbehind: true, alias: 'keyword' }, interactive: { pattern: simple_form('interactive'), lookbehind: true, alias: 'keyword' }, boolean: { pattern: primitive('(?:t|nil)'), lookbehind: true }, number: { pattern: primitive('[-+]?\\d+(?:\\.\\d*)?'), lookbehind: true }, defvar: { pattern: RegExp(par + 'def(?:var|const|custom|group)\\s+' + symbol), lookbehind: true, inside: { keyword: /^def[a-z]+/, variable: RegExp(symbol) } }, defun: { pattern: RegExp( par + '(?:cl-)?(?:defun\\*?|defmacro)\\s+' + symbol + '\\s+\\([\\s\\S]*?\\)' ), lookbehind: true, inside: { keyword: /^(?:cl-)?def\S+/, // See below, this property needs to be defined later so that it can // reference the language object. arguments: null, function: { pattern: RegExp('(^\\s)' + symbol), lookbehind: true }, punctuation: /[()]/ } }, lambda: { pattern: RegExp(par + 'lambda\\s+\\(\\s*(?:&?' + symbol + '(?:\\s+&?' + symbol + ')*\\s*)?\\)'), lookbehind: true, inside: { keyword: /^lambda/, // See below, this property needs to be defined later so that it can // reference the language object. arguments: null, punctuation: /[()]/ } }, car: { pattern: RegExp(par + symbol), lookbehind: true }, punctuation: [ // open paren, brackets, and close paren /(?:['`,]?\(|[)\[\]])/, // cons { pattern: /(\s)\.(?=\s)/, lookbehind: true }, ] }; var arg = { 'lisp-marker': RegExp(marker), rest: { argument: { pattern: RegExp(symbol), alias: 'variable' }, varform: { pattern: RegExp(par + symbol + '\\s+\\S[\\s\\S]*' + endpar), lookbehind: true, inside: { string: language.string, boolean: language.boolean, number: language.number, symbol: language.symbol, punctuation: /[()]/ } } } }; var forms = '\\S+(?:\\s+\\S+)*'; var arglist = { pattern: RegExp(par + '[\\s\\S]*' + endpar), lookbehind: true, inside: { 'rest-vars': { pattern: RegExp('&(?:rest|body)\\s+' + forms), inside: arg }, 'other-marker-vars': { pattern: RegExp('&(?:optional|aux)\\s+' + forms), inside: arg }, keys: { pattern: RegExp('&key\\s+' + forms + '(?:\\s+&allow-other-keys)?'), inside: arg }, argument: { pattern: RegExp(symbol), alias: 'variable' }, punctuation: /[()]/ } }; language['lambda'].inside.arguments = arglist; language['defun'].inside.arguments = Prism.util.clone(arglist); language['defun'].inside.arguments.inside.sublist = arglist; Prism.languages.lisp = language; Prism.languages.elisp = language; Prism.languages.emacs = language; Prism.languages['emacs-lisp'] = language; }(Prism)); /***/ }), /***/ 5875: /***/ (function() { Prism.languages.livescript = { 'comment': [ { pattern: /(^|[^\\])\/\*[\s\S]*?\*\//, lookbehind: true }, { pattern: /(^|[^\\])#.*/, lookbehind: true } ], 'interpolated-string': { /* Look-behind and look-ahead prevents wrong behavior of the greedy pattern * forcing it to match """-quoted string when it would otherwise match "-quoted first. */ pattern: /(^|[^"])("""|")(?:\\[\s\S]|(?!\2)[^\\])*\2(?!")/, lookbehind: true, greedy: true, inside: { 'variable': { pattern: /(^|[^\\])#[a-z_](?:-?[a-z]|[\d_])*/m, lookbehind: true }, 'interpolation': { pattern: /(^|[^\\])#\{[^}]+\}/m, lookbehind: true, inside: { 'interpolation-punctuation': { pattern: /^#\{|\}$/, alias: 'variable' } // See rest below } }, 'string': /[\s\S]+/ } }, 'string': [ { pattern: /('''|')(?:\\[\s\S]|(?!\1)[^\\])*\1/, greedy: true }, { pattern: /<\[[\s\S]*?\]>/, greedy: true }, /\\[^\s,;\])}]+/ ], 'regex': [ { pattern: /\/\/(?:\[[^\r\n\]]*\]|\\.|(?!\/\/)[^\\\[])+\/\/[gimyu]{0,5}/, greedy: true, inside: { 'comment': { pattern: /(^|[^\\])#.*/, lookbehind: true } } }, { pattern: /\/(?:\[[^\r\n\]]*\]|\\.|[^/\\\r\n\[])+\/[gimyu]{0,5}/, greedy: true } ], 'keyword': { pattern: /(^|(?!-).)\b(?:break|case|catch|class|const|continue|default|do|else|extends|fallthrough|finally|for(?: ever)?|function|if|implements|it|let|loop|new|null|otherwise|own|return|super|switch|that|then|this|throw|try|unless|until|var|void|when|while|yield)(?!-)\b/m, lookbehind: true }, 'keyword-operator': { pattern: /(^|[^-])\b(?:(?:delete|require|typeof)!|(?:and|by|delete|export|from|import(?: all)?|in|instanceof|is(?:nt| not)?|not|of|or|til|to|typeof|with|xor)(?!-)\b)/m, lookbehind: true, alias: 'operator' }, 'boolean': { pattern: /(^|[^-])\b(?:false|no|off|on|true|yes)(?!-)\b/m, lookbehind: true }, 'argument': { // Don't match .&. nor && pattern: /(^|(?!\.&\.)[^&])&(?!&)\d*/m, lookbehind: true, alias: 'variable' }, 'number': /\b(?:\d+~[\da-z]+|\d[\d_]*(?:\.\d[\d_]*)?(?:[a-z]\w*)?)/i, 'identifier': /[a-z_](?:-?[a-z]|[\d_])*/i, 'operator': [ // Spaced . { pattern: /( )\.(?= )/, lookbehind: true }, // Full list, in order: // .= .~ .. ... // .&. .^. .<<. .>>. .>>>. // := :: ::= // && // || |> // < << <<< <<<< // <- <-- <-! <--! // <~ <~~ <~! <~~! // <| <= >> >= >? // - -- -> --> // + ++ // @ @@ // % %% // * ** // ! != !~= // !~> !~~> // !-> !--> // ~ ~> ~~> ~= // = == // ^ ^^ // / ? /\.(?:[=~]|\.\.?)|\.(?:[&|^]|<<|>>>?)\.|:(?:=|:=?)|&&|\|[|>]|<(?:<[>=?]?|-(?:->?|>)?|\+\+?|@@?|%%?|\*\*?|!(?:~?=|--?>|~?~>)?|~(?:~?>|=)?|==?|\^\^?|[\/?]/ ], 'punctuation': /[(){}\[\]|.,:;`]/ }; Prism.languages.livescript['interpolated-string'].inside['interpolation'].inside.rest = Prism.languages.livescript; /***/ }), /***/ 6929: /***/ (function() { (function(Prism) { Prism.languages.llvm = { 'comment': /;.*/, 'string': { pattern: /"[^"]*"/, greedy: true, }, 'boolean': /\b(?:true|false)\b/, 'variable': /[%@!#](?:(?!\d)(?:[-$.\w]|\\[a-f\d]{2})+|\d+)/i, 'label': /(?!\d)(?:[-$.\w]|\\[a-f\d]{2})+:/i, 'type': { pattern: /\b(?:double|float|fp128|half|i[1-9]\d*|label|metadata|ppc_fp128|token|void|x86_fp80|x86_mmx)\b/, alias: 'class-name', }, 'keyword': /\b[a-z_][a-z_0-9]*\b/, 'number': /[+-]?\b\d+(?:\.\d+)?(?:[eE][+-]?\d+)?\b|\b0x[\dA-Fa-f]+\b|\b0xK[\dA-Fa-f]{20}\b|\b0x[ML][\dA-Fa-f]{32}\b|\b0xH[\dA-Fa-f]{4}\b/, 'punctuation': /[{}[\];(),.!*=<>]/, }; }(Prism)); /***/ }), /***/ 4127: /***/ (function() { Prism.languages.lolcode = { 'comment': [ /\bOBTW\s[\s\S]*?\sTLDR\b/, /\bBTW.+/ ], 'string': { pattern: /"(?::.|[^":])*"/, inside: { 'variable': /:\{[^}]+\}/, 'symbol': [ /:\([a-f\d]+\)/i, /:\[[^\]]+\]/, /:[)>o":]/ ] }, greedy: true }, 'number': /(?:\B-)?(?:\b\d+(?:\.\d*)?|\B\.\d+)/, 'symbol': { pattern: /(^|\s)(?:A )?(?:YARN|NUMBR|NUMBAR|TROOF|BUKKIT|NOOB)(?=\s|,|$)/, lookbehind: true, inside: { 'keyword': /A(?=\s)/ } }, 'label': { pattern: /((?:^|\s)(?:IM IN YR|IM OUTTA YR) )[a-zA-Z]\w*/, lookbehind: true, alias: 'string' }, 'function': { pattern: /((?:^|\s)(?:I IZ|HOW IZ I|IZ) )[a-zA-Z]\w*/, lookbehind: true }, 'keyword': [ { pattern: /(^|\s)(?:O HAI IM|KTHX|HAI|KTHXBYE|I HAS A|ITZ(?: A)?|R|AN|MKAY|SMOOSH|MAEK|IS NOW(?: A)?|VISIBLE|GIMMEH|O RLY\?|YA RLY|NO WAI|OIC|MEBBE|WTF\?|OMG|OMGWTF|GTFO|IM IN YR|IM OUTTA YR|FOUND YR|YR|TIL|WILE|UPPIN|NERFIN|I IZ|HOW IZ I|IF U SAY SO|SRS|HAS A|LIEK(?: A)?|IZ)(?=\s|,|$)/, lookbehind: true }, /'Z(?=\s|,|$)/ ], 'boolean': { pattern: /(^|\s)(?:WIN|FAIL)(?=\s|,|$)/, lookbehind: true }, 'variable': { pattern: /(^|\s)IT(?=\s|,|$)/, lookbehind: true }, 'operator': { pattern: /(^|\s)(?:NOT|BOTH SAEM|DIFFRINT|(?:SUM|DIFF|PRODUKT|QUOSHUNT|MOD|BIGGR|SMALLR|BOTH|EITHER|WON|ALL|ANY) OF)(?=\s|,|$)/, lookbehind: true }, 'punctuation': /\.{3}|…|,|!/ }; /***/ }), /***/ 7643: /***/ (function() { Prism.languages.lua = { 'comment': /^#!.+|--(?:\[(=*)\[[\s\S]*?\]\1\]|.*)/m, // \z may be used to skip the following space 'string': { pattern: /(["'])(?:(?!\1)[^\\\r\n]|\\z(?:\r\n|\s)|\\(?:\r\n|[^z]))*\1|\[(=*)\[[\s\S]*?\]\2\]/, greedy: true }, 'number': /\b0x[a-f\d]+(?:\.[a-f\d]*)?(?:p[+-]?\d+)?\b|\b\d+(?:\.\B|(?:\.\d*)?(?:e[+-]?\d+)?\b)|\B\.\d+(?:e[+-]?\d+)?\b/i, 'keyword': /\b(?:and|break|do|else|elseif|end|false|for|function|goto|if|in|local|nil|not|or|repeat|return|then|true|until|while)\b/, 'function': /(?!\d)\w+(?=\s*(?:[({]))/, 'operator': [ /[-+*%^&|#]|\/\/?|<[<=]?|>[>=]?|[=~]=?/, { // Match ".." but don't break "..." pattern: /(^|[^.])\.\.(?!\.)/, lookbehind: true } ], 'punctuation': /[\[\](){},;]|\.+|:+/ }; /***/ }), /***/ 900: /***/ (function() { Prism.languages.makefile = { 'comment': { pattern: /(^|[^\\])#(?:\\(?:\r\n|[\s\S])|[^\\\r\n])*/, lookbehind: true }, 'string': { pattern: /(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/, greedy: true }, // Built-in target names 'builtin': /\.[A-Z][^:#=\s]+(?=\s*:(?!=))/, // Targets 'symbol': { pattern: /^(?:[^:=\s]|[ \t]+(?![\s:]))+(?=\s*:(?!=))/m, inside: { 'variable': /\$+(?:(?!\$)[^(){}:#=\s]+|(?=[({]))/ } }, 'variable': /\$+(?:(?!\$)[^(){}:#=\s]+|\([@*%<^+?][DF]\)|(?=[({]))/, 'keyword': [ // Directives /-include\b|\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|include|override|private|sinclude|undefine|unexport|vpath)\b/, // Functions { pattern: /(\()(?:addsuffix|abspath|and|basename|call|dir|error|eval|file|filter(?:-out)?|findstring|firstword|flavor|foreach|guile|if|info|join|lastword|load|notdir|or|origin|patsubst|realpath|shell|sort|strip|subst|suffix|value|warning|wildcard|word(?:s|list)?)(?=[ \t])/, lookbehind: true } ], 'operator': /(?:::|[?:+!])?=|[|@]/, 'punctuation': /[:;(){}]/ }; /***/ }), /***/ 5031: /***/ (function() { (function (Prism) { // Allow only one line break var inner = /(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?!\n|\r\n?))/.source; /** * This function is intended for the creation of the bold or italic pattern. * * This also adds a lookbehind group to the given pattern to ensure that the pattern is not backslash-escaped. * * _Note:_ Keep in mind that this adds a capturing group. * * @param {string} pattern * @returns {RegExp} */ function createInline(pattern) { pattern = pattern.replace(//g, function () { return inner; }); return RegExp(/((?:^|[^\\])(?:\\{2})*)/.source + '(?:' + pattern + ')'); } var tableCell = /(?:\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\|\r\n`])+/.source; var tableRow = /\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g, function () { return tableCell; }); var tableLine = /\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source; Prism.languages.markdown = Prism.languages.extend('markup', {}); Prism.languages.insertBefore('markdown', 'prolog', { 'front-matter-block': { pattern: /(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/, lookbehind: true, greedy: true, inside: { 'punctuation': /^---|---$/, 'font-matter': { pattern: /\S+(?:\s+\S+)*/, alias: ['yaml', 'language-yaml'], inside: Prism.languages.yaml } } }, 'blockquote': { // > ... pattern: /^>(?:[\t ]*>)*/m, alias: 'punctuation' }, 'table': { pattern: RegExp('^' + tableRow + tableLine + '(?:' + tableRow + ')*', 'm'), inside: { 'table-data-rows': { pattern: RegExp('^(' + tableRow + tableLine + ')(?:' + tableRow + ')*$'), lookbehind: true, inside: { 'table-data': { pattern: RegExp(tableCell), inside: Prism.languages.markdown }, 'punctuation': /\|/ } }, 'table-line': { pattern: RegExp('^(' + tableRow + ')' + tableLine + '$'), lookbehind: true, inside: { 'punctuation': /\||:?-{3,}:?/ } }, 'table-header-row': { pattern: RegExp('^' + tableRow + '$'), inside: { 'table-header': { pattern: RegExp(tableCell), alias: 'important', inside: Prism.languages.markdown }, 'punctuation': /\|/ } } } }, 'code': [ { // Prefixed by 4 spaces or 1 tab and preceded by an empty line pattern: /((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/, lookbehind: true, alias: 'keyword' }, { // `code` // ``code`` pattern: /``.+?``|`[^`\r\n]+`/, alias: 'keyword' }, { // ```optional language // code block // ``` pattern: /^```[\s\S]*?^```$/m, greedy: true, inside: { 'code-block': { pattern: /^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m, lookbehind: true }, 'code-language': { pattern: /^(```).+/, lookbehind: true }, 'punctuation': /```/ } } ], 'title': [ { // title 1 // ======= // title 2 // ------- pattern: /\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m, alias: 'important', inside: { punctuation: /==+$|--+$/ } }, { // # title 1 // ###### title 6 pattern: /(^\s*)#.+/m, lookbehind: true, alias: 'important', inside: { punctuation: /^#+|#+$/ } } ], 'hr': { // *** // --- // * * * // ----------- pattern: /(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m, lookbehind: true, alias: 'punctuation' }, 'list': { // * item // + item // - item // 1. item pattern: /(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m, lookbehind: true, alias: 'punctuation' }, 'url-reference': { // [id]: http://example.com "Optional title" // [id]: http://example.com 'Optional title' // [id]: http://example.com (Optional title) // [id]: "Optional title" pattern: /!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/, inside: { 'variable': { pattern: /^(!?\[)[^\]]+/, lookbehind: true }, 'string': /(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/, 'punctuation': /^[\[\]!:]|[<>]/ }, alias: 'url' }, 'bold': { // **strong** // __strong__ // allow one nested instance of italic text using the same delimiter pattern: createInline(/\b__(?:(?!_)|_(?:(?!_))+_)+__\b|\*\*(?:(?!\*)|\*(?:(?!\*))+\*)+\*\*/.source), lookbehind: true, greedy: true, inside: { 'content': { pattern: /(^..)[\s\S]+(?=..$)/, lookbehind: true, inside: {} // see below }, 'punctuation': /\*\*|__/ } }, 'italic': { // *em* // _em_ // allow one nested instance of bold text using the same delimiter pattern: createInline(/\b_(?:(?!_)|__(?:(?!_))+__)+_\b|\*(?:(?!\*)|\*\*(?:(?!\*))+\*\*)+\*/.source), lookbehind: true, greedy: true, inside: { 'content': { pattern: /(^.)[\s\S]+(?=.$)/, lookbehind: true, inside: {} // see below }, 'punctuation': /[*_]/ } }, 'strike': { // ~~strike through~~ // ~strike~ pattern: createInline(/(~~?)(?:(?!~))+?\2/.source), lookbehind: true, greedy: true, inside: { 'content': { pattern: /(^~~?)[\s\S]+(?=\1$)/, lookbehind: true, inside: {} // see below }, 'punctuation': /~~?/ } }, 'url': { // [example](http://example.com "Optional title") // [example][id] // [example] [id] pattern: createInline(/!?\[(?:(?!\]))+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)|[ \t]?\[(?:(?!\]))+\])/.source), lookbehind: true, greedy: true, inside: { 'operator': /^!/, 'content': { pattern: /(^\[)[^\]]+(?=\])/, lookbehind: true, inside: {} // see below }, 'variable': { pattern: /(^\][ \t]?\[)[^\]]+(?=\]$)/, lookbehind: true }, 'url': { pattern: /(^\]\()[^\s)]+/, lookbehind: true }, 'string': { pattern: /(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/, lookbehind: true } } } }); ['url', 'bold', 'italic', 'strike'].forEach(function (token) { ['url', 'bold', 'italic', 'strike'].forEach(function (inside) { if (token !== inside) { Prism.languages.markdown[token].inside.content.inside[inside] = Prism.languages.markdown[inside]; } }); }); Prism.hooks.add('after-tokenize', function (env) { if (env.language !== 'markdown' && env.language !== 'md') { return; } function walkTokens(tokens) { if (!tokens || typeof tokens === 'string') { return; } for (var i = 0, l = tokens.length; i < l; i++) { var token = tokens[i]; if (token.type !== 'code') { walkTokens(token.content); continue; } /* * Add the correct `language-xxxx` class to this code block. Keep in mind that the `code-language` token * is optional. But the grammar is defined so that there is only one case we have to handle: * * token.content = [ * ```, * xxxx, * '\n', // exactly one new lines (\r or \n or \r\n) * ..., * '\n', // exactly one new lines again * ``` * ]; */ var codeLang = token.content[1]; var codeBlock = token.content[3]; if (codeLang && codeBlock && codeLang.type === 'code-language' && codeBlock.type === 'code-block' && typeof codeLang.content === 'string') { // this might be a language that Prism does not support // do some replacements to support C++, C#, and F# var lang = codeLang.content.replace(/\b#/g, 'sharp').replace(/\b\+\+/g, 'pp') // only use the first word lang = (/[a-z][\w-]*/i.exec(lang) || [''])[0].toLowerCase(); var alias = 'language-' + lang; // add alias if (!codeBlock.alias) { codeBlock.alias = [alias]; } else if (typeof codeBlock.alias === 'string') { codeBlock.alias = [codeBlock.alias, alias]; } else { codeBlock.alias.push(alias); } } } } walkTokens(env.tokens); }); Prism.hooks.add('wrap', function (env) { if (env.type !== 'code-block') { return; } var codeLang = ''; for (var i = 0, l = env.classes.length; i < l; i++) { var cls = env.classes[i]; var match = /language-(.+)/.exec(cls); if (match) { codeLang = match[1]; break; } } var grammar = Prism.languages[codeLang]; if (!grammar) { if (codeLang && codeLang !== 'none' && Prism.plugins.autoloader) { var id = 'md-' + new Date().valueOf() + '-' + Math.floor(Math.random() * 1e16); env.attributes['id'] = id; Prism.plugins.autoloader.loadLanguages(codeLang, function () { var ele = document.getElementById(id); if (ele) { ele.innerHTML = Prism.highlight(ele.textContent, Prism.languages[codeLang], codeLang); } }); } } else { // reverse Prism.util.encode var code = env.content.replace(/</g, '<').replace(/&/g, '&'); env.content = Prism.highlight(code, grammar, codeLang); } }); Prism.languages.md = Prism.languages.markdown; }(Prism)); /***/ }), /***/ 3502: /***/ (function() { (function (Prism) { /** * Returns the placeholder for the given language id and index. * * @param {string} language * @param {string|number} index * @returns {string} */ function getPlaceholder(language, index) { return '___' + language.toUpperCase() + index + '___'; } Object.defineProperties(Prism.languages['markup-templating'] = {}, { buildPlaceholders: { /** * Tokenize all inline templating expressions matching `placeholderPattern`. * * If `replaceFilter` is provided, only matches of `placeholderPattern` for which `replaceFilter` returns * `true` will be replaced. * * @param {object} env The environment of the `before-tokenize` hook. * @param {string} language The language id. * @param {RegExp} placeholderPattern The matches of this pattern will be replaced by placeholders. * @param {(match: string) => boolean} [replaceFilter] */ value: function (env, language, placeholderPattern, replaceFilter) { if (env.language !== language) { return; } var tokenStack = env.tokenStack = []; env.code = env.code.replace(placeholderPattern, function (match) { if (typeof replaceFilter === 'function' && !replaceFilter(match)) { return match; } var i = tokenStack.length; var placeholder; // Check for existing strings while (env.code.indexOf(placeholder = getPlaceholder(language, i)) !== -1) ++i; // Create a sparse array tokenStack[i] = match; return placeholder; }); // Switch the grammar to markup env.grammar = Prism.languages.markup; } }, tokenizePlaceholders: { /** * Replace placeholders with proper tokens after tokenizing. * * @param {object} env The environment of the `after-tokenize` hook. * @param {string} language The language id. */ value: function (env, language) { if (env.language !== language || !env.tokenStack) { return; } // Switch the grammar back env.grammar = Prism.languages[language]; var j = 0; var keys = Object.keys(env.tokenStack); function walkTokens(tokens) { for (var i = 0; i < tokens.length; i++) { // all placeholders are replaced already if (j >= keys.length) { break; } var token = tokens[i]; if (typeof token === 'string' || (token.content && typeof token.content === 'string')) { var k = keys[j]; var t = env.tokenStack[k]; var s = typeof token === 'string' ? token : token.content; var placeholder = getPlaceholder(language, k); var index = s.indexOf(placeholder); if (index > -1) { ++j; var before = s.substring(0, index); var middle = new Prism.Token(language, Prism.tokenize(t, env.grammar), 'language-' + language, t); var after = s.substring(index + placeholder.length); var replacement = []; if (before) { replacement.push.apply(replacement, walkTokens([before])); } replacement.push(middle); if (after) { replacement.push.apply(replacement, walkTokens([after])); } if (typeof token === 'string') { tokens.splice.apply(tokens, [i, 1].concat(replacement)); } else { token.content = replacement; } } } else if (token.content /* && typeof token.content !== 'string' */) { walkTokens(token.content); } } return tokens; } walkTokens(env.tokens); } } }); }(Prism)); /***/ }), /***/ 1151: /***/ (function() { Prism.languages.matlab = { 'comment': [ /%\{[\s\S]*?\}%/, /%.+/ ], 'string': { pattern: /\B'(?:''|[^'\r\n])*'/, greedy: true }, // FIXME We could handle imaginary numbers as a whole 'number': /(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[eE][+-]?\d+)?(?:[ij])?|\b[ij]\b/, 'keyword': /\b(?:break|case|catch|continue|else|elseif|end|for|function|if|inf|NaN|otherwise|parfor|pause|pi|return|switch|try|while)\b/, 'function': /(?!\d)\w+(?=\s*\()/, 'operator': /\.?[*^\/\\']|[+\-:@]|[<>=~]=?|&&?|\|\|?/, 'punctuation': /\.{3}|[.,;\[\](){}!]/ }; /***/ }), /***/ 5116: /***/ (function() { Prism.languages.mel = { 'comment': /\/\/.*/, 'code': { pattern: /`(?:\\.|[^\\`\r\n])*`/, greedy: true, alias: 'italic', inside: { 'delimiter': { pattern: /^`|`$/, alias: 'punctuation' } // See rest below } }, 'string': { pattern: /"(?:\\.|[^\\"\r\n])*"/, greedy: true }, 'variable': /\$\w+/, 'number': /\b0x[\da-fA-F]+\b|\b\d+(?:\.\d*)?|\B\.\d+/, 'flag': { pattern: /-[^\d\W]\w*/, alias: 'operator' }, 'keyword': /\b(?:break|case|continue|default|do|else|float|for|global|if|in|int|matrix|proc|return|string|switch|vector|while)\b/, 'function': /\w+(?=\()|\b(?:about|abs|addAttr|addAttributeEditorNodeHelp|addDynamic|addNewShelfTab|addPP|addPanelCategory|addPrefixToName|advanceToNextDrivenKey|affectedNet|affects|aimConstraint|air|alias|aliasAttr|align|alignCtx|alignCurve|alignSurface|allViewFit|ambientLight|angle|angleBetween|animCone|animCurveEditor|animDisplay|animView|annotate|appendStringArray|applicationName|applyAttrPreset|applyTake|arcLenDimContext|arcLengthDimension|arclen|arrayMapper|art3dPaintCtx|artAttrCtx|artAttrPaintVertexCtx|artAttrSkinPaintCtx|artAttrTool|artBuildPaintMenu|artFluidAttrCtx|artPuttyCtx|artSelectCtx|artSetPaintCtx|artUserPaintCtx|assignCommand|assignInputDevice|assignViewportFactories|attachCurve|attachDeviceAttr|attachSurface|attrColorSliderGrp|attrCompatibility|attrControlGrp|attrEnumOptionMenu|attrEnumOptionMenuGrp|attrFieldGrp|attrFieldSliderGrp|attrNavigationControlGrp|attrPresetEditWin|attributeExists|attributeInfo|attributeMenu|attributeQuery|autoKeyframe|autoPlace|bakeClip|bakeFluidShading|bakePartialHistory|bakeResults|bakeSimulation|basename|basenameEx|batchRender|bessel|bevel|bevelPlus|binMembership|bindSkin|blend2|blendShape|blendShapeEditor|blendShapePanel|blendTwoAttr|blindDataType|boneLattice|boundary|boxDollyCtx|boxZoomCtx|bufferCurve|buildBookmarkMenu|buildKeyframeMenu|button|buttonManip|CBG|cacheFile|cacheFileCombine|cacheFileMerge|cacheFileTrack|camera|cameraView|canCreateManip|canvas|capitalizeString|catch|catchQuiet|ceil|changeSubdivComponentDisplayLevel|changeSubdivRegion|channelBox|character|characterMap|characterOutlineEditor|characterize|chdir|checkBox|checkBoxGrp|checkDefaultRenderGlobals|choice|circle|circularFillet|clamp|clear|clearCache|clip|clipEditor|clipEditorCurrentTimeCtx|clipSchedule|clipSchedulerOutliner|clipTrimBefore|closeCurve|closeSurface|cluster|cmdFileOutput|cmdScrollFieldExecuter|cmdScrollFieldReporter|cmdShell|coarsenSubdivSelectionList|collision|color|colorAtPoint|colorEditor|colorIndex|colorIndexSliderGrp|colorSliderButtonGrp|colorSliderGrp|columnLayout|commandEcho|commandLine|commandPort|compactHairSystem|componentEditor|compositingInterop|computePolysetVolume|condition|cone|confirmDialog|connectAttr|connectControl|connectDynamic|connectJoint|connectionInfo|constrain|constrainValue|constructionHistory|container|containsMultibyte|contextInfo|control|convertFromOldLayers|convertIffToPsd|convertLightmap|convertSolidTx|convertTessellation|convertUnit|copyArray|copyFlexor|copyKey|copySkinWeights|cos|cpButton|cpCache|cpClothSet|cpCollision|cpConstraint|cpConvClothToMesh|cpForces|cpGetSolverAttr|cpPanel|cpProperty|cpRigidCollisionFilter|cpSeam|cpSetEdit|cpSetSolverAttr|cpSolver|cpSolverTypes|cpTool|cpUpdateClothUVs|createDisplayLayer|createDrawCtx|createEditor|createLayeredPsdFile|createMotionField|createNewShelf|createNode|createRenderLayer|createSubdivRegion|cross|crossProduct|ctxAbort|ctxCompletion|ctxEditMode|ctxTraverse|currentCtx|currentTime|currentTimeCtx|currentUnit|curve|curveAddPtCtx|curveCVCtx|curveEPCtx|curveEditorCtx|curveIntersect|curveMoveEPCtx|curveOnSurface|curveSketchCtx|cutKey|cycleCheck|cylinder|dagPose|date|defaultLightListCheckBox|defaultNavigation|defineDataServer|defineVirtualDevice|deformer|deg_to_rad|delete|deleteAttr|deleteShadingGroupsAndMaterials|deleteShelfTab|deleteUI|deleteUnusedBrushes|delrandstr|detachCurve|detachDeviceAttr|detachSurface|deviceEditor|devicePanel|dgInfo|dgdirty|dgeval|dgtimer|dimWhen|directKeyCtx|directionalLight|dirmap|dirname|disable|disconnectAttr|disconnectJoint|diskCache|displacementToPoly|displayAffected|displayColor|displayCull|displayLevelOfDetail|displayPref|displayRGBColor|displaySmoothness|displayStats|displayString|displaySurface|distanceDimContext|distanceDimension|doBlur|dolly|dollyCtx|dopeSheetEditor|dot|dotProduct|doubleProfileBirailSurface|drag|dragAttrContext|draggerContext|dropoffLocator|duplicate|duplicateCurve|duplicateSurface|dynCache|dynControl|dynExport|dynExpression|dynGlobals|dynPaintEditor|dynParticleCtx|dynPref|dynRelEdPanel|dynRelEditor|dynamicLoad|editAttrLimits|editDisplayLayerGlobals|editDisplayLayerMembers|editRenderLayerAdjustment|editRenderLayerGlobals|editRenderLayerMembers|editor|editorTemplate|effector|emit|emitter|enableDevice|encodeString|endString|endsWith|env|equivalent|equivalentTol|erf|error|eval|evalDeferred|evalEcho|event|exactWorldBoundingBox|exclusiveLightCheckBox|exec|executeForEachObject|exists|exp|expression|expressionEditorListen|extendCurve|extendSurface|extrude|fcheck|fclose|feof|fflush|fgetline|fgetword|file|fileBrowserDialog|fileDialog|fileExtension|fileInfo|filetest|filletCurve|filter|filterCurve|filterExpand|filterStudioImport|findAllIntersections|findAnimCurves|findKeyframe|findMenuItem|findRelatedSkinCluster|finder|firstParentOf|fitBspline|flexor|floatEq|floatField|floatFieldGrp|floatScrollBar|floatSlider|floatSlider2|floatSliderButtonGrp|floatSliderGrp|floor|flow|fluidCacheInfo|fluidEmitter|fluidVoxelInfo|flushUndo|fmod|fontDialog|fopen|formLayout|format|fprint|frameLayout|fread|freeFormFillet|frewind|fromNativePath|fwrite|gamma|gauss|geometryConstraint|getApplicationVersionAsFloat|getAttr|getClassification|getDefaultBrush|getFileList|getFluidAttr|getInputDeviceRange|getMayaPanelTypes|getModifiers|getPanel|getParticleAttr|getPluginResource|getenv|getpid|glRender|glRenderEditor|globalStitch|gmatch|goal|gotoBindPose|grabColor|gradientControl|gradientControlNoAttr|graphDollyCtx|graphSelectContext|graphTrackCtx|gravity|grid|gridLayout|group|groupObjectsByName|HfAddAttractorToAS|HfAssignAS|HfBuildEqualMap|HfBuildFurFiles|HfBuildFurImages|HfCancelAFR|HfConnectASToHF|HfCreateAttractor|HfDeleteAS|HfEditAS|HfPerformCreateAS|HfRemoveAttractorFromAS|HfSelectAttached|HfSelectAttractors|HfUnAssignAS|hardenPointCurve|hardware|hardwareRenderPanel|headsUpDisplay|headsUpMessage|help|helpLine|hermite|hide|hilite|hitTest|hotBox|hotkey|hotkeyCheck|hsv_to_rgb|hudButton|hudSlider|hudSliderButton|hwReflectionMap|hwRender|hwRenderLoad|hyperGraph|hyperPanel|hyperShade|hypot|iconTextButton|iconTextCheckBox|iconTextRadioButton|iconTextRadioCollection|iconTextScrollList|iconTextStaticLabel|ikHandle|ikHandleCtx|ikHandleDisplayScale|ikSolver|ikSplineHandleCtx|ikSystem|ikSystemInfo|ikfkDisplayMethod|illustratorCurves|image|imfPlugins|inheritTransform|insertJoint|insertJointCtx|insertKeyCtx|insertKnotCurve|insertKnotSurface|instance|instanceable|instancer|intField|intFieldGrp|intScrollBar|intSlider|intSliderGrp|interToUI|internalVar|intersect|iprEngine|isAnimCurve|isConnected|isDirty|isParentOf|isSameObject|isTrue|isValidObjectName|isValidString|isValidUiName|isolateSelect|itemFilter|itemFilterAttr|itemFilterRender|itemFilterType|joint|jointCluster|jointCtx|jointDisplayScale|jointLattice|keyTangent|keyframe|keyframeOutliner|keyframeRegionCurrentTimeCtx|keyframeRegionDirectKeyCtx|keyframeRegionDollyCtx|keyframeRegionInsertKeyCtx|keyframeRegionMoveKeyCtx|keyframeRegionScaleKeyCtx|keyframeRegionSelectKeyCtx|keyframeRegionSetKeyCtx|keyframeRegionTrackCtx|keyframeStats|lassoContext|lattice|latticeDeformKeyCtx|launch|launchImageEditor|layerButton|layeredShaderPort|layeredTexturePort|layout|layoutDialog|lightList|lightListEditor|lightListPanel|lightlink|lineIntersection|linearPrecision|linstep|listAnimatable|listAttr|listCameras|listConnections|listDeviceAttachments|listHistory|listInputDeviceAxes|listInputDeviceButtons|listInputDevices|listMenuAnnotation|listNodeTypes|listPanelCategories|listRelatives|listSets|listTransforms|listUnselected|listerEditor|loadFluid|loadNewShelf|loadPlugin|loadPluginLanguageResources|loadPrefObjects|localizedPanelLabel|lockNode|loft|log|longNameOf|lookThru|ls|lsThroughFilter|lsType|lsUI|Mayatomr|mag|makeIdentity|makeLive|makePaintable|makeRoll|makeSingleSurface|makeTubeOn|makebot|manipMoveContext|manipMoveLimitsCtx|manipOptions|manipRotateContext|manipRotateLimitsCtx|manipScaleContext|manipScaleLimitsCtx|marker|match|max|memory|menu|menuBarLayout|menuEditor|menuItem|menuItemToShelf|menuSet|menuSetPref|messageLine|min|minimizeApp|mirrorJoint|modelCurrentTimeCtx|modelEditor|modelPanel|mouse|movIn|movOut|move|moveIKtoFK|moveKeyCtx|moveVertexAlongDirection|multiProfileBirailSurface|mute|nParticle|nameCommand|nameField|namespace|namespaceInfo|newPanelItems|newton|nodeCast|nodeIconButton|nodeOutliner|nodePreset|nodeType|noise|nonLinear|normalConstraint|normalize|nurbsBoolean|nurbsCopyUVSet|nurbsCube|nurbsEditUV|nurbsPlane|nurbsSelect|nurbsSquare|nurbsToPoly|nurbsToPolygonsPref|nurbsToSubdiv|nurbsToSubdivPref|nurbsUVSet|nurbsViewDirectionVector|objExists|objectCenter|objectLayer|objectType|objectTypeUI|obsoleteProc|oceanNurbsPreviewPlane|offsetCurve|offsetCurveOnSurface|offsetSurface|openGLExtension|openMayaPref|optionMenu|optionMenuGrp|optionVar|orbit|orbitCtx|orientConstraint|outlinerEditor|outlinerPanel|overrideModifier|paintEffectsDisplay|pairBlend|palettePort|paneLayout|panel|panelConfiguration|panelHistory|paramDimContext|paramDimension|paramLocator|parent|parentConstraint|particle|particleExists|particleInstancer|particleRenderInfo|partition|pasteKey|pathAnimation|pause|pclose|percent|performanceOptions|pfxstrokes|pickWalk|picture|pixelMove|planarSrf|plane|play|playbackOptions|playblast|plugAttr|plugNode|pluginInfo|pluginResourceUtil|pointConstraint|pointCurveConstraint|pointLight|pointMatrixMult|pointOnCurve|pointOnSurface|pointPosition|poleVectorConstraint|polyAppend|polyAppendFacetCtx|polyAppendVertex|polyAutoProjection|polyAverageNormal|polyAverageVertex|polyBevel|polyBlendColor|polyBlindData|polyBoolOp|polyBridgeEdge|polyCacheMonitor|polyCheck|polyChipOff|polyClipboard|polyCloseBorder|polyCollapseEdge|polyCollapseFacet|polyColorBlindData|polyColorDel|polyColorPerVertex|polyColorSet|polyCompare|polyCone|polyCopyUV|polyCrease|polyCreaseCtx|polyCreateFacet|polyCreateFacetCtx|polyCube|polyCut|polyCutCtx|polyCylinder|polyCylindricalProjection|polyDelEdge|polyDelFacet|polyDelVertex|polyDuplicateAndConnect|polyDuplicateEdge|polyEditUV|polyEditUVShell|polyEvaluate|polyExtrudeEdge|polyExtrudeFacet|polyExtrudeVertex|polyFlipEdge|polyFlipUV|polyForceUV|polyGeoSampler|polyHelix|polyInfo|polyInstallAction|polyLayoutUV|polyListComponentConversion|polyMapCut|polyMapDel|polyMapSew|polyMapSewMove|polyMergeEdge|polyMergeEdgeCtx|polyMergeFacet|polyMergeFacetCtx|polyMergeUV|polyMergeVertex|polyMirrorFace|polyMoveEdge|polyMoveFacet|polyMoveFacetUV|polyMoveUV|polyMoveVertex|polyNormal|polyNormalPerVertex|polyNormalizeUV|polyOptUvs|polyOptions|polyOutput|polyPipe|polyPlanarProjection|polyPlane|polyPlatonicSolid|polyPoke|polyPrimitive|polyPrism|polyProjection|polyPyramid|polyQuad|polyQueryBlindData|polyReduce|polySelect|polySelectConstraint|polySelectConstraintMonitor|polySelectCtx|polySelectEditCtx|polySeparate|polySetToFaceNormal|polySewEdge|polyShortestPathCtx|polySmooth|polySoftEdge|polySphere|polySphericalProjection|polySplit|polySplitCtx|polySplitEdge|polySplitRing|polySplitVertex|polyStraightenUVBorder|polySubdivideEdge|polySubdivideFacet|polyToSubdiv|polyTorus|polyTransfer|polyTriangulate|polyUVSet|polyUnite|polyWedgeFace|popen|popupMenu|pose|pow|preloadRefEd|print|progressBar|progressWindow|projFileViewer|projectCurve|projectTangent|projectionContext|projectionManip|promptDialog|propModCtx|propMove|psdChannelOutliner|psdEditTextureFile|psdExport|psdTextureFile|putenv|pwd|python|querySubdiv|quit|rad_to_deg|radial|radioButton|radioButtonGrp|radioCollection|radioMenuItemCollection|rampColorPort|rand|randomizeFollicles|randstate|rangeControl|readTake|rebuildCurve|rebuildSurface|recordAttr|recordDevice|redo|reference|referenceEdit|referenceQuery|refineSubdivSelectionList|refresh|refreshAE|registerPluginResource|rehash|reloadImage|removeJoint|removeMultiInstance|removePanelCategory|rename|renameAttr|renameSelectionList|renameUI|render|renderGlobalsNode|renderInfo|renderLayerButton|renderLayerParent|renderLayerPostProcess|renderLayerUnparent|renderManip|renderPartition|renderQualityNode|renderSettings|renderThumbnailUpdate|renderWindowEditor|renderWindowSelectContext|renderer|reorder|reorderDeformers|requires|reroot|resampleFluid|resetAE|resetPfxToPolyCamera|resetTool|resolutionNode|retarget|reverseCurve|reverseSurface|revolve|rgb_to_hsv|rigidBody|rigidSolver|roll|rollCtx|rootOf|rot|rotate|rotationInterpolation|roundConstantRadius|rowColumnLayout|rowLayout|runTimeCommand|runup|sampleImage|saveAllShelves|saveAttrPreset|saveFluid|saveImage|saveInitialState|saveMenu|savePrefObjects|savePrefs|saveShelf|saveToolSettings|scale|scaleBrushBrightness|scaleComponents|scaleConstraint|scaleKey|scaleKeyCtx|sceneEditor|sceneUIReplacement|scmh|scriptCtx|scriptEditorInfo|scriptJob|scriptNode|scriptTable|scriptToShelf|scriptedPanel|scriptedPanelType|scrollField|scrollLayout|sculpt|searchPathArray|seed|selLoadSettings|select|selectContext|selectCurveCV|selectKey|selectKeyCtx|selectKeyframeRegionCtx|selectMode|selectPref|selectPriority|selectType|selectedNodes|selectionConnection|separator|setAttr|setAttrEnumResource|setAttrMapping|setAttrNiceNameResource|setConstraintRestPosition|setDefaultShadingGroup|setDrivenKeyframe|setDynamic|setEditCtx|setEditor|setFluidAttr|setFocus|setInfinity|setInputDeviceMapping|setKeyCtx|setKeyPath|setKeyframe|setKeyframeBlendshapeTargetWts|setMenuMode|setNodeNiceNameResource|setNodeTypeFlag|setParent|setParticleAttr|setPfxToPolyCamera|setPluginResource|setProject|setStampDensity|setStartupMessage|setState|setToolTo|setUITemplate|setXformManip|sets|shadingConnection|shadingGeometryRelCtx|shadingLightRelCtx|shadingNetworkCompare|shadingNode|shapeCompare|shelfButton|shelfLayout|shelfTabLayout|shellField|shortNameOf|showHelp|showHidden|showManipCtx|showSelectionInTitle|showShadingGroupAttrEditor|showWindow|sign|simplify|sin|singleProfileBirailSurface|size|sizeBytes|skinCluster|skinPercent|smoothCurve|smoothTangentSurface|smoothstep|snap2to2|snapKey|snapMode|snapTogetherCtx|snapshot|soft|softMod|softModCtx|sort|sound|soundControl|source|spaceLocator|sphere|sphrand|spotLight|spotLightPreviewPort|spreadSheetEditor|spring|sqrt|squareSurface|srtContext|stackTrace|startString|startsWith|stitchAndExplodeShell|stitchSurface|stitchSurfacePoints|strcmp|stringArrayCatenate|stringArrayContains|stringArrayCount|stringArrayInsertAtIndex|stringArrayIntersector|stringArrayRemove|stringArrayRemoveAtIndex|stringArrayRemoveDuplicates|stringArrayRemoveExact|stringArrayToString|stringToStringArray|strip|stripPrefixFromName|stroke|subdAutoProjection|subdCleanTopology|subdCollapse|subdDuplicateAndConnect|subdEditUV|subdListComponentConversion|subdMapCut|subdMapSewMove|subdMatchTopology|subdMirror|subdToBlind|subdToPoly|subdTransferUVsToCache|subdiv|subdivCrease|subdivDisplaySmoothness|substitute|substituteAllString|substituteGeometry|substring|surface|surfaceSampler|surfaceShaderList|swatchDisplayPort|switchTable|symbolButton|symbolCheckBox|sysFile|system|tabLayout|tan|tangentConstraint|texLatticeDeformContext|texManipContext|texMoveContext|texMoveUVShellContext|texRotateContext|texScaleContext|texSelectContext|texSelectShortestPathCtx|texSmudgeUVContext|texWinToolCtx|text|textCurves|textField|textFieldButtonGrp|textFieldGrp|textManip|textScrollList|textToShelf|textureDisplacePlane|textureHairColor|texturePlacementContext|textureWindow|threadCount|threePointArcCtx|timeControl|timePort|timerX|toNativePath|toggle|toggleAxis|toggleWindowVisibility|tokenize|tokenizeList|tolerance|tolower|toolButton|toolCollection|toolDropped|toolHasOptions|toolPropertyWindow|torus|toupper|trace|track|trackCtx|transferAttributes|transformCompare|transformLimits|translator|trim|trunc|truncateFluidCache|truncateHairCache|tumble|tumbleCtx|turbulence|twoPointArcCtx|uiRes|uiTemplate|unassignInputDevice|undo|undoInfo|ungroup|uniform|unit|unloadPlugin|untangleUV|untitledFileName|untrim|upAxis|updateAE|userCtx|uvLink|uvSnapshot|validateShelfName|vectorize|view2dToolCtx|viewCamera|viewClipPlane|viewFit|viewHeadOn|viewLookAt|viewManip|viewPlace|viewSet|visor|volumeAxis|vortex|waitCursor|warning|webBrowser|webBrowserPrefs|whatIs|window|windowPref|wire|wireContext|workspace|wrinkle|wrinkleContext|writeTake|xbmLangPathList|xform)\b/, 'operator': [ /\+[+=]?|-[-=]?|&&|\|\||[<>]=|[*\/!=]=?|[%^]/, { // We don't want to match << pattern: /(^|[^<])<(?!<)/, lookbehind: true }, { // We don't want to match >> pattern: /(^|[^>])>(?!>)/, lookbehind: true } ], 'punctuation': /<<|>>|[.,:;?\[\](){}]/ }; Prism.languages.mel['code'].inside.rest = Prism.languages.mel; /***/ }), /***/ 9919: /***/ (function() { Prism.languages.mizar = { 'comment': /::.+/, 'keyword': /@proof\b|\b(?:according|aggregate|all|and|antonym|are|as|associativity|assume|asymmetry|attr|be|begin|being|by|canceled|case|cases|clusters?|coherence|commutativity|compatibility|connectedness|consider|consistency|constructors|contradiction|correctness|def|deffunc|define|definitions?|defpred|do|does|equals|end|environ|ex|exactly|existence|for|from|func|given|hence|hereby|holds|idempotence|identity|iff?|implies|involutiveness|irreflexivity|is|it|let|means|mode|non|not|notations?|now|of|or|otherwise|over|per|pred|prefix|projectivity|proof|provided|qua|reconsider|redefine|reduce|reducibility|reflexivity|registrations?|requirements|reserve|sch|schemes?|section|selector|set|sethood|st|struct|such|suppose|symmetry|synonym|take|that|the|then|theorems?|thesis|thus|to|transitivity|uniqueness|vocabular(?:y|ies)|when|where|with|wrt)\b/, 'parameter': { pattern: /\$(?:10|\d)/, alias: 'variable' }, 'variable': /\w+(?=:)/, 'number': /(?:\b|-)\d+\b/, 'operator': /\.\.\.|->|&|\.?=/, 'punctuation': /\(#|#\)|[,:;\[\](){}]/ }; /***/ }), /***/ 7638: /***/ (function() { (function (Prism) { var operators = [ // query and projection '$eq', '$gt', '$gte', '$in', '$lt', '$lte', '$ne', '$nin', '$and', '$not', '$nor', '$or', '$exists', '$type', '$expr', '$jsonSchema', '$mod', '$regex', '$text', '$where', '$geoIntersects', '$geoWithin', '$near', '$nearSphere', '$all', '$elemMatch', '$size', '$bitsAllClear', '$bitsAllSet', '$bitsAnyClear', '$bitsAnySet', '$comment', '$elemMatch', '$meta', '$slice', // update '$currentDate', '$inc', '$min', '$max', '$mul', '$rename', '$set', '$setOnInsert', '$unset', '$addToSet', '$pop', '$pull', '$push', '$pullAll', '$each', '$position', '$slice', '$sort', '$bit', // aggregation pipeline stages '$addFields', '$bucket', '$bucketAuto', '$collStats', '$count', '$currentOp', '$facet', '$geoNear', '$graphLookup', '$group','$indexStats', '$limit', '$listLocalSessions', '$listSessions', '$lookup', '$match', '$merge', '$out', '$planCacheStats', '$project', '$redact', '$replaceRoot', '$replaceWith', '$sample', '$set', '$skip', '$sort', '$sortByCount', '$unionWith', '$unset', '$unwind', // aggregation pipeline operators '$abs', '$accumulator', '$acos', '$acosh', '$add', '$addToSet', '$allElementsTrue', '$and', '$anyElementTrue', '$arrayElemAt', '$arrayToObject', '$asin', '$asinh', '$atan', '$atan2', '$atanh', '$avg', '$binarySize', '$bsonSize', '$ceil', '$cmp', '$concat', '$concatArrays', '$cond', '$convert', '$cos', '$dateFromParts', '$dateToParts', '$dateFromString', '$dateToString', '$dayOfMonth', '$dayOfWeek', '$dayOfYear', '$degreesToRadians', '$divide', '$eq', '$exp', '$filter', '$first', '$floor', '$function', '$gt', '$gte', '$hour', '$ifNull', '$in', '$indexOfArray', '$indexOfBytes', '$indexOfCP', '$isArray', '$isNumber', '$isoDayOfWeek', '$isoWeek', '$isoWeekYear', '$last', '$last', '$let', '$literal', '$ln', '$log', '$log10', '$lt', '$lte', '$ltrim', '$map', '$max', '$mergeObjects', '$meta', '$min', '$millisecond', '$minute', '$mod', '$month', '$multiply', '$ne', '$not', '$objectToArray', '$or', '$pow', '$push', '$radiansToDegrees', '$range', '$reduce', '$regexFind', '$regexFindAll', '$regexMatch', '$replaceOne', '$replaceAll', '$reverseArray', '$round', '$rtrim', '$second', '$setDifference', '$setEquals', '$setIntersection', '$setIsSubset', '$setUnion', '$size', '$sin', '$slice', '$split', '$sqrt', '$stdDevPop', '$stdDevSamp', '$strcasecmp', '$strLenBytes', '$strLenCP', '$substr', '$substrBytes', '$substrCP', '$subtract', '$sum', '$switch', '$tan', '$toBool', '$toDate', '$toDecimal', '$toDouble', '$toInt', '$toLong', '$toObjectId', '$toString', '$toLower', '$toUpper', '$trim', '$trunc', '$type', '$week', '$year', '$zip', // aggregation pipeline query modifiers '$comment', '$explain', '$hint', '$max', '$maxTimeMS', '$min', '$orderby', '$query', '$returnKey', '$showDiskLoc', '$natural', ]; var builtinFunctions = [ 'ObjectId', 'Code', 'BinData', 'DBRef', 'Timestamp', 'NumberLong', 'NumberDecimal', 'MaxKey', 'MinKey', 'RegExp', 'ISODate', 'UUID', ]; operators = operators.map(function(operator) { return operator.replace('$', '\\$'); }); var operatorsSource = '(?:' + operators.join('|') + ')\\b'; Prism.languages.mongodb = Prism.languages.extend('javascript', {}); Prism.languages.insertBefore('mongodb', 'string', { 'property': { pattern: /(?:(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)(?=\s*:)/, greedy: true, inside: { 'keyword': RegExp('^([\'"])?' + operatorsSource + '(?:\\1)?$') } } }); Prism.languages.mongodb.string.inside = { url: { // url pattern pattern: /https?:\/\/[-\w@:%.+~#=]{1,256}\.[a-z0-9()]{1,6}\b[-\w()@:%+.~#?&/=]*/i, greedy: true }, entity: { // ipv4 pattern: /\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b/, greedy: true } }; Prism.languages.insertBefore('mongodb', 'constant', { 'builtin': { pattern: RegExp('\\b(?:' + builtinFunctions.join('|') + ')\\b'), alias: 'keyword' } }); }(Prism)); /***/ }), /***/ 9102: /***/ (function() { Prism.languages.monkey = { 'string': /"[^"\r\n]*"/, 'comment': [ { pattern: /^#Rem\s[\s\S]*?^#End/im, greedy: true }, { pattern: /'.+/, greedy: true } ], 'preprocessor': { pattern: /(^[ \t]*)#.+/m, lookbehind: true, alias: 'comment' }, 'function': /\w+(?=\()/, 'type-char': { pattern: /(\w)[?%#$]/, lookbehind: true, alias: 'variable' }, 'number': { pattern: /((?:\.\.)?)(?:(?:\b|\B-\.?|\B\.)\d+(?:(?!\.\.)\.\d*)?|\$[\da-f]+)/i, lookbehind: true }, 'keyword': /\b(?:Void|Strict|Public|Private|Property|Bool|Int|Float|String|Array|Object|Continue|Exit|Import|Extern|New|Self|Super|Try|Catch|Eachin|True|False|Extends|Abstract|Final|Select|Case|Default|Const|Local|Global|Field|Method|Function|Class|End|If|Then|Else|ElseIf|EndIf|While|Wend|Repeat|Until|Forever|For|To|Step|Next|Return|Module|Interface|Implements|Inline|Throw|Null)\b/i, 'operator': /\.\.|<[=>]?|>=?|:?=|(?:[+\-*\/&~|]|\b(?:Mod|Shl|Shr)\b)=?|\b(?:And|Not|Or)\b/i, 'punctuation': /[.,:;()\[\]]/ }; /***/ }), /***/ 6382: /***/ (function() { Prism.languages.moonscript = { 'comment': /--.*/, 'string': [ { pattern: /'[^']*'|\[(=*)\[[\s\S]*?\]\1\]/, greedy: true }, { pattern: /"[^"]*"/, greedy: true, inside: { 'interpolation': { pattern: /#\{[^{}]*\}/, inside: { 'moonscript': { pattern: /(^#\{)[\s\S]+(?=\})/, lookbehind: true, inside: null // see beow }, 'interpolation-punctuation': { pattern: /#\{|\}/, alias: 'punctuation' } } } } } ], 'class-name': [ { pattern: /(\b(?:class|extends)[ \t]+)\w+/, lookbehind: true }, // class-like names start with a capital letter /\b[A-Z]\w*/ ], 'keyword': /\b(?:class|continue|do|else|elseif|export|extends|for|from|if|import|in|local|nil|return|self|super|switch|then|unless|using|when|while|with)\b/, 'variable': /@@?\w*/, 'property': { pattern: /\b(?!\d)\w+(?=:)|(:)(?!\d)\w+/, lookbehind: true }, 'function': { pattern: /\b(?:_G|_VERSION|assert|collectgarbage|coroutine\.(?:running|create|resume|status|wrap|yield)|debug\.(?:debug|gethook|getinfo|getlocal|getupvalue|setlocal|setupvalue|sethook|traceback|getfenv|getmetatable|getregistry|setfenv|setmetatable)|dofile|error|getfenv|getmetatable|io\.(?:stdin|stdout|stderr|close|flush|input|lines|open|output|popen|read|tmpfile|type|write)|ipairs|load|loadfile|loadstring|math\.(?:abs|acos|asin|atan|atan2|ceil|sin|cos|tan|deg|exp|floor|log|log10|max|min|fmod|modf|cosh|sinh|tanh|pow|rad|sqrt|frexp|ldexp|random|randomseed|pi)|module|next|os\.(?:clock|date|difftime|execute|exit|getenv|remove|rename|setlocale|time|tmpname)|package\.(?:cpath|loaded|loadlib|path|preload|seeall)|pairs|pcall|print|rawequal|rawget|rawset|require|select|setfenv|setmetatable|string\.(?:byte|char|dump|find|len|lower|rep|sub|upper|format|gsub|gmatch|match|reverse)|table\.(?:maxn|concat|sort|insert|remove)|tonumber|tostring|type|unpack|xpcall)\b/, inside: { 'punctuation': /\./ } }, 'boolean': /\b(?:false|true)\b/, 'number': /(?:\B\.\d+|\b\d+\.\d+|\b\d+(?=[eE]))(?:[eE][-+]?\d+)?\b|\b(?:0x[a-fA-F\d]+|\d+)(?:U?LL)?\b/, 'operator': /\.{3}|[-=]>|~=|(?:[-+*/%<>!=]|\.\.)=?|[:#^]|\b(?:and|or)\b=?|\b(?:not)\b/, 'punctuation': /[.,()[\]{}\\]/ }; Prism.languages.moonscript.string[1].inside.interpolation.inside.moonscript.inside = Prism.languages.moonscript; Prism.languages.moon = Prism.languages.moonscript; /***/ }), /***/ 1359: /***/ (function() { Prism.languages.n1ql = { 'comment': /\/\*[\s\S]*?(?:$|\*\/)/, 'parameter': /\$[\w.]+/, 'string': { pattern: /(["'])(?:\\[\s\S]|(?!\1)[^\\]|\1\1)*\1/, greedy: true, }, 'identifier': { pattern: /`(?:\\[\s\S]|[^\\`]|``)*`/, greedy: true, }, 'function': /\b(?:ABS|ACOS|ARRAY_AGG|ARRAY_APPEND|ARRAY_AVG|ARRAY_CONCAT|ARRAY_CONTAINS|ARRAY_COUNT|ARRAY_DISTINCT|ARRAY_FLATTEN|ARRAY_IFNULL|ARRAY_INSERT|ARRAY_INTERSECT|ARRAY_LENGTH|ARRAY_MAX|ARRAY_MIN|ARRAY_POSITION|ARRAY_PREPEND|ARRAY_PUT|ARRAY_RANGE|ARRAY_REMOVE|ARRAY_REPEAT|ARRAY_REPLACE|ARRAY_REVERSE|ARRAY_SORT|ARRAY_STAR|ARRAY_SUM|ARRAY_SYMDIFF|ARRAY_SYMDIFFN|ARRAY_UNION|ASIN|ATAN|ATAN2|AVG|BASE64|BASE64_DECODE|BASE64_ENCODE|BITAND|BITCLEAR|BITNOT|BITOR|BITSET|BITSHIFT|BITTEST|BITXOR|CEIL|CLOCK_LOCAL|CLOCK_MILLIS|CLOCK_STR|CLOCK_TZ|CLOCK_UTC|CONTAINS|CONTAINS_TOKEN|CONTAINS_TOKEN_LIKE|CONTAINS_TOKEN_REGEXP|COS|COUNT|CURL|DATE_ADD_MILLIS|DATE_ADD_STR|DATE_DIFF_MILLIS|DATE_DIFF_STR|DATE_FORMAT_STR|DATE_PART_MILLIS|DATE_PART_STR|DATE_RANGE_MILLIS|DATE_RANGE_STR|DATE_TRUNC_MILLIS|DATE_TRUNC_STR|DECODE_JSON|DEGREES|DURATION_TO_STR|E|ENCODED_SIZE|ENCODE_JSON|EXP|FLOOR|GREATEST|HAS_TOKEN|IFINF|IFMISSING|IFMISSINGORNULL|IFNAN|IFNANORINF|IFNULL|INITCAP|ISARRAY|ISATOM|ISBOOLEAN|ISNUMBER|ISOBJECT|ISSTRING|IsBitSET|LEAST|LENGTH|LN|LOG|LOWER|LTRIM|MAX|META|MILLIS|MILLIS_TO_LOCAL|MILLIS_TO_STR|MILLIS_TO_TZ|MILLIS_TO_UTC|MILLIS_TO_ZONE_NAME|MIN|MISSINGIF|NANIF|NEGINFIF|NOW_LOCAL|NOW_MILLIS|NOW_STR|NOW_TZ|NOW_UTC|NULLIF|OBJECT_ADD|OBJECT_CONCAT|OBJECT_INNER_PAIRS|OBJECT_INNER_VALUES|OBJECT_LENGTH|OBJECT_NAMES|OBJECT_PAIRS|OBJECT_PUT|OBJECT_REMOVE|OBJECT_RENAME|OBJECT_REPLACE|OBJECT_UNWRAP|OBJECT_VALUES|PAIRS|PI|POLY_LENGTH|POSINFIF|POSITION|POWER|RADIANS|RANDOM|REGEXP_CONTAINS|REGEXP_LIKE|REGEXP_POSITION|REGEXP_REPLACE|REPEAT|REPLACE|REVERSE|ROUND|RTRIM|SIGN|SIN|SPLIT|SQRT|STR_TO_DURATION|STR_TO_MILLIS|STR_TO_TZ|STR_TO_UTC|STR_TO_ZONE_NAME|SUBSTR|SUFFIXES|SUM|TAN|TITLE|TOARRAY|TOATOM|TOBOOLEAN|TOKENS|TONUMBER|TOOBJECT|TOSTRING|TRIM|TRUNC|TYPE|UPPER|WEEKDAY_MILLIS|WEEKDAY_STR)(?=\s*\()/i, 'keyword': /\b(?:ALL|ALTER|ANALYZE|AS|ASC|BEGIN|BINARY|BOOLEAN|BREAK|BUCKET|BUILD|BY|CALL|CAST|CLUSTER|COLLATE|COLLECTION|COMMIT|CONNECT|CONTINUE|CORRELATE|COVER|CREATE|DATABASE|DATASET|DATASTORE|DECLARE|DECREMENT|DELETE|DERIVED|DESC|DESCRIBE|DISTINCT|DO|DROP|EACH|ELEMENT|EXCEPT|EXCLUDE|EXECUTE|EXPLAIN|FETCH|FLATTEN|FOR|FORCE|FROM|FUNCTION|GRANT|GROUP|GSI|HAVING|IF|IGNORE|ILIKE|INCLUDE|INCREMENT|INDEX|INFER|INLINE|INNER|INSERT|INTERSECT|INTO|IS|JOIN|KEY|KEYS|KEYSPACE|KNOWN|LAST|LEFT|LET|LETTING|LIMIT|LSM|MAP|MAPPING|MATCHED|MATERIALIZED|MERGE|MINUS|MISSING|NAMESPACE|NEST|NULL|NUMBER|OBJECT|OFFSET|ON|OPTION|ORDER|OUTER|OVER|PARSE|PARTITION|PASSWORD|PATH|POOL|PREPARE|PRIMARY|PRIVATE|PRIVILEGE|PROCEDURE|PUBLIC|RAW|REALM|REDUCE|RENAME|RETURN|RETURNING|REVOKE|RIGHT|ROLE|ROLLBACK|SATISFIES|SCHEMA|SELECT|SELF|SEMI|SET|SHOW|SOME|START|STATISTICS|STRING|SYSTEM|TO|TRANSACTION|TRIGGER|TRUNCATE|UNDER|UNION|UNIQUE|UNKNOWN|UNNEST|UNSET|UPDATE|UPSERT|USE|USER|USING|VALIDATE|VALUE|VALUES|VIA|VIEW|WHERE|WHILE|WITH|WORK|XOR)\b/i, 'boolean': /\b(?:TRUE|FALSE)\b/i, 'number': /(?:\b\d+\.|\B\.)\d+e[+\-]?\d+\b|\b\d+(?:\.\d*)?|\B\.\d+\b/i, 'operator': /[-+*\/%]|!=|==?|\|\||<[>=]?|>=?|\b(?:AND|ANY|ARRAY|BETWEEN|CASE|ELSE|END|EVERY|EXISTS|FIRST|IN|LIKE|NOT|OR|THEN|VALUED|WHEN|WITHIN)\b/i, 'punctuation': /[;[\](),.{}:]/ }; /***/ }), /***/ 3976: /***/ (function() { Prism.languages.n4js = Prism.languages.extend('javascript', { // Keywords from N4JS language spec: https://numberfour.github.io/n4js/spec/N4JSSpec.html 'keyword': /\b(?:any|Array|boolean|break|case|catch|class|const|constructor|continue|debugger|declare|default|delete|do|else|enum|export|extends|false|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|module|new|null|number|package|private|protected|public|return|set|static|string|super|switch|this|throw|true|try|typeof|var|void|while|with|yield)\b/ }); Prism.languages.insertBefore('n4js', 'constant', { // Annotations in N4JS spec: https://numberfour.github.io/n4js/spec/N4JSSpec.html#_annotations 'annotation': { pattern: /@+\w+/, alias: 'operator' } }); Prism.languages.n4jsd=Prism.languages.n4js; /***/ }), /***/ 6154: /***/ (function() { Prism.languages['nand2tetris-hdl'] = { 'comment': /\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/, 'keyword': /\b(?:CHIP|IN|OUT|PARTS|BUILTIN|CLOCKED)\b/, 'boolean': /\b(?:true|false)\b/, 'function': /[A-Za-z][A-Za-z0-9]*(?=\()/, 'number': /\b\d+\b/, 'operator': /=|\.\./, 'punctuation': /[{}[\];(),:]/ }; /***/ }), /***/ 4086: /***/ (function() { (function (Prism) { var expressionDef = /\{[^\r\n\[\]{}]*\}/; var params = { 'quoted-string': { pattern: /"(?:[^"\\]|\\.)*"/, alias: 'operator' }, 'command-param-id': { pattern: /(\s)\w+:/, lookbehind: true, alias: 'property' }, 'command-param-value': [ { pattern: expressionDef, alias: 'selector', }, { pattern: /([\t ])\S+/, lookbehind: true, greedy: true, alias: 'operator', }, { pattern: /\S(?:.*\S)?/, alias: 'operator', } ] }; Prism.languages.naniscript = { // ; ... 'comment': { pattern: /^([\t ]*);.*/m, lookbehind: true, }, // > ... // Define is a control line starting with '>' followed by a word, a space and a text. 'define': { pattern: /^>.+/m, alias: 'tag', inside: { 'value': { pattern: /(^>\w+[\t ]+)(?!\s)[^{}\r\n]+/, lookbehind: true, alias: 'operator' }, 'key': { pattern: /(^>)\w+/, lookbehind: true, } } }, // # ... 'label': { pattern: /^([\t ]*)#[\t ]*\w+[\t ]*$/m, lookbehind: true, alias: 'regex' }, 'command': { pattern: /^([\t ]*)@\w+(?=[\t ]|$).*/m, lookbehind: true, alias: 'function', inside: { 'command-name': /^@\w+/, 'expression': { pattern: expressionDef, greedy: true, alias: 'selector' }, 'command-params': { pattern: /\s*\S[\s\S]*/, inside: params }, } }, // Generic is any line that doesn't start with operators: ;>#@ 'generic-text': { pattern: /(^[ \t]*)[^#@>;\s].*/m, lookbehind: true, alias: 'punctuation', inside: { // \{ ... \} ... \[ ... \] ... \" 'escaped-char': /\\[{}\[\]"]/, 'expression': { pattern: expressionDef, greedy: true, alias: 'selector' }, 'inline-command': { pattern: /\[[\t ]*\w[^\r\n\[\]]*\]/, greedy: true, alias: 'function', inside: { 'command-params': { pattern: /(^\[[\t ]*\w+\b)[\s\S]+(?=\]$)/, lookbehind: true, inside: params }, 'command-param-name': { pattern: /^(\[[\t ]*)\w+/, lookbehind: true, alias: 'name', }, 'start-stop-char': /[\[\]]/, } }, } } }; Prism.languages.nani = Prism.languages['naniscript']; /** @typedef {InstanceType} Token */ /** * This hook is used to validate generic-text tokens for balanced brackets. * Mark token as bad-line when contains not balanced brackets: {},[] */ Prism.hooks.add('after-tokenize', function (env) { /** @type {(Token | string)[]} */ var tokens = env.tokens; tokens.forEach(function (token) { if (typeof token !== "string" && token.type === 'generic-text') { var content = getTextContent(token); if (!isBracketsBalanced(content)) { token.type = 'bad-line'; token.content = content; } } }); }); /** * @param {string} input * @returns {boolean} */ function isBracketsBalanced(input) { var brackets = "[]{}"; var stack = []; for (var i = 0; i < input.length; i++) { var bracket = input[i]; var bracketsIndex = brackets.indexOf(bracket); if (bracketsIndex !== -1) { if (bracketsIndex % 2 === 0) { stack.push(bracketsIndex + 1); } else if (stack.pop() !== bracketsIndex) { return false; } } } return stack.length === 0; }; /** * @param {string | Token | (string | Token)[]} token * @returns {string} */ function getTextContent(token) { if (typeof token === 'string') { return token; } else if (Array.isArray(token)) { return token.map(getTextContent).join(''); } else { return getTextContent(token.content); } } })(Prism); /***/ }), /***/ 2794: /***/ (function() { Prism.languages.nasm = { 'comment': /;.*$/m, 'string': /(["'`])(?:\\.|(?!\1)[^\\\r\n])*\1/, 'label': { pattern: /(^\s*)[A-Za-z._?$][\w.?$@~#]*:/m, lookbehind: true, alias: 'function' }, 'keyword': [ /\[?BITS (?:16|32|64)\]?/, { pattern: /(^\s*)section\s*[a-zA-Z.]+:?/im, lookbehind: true }, /(?:extern|global)[^;\r\n]*/i, /(?:CPU|FLOAT|DEFAULT).*$/m ], 'register': { pattern: /\b(?:st\d|[xyz]mm\d\d?|[cdt]r\d|r\d\d?[bwd]?|[er]?[abcd]x|[abcd][hl]|[er]?(?:bp|sp|si|di)|[cdefgs]s)\b/i, alias: 'variable' }, 'number': /(?:\b|(?=\$))(?:0[hx](?:\.[\da-f]+|[\da-f]+(?:\.[\da-f]+)?)(?:p[+-]?\d+)?|\d[\da-f]+[hx]|\$\d[\da-f]*|0[oq][0-7]+|[0-7]+[oq]|0[by][01]+|[01]+[by]|0[dt]\d+|(?:\d+(?:\.\d+)?|\.\d+)(?:\.?e[+-]?\d+)?[dt]?)\b/i, 'operator': /[\[\]*+\-\/%<>=&|$!]/ }; /***/ }), /***/ 9501: /***/ (function() { Prism.languages.neon = { 'comment': { pattern: /#.*/, greedy: true }, 'datetime': { pattern: /(^|[[{(=:,\s])\d\d\d\d-\d\d?-\d\d?(?:(?:[Tt]| +)\d\d?:\d\d:\d\d(?:\.\d*)? *(?:Z|[-+]\d\d?(?::?\d\d)?)?)?(?=$|[\]}),\s])/, lookbehind: true, alias: 'number' }, 'key': { pattern: /(^|[[{(,\s])[^,:=[\]{}()'"\s]+(?=\s*:(?:$|[\]}),\s])|\s*=)/, lookbehind: true, alias: 'atrule' }, 'number': { pattern: /(^|[[{(=:,\s])[+-]?(?:0x[\da-fA-F]+|0o[0-7]+|0b[01]+|(?:\d+(?:\.\d*)?|\.?\d+)(?:[eE][+-]?\d+)?)(?=$|[\]}),:=\s])/, lookbehind: true }, 'boolean': { pattern: /(^|[[{(=:,\s])(?:true|false|yes|no)(?=$|[\]}),:=\s])/i, lookbehind: true }, 'null': { pattern: /(^|[[{(=:,\s])(?:null)(?=$|[\]}),:=\s])/i, lookbehind: true, alias: 'keyword' }, 'string': { pattern: /(^|[[{(=:,\s])(?:('''|""")\r?\n(?:(?:[^\r\n]|\r?\n(?![\t ]*\2))*\r?\n)?[\t ]*\2|'[^'\r\n]*'|"(?:\\.|[^\\"\r\n])*")/, lookbehind: true, greedy: true }, 'literal': { pattern: /(^|[[{(=:,\s])(?:[^#"\',:=[\]{}()\s`-]|[:-][^"\',=[\]{}()\s])(?:[^,:=\]})(\s]|:(?![\s,\]})]|$)|[ \t]+[^#,:=\]})(\s])*/, lookbehind: true, alias: 'string', }, 'punctuation': /[,:=[\]{}()-]/, }; /***/ }), /***/ 838: /***/ (function() { Prism.languages.nginx = Prism.languages.extend('clike', { 'comment': { pattern: /(^|[^"{\\])#.*/, lookbehind: true }, 'keyword': /\b(?:CONTENT_|DOCUMENT_|GATEWAY_|HTTP_|HTTPS|if_not_empty|PATH_|QUERY_|REDIRECT_|REMOTE_|REQUEST_|SCGI|SCRIPT_|SERVER_|http|events|accept_mutex|accept_mutex_delay|access_log|add_after_body|add_before_body|add_header|addition_types|aio|alias|allow|ancient_browser|ancient_browser_value|auth|auth_basic|auth_basic_user_file|auth_http|auth_http_header|auth_http_timeout|autoindex|autoindex_exact_size|autoindex_localtime|break|charset|charset_map|charset_types|chunked_transfer_encoding|client_body_buffer_size|client_body_in_file_only|client_body_in_single_buffer|client_body_temp_path|client_body_timeout|client_header_buffer_size|client_header_timeout|client_max_body_size|connection_pool_size|create_full_put_path|daemon|dav_access|dav_methods|debug_connection|debug_points|default_type|deny|devpoll_changes|devpoll_events|directio|directio_alignment|disable_symlinks|empty_gif|env|epoll_events|error_log|error_page|expires|fastcgi_buffer_size|fastcgi_buffers|fastcgi_busy_buffers_size|fastcgi_cache|fastcgi_cache_bypass|fastcgi_cache_key|fastcgi_cache_lock|fastcgi_cache_lock_timeout|fastcgi_cache_methods|fastcgi_cache_min_uses|fastcgi_cache_path|fastcgi_cache_purge|fastcgi_cache_use_stale|fastcgi_cache_valid|fastcgi_connect_timeout|fastcgi_hide_header|fastcgi_ignore_client_abort|fastcgi_ignore_headers|fastcgi_index|fastcgi_intercept_errors|fastcgi_keep_conn|fastcgi_max_temp_file_size|fastcgi_next_upstream|fastcgi_no_cache|fastcgi_param|fastcgi_pass|fastcgi_pass_header|fastcgi_read_timeout|fastcgi_redirect_errors|fastcgi_send_timeout|fastcgi_split_path_info|fastcgi_store|fastcgi_store_access|fastcgi_temp_file_write_size|fastcgi_temp_path|flv|geo|geoip_city|geoip_country|google_perftools_profiles|gzip|gzip_buffers|gzip_comp_level|gzip_disable|gzip_http_version|gzip_min_length|gzip_proxied|gzip_static|gzip_types|gzip_vary|if|if_modified_since|ignore_invalid_headers|image_filter|image_filter_buffer|image_filter_jpeg_quality|image_filter_sharpen|image_filter_transparency|imap_capabilities|imap_client_buffer|include|index|internal|ip_hash|keepalive|keepalive_disable|keepalive_requests|keepalive_timeout|kqueue_changes|kqueue_events|large_client_header_buffers|limit_conn|limit_conn_log_level|limit_conn_zone|limit_except|limit_rate|limit_rate_after|limit_req|limit_req_log_level|limit_req_zone|limit_zone|lingering_close|lingering_time|lingering_timeout|listen|location|lock_file|log_format|log_format_combined|log_not_found|log_subrequest|map|map_hash_bucket_size|map_hash_max_size|master_process|max_ranges|memcached_buffer_size|memcached_connect_timeout|memcached_next_upstream|memcached_pass|memcached_read_timeout|memcached_send_timeout|merge_slashes|min_delete_depth|modern_browser|modern_browser_value|mp4|mp4_buffer_size|mp4_max_buffer_size|msie_padding|msie_refresh|multi_accept|open_file_cache|open_file_cache_errors|open_file_cache_min_uses|open_file_cache_valid|open_log_file_cache|optimize_server_names|override_charset|pcre_jit|perl|perl_modules|perl_require|perl_set|pid|pop3_auth|pop3_capabilities|port_in_redirect|post_action|postpone_output|protocol|proxy|proxy_buffer|proxy_buffer_size|proxy_buffering|proxy_buffers|proxy_busy_buffers_size|proxy_cache|proxy_cache_bypass|proxy_cache_key|proxy_cache_lock|proxy_cache_lock_timeout|proxy_cache_methods|proxy_cache_min_uses|proxy_cache_path|proxy_cache_use_stale|proxy_cache_valid|proxy_connect_timeout|proxy_cookie_domain|proxy_cookie_path|proxy_headers_hash_bucket_size|proxy_headers_hash_max_size|proxy_hide_header|proxy_http_version|proxy_ignore_client_abort|proxy_ignore_headers|proxy_intercept_errors|proxy_max_temp_file_size|proxy_method|proxy_next_upstream|proxy_no_cache|proxy_pass|proxy_pass_error_message|proxy_pass_header|proxy_pass_request_body|proxy_pass_request_headers|proxy_read_timeout|proxy_redirect|proxy_redirect_errors|proxy_send_lowat|proxy_send_timeout|proxy_set_body|proxy_set_header|proxy_ssl_session_reuse|proxy_store|proxy_store_access|proxy_temp_file_write_size|proxy_temp_path|proxy_timeout|proxy_upstream_fail_timeout|proxy_upstream_max_fails|random_index|read_ahead|real_ip_header|recursive_error_pages|request_pool_size|reset_timedout_connection|resolver|resolver_timeout|return|rewrite|root|rtsig_overflow_events|rtsig_overflow_test|rtsig_overflow_threshold|rtsig_signo|satisfy|satisfy_any|secure_link_secret|send_lowat|send_timeout|sendfile|sendfile_max_chunk|server|server_name|server_name_in_redirect|server_names_hash_bucket_size|server_names_hash_max_size|server_tokens|set|set_real_ip_from|smtp_auth|smtp_capabilities|so_keepalive|source_charset|split_clients|ssi|ssi_silent_errors|ssi_types|ssi_value_length|ssl|ssl_certificate|ssl_certificate_key|ssl_ciphers|ssl_client_certificate|ssl_crl|ssl_dhparam|ssl_engine|ssl_prefer_server_ciphers|ssl_protocols|ssl_session_cache|ssl_session_timeout|ssl_verify_client|ssl_verify_depth|starttls|stub_status|sub_filter|sub_filter_once|sub_filter_types|tcp_nodelay|tcp_nopush|timeout|timer_resolution|try_files|types|types_hash_bucket_size|types_hash_max_size|underscores_in_headers|uninitialized_variable_warn|upstream|use|user|userid|userid_domain|userid_expires|userid_name|userid_p3p|userid_path|userid_service|valid_referers|variables_hash_bucket_size|variables_hash_max_size|worker_connections|worker_cpu_affinity|worker_priority|worker_processes|worker_rlimit_core|worker_rlimit_nofile|worker_rlimit_sigpending|working_directory|xclient|xml_entities|xslt_entities|xslt_stylesheet|xslt_types|ssl_session_tickets|ssl_stapling|ssl_stapling_verify|ssl_ecdh_curve|ssl_trusted_certificate|more_set_headers|ssl_early_data)\b/i }); Prism.languages.insertBefore('nginx', 'keyword', { 'variable': /\$[a-z_]+/i }); /***/ }), /***/ 4361: /***/ (function() { Prism.languages.nim = { 'comment': /#.*/, // Double-quoted strings can be prefixed by an identifier (Generalized raw string literals) // Character literals are handled specifically to prevent issues with numeric type suffixes 'string': { pattern: /(?:(?:\b(?!\d)(?:\w|\\x[8-9a-fA-F][0-9a-fA-F])+)?(?:"""[\s\S]*?"""(?!")|"(?:\\[\s\S]|""|[^"\\])*")|'(?:\\(?:\d+|x[\da-fA-F]{2}|.)|[^'])')/, greedy: true }, // The negative look ahead prevents wrong highlighting of the .. operator 'number': /\b(?:0[xXoObB][\da-fA-F_]+|\d[\d_]*(?:(?!\.\.)\.[\d_]*)?(?:[eE][+-]?\d[\d_]*)?)(?:'?[iuf]\d*)?/, 'keyword': /\b(?:addr|as|asm|atomic|bind|block|break|case|cast|concept|const|continue|converter|defer|discard|distinct|do|elif|else|end|enum|except|export|finally|for|from|func|generic|if|import|include|interface|iterator|let|macro|method|mixin|nil|object|out|proc|ptr|raise|ref|return|static|template|try|tuple|type|using|var|when|while|with|without|yield)\b/, 'function': { pattern: /(?:(?!\d)(?:\w|\\x[8-9a-fA-F][0-9a-fA-F])+|`[^`\r\n]+`)\*?(?:\[[^\]]+\])?(?=\s*\()/, inside: { 'operator': /\*$/ } }, // We don't want to highlight operators inside backticks 'ignore': { pattern: /`[^`\r\n]+`/, inside: { 'punctuation': /`/ } }, 'operator': { // Look behind and look ahead prevent wrong highlighting of punctuations [. .] {. .} (. .) // but allow the slice operator .. to take precedence over them // One can define his own operators in Nim so all combination of operators might be an operator. pattern: /(^|[({\[](?=\.\.)|(?![({\[]\.).)(?:(?:[=+\-*\/<>@$~&%|!?^:\\]|\.\.|\.(?![)}\]]))+|\b(?:and|div|of|or|in|is|isnot|mod|not|notin|shl|shr|xor)\b)/m, lookbehind: true }, 'punctuation': /[({\[]\.|\.[)}\]]|[`(){}\[\],:]/ }; /***/ }), /***/ 6386: /***/ (function() { Prism.languages.nix = { 'comment': /\/\*[\s\S]*?\*\/|#.*/, 'string': { pattern: /"(?:[^"\\]|\\[\s\S])*"|''(?:(?!'')[\s\S]|''(?:'|\\|\$\{))*''/, greedy: true, inside: { 'interpolation': { // The lookbehind ensures the ${} is not preceded by \ or '' pattern: /(^|(?:^|(?!'').)[^\\])\$\{(?:[^{}]|\{[^}]*\})*\}/, lookbehind: true, inside: { 'antiquotation': { pattern: /^\$(?=\{)/, alias: 'variable' } // See rest below } } } }, 'url': [ /\b(?:[a-z]{3,7}:\/\/)[\w\-+%~\/.:#=?&]+/, { pattern: /([^\/])(?:[\w\-+%~.:#=?&]*(?!\/\/)[\w\-+%~\/.:#=?&])?(?!\/\/)\/[\w\-+%~\/.:#=?&]*/, lookbehind: true } ], 'antiquotation': { pattern: /\$(?=\{)/, alias: 'variable' }, 'number': /\b\d+\b/, 'keyword': /\b(?:assert|builtins|else|if|in|inherit|let|null|or|then|with)\b/, 'function': /\b(?:abort|add|all|any|attrNames|attrValues|baseNameOf|compareVersions|concatLists|currentSystem|deepSeq|derivation|dirOf|div|elem(?:At)?|fetch(?:url|Tarball)|filter(?:Source)?|fromJSON|genList|getAttr|getEnv|hasAttr|hashString|head|import|intersectAttrs|is(?:Attrs|Bool|Function|Int|List|Null|String)|length|lessThan|listToAttrs|map|mul|parseDrvName|pathExists|read(?:Dir|File)|removeAttrs|replaceStrings|seq|sort|stringLength|sub(?:string)?|tail|throw|to(?:File|JSON|Path|String|XML)|trace|typeOf)\b|\bfoldl'\B/, 'boolean': /\b(?:true|false)\b/, 'operator': /[=!<>]=?|\+\+?|\|\||&&|\/\/|->?|[?@]/, 'punctuation': /[{}()[\].,:;]/ }; Prism.languages.nix.string.inside.interpolation.inside.rest = Prism.languages.nix; /***/ }), /***/ 9160: /***/ (function() { /** * Original by Jan T. Sott (http://github.com/idleberg) * * Includes all commands and plug-ins shipped with NSIS 3.02 */ Prism.languages.nsis = { 'comment': { pattern: /(^|[^\\])(?:\/\*[\s\S]*?\*\/|[#;].*)/, lookbehind: true }, 'string': { pattern: /("|')(?:\\.|(?!\1)[^\\\r\n])*\1/, greedy: true }, 'keyword': { pattern: /(^\s*)(?:Abort|Add(?:BrandingImage|Size)|AdvSplash|Allow(?:RootDirInstall|SkipFiles)|AutoCloseWindow|Banner|BG(?:Font|Gradient|Image)|BrandingText|BringToFront|Call(?:InstDLL)?|Caption|ChangeUI|CheckBitmap|ClearErrors|CompletedText|ComponentText|CopyFiles|CRCCheck|Create(?:Directory|Font|ShortCut)|Delete(?:INISec|INIStr|RegKey|RegValue)?|Detail(?:Print|sButtonText)|Dialer|Dir(?:Text|Var|Verify)|EnableWindow|Enum(?:RegKey|RegValue)|Exch|Exec(?:Shell(?:Wait)?|Wait)?|ExpandEnvStrings|File(?:BufSize|Close|ErrorText|Open|Read|ReadByte|ReadUTF16LE|ReadWord|WriteUTF16LE|Seek|Write|WriteByte|WriteWord)?|Find(?:Close|First|Next|Window)|FlushINI|Get(?:CurInstType|CurrentAddress|DlgItem|DLLVersion(?:Local)?|ErrorLevel|FileTime(?:Local)?|FullPathName|Function(?:Address|End)?|InstDirError|LabelAddress|TempFileName)|Goto|HideWindow|Icon|If(?:Abort|Errors|FileExists|RebootFlag|Silent)|InitPluginsDir|Install(?:ButtonText|Colors|Dir(?:RegKey)?)|InstProgressFlags|Inst(?:Type(?:GetText|SetText)?)|Int(?:64|Ptr)?CmpU?|Int(?:64)?Fmt|Int(?:Ptr)?Op|IsWindow|Lang(?:DLL|String)|License(?:BkColor|Data|ForceSelection|LangString|Text)|LoadLanguageFile|LockWindow|Log(?:Set|Text)|Manifest(?:DPIAware|SupportedOS)|Math|MessageBox|MiscButtonText|Name|Nop|ns(?:Dialogs|Exec)|NSISdl|OutFile|Page(?:Callbacks)?|PE(?:DllCharacteristics|SubsysVer)|Pop|Push|Quit|Read(?:EnvStr|INIStr|RegDWORD|RegStr)|Reboot|RegDLL|Rename|RequestExecutionLevel|ReserveFile|Return|RMDir|SearchPath|Section(?:End|GetFlags|GetInstTypes|GetSize|GetText|Group|In|SetFlags|SetInstTypes|SetSize|SetText)?|SendMessage|Set(?:AutoClose|BrandingImage|Compress|Compressor(?:DictSize)?|CtlColors|CurInstType|DatablockOptimize|DateSave|Details(?:Print|View)|ErrorLevel|Errors|FileAttributes|Font|OutPath|Overwrite|PluginUnload|RebootFlag|RegView|ShellVarContext|Silent)|Show(?:InstDetails|UninstDetails|Window)|Silent(?:Install|UnInstall)|Sleep|SpaceTexts|Splash|StartMenu|Str(?:CmpS?|Cpy|Len)|SubCaption|System|Unicode|Uninstall(?:ButtonText|Caption|Icon|SubCaption|Text)|UninstPage|UnRegDLL|UserInfo|Var|VI(?:AddVersionKey|FileVersion|ProductVersion)|VPatch|WindowIcon|Write(?:INIStr|Reg(?:Bin|DWORD|ExpandStr|MultiStr|None|Str)|Uninstaller)|XPStyle)\b/m, lookbehind: true }, 'property': /\b(?:admin|all|auto|both|colored|false|force|hide|highest|lastused|leave|listonly|none|normal|notset|off|on|open|print|show|silent|silentlog|smooth|textonly|true|user|ARCHIVE|FILE_(?:ATTRIBUTE_ARCHIVE|ATTRIBUTE_NORMAL|ATTRIBUTE_OFFLINE|ATTRIBUTE_READONLY|ATTRIBUTE_SYSTEM|ATTRIBUTE_TEMPORARY)|HK(?:(?:CR|CU|LM)(?:32|64)?|DD|PD|U)|HKEY_(?:CLASSES_ROOT|CURRENT_CONFIG|CURRENT_USER|DYN_DATA|LOCAL_MACHINE|PERFORMANCE_DATA|USERS)|ID(?:ABORT|CANCEL|IGNORE|NO|OK|RETRY|YES)|MB_(?:ABORTRETRYIGNORE|DEFBUTTON1|DEFBUTTON2|DEFBUTTON3|DEFBUTTON4|ICONEXCLAMATION|ICONINFORMATION|ICONQUESTION|ICONSTOP|OK|OKCANCEL|RETRYCANCEL|RIGHT|RTLREADING|SETFOREGROUND|TOPMOST|USERICON|YESNO)|NORMAL|OFFLINE|READONLY|SHCTX|SHELL_CONTEXT|SYSTEM|TEMPORARY)\b/, 'constant': /\${[\w\.:\^-]+}|\$\([\w\.:\^-]+\)/i, 'variable': /\$\w+/i, 'number': /\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/, 'operator': /--?|\+\+?|<=?|>=?|==?=?|&&?|\|\|?|[?*\/~^%]/, 'punctuation': /[{}[\];(),.:]/, 'important': { pattern: /(^\s*)!(?:addincludedir|addplugindir|appendfile|cd|define|delfile|echo|else|endif|error|execute|finalize|getdllversion|gettlbversion|ifdef|ifmacrodef|ifmacrondef|ifndef|if|include|insertmacro|macroend|macro|makensis|packhdr|pragma|searchparse|searchreplace|system|tempfile|undef|verbose|warning)\b/mi, lookbehind: true } }; /***/ }), /***/ 1412: /***/ (function() { Prism.languages.objectivec = Prism.languages.extend('c', { 'string': /("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1|@"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/, 'keyword': /\b(?:asm|typeof|inline|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|union|unsigned|void|volatile|while|in|self|super)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/, 'operator': /-[->]?|\+\+?|!=?|<>?=?|==?|&&?|\|\|?|[~^%?*\/@]/ }); delete Prism.languages.objectivec['class-name']; Prism.languages.objc = Prism.languages.objectivec; /***/ }), /***/ 1094: /***/ (function() { Prism.languages.ocaml = { 'comment': /\(\*[\s\S]*?\*\)/, 'string': [ { pattern: /"(?:\\.|[^\\\r\n"])*"/, greedy: true }, { pattern: /(['`])(?:\\(?:\d+|x[\da-f]+|.)|(?!\1)[^\\\r\n])\1/i, greedy: true } ], 'number': /\b(?:0x[\da-f][\da-f_]+|(?:0[bo])?\d[\d_]*(?:\.[\d_]*)?(?:e[+-]?[\d_]+)?)/i, 'directive': { pattern: /\B#\w+/, alias: 'important' }, 'label': { pattern: /\B~\w+/, alias: 'function' }, 'type-variable': { pattern: /\B'\w+/, alias: 'function' }, 'variant': { pattern: /`\w+/, alias: 'variable' }, 'module': { pattern: /\b[A-Z]\w+/, alias: 'variable' }, // For the list of keywords and operators, // see: http://caml.inria.fr/pub/docs/manual-ocaml/lex.html#sec84 'keyword': /\b(?:as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|nonrec|object|of|open|private|rec|sig|struct|then|to|try|type|val|value|virtual|when|where|while|with)\b/, 'boolean': /\b(?:false|true)\b/, // Custom operators are allowed 'operator': /:=|[=<>@^|&+\-*\/$%!?~][!$%&*+\-.\/:<=>?@^|~]*|\b(?:and|asr|land|lor|lsl|lsr|lxor|mod|or)\b/, 'punctuation': /[(){}\[\]|.,:;]|\b_\b/ }; /***/ }), /***/ 4971: /***/ (function() { (function (Prism) { /* OpenCL kernel language */ Prism.languages.opencl = Prism.languages.extend('c', { // Extracted from the official specs (2.0) and http://streamcomputing.eu/downloads/?opencl.lang (opencl-keywords, opencl-types) and http://sourceforge.net/tracker/?func=detail&aid=2957794&group_id=95717&atid=612384 (Words2, partly Words3) 'keyword': /\b(?:__attribute__|(?:__)?(?:constant|global|kernel|local|private|read_only|read_write|write_only)|auto|break|case|complex|const|continue|default|do|(?:float|double)(?:16(?:x(?:1|16|2|4|8))?|1x(?:1|16|2|4|8)|2(?:x(?:1|16|2|4|8))?|3|4(?:x(?:1|16|2|4|8))?|8(?:x(?:1|16|2|4|8))?)?|else|enum|extern|for|goto|(?:u?(?:char|short|int|long)|half|quad|bool)(?:2|3|4|8|16)?|if|imaginary|inline|packed|pipe|register|restrict|return|signed|sizeof|static|struct|switch|typedef|uniform|union|unsigned|void|volatile|while)\b/, // Extracted from http://streamcomputing.eu/downloads/?opencl.lang (opencl-const) // Math Constants: https://www.khronos.org/registry/OpenCL/sdk/2.1/docs/man/xhtml/mathConstants.html // Macros and Limits: https://www.khronos.org/registry/OpenCL/sdk/2.1/docs/man/xhtml/macroLimits.html 'number': /(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[fuhl]{0,4}/i, 'boolean': /\b(?:false|true)\b/, 'constant-opencl-kernel': { pattern: /\b(?:CHAR_(?:BIT|MAX|MIN)|CLK_(?:ADDRESS_(?:CLAMP(?:_TO_EDGE)?|NONE|REPEAT)|FILTER_(?:LINEAR|NEAREST)|(?:LOCAL|GLOBAL)_MEM_FENCE|NORMALIZED_COORDS_(?:FALSE|TRUE))|CL_(?:BGRA|(?:HALF_)?FLOAT|INTENSITY|LUMINANCE|A?R?G?B?[Ax]?|(?:(?:UN)?SIGNED|[US]NORM)_(?:INT(?:8|16|32))|UNORM_(?:INT_101010|SHORT_(?:555|565)))|(?:DBL|FLT|HALF)_(?:DIG|EPSILON|MANT_DIG|(?:MIN|MAX)(?:(?:_10)?_EXP)?)|FLT_RADIX|HUGE_VALF?|INFINITY|(?:INT|LONG|SCHAR|SHRT)_(?:MAX|MIN)|(?:UCHAR|USHRT|UINT|ULONG)_MAX|MAXFLOAT|M_(?:[12]_PI|2_SQRTPI|E|LN(?:2|10)|LOG(?:10|2)E?|PI(?:_[24])?|SQRT(?:1_2|2))(?:_F|_H)?|NAN)\b/, alias: 'constant' } }); Prism.languages.insertBefore('opencl', 'class-name', { // https://www.khronos.org/registry/OpenCL/sdk/2.1/docs/man/xhtml/scalarDataTypes.html // https://www.khronos.org/registry/OpenCL/sdk/2.1/docs/man/xhtml/otherDataTypes.html 'builtin-type': { pattern: /\b(?:_cl_(?:command_queue|context|device_id|event|kernel|mem|platform_id|program|sampler)|cl_(?:image_format|mem_fence_flags)|clk_event_t|event_t|image(?:1d_(?:array_|buffer_)?t|2d_(?:array_(?:depth_|msaa_depth_|msaa_)?|depth_|msaa_depth_|msaa_)?t|3d_t)|intptr_t|ndrange_t|ptrdiff_t|queue_t|reserve_id_t|sampler_t|size_t|uintptr_t)\b/, alias: 'keyword' } }); var attributes = { // Extracted from http://streamcomputing.eu/downloads/?opencl_host.lang (opencl-types and opencl-host) 'type-opencl-host': { pattern: /\b(?:cl_(?:GLenum|GLint|GLuin|addressing_mode|bitfield|bool|buffer_create_type|build_status|channel_(?:order|type)|(?:u?(?:char|short|int|long)|float|double)(?:2|3|4|8|16)?|command_(?:queue(?:_info|_properties)?|type)|context(?:_info|_properties)?|device_(?:exec_capabilities|fp_config|id|info|local_mem_type|mem_cache_type|type)|(?:event|sampler)(?:_info)?|filter_mode|half|image_info|kernel(?:_info|_work_group_info)?|map_flags|mem(?:_flags|_info|_object_type)?|platform_(?:id|info)|profiling_info|program(?:_build_info|_info)?))\b/, alias: 'keyword' }, 'boolean-opencl-host': { pattern: /\bCL_(?:TRUE|FALSE)\b/, alias: 'boolean' }, // Extracted from cl.h (2.0) and http://streamcomputing.eu/downloads/?opencl_host.lang (opencl-const) 'constant-opencl-host': { pattern: /\bCL_(?:A|ABGR|ADDRESS_(?:CLAMP(?:_TO_EDGE)?|MIRRORED_REPEAT|NONE|REPEAT)|ARGB|BGRA|BLOCKING|BUFFER_CREATE_TYPE_REGION|BUILD_(?:ERROR|IN_PROGRESS|NONE|PROGRAM_FAILURE|SUCCESS)|COMMAND_(?:ACQUIRE_GL_OBJECTS|BARRIER|COPY_(?:BUFFER(?:_RECT|_TO_IMAGE)?|IMAGE(?:_TO_BUFFER)?)|FILL_(?:BUFFER|IMAGE)|MAP(?:_BUFFER|_IMAGE)|MARKER|MIGRATE(?:_SVM)?_MEM_OBJECTS|NATIVE_KERNEL|NDRANGE_KERNEL|READ_(?:BUFFER(?:_RECT)?|IMAGE)|RELEASE_GL_OBJECTS|SVM_(?:FREE|MAP|MEMCPY|MEMFILL|UNMAP)|TASK|UNMAP_MEM_OBJECT|USER|WRITE_(?:BUFFER(?:_RECT)?|IMAGE))|COMPILER_NOT_AVAILABLE|COMPILE_PROGRAM_FAILURE|COMPLETE|CONTEXT_(?:DEVICES|INTEROP_USER_SYNC|NUM_DEVICES|PLATFORM|PROPERTIES|REFERENCE_COUNT)|DEPTH(?:_STENCIL)?|DEVICE_(?:ADDRESS_BITS|AFFINITY_DOMAIN_(?:L[1-4]_CACHE|NEXT_PARTITIONABLE|NUMA)|AVAILABLE|BUILT_IN_KERNELS|COMPILER_AVAILABLE|DOUBLE_FP_CONFIG|ENDIAN_LITTLE|ERROR_CORRECTION_SUPPORT|EXECUTION_CAPABILITIES|EXTENSIONS|GLOBAL_(?:MEM_(?:CACHELINE_SIZE|CACHE_SIZE|CACHE_TYPE|SIZE)|VARIABLE_PREFERRED_TOTAL_SIZE)|HOST_UNIFIED_MEMORY|IL_VERSION|IMAGE(?:2D_MAX_(?:HEIGHT|WIDTH)|3D_MAX_(?:DEPTH|HEIGHT|WIDTH)|_BASE_ADDRESS_ALIGNMENT|_MAX_ARRAY_SIZE|_MAX_BUFFER_SIZE|_PITCH_ALIGNMENT|_SUPPORT)|LINKER_AVAILABLE|LOCAL_MEM_SIZE|LOCAL_MEM_TYPE|MAX_(?:CLOCK_FREQUENCY|COMPUTE_UNITS|CONSTANT_ARGS|CONSTANT_BUFFER_SIZE|GLOBAL_VARIABLE_SIZE|MEM_ALLOC_SIZE|NUM_SUB_GROUPS|ON_DEVICE_(?:EVENTS|QUEUES)|PARAMETER_SIZE|PIPE_ARGS|READ_IMAGE_ARGS|READ_WRITE_IMAGE_ARGS|SAMPLERS|WORK_GROUP_SIZE|WORK_ITEM_DIMENSIONS|WORK_ITEM_SIZES|WRITE_IMAGE_ARGS)|MEM_BASE_ADDR_ALIGN|MIN_DATA_TYPE_ALIGN_SIZE|NAME|NATIVE_VECTOR_WIDTH_(?:CHAR|DOUBLE|FLOAT|HALF|INT|LONG|SHORT)|NOT_(?:AVAILABLE|FOUND)|OPENCL_C_VERSION|PARENT_DEVICE|PARTITION_(?:AFFINITY_DOMAIN|BY_AFFINITY_DOMAIN|BY_COUNTS|BY_COUNTS_LIST_END|EQUALLY|FAILED|MAX_SUB_DEVICES|PROPERTIES|TYPE)|PIPE_MAX_(?:ACTIVE_RESERVATIONS|PACKET_SIZE)|PLATFORM|PREFERRED_(?:GLOBAL_ATOMIC_ALIGNMENT|INTEROP_USER_SYNC|LOCAL_ATOMIC_ALIGNMENT|PLATFORM_ATOMIC_ALIGNMENT|VECTOR_WIDTH_(?:CHAR|DOUBLE|FLOAT|HALF|INT|LONG|SHORT))|PRINTF_BUFFER_SIZE|PROFILE|PROFILING_TIMER_RESOLUTION|QUEUE_(?:ON_(?:DEVICE_(?:MAX_SIZE|PREFERRED_SIZE|PROPERTIES)|HOST_PROPERTIES)|PROPERTIES)|REFERENCE_COUNT|SINGLE_FP_CONFIG|SUB_GROUP_INDEPENDENT_FORWARD_PROGRESS|SVM_(?:ATOMICS|CAPABILITIES|COARSE_GRAIN_BUFFER|FINE_GRAIN_BUFFER|FINE_GRAIN_SYSTEM)|TYPE(?:_ACCELERATOR|_ALL|_CPU|_CUSTOM|_DEFAULT|_GPU)?|VENDOR(?:_ID)?|VERSION)|DRIVER_VERSION|EVENT_(?:COMMAND_(?:EXECUTION_STATUS|QUEUE|TYPE)|CONTEXT|REFERENCE_COUNT)|EXEC_(?:KERNEL|NATIVE_KERNEL|STATUS_ERROR_FOR_EVENTS_IN_WAIT_LIST)|FILTER_(?:LINEAR|NEAREST)|FLOAT|FP_(?:CORRECTLY_ROUNDED_DIVIDE_SQRT|DENORM|FMA|INF_NAN|ROUND_TO_INF|ROUND_TO_NEAREST|ROUND_TO_ZERO|SOFT_FLOAT)|GLOBAL|HALF_FLOAT|IMAGE_(?:ARRAY_SIZE|BUFFER|DEPTH|ELEMENT_SIZE|FORMAT|FORMAT_MISMATCH|FORMAT_NOT_SUPPORTED|HEIGHT|NUM_MIP_LEVELS|NUM_SAMPLES|ROW_PITCH|SLICE_PITCH|WIDTH)|INTENSITY|INVALID_(?:ARG_INDEX|ARG_SIZE|ARG_VALUE|BINARY|BUFFER_SIZE|BUILD_OPTIONS|COMMAND_QUEUE|COMPILER_OPTIONS|CONTEXT|DEVICE|DEVICE_PARTITION_COUNT|DEVICE_QUEUE|DEVICE_TYPE|EVENT|EVENT_WAIT_LIST|GLOBAL_OFFSET|GLOBAL_WORK_SIZE|GL_OBJECT|HOST_PTR|IMAGE_DESCRIPTOR|IMAGE_FORMAT_DESCRIPTOR|IMAGE_SIZE|KERNEL|KERNEL_ARGS|KERNEL_DEFINITION|KERNEL_NAME|LINKER_OPTIONS|MEM_OBJECT|MIP_LEVEL|OPERATION|PIPE_SIZE|PLATFORM|PROGRAM|PROGRAM_EXECUTABLE|PROPERTY|QUEUE_PROPERTIES|SAMPLER|VALUE|WORK_DIMENSION|WORK_GROUP_SIZE|WORK_ITEM_SIZE)|KERNEL_(?:ARG_(?:ACCESS_(?:NONE|QUALIFIER|READ_ONLY|READ_WRITE|WRITE_ONLY)|ADDRESS_(?:CONSTANT|GLOBAL|LOCAL|PRIVATE|QUALIFIER)|INFO_NOT_AVAILABLE|NAME|TYPE_(?:CONST|NAME|NONE|PIPE|QUALIFIER|RESTRICT|VOLATILE))|ATTRIBUTES|COMPILE_NUM_SUB_GROUPS|COMPILE_WORK_GROUP_SIZE|CONTEXT|EXEC_INFO_SVM_FINE_GRAIN_SYSTEM|EXEC_INFO_SVM_PTRS|FUNCTION_NAME|GLOBAL_WORK_SIZE|LOCAL_MEM_SIZE|LOCAL_SIZE_FOR_SUB_GROUP_COUNT|MAX_NUM_SUB_GROUPS|MAX_SUB_GROUP_SIZE_FOR_NDRANGE|NUM_ARGS|PREFERRED_WORK_GROUP_SIZE_MULTIPLE|PRIVATE_MEM_SIZE|PROGRAM|REFERENCE_COUNT|SUB_GROUP_COUNT_FOR_NDRANGE|WORK_GROUP_SIZE)|LINKER_NOT_AVAILABLE|LINK_PROGRAM_FAILURE|LOCAL|LUMINANCE|MAP_(?:FAILURE|READ|WRITE|WRITE_INVALIDATE_REGION)|MEM_(?:ALLOC_HOST_PTR|ASSOCIATED_MEMOBJECT|CONTEXT|COPY_HOST_PTR|COPY_OVERLAP|FLAGS|HOST_NO_ACCESS|HOST_PTR|HOST_READ_ONLY|HOST_WRITE_ONLY|KERNEL_READ_AND_WRITE|MAP_COUNT|OBJECT_(?:ALLOCATION_FAILURE|BUFFER|IMAGE1D|IMAGE1D_ARRAY|IMAGE1D_BUFFER|IMAGE2D|IMAGE2D_ARRAY|IMAGE3D|PIPE)|OFFSET|READ_ONLY|READ_WRITE|REFERENCE_COUNT|SIZE|SVM_ATOMICS|SVM_FINE_GRAIN_BUFFER|TYPE|USES_SVM_POINTER|USE_HOST_PTR|WRITE_ONLY)|MIGRATE_MEM_OBJECT_(?:CONTENT_UNDEFINED|HOST)|MISALIGNED_SUB_BUFFER_OFFSET|NONE|NON_BLOCKING|OUT_OF_(?:HOST_MEMORY|RESOURCES)|PIPE_(?:MAX_PACKETS|PACKET_SIZE)|PLATFORM_(?:EXTENSIONS|HOST_TIMER_RESOLUTION|NAME|PROFILE|VENDOR|VERSION)|PROFILING_(?:COMMAND_(?:COMPLETE|END|QUEUED|START|SUBMIT)|INFO_NOT_AVAILABLE)|PROGRAM_(?:BINARIES|BINARY_SIZES|BINARY_TYPE(?:_COMPILED_OBJECT|_EXECUTABLE|_LIBRARY|_NONE)?|BUILD_(?:GLOBAL_VARIABLE_TOTAL_SIZE|LOG|OPTIONS|STATUS)|CONTEXT|DEVICES|IL|KERNEL_NAMES|NUM_DEVICES|NUM_KERNELS|REFERENCE_COUNT|SOURCE)|QUEUED|QUEUE_(?:CONTEXT|DEVICE|DEVICE_DEFAULT|ON_DEVICE|ON_DEVICE_DEFAULT|OUT_OF_ORDER_EXEC_MODE_ENABLE|PROFILING_ENABLE|PROPERTIES|REFERENCE_COUNT|SIZE)|R|RA|READ_(?:ONLY|WRITE)_CACHE|RG|RGB|RGBA|RGBx|RGx|RUNNING|Rx|SAMPLER_(?:ADDRESSING_MODE|CONTEXT|FILTER_MODE|LOD_MAX|LOD_MIN|MIP_FILTER_MODE|NORMALIZED_COORDS|REFERENCE_COUNT)|(?:UN)?SIGNED_INT(?:8|16|32)|SNORM_INT(?:8|16)|SUBMITTED|SUCCESS|UNORM_INT(?:16|24|8|_101010|_101010_2)|UNORM_SHORT_(?:555|565)|VERSION_(?:1_0|1_1|1_2|2_0|2_1)|sBGRA|sRGB|sRGBA|sRGBx)\b/, alias: 'constant' }, // Extracted from cl.h (2.0) and http://streamcomputing.eu/downloads/?opencl_host.lang (opencl-host) 'function-opencl-host': { pattern: /\bcl(?:BuildProgram|CloneKernel|CompileProgram|Create(?:Buffer|CommandQueue(?:WithProperties)?|Context|ContextFromType|Image|Image2D|Image3D|Kernel|KernelsInProgram|Pipe|ProgramWith(?:Binary|BuiltInKernels|IL|Source)|Sampler|SamplerWithProperties|SubBuffer|SubDevices|UserEvent)|Enqueue(?:(?:Barrier|Marker)(?:WithWaitList)?|Copy(?:Buffer(?:Rect|ToImage)?|Image(?:ToBuffer)?)|(?:Fill|Map)(?:Buffer|Image)|MigrateMemObjects|NDRangeKernel|NativeKernel|(?:Read|Write)(?:Buffer(?:Rect)?|Image)|SVM(?:Free|Map|MemFill|Memcpy|MigrateMem|Unmap)|Task|UnmapMemObject|WaitForEvents)|Finish|Flush|Get(?:CommandQueueInfo|ContextInfo|Device(?:AndHostTimer|IDs|Info)|Event(?:Profiling)?Info|ExtensionFunctionAddress(?:ForPlatform)?|HostTimer|ImageInfo|Kernel(?:ArgInfo|Info|SubGroupInfo|WorkGroupInfo)|MemObjectInfo|PipeInfo|Platform(?:IDs|Info)|Program(?:Build)?Info|SamplerInfo|SupportedImageFormats)|LinkProgram|(?:Release|Retain)(?:CommandQueue|Context|Device|Event|Kernel|MemObject|Program|Sampler)|SVM(?:Alloc|Free)|Set(?:CommandQueueProperty|DefaultDeviceCommandQueue|EventCallback|Kernel(?:Arg(?:SVMPointer)?|ExecInfo)|Kernel|MemObjectDestructorCallback|UserEventStatus)|Unload(?:Platform)?Compiler|WaitForEvents)\b/, alias: 'function' } }; /* OpenCL host API */ Prism.languages.insertBefore('c', 'keyword', attributes); // C++ includes everything from the OpenCL C host API plus the classes defined in cl2.h if (Prism.languages.cpp) { // Extracted from doxygen class list http://github.khronos.org/OpenCL-CLHPP/annotated.html attributes['type-opencl-host-cpp'] = { pattern: /\b(?:Buffer|BufferGL|BufferRenderGL|CommandQueue|Context|Device|DeviceCommandQueue|EnqueueArgs|Event|Image|Image1D|Image1DArray|Image1DBuffer|Image2D|Image2DArray|Image2DGL|Image3D|Image3DGL|ImageFormat|ImageGL|Kernel|KernelFunctor|LocalSpaceArg|Memory|NDRange|Pipe|Platform|Program|Sampler|SVMAllocator|SVMTraitAtomic|SVMTraitCoarse|SVMTraitFine|SVMTraitReadOnly|SVMTraitReadWrite|SVMTraitWriteOnly|UserEvent)\b/, alias: 'keyword' }; Prism.languages.insertBefore('cpp', 'keyword', attributes); } }(Prism)); /***/ }), /***/ 1439: /***/ (function() { Prism.languages.oz = { 'comment': /\/\*[\s\S]*?\*\/|%.*/, 'string': { pattern: /"(?:[^"\\]|\\[\s\S])*"/, greedy: true }, 'atom': { pattern: /'(?:[^'\\]|\\[\s\S])*'/, greedy: true, alias: 'builtin' }, 'keyword': /\$|\[\]|\b(?:_|at|attr|case|catch|choice|class|cond|declare|define|dis|else(?:case|if)?|end|export|fail|false|feat|finally|from|fun|functor|if|import|in|local|lock|meth|nil|not|of|or|prepare|proc|prop|raise|require|self|skip|then|thread|true|try|unit)\b/, 'function': [ /\b[a-z][A-Za-z\d]*(?=\()/, { pattern: /(\{)[A-Z][A-Za-z\d]*\b/, lookbehind: true } ], 'number': /\b(?:0[bx][\da-f]+|\d+(?:\.\d*)?(?:e~?\d+)?)\b|&(?:[^\\]|\\(?:\d{3}|.))/i, 'variable': /\b[A-Z][A-Za-z\d]*|`(?:[^`\\]|\\.)+`/, 'attr-name': /\w+(?=:)/, 'operator': /:(?:=|::?)|<[-:=]?|=(?:=|=?:?|\\=:?|!!?|[|#+\-*\/,~^@]|\b(?:andthen|div|mod|orelse)\b/, 'punctuation': /[\[\](){}.:;?]/ }; /***/ }), /***/ 5784: /***/ (function() { Prism.languages.parigp = { 'comment': /\/\*[\s\S]*?\*\/|\\\\.*/, 'string': { pattern: /"(?:[^"\\\r\n]|\\.)*"/, greedy: true }, // PARI/GP does not care about white spaces at all // so let's process the keywords to build an appropriate regexp // (e.g. "b *r *e *a *k", etc.) 'keyword': (function () { var keywords = [ 'breakpoint', 'break', 'dbg_down', 'dbg_err', 'dbg_up', 'dbg_x', 'forcomposite', 'fordiv', 'forell', 'forpart', 'forprime', 'forstep', 'forsubgroup', 'forvec', 'for', 'iferr', 'if', 'local', 'my', 'next', 'return', 'until', 'while' ]; keywords = keywords.map(function (keyword) { return keyword.split('').join(' *'); }).join('|'); return RegExp('\\b(?:' + keywords + ')\\b'); }()), 'function': /\w(?:[\w ]*\w)?(?= *\()/, 'number': { // The lookbehind and the negative lookahead prevent from breaking the .. operator pattern: /((?:\. *\. *)?)(?:\b\d(?: *\d)*(?: *(?!\. *\.)\.(?: *\d)*)?|\. *\d(?: *\d)*)(?: *e *(?:[+-] *)?\d(?: *\d)*)?/i, lookbehind: true }, 'operator': /\. *\.|[*\/!](?: *=)?|%(?: *=|(?: *#)?(?: *')*)?|\+(?: *[+=])?|-(?: *[-=>])?|<(?:(?: *<)?(?: *=)?| *>)?|>(?: *>)?(?: *=)?|=(?: *=){0,2}|\\(?: *\/)?(?: *=)?|&(?: *&)?|\| *\||['#~^]/, 'punctuation': /[\[\]{}().,:;|]/ }; /***/ }), /***/ 2900: /***/ (function() { (function (Prism) { var parser = Prism.languages.parser = Prism.languages.extend('markup', { 'keyword': { pattern: /(^|[^^])(?:\^(?:case|eval|for|if|switch|throw)\b|@(?:BASE|CLASS|GET(?:_DEFAULT)?|OPTIONS|SET_DEFAULT|USE)\b)/, lookbehind: true }, 'variable': { pattern: /(^|[^^])\B\$(?:\w+|(?=[.{]))(?:(?:\.|::?)\w+)*(?:\.|::?)?/, lookbehind: true, inside: { 'punctuation': /\.|:+/ } }, 'function': { pattern: /(^|[^^])\B[@^]\w+(?:(?:\.|::?)\w+)*(?:\.|::?)?/, lookbehind: true, inside: { 'keyword': { pattern: /(^@)(?:GET_|SET_)/, lookbehind: true }, 'punctuation': /\.|:+/ } }, 'escape': { pattern: /\^(?:[$^;@()\[\]{}"':]|#[a-f\d]*)/i, alias: 'builtin' }, 'punctuation': /[\[\](){};]/ }); parser = Prism.languages.insertBefore('parser', 'keyword', { 'parser-comment': { pattern: /(\s)#.*/, lookbehind: true, alias: 'comment' }, 'expression': { // Allow for 3 levels of depth pattern: /(^|[^^])\((?:[^()]|\((?:[^()]|\((?:[^()])*\))*\))*\)/, greedy: true, lookbehind: true, inside: { 'string': { pattern: /(^|[^^])(["'])(?:(?!\2)[^^]|\^[\s\S])*\2/, lookbehind: true }, 'keyword': parser.keyword, 'variable': parser.variable, 'function': parser.function, 'boolean': /\b(?:true|false)\b/, 'number': /\b(?:0x[a-f\d]+|\d+(?:\.\d*)?(?:e[+-]?\d+)?)\b/i, 'escape': parser.escape, 'operator': /[~+*\/\\%]|!(?:\|\|?|=)?|&&?|\|\|?|==|<[<=]?|>[>=]?|-[fd]?|\b(?:def|eq|ge|gt|in|is|le|lt|ne)\b/, 'punctuation': parser.punctuation } } }); parser = Prism.languages.insertBefore('inside', 'punctuation', { 'expression': parser.expression, 'keyword': parser.keyword, 'variable': parser.variable, 'function': parser.function, 'escape': parser.escape, 'parser-punctuation': { pattern: parser.punctuation, alias: 'punctuation' } }, parser['tag'].inside['attr-value']); }(Prism)); /***/ }), /***/ 9188: /***/ (function() { // Based on Free Pascal /* TODO Support inline asm ? */ Prism.languages.pascal = { 'comment': [ /\(\*[\s\S]+?\*\)/, /\{[\s\S]+?\}/, /\/\/.*/ ], 'string': { pattern: /(?:'(?:''|[^'\r\n])*'(?!')|#[&$%]?[a-f\d]+)+|\^[a-z]/i, greedy: true }, 'keyword': [ { // Turbo Pascal pattern: /(^|[^&])\b(?:absolute|array|asm|begin|case|const|constructor|destructor|do|downto|else|end|file|for|function|goto|if|implementation|inherited|inline|interface|label|nil|object|of|operator|packed|procedure|program|record|reintroduce|repeat|self|set|string|then|to|type|unit|until|uses|var|while|with)\b/i, lookbehind: true }, { // Free Pascal pattern: /(^|[^&])\b(?:dispose|exit|false|new|true)\b/i, lookbehind: true }, { // Object Pascal pattern: /(^|[^&])\b(?:class|dispinterface|except|exports|finalization|finally|initialization|inline|library|on|out|packed|property|raise|resourcestring|threadvar|try)\b/i, lookbehind: true }, { // Modifiers pattern: /(^|[^&])\b(?:absolute|abstract|alias|assembler|bitpacked|break|cdecl|continue|cppdecl|cvar|default|deprecated|dynamic|enumerator|experimental|export|external|far|far16|forward|generic|helper|implements|index|interrupt|iochecks|local|message|name|near|nodefault|noreturn|nostackframe|oldfpccall|otherwise|overload|override|pascal|platform|private|protected|public|published|read|register|reintroduce|result|safecall|saveregisters|softfloat|specialize|static|stdcall|stored|strict|unaligned|unimplemented|varargs|virtual|write)\b/i, lookbehind: true } ], 'number': [ // Hexadecimal, octal and binary /(?:[&%]\d+|\$[a-f\d]+)/i, // Decimal /\b\d+(?:\.\d+)?(?:e[+-]?\d+)?/i ], 'operator': [ /\.\.|\*\*|:=|<[<=>]?|>[>=]?|[+\-*\/]=?|[@^=]/i, { pattern: /(^|[^&])\b(?:and|as|div|exclude|in|include|is|mod|not|or|shl|shr|xor)\b/, lookbehind: true } ], 'punctuation': /\(\.|\.\)|[()\[\]:;,.]/ }; Prism.languages.objectpascal = Prism.languages.pascal; /***/ }), /***/ 8271: /***/ (function() { (function (Prism) { // Pascaligo is a layer 2 smart contract language for the tezos blockchain var braces = /\((?:[^()]|\((?:[^()]|\([^()]*\))*\))*\)/.source; var type = /(?:\w+(?:)?|)/.source.replace(//g, function () { return braces; }); var pascaligo = Prism.languages.pascaligo = { 'comment': /\(\*[\s\S]+?\*\)|\/\/.*/, 'string': { pattern: /(["'`])(?:\\[\s\S]|(?!\1)[^\\])*\1|\^[a-z]/i, greedy: true }, 'class-name': [ { pattern: RegExp(/(\btype\s+\w+\s+is\s+)/.source.replace(//g, function () { return type; }), 'i'), lookbehind: true, inside: null // see below }, { pattern: RegExp(/(?=\s+is\b)/.source.replace(//g, function () { return type; }), 'i'), inside: null // see below }, { pattern: RegExp(/(:\s*)/.source.replace(//g, function () { return type; })), lookbehind: true, inside: null // see below } ], 'keyword': { pattern: /(^|[^&])\b(?:begin|block|case|const|else|end|fail|for|from|function|if|is|nil|of|remove|return|skip|then|type|var|while|with)\b/i, lookbehind: true }, 'boolean': { pattern: /(^|[^&])\b(?:True|False)\b/i, lookbehind: true }, 'builtin': { pattern: /(^|[^&])\b(?:bool|int|list|map|nat|record|string|unit)\b/i, lookbehind: true }, 'function': /\w+(?=\s*\()/i, 'number': [ // Hexadecimal, octal and binary /%[01]+|&[0-7]+|\$[a-f\d]+/i, // Decimal /\b\d+(?:\.\d+)?(?:e[+-]?\d+)?(?:mtz|n)?/i ], 'operator': /->|=\/=|\.\.|\*\*|:=|<[<=>]?|>[>=]?|[+\-*\/]=?|[@^=|]|\b(?:and|mod|or)\b/, 'punctuation': /\(\.|\.\)|[()\[\]:;,.{}]/ }; var classNameInside = ['comment', 'keyword', 'builtin', 'operator', 'punctuation'].reduce(function (accum, key) { accum[key] = pascaligo[key]; return accum; }, {}); pascaligo["class-name"].forEach(function (p) { p.inside = classNameInside; }); }(Prism)); /***/ }), /***/ 3463: /***/ (function() { Prism.languages.pcaxis = { 'string': /"[^"]*"/, 'keyword': { pattern: /((?:^|;)\s*)[-A-Z\d]+(?:\s*\[[-\w]+\])?(?:\s*\("[^"]*"(?:,\s*"[^"]*")*\))?(?=\s*=)/, lookbehind: true, greedy: true, inside: { 'keyword': /^[-A-Z\d]+/, 'language': { pattern: /^(\s*)\[[-\w]+\]/, lookbehind: true, inside: { 'punctuation': /^\[|\]$/, 'property': /[-\w]+/ } }, 'sub-key': { pattern: /^(\s*)\S[\s\S]*/, lookbehind: true, inside: { 'parameter': { pattern: /"[^"]*"/, alias: 'property' }, 'punctuation': /^\(|\)$|,/ } } } }, 'operator': /=/, 'tlist': { pattern: /TLIST\s*\(\s*\w+(?:(?:\s*,\s*"[^"]*")+|\s*,\s*"[^"]*"-"[^"]*")?\s*\)/, greedy: true, inside: { 'function': /^TLIST/, 'property': { pattern: /^(\s*\(\s*)\w+/, lookbehind: true }, 'string': /"[^"]*"/, 'punctuation': /[(),]/, 'operator': /-/ } }, 'punctuation': /[;,]/, 'number': { pattern: /(^|\s)\d+(?:\.\d+)?(?!\S)/, lookbehind: true }, 'boolean': /YES|NO/, }; Prism.languages.px = Prism.languages.pcaxis; /***/ }), /***/ 6678: /***/ (function() { Prism.languages.peoplecode = { 'comment': RegExp([ // C-style multiline comments /\/\*[\s\S]*?\*\//.source, // REM comments /\bREM[^;]*;/.source, // Nested <* *> comments /<\*(?:[^<*]|\*(?!>)|<(?!\*)|<\*(?:(?!\*>)[\s\S])*\*>)*\*>/.source, // /+ +/ comments /\/\+[\s\S]*?\+\//.source, ].join("|")), 'string': { pattern: /'(?:''|[^'\r\n])*'(?!')|"(?:""|[^"\r\n])*"(?!")/, greedy: true }, 'variable': /%\w+/, 'function-definition': { pattern: /((?:^|[^\w-])(?:function|method)\s+)\w+/i, lookbehind: true, alias: 'function' }, 'class-name': { pattern: /((?:^|[^-\w])(?:as|catch|class|component|create|extends|global|implements|instance|local|of|property|returns)\s+)\w+(?::\w+)*/i, lookbehind: true, inside: { 'punctuation': /:/ } }, 'keyword': /\b(?:abstract|alias|as|catch|class|component|constant|create|declare|else|end-(?:class|evaluate|for|function|get|if|method|set|try|while)|evaluate|extends|for|function|get|global|implements|import|instance|if|library|local|method|null|of|out|peopleCode|private|program|property|protected|readonly|ref|repeat|returns?|set|step|then|throw|to|try|until|value|when(?:-other)?|while)\b/i, 'operator-keyword': { pattern: /\b(?:and|not|or)\b/i, alias: 'operator' }, 'function': /[_a-z]\w*(?=\s*\()/i, 'boolean': /\b(?:false|true)\b/i, 'number': /\b\d+(?:\.\d+)?\b/, 'operator': /<>|[<>]=?|!=|\*\*|[-+*/|=@]/, 'punctuation': /[:.;,()[\]]/ }; Prism.languages.pcode = Prism.languages.peoplecode; /***/ }), /***/ 5637: /***/ (function() { Prism.languages.perl = { 'comment': [ { // POD pattern: /(^\s*)=\w[\s\S]*?=cut.*/m, lookbehind: true }, { pattern: /(^|[^\\$])#.*/, lookbehind: true } ], // TODO Could be nice to handle Heredoc too. 'string': [ // q/.../ { pattern: /\b(?:q|qq|qx|qw)\s*([^a-zA-Z0-9\s{(\[<])(?:(?!\1)[^\\]|\\[\s\S])*\1/, greedy: true }, // q a...a { pattern: /\b(?:q|qq|qx|qw)\s+([a-zA-Z0-9])(?:(?!\1)[^\\]|\\[\s\S])*\1/, greedy: true }, // q(...) { pattern: /\b(?:q|qq|qx|qw)\s*\((?:[^()\\]|\\[\s\S])*\)/, greedy: true }, // q{...} { pattern: /\b(?:q|qq|qx|qw)\s*\{(?:[^{}\\]|\\[\s\S])*\}/, greedy: true }, // q[...] { pattern: /\b(?:q|qq|qx|qw)\s*\[(?:[^[\]\\]|\\[\s\S])*\]/, greedy: true }, // q<...> { pattern: /\b(?:q|qq|qx|qw)\s*<(?:[^<>\\]|\\[\s\S])*>/, greedy: true }, // "...", `...` { pattern: /("|`)(?:(?!\1)[^\\]|\\[\s\S])*\1/, greedy: true }, // '...' // FIXME Multi-line single-quoted strings are not supported as they would break variables containing ' { pattern: /'(?:[^'\\\r\n]|\\.)*'/, greedy: true } ], 'regex': [ // m/.../ { pattern: /\b(?:m|qr)\s*([^a-zA-Z0-9\s{(\[<])(?:(?!\1)[^\\]|\\[\s\S])*\1[msixpodualngc]*/, greedy: true }, // m a...a { pattern: /\b(?:m|qr)\s+([a-zA-Z0-9])(?:(?!\1)[^\\]|\\[\s\S])*\1[msixpodualngc]*/, greedy: true }, // m(...) { pattern: /\b(?:m|qr)\s*\((?:[^()\\]|\\[\s\S])*\)[msixpodualngc]*/, greedy: true }, // m{...} { pattern: /\b(?:m|qr)\s*\{(?:[^{}\\]|\\[\s\S])*\}[msixpodualngc]*/, greedy: true }, // m[...] { pattern: /\b(?:m|qr)\s*\[(?:[^[\]\\]|\\[\s\S])*\][msixpodualngc]*/, greedy: true }, // m<...> { pattern: /\b(?:m|qr)\s*<(?:[^<>\\]|\\[\s\S])*>[msixpodualngc]*/, greedy: true }, // The lookbehinds prevent -s from breaking // FIXME We don't handle change of separator like s(...)[...] // s/.../.../ { pattern: /(^|[^-]\b)(?:s|tr|y)\s*([^a-zA-Z0-9\s{(\[<])(?:(?!\2)[^\\]|\\[\s\S])*\2(?:(?!\2)[^\\]|\\[\s\S])*\2[msixpodualngcer]*/, lookbehind: true, greedy: true }, // s a...a...a { pattern: /(^|[^-]\b)(?:s|tr|y)\s+([a-zA-Z0-9])(?:(?!\2)[^\\]|\\[\s\S])*\2(?:(?!\2)[^\\]|\\[\s\S])*\2[msixpodualngcer]*/, lookbehind: true, greedy: true }, // s(...)(...) { pattern: /(^|[^-]\b)(?:s|tr|y)\s*\((?:[^()\\]|\\[\s\S])*\)\s*\((?:[^()\\]|\\[\s\S])*\)[msixpodualngcer]*/, lookbehind: true, greedy: true }, // s{...}{...} { pattern: /(^|[^-]\b)(?:s|tr|y)\s*\{(?:[^{}\\]|\\[\s\S])*\}\s*\{(?:[^{}\\]|\\[\s\S])*\}[msixpodualngcer]*/, lookbehind: true, greedy: true }, // s[...][...] { pattern: /(^|[^-]\b)(?:s|tr|y)\s*\[(?:[^[\]\\]|\\[\s\S])*\]\s*\[(?:[^[\]\\]|\\[\s\S])*\][msixpodualngcer]*/, lookbehind: true, greedy: true }, // s<...><...> { pattern: /(^|[^-]\b)(?:s|tr|y)\s*<(?:[^<>\\]|\\[\s\S])*>\s*<(?:[^<>\\]|\\[\s\S])*>[msixpodualngcer]*/, lookbehind: true, greedy: true }, // /.../ // The look-ahead tries to prevent two divisions on // the same line from being highlighted as regex. // This does not support multi-line regex. { pattern: /\/(?:[^\/\\\r\n]|\\.)*\/[msixpodualngc]*(?=\s*(?:$|[\r\n,.;})&|\-+*~<>!?^]|(?:lt|gt|le|ge|eq|ne|cmp|not|and|or|xor|x)\b))/, greedy: true } ], // FIXME Not sure about the handling of ::, ', and # 'variable': [ // ${^POSTMATCH} /[&*$@%]\{\^[A-Z]+\}/, // $^V /[&*$@%]\^[A-Z_]/, // ${...} /[&*$@%]#?(?=\{)/, // $foo /[&*$@%]#?(?:(?:::)*'?(?!\d)[\w$]+)+(?:::)*/i, // $1 /[&*$@%]\d+/, // $_, @_, %! // The negative lookahead prevents from breaking the %= operator /(?!%=)[$@%][!"#$%&'()*+,\-.\/:;<=>?@[\\\]^_`{|}~]/ ], 'filehandle': { // <>, , _ pattern: /<(?![<=])\S*>|\b_\b/, alias: 'symbol' }, 'vstring': { // v1.2, 1.2.3 pattern: /v\d+(?:\.\d+)*|\d+(?:\.\d+){2,}/, alias: 'string' }, 'function': { pattern: /sub [a-z0-9_]+/i, inside: { keyword: /sub/ } }, 'keyword': /\b(?:any|break|continue|default|delete|die|do|else|elsif|eval|for|foreach|given|goto|if|last|local|my|next|our|package|print|redo|require|return|say|state|sub|switch|undef|unless|until|use|when|while)\b/, 'number': /\b(?:0x[\dA-Fa-f](?:_?[\dA-Fa-f])*|0b[01](?:_?[01])*|(?:(?:\d(?:_?\d)*)?\.)?\d(?:_?\d)*(?:[Ee][+-]?\d+)?)\b/, 'operator': /-[rwxoRWXOezsfdlpSbctugkTBMAC]\b|\+[+=]?|-[-=>]?|\*\*?=?|\/\/?=?|=[=~>]?|~[~=]?|\|\|?=?|&&?=?|<(?:=>?|<=?)?|>>?=?|![~=]?|[%^]=?|\.(?:=|\.\.?)?|[\\?]|\bx(?:=|\b)|\b(?:lt|gt|le|ge|eq|ne|cmp|not|and|or|xor)\b/, 'punctuation': /[{}[\];(),:]/ }; /***/ }), /***/ 4739: /***/ (function() { Prism.languages.insertBefore('php', 'variable', { 'this': /\$this\b/, 'global': /\$(?:_(?:SERVER|GET|POST|FILES|REQUEST|SESSION|ENV|COOKIE)|GLOBALS|HTTP_RAW_POST_DATA|argc|argv|php_errormsg|http_response_header)\b/, 'scope': { pattern: /\b[\w\\]+::/, inside: { keyword: /static|self|parent/, punctuation: /::|\\/ } } }); /***/ }), /***/ 4999: /***/ (function() { /** * Original by Aaron Harun: http://aahacreative.com/2012/07/31/php-syntax-highlighting-prism/ * Modified by Miles Johnson: http://milesj.me * Rewritten by Tom Pavelec * * Supports PHP 5.3 - 8.0 */ (function (Prism) { var comment = /\/\*[\s\S]*?\*\/|\/\/.*|#(?!\[).*/; var constant = [ { pattern: /\b(?:false|true)\b/i, alias: 'boolean' }, /\b[A-Z_][A-Z0-9_]*\b(?!\s*\()/, /\b(?:null)\b/i, ]; var number = /\b0b[01]+\b|\b0x[\da-f]+\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+)(?:e[+-]?\d+)?/i; var operator = /|\?\?=?|\.{3}|\??->|[!=]=?=?|::|\*\*=?|--|\+\+|&&|\|\||<<|>>|[?~]|[/^|%*&<>.+-]=?/; var punctuation = /[{}\[\](),:;]/; Prism.languages.php = { 'delimiter': { pattern: /\?>$|^<\?(?:php(?=\s)|=)?/i, alias: 'important' }, 'comment': comment, 'variable': /\$+(?:\w+\b|(?={))/i, 'package': { pattern: /(namespace\s+|use\s+(?:function\s+)?)(?:\\?\b[a-z_]\w*)+\b(?!\\)/i, lookbehind: true, inside: { 'punctuation': /\\/ } }, 'keyword': [ { pattern: /(\(\s*)\b(?:bool|boolean|int|integer|float|string|object|array)\b(?=\s*\))/i, alias: 'type-casting', greedy: true, lookbehind: true }, { pattern: /([(,?]\s*)\b(?:bool|int|float|string|object|array(?!\s*\()|mixed|self|static|callable|iterable|(?:null|false)(?=\s*\|))\b(?=\s*\$)/i, alias: 'type-hint', greedy: true, lookbehind: true }, { pattern: /([(,?]\s*[a-z0-9_|]\|\s*)(?:null|false)\b(?=\s*\$)/i, alias: 'type-hint', greedy: true, lookbehind: true }, { pattern: /(\)\s*:\s*(?:\?\s*)?)\b(?:bool|int|float|string|object|void|array(?!\s*\()|mixed|self|static|callable|iterable|(?:null|false)(?=\s*\|))\b/i, alias: 'return-type', greedy: true, lookbehind: true }, { pattern: /(\)\s*:\s*(?:\?\s*)?[a-z0-9_|]\|\s*)(?:null|false)\b/i, alias: 'return-type', greedy: true, lookbehind: true }, { pattern: /\b(?:bool|int|float|string|object|void|array(?!\s*\()|mixed|iterable|(?:null|false)(?=\s*\|))\b/i, alias: 'type-declaration', greedy: true }, { pattern: /(\|\s*)(?:null|false)\b/i, alias: 'type-declaration', greedy: true, lookbehind: true }, { pattern: /\b(?:parent|self|static)(?=\s*::)/i, alias: 'static-context', greedy: true }, /\b(?:__halt_compiler|abstract|and|array|as|break|callable|case|catch|class|clone|const|continue|declare|default|die|do|echo|else|elseif|empty|enddeclare|endfor|endforeach|endif|endswitch|endwhile|eval|exit|extends|final|finally|for|foreach|function|global|goto|if|implements|include|include_once|instanceof|insteadof|interface|isset|list|namespace|match|new|or|parent|print|private|protected|public|require|require_once|return|self|static|switch|throw|trait|try|unset|use|var|while|xor|yield)\b/i ], 'argument-name': /\b[a-z_]\w*(?=\s*:(?!:))/i, 'class-name': [ { pattern: /(\b(?:class|interface|extends|implements|trait|instanceof|new(?!\s+self|\s+static))\s+|\bcatch\s*\()\b[a-z_]\w*(?!\\)\b/i, greedy: true, lookbehind: true }, { pattern: /(\|\s*)\b[a-z_]\w*(?!\\)\b/i, greedy: true, lookbehind: true }, { pattern: /\b[a-z_]\w*(?!\\)\b(?=\s*\|)/i, greedy: true }, { pattern: /(\|\s*)(?:\\?\b[a-z_]\w*)+\b/i, alias: 'class-name-fully-qualified', greedy: true, lookbehind: true, inside: { 'punctuation': /\\/ } }, { pattern: /(?:\\?\b[a-z_]\w*)+\b(?=\s*\|)/i, alias: 'class-name-fully-qualified', greedy: true, inside: { 'punctuation': /\\/ } }, { pattern: /(\b(?:extends|implements|instanceof|new(?!\s+self\b|\s+static\b))\s+|\bcatch\s*\()(?:\\?\b[a-z_]\w*)+\b(?!\\)/i, alias: 'class-name-fully-qualified', greedy: true, lookbehind: true, inside: { 'punctuation': /\\/ } }, { pattern: /\b[a-z_]\w*(?=\s*\$)/i, alias: 'type-declaration', greedy: true }, { pattern: /(?:\\?\b[a-z_]\w*)+(?=\s*\$)/i, alias: ['class-name-fully-qualified', 'type-declaration'], greedy: true, inside: { 'punctuation': /\\/ } }, { pattern: /\b[a-z_]\w*(?=\s*::)/i, alias: 'static-context', greedy: true }, { pattern: /(?:\\?\b[a-z_]\w*)+(?=\s*::)/i, alias: ['class-name-fully-qualified', 'static-context'], greedy: true, inside: { 'punctuation': /\\/ } }, { pattern: /([(,?]\s*)[a-z_]\w*(?=\s*\$)/i, alias: 'type-hint', greedy: true, lookbehind: true }, { pattern: /([(,?]\s*)(?:\\?\b[a-z_]\w*)+(?=\s*\$)/i, alias: ['class-name-fully-qualified', 'type-hint'], greedy: true, lookbehind: true, inside: { 'punctuation': /\\/ } }, { pattern: /(\)\s*:\s*(?:\?\s*)?)\b[a-z_]\w*(?!\\)\b/i, alias: 'return-type', greedy: true, lookbehind: true }, { pattern: /(\)\s*:\s*(?:\?\s*)?)(?:\\?\b[a-z_]\w*)+\b(?!\\)/i, alias: ['class-name-fully-qualified', 'return-type'], greedy: true, lookbehind: true, inside: { 'punctuation': /\\/ } } ], 'constant': constant, 'function': /\w+\s*(?=\()/, 'property': { pattern: /(->)[\w]+/, lookbehind: true }, 'number': number, 'operator': operator, 'punctuation': punctuation }; var string_interpolation = { pattern: /{\$(?:{(?:{[^{}]+}|[^{}]+)}|[^{}])+}|(^|[^\\{])\$+(?:\w+(?:\[[^\r\n\[\]]+\]|->\w+)*)/, lookbehind: true, inside: Prism.languages.php }; var string = [ { pattern: /<<<'([^']+)'[\r\n](?:.*[\r\n])*?\1;/, alias: 'nowdoc-string', greedy: true, inside: { 'delimiter': { pattern: /^<<<'[^']+'|[a-z_]\w*;$/i, alias: 'symbol', inside: { 'punctuation': /^<<<'?|[';]$/ } } } }, { pattern: /<<<(?:"([^"]+)"[\r\n](?:.*[\r\n])*?\1;|([a-z_]\w*)[\r\n](?:.*[\r\n])*?\2;)/i, alias: 'heredoc-string', greedy: true, inside: { 'delimiter': { pattern: /^<<<(?:"[^"]+"|[a-z_]\w*)|[a-z_]\w*;$/i, alias: 'symbol', inside: { 'punctuation': /^<<<"?|[";]$/ } }, 'interpolation': string_interpolation // See below } }, { pattern: /`(?:\\[\s\S]|[^\\`])*`/, alias: 'backtick-quoted-string', greedy: true }, { pattern: /'(?:\\[\s\S]|[^\\'])*'/, alias: 'single-quoted-string', greedy: true }, { pattern: /"(?:\\[\s\S]|[^\\"])*"/, alias: 'double-quoted-string', greedy: true, inside: { 'interpolation': string_interpolation // See below } } ]; Prism.languages.insertBefore('php', 'variable', { 'string': string, }); Prism.languages.insertBefore('php', 'variable', { 'attribute': { pattern: /#\[(?:[^"'\/#]|\/(?![*/])|\/\/.*$|#(?!\[).*$|\/\*(?:[^*]|\*(?!\/))*\*\/|"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*')+\](?=\s*[a-z$#])/mi, greedy: true, inside: { 'attribute-content': { pattern: /^(#\[)[\s\S]+(?=]$)/, lookbehind: true, // inside can appear subset of php inside: { 'comment': comment, 'string': string, 'attribute-class-name': [ { pattern: /([^:]|^)\b[a-z_]\w*(?!\\)\b/i, alias: 'class-name', greedy: true, lookbehind: true }, { pattern: /([^:]|^)(?:\\?\b[a-z_]\w*)+/i, alias: [ 'class-name', 'class-name-fully-qualified' ], greedy: true, lookbehind: true, inside: { 'punctuation': /\\/ } } ], 'constant': constant, 'number': number, 'operator': operator, 'punctuation': punctuation } }, 'delimiter': { pattern: /^#\[|]$/, alias: 'punctuation' } } }, }); Prism.hooks.add('before-tokenize', function(env) { if (!/<\?/.test(env.code)) { return; } var phpPattern = /<\?(?:[^"'/#]|\/(?![*/])|("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|(?:\/\/|#(?!\[))(?:[^?\n\r]|\?(?!>))*(?=$|\?>|[\r\n])|#\[|\/\*(?:[^*]|\*(?!\/))*(?:\*\/|$))*?(?:\?>|$)/ig; Prism.languages['markup-templating'].buildPlaceholders(env, 'php', phpPattern); }); Prism.hooks.add('after-tokenize', function(env) { Prism.languages['markup-templating'].tokenizePlaceholders(env, 'php'); }); }(Prism)); /***/ }), /***/ 9484: /***/ (function() { (function (Prism) { var typeExpression = /(?:\b[a-zA-Z]\w*|[|\\[\]])+/.source; Prism.languages.phpdoc = Prism.languages.extend('javadoclike', { 'parameter': { pattern: RegExp('(@(?:global|param|property(?:-read|-write)?|var)\\s+(?:' + typeExpression + '\\s+)?)\\$\\w+'), lookbehind: true } }); Prism.languages.insertBefore('phpdoc', 'keyword', { 'class-name': [ { pattern: RegExp('(@(?:global|package|param|property(?:-read|-write)?|return|subpackage|throws|var)\\s+)' + typeExpression), lookbehind: true, inside: { 'keyword': /\b(?:callback|resource|boolean|integer|double|object|string|array|false|float|mixed|bool|null|self|true|void|int)\b/, 'punctuation': /[|\\[\]()]/ } } ], }); Prism.languages.javadoclike.addSupport('php', Prism.languages.phpdoc); }(Prism)); /***/ }), /***/ 5212: /***/ (function() { (function (Prism) { var plsql = Prism.languages.plsql = Prism.languages.extend('sql', { 'comment': [ /\/\*[\s\S]*?\*\//, /--.*/ ] }); var keyword = plsql['keyword']; if (!Array.isArray(keyword)) { keyword = plsql['keyword'] = [keyword]; } keyword.unshift( /\b(?:ACCESS|AGENT|AGGREGATE|ARRAY|ARROW|AT|ATTRIBUTE|AUDIT|AUTHID|BFILE_BASE|BLOB_BASE|BLOCK|BODY|BOTH|BOUND|BYTE|CALLING|CHAR_BASE|CHARSET(?:FORM|ID)|CLOB_BASE|COLAUTH|COLLECT|CLUSTERS?|COMPILED|COMPRESS|CONSTANT|CONSTRUCTOR|CONTEXT|CRASH|CUSTOMDATUM|DANGLING|DATE_BASE|DEFINE|DETERMINISTIC|DURATION|ELEMENT|EMPTY|EXCEPTIONS?|EXCLUSIVE|EXTERNAL|FINAL|FORALL|FORM|FOUND|GENERAL|HEAP|HIDDEN|IDENTIFIED|IMMEDIATE|INCLUDING|INCREMENT|INDICATOR|INDEXES|INDICES|INFINITE|INITIAL|ISOPEN|INSTANTIABLE|INTERFACE|INVALIDATE|JAVA|LARGE|LEADING|LENGTH|LIBRARY|LIKE[24C]|LIMITED|LONG|LOOP|MAP|MAXEXTENTS|MAXLEN|MEMBER|MINUS|MLSLABEL|MULTISET|NAME|NAN|NATIVE|NEW|NOAUDIT|NOCOMPRESS|NOCOPY|NOTFOUND|NOWAIT|NUMBER(?:_BASE)?|OBJECT|OCI(?:COLL|DATE|DATETIME|DURATION|INTERVAL|LOBLOCATOR|NUMBER|RAW|REF|REFCURSOR|ROWID|STRING|TYPE)|OFFLINE|ONLINE|ONLY|OPAQUE|OPERATOR|ORACLE|ORADATA|ORGANIZATION|ORL(?:ANY|VARY)|OTHERS|OVERLAPS|OVERRIDING|PACKAGE|PARALLEL_ENABLE|PARAMETERS?|PASCAL|PCTFREE|PIPE(?:LINED)?|PRAGMA|PRIOR|PRIVATE|RAISE|RANGE|RAW|RECORD|REF|REFERENCE|REM|REMAINDER|RESULT|RESOURCE|RETURNING|REVERSE|ROW(?:ID|NUM|TYPE)|SAMPLE|SB[124]|SEGMENT|SELF|SEPARATE|SEQUENCE|SHORT|SIZE(?:_T)?|SPARSE|SQL(?:CODE|DATA|NAME|STATE)|STANDARD|STATIC|STDDEV|STORED|STRING|STRUCT|STYLE|SUBMULTISET|SUBPARTITION|SUBSTITUTABLE|SUBTYPE|SUCCESSFUL|SYNONYM|SYSDATE|TABAUTH|TDO|THE|TIMEZONE_(?:ABBR|HOUR|MINUTE|REGION)|TRAILING|TRANSAC(?:TIONAL)?|TRUSTED|UB[124]|UID|UNDER|UNTRUSTED|VALIDATE|VALIST|VARCHAR2|VARIABLE|VARIANCE|VARRAY|VIEWS|VOID|WHENEVER|WRAPPED|ZONE)\b/i ); var operator = plsql['operator']; if (!Array.isArray(operator)) { operator = plsql['operator'] = [operator]; } operator.unshift( /:=/ ); }(Prism)); /***/ }), /***/ 4509: /***/ (function() { // https://docs.microsoft.com/en-us/powerquery-m/power-query-m-language-specification Prism.languages.powerquery = { 'comment': { pattern: /(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:\/\/).*)/, lookbehind: true }, 'quoted-identifier': { pattern: /#"(?:[^"\r\n]|"")*"(?!")/, greedy: true, alias: 'variable' }, 'string': { pattern: /"(?:[^"\r\n]|"")*"(?!")/, greedy: true }, 'constant': [ /\bDay\.(?:Sunday|Monday|Tuesday|Wednesday|Thursday|Friday|Saturday)\b/, /\bTraceLevel\.(?:Critical|Error|Information|Verbose|Warning)\b/, /\bOccurrence\.(?:First|Last|All)\b/, /\bOrder\.(?:Ascending|Descending)\b/, /\bRoundingMode\.(?:AwayFromZero|Down|ToEven|TowardZero|Up)\b/, /\bMissingField\.(?:Error|Ignore|UseNull)\b/, /\bQuoteStyle\.(?:Csv|None)\b/, /\bJoinKind\.(?:Inner|LeftOuter|RightOuter|FullOuter|LeftAnti|RightAnti)\b/, /\bGroupKind\.(?:Global|Local)\b/, /\bExtraValues\.(?:List|Ignore|Error)\b/, /\bJoinAlgorithm\.(?:Dynamic|PairwiseHash|SortMerge|LeftHash|RightHash|LeftIndex|RightIndex)\b/, /\bJoinSide\.(?:Left|Right)\b/, /\bPrecision\.(?:Double|Decimal)\b/, /\bRelativePosition\.From(?:End|Start)\b/, /\bTextEncoding\.(?:Ascii|BigEndianUnicode|Unicode|Utf8|Utf16|Windows)\b/, /\b(?:Any|Binary|Date|DateTime|DateTimeZone|Duration|Int8|Int16|Int32|Int64|Function|List|Logical|None|Number|Record|Table|Text|Time)\.Type\b/, /\bnull\b/ ], 'boolean': /\b(?:true|false)\b/, 'keyword': /\b(?:and|as|each|else|error|if|in|is|let|meta|not|nullable|optional|or|otherwise|section|shared|then|try|type)\b|#(?:binary|date|datetime|datetimezone|duration|infinity|nan|sections|shared|table|time)\b/, 'function': { pattern: /(^|[^#\w.])(?!\d)[\w.]+(?=\s*\()/, lookbehind: true }, 'data-type': { pattern: /\b(?:any|anynonnull|binary|date|datetime|datetimezone|duration|function|list|logical|none|number|record|table|text|time|type)\b/, alias: 'variable' }, 'number': { pattern: /\b0x[\da-f]+\b|(?:[+-]?(?:\b\d+\.)?\b\d+|[+-]\.\d+|(^|[^.])\B\.\d+)(?:e[+-]?\d+)?\b/i, lookbehind: true }, 'operator': /[-+*\/&?@^]|<(?:=>?|>)?|>=?|=>?|\.\.\.?/, 'punctuation': /[,;\[\](){}]/ }; Prism.languages.pq = Prism.languages['powerquery']; Prism.languages.mscript = Prism.languages['powerquery'] /***/ }), /***/ 3133: /***/ (function() { (function (Prism) { var powershell = Prism.languages.powershell = { 'comment': [ { pattern: /(^|[^`])<#[\s\S]*?#>/, lookbehind: true }, { pattern: /(^|[^`])#.*/, lookbehind: true } ], 'string': [ { pattern: /"(?:`[\s\S]|[^`"])*"/, greedy: true, inside: { 'function': { // Allow for one level of nesting pattern: /(^|[^`])\$\((?:\$\([^\r\n()]*\)|(?!\$\()[^\r\n)])*\)/, lookbehind: true, // Populated at end of file inside: {} } } }, { pattern: /'(?:[^']|'')*'/, greedy: true } ], // Matches name spaces as well as casts, attribute decorators. Force starting with letter to avoid matching array indices // Supports two levels of nested brackets (e.g. `[OutputType([System.Collections.Generic.List[int]])]`) 'namespace': /\[[a-z](?:\[(?:\[[^\]]*]|[^\[\]])*]|[^\[\]])*]/i, 'boolean': /\$(?:true|false)\b/i, 'variable': /\$\w+\b/, // Cmdlets and aliases. Aliases should come last, otherwise "write" gets preferred over "write-host" for example // Get-Command | ?{ $_.ModuleName -match "Microsoft.PowerShell.(Util|Core|Management)" } // Get-Alias | ?{ $_.ReferencedCommand.Module.Name -match "Microsoft.PowerShell.(Util|Core|Management)" } 'function': [ /\b(?:Add|Approve|Assert|Backup|Block|Checkpoint|Clear|Close|Compare|Complete|Compress|Confirm|Connect|Convert|ConvertFrom|ConvertTo|Copy|Debug|Deny|Disable|Disconnect|Dismount|Edit|Enable|Enter|Exit|Expand|Export|Find|ForEach|Format|Get|Grant|Group|Hide|Import|Initialize|Install|Invoke|Join|Limit|Lock|Measure|Merge|Move|New|Open|Optimize|Out|Ping|Pop|Protect|Publish|Push|Read|Receive|Redo|Register|Remove|Rename|Repair|Request|Reset|Resize|Resolve|Restart|Restore|Resume|Revoke|Save|Search|Select|Send|Set|Show|Skip|Sort|Split|Start|Step|Stop|Submit|Suspend|Switch|Sync|Tee|Test|Trace|Unblock|Undo|Uninstall|Unlock|Unprotect|Unpublish|Unregister|Update|Use|Wait|Watch|Where|Write)-[a-z]+\b/i, /\b(?:ac|cat|chdir|clc|cli|clp|clv|compare|copy|cp|cpi|cpp|cvpa|dbp|del|diff|dir|ebp|echo|epal|epcsv|epsn|erase|fc|fl|ft|fw|gal|gbp|gc|gci|gcs|gdr|gi|gl|gm|gp|gps|group|gsv|gu|gv|gwmi|iex|ii|ipal|ipcsv|ipsn|irm|iwmi|iwr|kill|lp|ls|measure|mi|mount|move|mp|mv|nal|ndr|ni|nv|ogv|popd|ps|pushd|pwd|rbp|rd|rdr|ren|ri|rm|rmdir|rni|rnp|rp|rv|rvpa|rwmi|sal|saps|sasv|sbp|sc|select|set|shcm|si|sl|sleep|sls|sort|sp|spps|spsv|start|sv|swmi|tee|trcm|type|write)\b/i ], // per http://technet.microsoft.com/en-us/library/hh847744.aspx 'keyword': /\b(?:Begin|Break|Catch|Class|Continue|Data|Define|Do|DynamicParam|Else|ElseIf|End|Exit|Filter|Finally|For|ForEach|From|Function|If|InlineScript|Parallel|Param|Process|Return|Sequence|Switch|Throw|Trap|Try|Until|Using|Var|While|Workflow)\b/i, 'operator': { pattern: /(\W?)(?:!|-(?:eq|ne|gt|ge|lt|le|sh[lr]|not|b?(?:and|x?or)|(?:Not)?(?:Like|Match|Contains|In)|Replace|Join|is(?:Not)?|as)\b|-[-=]?|\+[+=]?|[*\/%]=?)/i, lookbehind: true }, 'punctuation': /[|{}[\];(),.]/ }; // Variable interpolation inside strings, and nested expressions var stringInside = powershell.string[0].inside; stringInside.boolean = powershell.boolean; stringInside.variable = powershell.variable; stringInside.function.inside = powershell; }(Prism)); /***/ }), /***/ 755: /***/ (function() { Prism.languages.processing = Prism.languages.extend('clike', { 'keyword': /\b(?:break|catch|case|class|continue|default|else|extends|final|for|if|implements|import|new|null|private|public|return|static|super|switch|this|try|void|while)\b/, 'operator': /<[<=]?|>[>=]?|&&?|\|\|?|[%?]|[!=+\-*\/]=?/ }); Prism.languages.insertBefore('processing', 'number', { // Special case: XML is a type 'constant': /\b(?!XML\b)[A-Z][A-Z\d_]+\b/, 'type': { pattern: /\b(?:boolean|byte|char|color|double|float|int|[A-Z]\w*)\b/, alias: 'variable' } }); // Spaces are allowed between function name and parenthesis Prism.languages.processing['function'] = /\w+(?=\s*\()/; // Class-names is not styled by default Prism.languages.processing['class-name'].alias = 'variable'; /***/ }), /***/ 2685: /***/ (function() { Prism.languages.prolog = { // Syntax depends on the implementation 'comment': [ /%.+/, /\/\*[\s\S]*?\*\// ], // Depending on the implementation, strings may allow escaped newlines and quote-escape 'string': { pattern: /(["'])(?:\1\1|\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/, greedy: true }, 'builtin': /\b(?:fx|fy|xf[xy]?|yfx?)\b/, 'variable': /\b[A-Z_]\w*/, // FIXME: Should we list all null-ary predicates (not followed by a parenthesis) like halt, trace, etc.? 'function': /\b[a-z]\w*(?:(?=\()|\/\d+)/, 'number': /\b\d+(?:\.\d*)?/, // Custom operators are allowed 'operator': /[:\\=><\-?*@\/;+^|!$.]+|\b(?:is|mod|not|xor)\b/, 'punctuation': /[(){}\[\],]/ }; /***/ }), /***/ 8447: /***/ (function() { // Thanks to: https://github.com/prometheus-community/monaco-promql/blob/master/src/promql/promql.ts // As well as: https://kausal.co/blog/slate-prism-add-new-syntax-promql/ (function (Prism) { // PromQL Aggregation Operators // (https://prometheus.io/docs/prometheus/latest/querying/operators/#aggregation-operators) var aggregations = [ 'sum', 'min', 'max', 'avg', 'group', 'stddev', 'stdvar', 'count', 'count_values', 'bottomk', 'topk', 'quantile' ]; // PromQL vector matching + the by and without clauses // (https://prometheus.io/docs/prometheus/latest/querying/operators/#vector-matching) var vectorMatching = [ 'on', 'ignoring', 'group_right', 'group_left', 'by', 'without', ]; // PromQL offset modifier // (https://prometheus.io/docs/prometheus/latest/querying/basics/#offset-modifier) var offsetModifier = ['offset']; var keywords = aggregations.concat(vectorMatching, offsetModifier); Prism.languages.promql = { 'comment': { pattern: /(^[ \t]*)#.*/m, lookbehind: true }, 'vector-match': { // Match the comma-separated label lists inside vector matching: pattern: new RegExp('((?:' + vectorMatching.join('|') + ')\\s*)\\([^)]*\\)'), lookbehind: true, inside: { 'label-key': { pattern: /\b[^,]*\b/, alias: 'attr-name', }, 'punctuation': /[(),]/ }, }, 'context-labels': { pattern: /\{[^{}]*\}/, inside: { 'label-key': { pattern: /\b[a-z_]\w*(?=\s*(?:=~?|![=~]))/, alias: 'attr-name', }, 'label-value': { pattern: /(["'`])(?:\\[\s\S]|(?!\1)[^\\])*\1/, greedy: true, alias: 'attr-value', }, 'punctuation': /\{|\}|=~?|![=~]|,/, }, }, 'context-range': [ { pattern: /\[[\w\s:]+\]/, // [1m] inside: { 'punctuation': /\[|\]|:/, 'range-duration': { pattern: /\b(?:\d+(?:[smhdwy]|ms))+\b/i, alias: 'number', }, }, }, { pattern: /(\boffset\s+)\w+/, // offset 1m lookbehind: true, inside: { 'range-duration': { pattern: /\b(?:\d+(?:[smhdwy]|ms))+\b/i, alias: 'number', }, }, }, ], 'keyword': new RegExp('\\b(?:' + keywords.join('|') + ')\\b', 'i'), 'function': /\b[a-zA-Z_]\w*(?=\s*\()/i, 'number': /[-+]?(?:(?:\b\d+(?:\.\d+)?|\B\.\d+)(?:e[-+]?\d+)?\b|\b(?:0x[0-9a-f]+|nan|inf)\b)/i, 'operator': /[\^*/%+-]|==|!=|<=|<|>=|>|\b(?:and|unless|or)\b/i, 'punctuation': /[{};()`,.[\]]/, }; })(Prism); /***/ }), /***/ 8103: /***/ (function() { Prism.languages.properties = { 'comment': /^[ \t]*[#!].*$/m, 'attr-value': { pattern: /(^[ \t]*(?:\\(?:\r\n|[\s\S])|[^\\\s:=])+?(?: *[=:] *(?! )| ))(?:\\(?:\r\n|[\s\S])|[^\\\r\n])+/m, lookbehind: true }, 'attr-name': /^[ \t]*(?:\\(?:\r\n|[\s\S])|[^\\\s:=])+?(?= *[=:] *| )/m, 'punctuation': /[=:]/ }; /***/ }), /***/ 3306: /***/ (function() { (function (Prism) { var builtinTypes = /\b(?:double|float|[su]?int(?:32|64)|s?fixed(?:32|64)|bool|string|bytes)\b/; Prism.languages.protobuf = Prism.languages.extend('clike', { 'class-name': [ { pattern: /(\b(?:enum|extend|message|service)\s+)[A-Za-z_]\w*(?=\s*\{)/, lookbehind: true }, { pattern: /(\b(?:rpc\s+\w+|returns)\s*\(\s*(?:stream\s+)?)\.?[A-Za-z_]\w*(?:\.[A-Za-z_]\w*)*(?=\s*\))/, lookbehind: true } ], 'keyword': /\b(?:enum|extend|extensions|import|message|oneof|option|optional|package|public|repeated|required|reserved|returns|rpc(?=\s+\w)|service|stream|syntax|to)\b(?!\s*=\s*\d)/, 'function': /[a-z_]\w*(?=\s*\()/i }); Prism.languages.insertBefore('protobuf', 'operator', { 'map': { pattern: /\bmap<\s*[\w.]+\s*,\s*[\w.]+\s*>(?=\s+[a-z_]\w*\s*[=;])/i, alias: 'class-name', inside: { 'punctuation': /[<>.,]/, 'builtin': builtinTypes } }, 'builtin': builtinTypes, 'positional-class-name': { pattern: /(?:\b|\B\.)[a-z_]\w*(?:\.[a-z_]\w*)*(?=\s+[a-z_]\w*\s*[=;])/i, alias: 'class-name', inside: { 'punctuation': /\./ } }, 'annotation': { pattern: /(\[\s*)[a-z_]\w*(?=\s*=)/i, lookbehind: true } }); }(Prism)); /***/ }), /***/ 3413: /***/ (function() { (function(Prism) { // TODO: // - Add CSS highlighting inside