summaryrefslogtreecommitdiffstats
path: root/public/prism/prism-unrealscript.min.js
blob: 35d172e891da357cbce57e9153985d783f4a4897 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
(Prism.languages.unrealscript = {
  comment: /\/\/.*|\/\*[\s\S]*?\*\//,
  string: {
    pattern: /(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,
    greedy: !0,
  },
  category: {
    pattern: /(\b(?:(?:autoexpand|hide|show)categories|var)\s*\()[^()]+(?=\))/,
    lookbehind: !0,
    greedy: !0,
    alias: 'property',
  },
  metadata: {
    pattern: /(\w\s*)<\s*\w+\s*=[^<>|=\r\n]+(?:\|\s*\w+\s*=[^<>|=\r\n]+)*>/,
    lookbehind: !0,
    greedy: !0,
    inside: { property: /\b\w+(?=\s*=)/, operator: /=/, punctuation: /[<>|]/ },
  },
  macro: { pattern: /`\w+/, alias: 'property' },
  'class-name': {
    pattern:
      /(\b(?:class|enum|extends|interface|state(?:\(\))?|struct|within)\s+)\w+/,
    lookbehind: !0,
  },
  keyword:
    /\b(?:abstract|actor|array|auto|autoexpandcategories|bool|break|byte|case|class|classgroup|client|coerce|collapsecategories|config|const|continue|default|defaultproperties|delegate|dependson|deprecated|do|dontcollapsecategories|editconst|editinlinenew|else|enum|event|exec|export|extends|final|float|for|forcescriptorder|foreach|function|goto|guid|hidecategories|hidedropdown|if|ignores|implements|inherits|input|int|interface|iterator|latent|local|material|name|native|nativereplication|noexport|nontransient|noteditinlinenew|notplaceable|operator|optional|out|pawn|perobjectconfig|perobjectlocalized|placeable|postoperator|preoperator|private|protected|reliable|replication|return|server|showcategories|simulated|singular|state|static|string|struct|structdefault|structdefaultproperties|switch|texture|transient|travel|unreliable|until|var|vector|while|within)\b/,
  function: /\b[a-z_]\w*(?=\s*\()/i,
  boolean: /\b(?:false|true)\b/,
  number: /\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,
  operator:
    />>|<<|--|\+\+|\*\*|[-+*/~!=<>$@]=?|&&?|\|\|?|\^\^?|[?:%]|\b(?:ClockwiseFrom|Cross|Dot)\b/,
  punctuation: /[()[\]{};,.]/,
}),
  (Prism.languages.uc = Prism.languages.uscript = Prism.languages.unrealscript);
"w"> true, inside: { punctuation: /[.\\]/, }, }, keyword: /\b(?:BEGIN|END|alias|and|begin|break|case|class|def|define_method|defined|do|each|else|elsif|end|ensure|extend|for|if|in|include|module|new|next|nil|not|or|prepend|private|protected|public|raise|redo|require|rescue|retry|return|self|super|then|throw|undef|unless|until|when|while|yield)\b/, operator: /\.{2,3}|&\.|===|<?=>|[!=]?~|(?:&&|\|\||<<|>>|\*\*|[+\-*/%<>!^&|=])=?|[?:]/, punctuation: /[(){}[\].,;]/, }); Prism.languages.insertBefore('ruby', 'operator', { 'double-colon': { pattern: /::/, alias: 'punctuation', }, }); var interpolation = { pattern: /((?:^|[^\\])(?:\\{2})*)#\{(?:[^{}]|\{[^{}]*\})*\}/, lookbehind: true, inside: { content: { pattern: /^(#\{)[\s\S]+(?=\}$)/, lookbehind: true, inside: Prism.languages.ruby, }, delimiter: { pattern: /^#\{|\}$/, alias: 'punctuation', }, }, }; delete Prism.languages.ruby.function; var percentExpression = '(?:' + [ /([^a-zA-Z0-9\s{(\[<=])(?:(?!\1)[^\\]|\\[\s\S])*\1/.source, /\((?:[^()\\]|\\[\s\S]|\((?:[^()\\]|\\[\s\S])*\))*\)/.source, /\{(?:[^{}\\]|\\[\s\S]|\{(?:[^{}\\]|\\[\s\S])*\})*\}/.source, /\[(?:[^\[\]\\]|\\[\s\S]|\[(?:[^\[\]\\]|\\[\s\S])*\])*\]/.source, /<(?:[^<>\\]|\\[\s\S]|<(?:[^<>\\]|\\[\s\S])*>)*>/.source, ].join('|') + ')'; var symbolName = /(?:"(?:\\.|[^"\\\r\n])*"|(?:\b[a-zA-Z_]\w*|[^\s\0-\x7F]+)[?!]?|\$.)/ .source; Prism.languages.insertBefore('ruby', 'keyword', { 'regex-literal': [ { pattern: RegExp( /%r/.source + percentExpression + /[egimnosux]{0,6}/.source ), greedy: true, inside: { interpolation: interpolation, regex: /[\s\S]+/, }, }, { pattern: /(^|[^/])\/(?!\/)(?:\[[^\r\n\]]+\]|\\.|[^[/\\\r\n])+\/[egimnosux]{0,6}(?=\s*(?:$|[\r\n,.;})#]))/, lookbehind: true, greedy: true, inside: { interpolation: interpolation, regex: /[\s\S]+/, }, }, ], variable: /[@$]+[a-zA-Z_]\w*(?:[?!]|\b)/, symbol: [ { pattern: RegExp(/(^|[^:]):/.source + symbolName), lookbehind: true, greedy: true, }, { pattern: RegExp( /([\r\n{(,][ \t]*)/.source + symbolName + /(?=:(?!:))/.source ), lookbehind: true, greedy: true, }, ], 'method-definition': { pattern: /(\bdef\s+)\w+(?:\s*\.\s*\w+)?/, lookbehind: true, inside: { function: /\b\w+$/, keyword: /^self\b/, 'class-name': /^\w+/, punctuation: /\./, }, }, }); Prism.languages.insertBefore('ruby', 'string', { 'string-literal': [ { pattern: RegExp(/%[qQiIwWs]?/.source + percentExpression), greedy: true, inside: { interpolation: interpolation, string: /[\s\S]+/, }, }, { pattern: /("|')(?:#\{[^}]+\}|#(?!\{)|\\(?:\r\n|[\s\S])|(?!\1)[^\\#\r\n])*\1/, greedy: true, inside: { interpolation: interpolation, string: /[\s\S]+/, }, }, { pattern: /<<[-~]?([a-z_]\w*)[\r\n](?:.*[\r\n])*?[\t ]*\1/i, alias: 'heredoc-string', greedy: true, inside: { delimiter: { pattern: /^<<[-~]?[a-z_]\w*|\b[a-z_]\w*$/i, inside: { symbol: /\b\w+/, punctuation: /^<<[-~]?/, }, }, interpolation: interpolation, string: /[\s\S]+/, }, }, { pattern: /<<[-~]?'([a-z_]\w*)'[\r\n](?:.*[\r\n])*?[\t ]*\1/i, alias: 'heredoc-string', greedy: true, inside: { delimiter: { pattern: /^<<[-~]?'[a-z_]\w*'|\b[a-z_]\w*$/i, inside: { symbol: /\b\w+/, punctuation: /^<<[-~]?'|'$/, }, }, string: /[\s\S]+/, }, }, ], 'command-literal': [ { pattern: RegExp(/%x/.source + percentExpression), greedy: true, inside: { interpolation: interpolation, command: { pattern: /[\s\S]+/, alias: 'string', }, }, }, { pattern: /`(?:#\{[^}]+\}|#(?!\{)|\\(?:\r\n|[\s\S])|[^\\`#\r\n])*`/, greedy: true, inside: { interpolation: interpolation, command: { pattern: /[\s\S]+/, alias: 'string', }, }, }, ], }); delete Prism.languages.ruby.string; Prism.languages.insertBefore('ruby', 'number', { builtin: /\b(?:Array|Bignum|Binding|Class|Continuation|Dir|Exception|FalseClass|File|Fixnum|Float|Hash|IO|Integer|MatchData|Method|Module|NilClass|Numeric|Object|Proc|Range|Regexp|Stat|String|Struct|Symbol|TMS|Thread|ThreadGroup|Time|TrueClass)\b/, constant: /\b[A-Z][A-Z0-9_]*(?:[?!]|\b)/, }); Prism.languages.rb = Prism.languages.ruby; })(Prism);