/* eslint-disable regexp/no-dupe-characters-character-class */ (function (Prism) { /** * Regular expression for characters that are not allowed in identifiers. * * @type {string} */ var nonId = /\s\x00-\x1f\x22-\x2f\x3a-\x3f\x5b-\x5e\x60\x7b-\x7e/.source; /** * Surround a regular expression for IDs with patterns for non-ID sequences. * * @param {string} pattern A regular expression for identifiers. * @param {string} [flags] The regular expression flags. * @returns {RegExp} A wrapped regular expression for identifiers. */ function wrapId(pattern, flags) { return RegExp(pattern.replace(//g, nonId), flags); } Prism.languages.kumir = { comment: { pattern: /\|.*/, }, prolog: { pattern: /#.*/, greedy: true, }, string: { pattern: /"[^\n\r"]*"|'[^\n\r']*'/, greedy: true, }, boolean: { pattern: wrapId(/(^|[])(?:да|нет)(?=[]|$)/.source), lookbehind: true, }, 'operator-word': { pattern: wrapId(/(^|[])(?:и|или|не)(?=[]|$)/.source), lookbehind: true, alias: 'keyword', }, 'system-variable': { pattern: wrapId(/(^|[])знач(?=[]|$)/.source), lookbehind: true, alias: 'keyword', }, type: [ { pattern: wrapId( /(^|[])(?:вещ|лит|лог|сим|цел)(?:\x20*таб)?(?=[]|$)/ .source ), lookbehind: true, alias: 'builtin', }, { pattern: wrapId( /(^|[])(?:компл|сканкод|файл|цвет)(?=[]|$)/.source ), lookbehind: true, alias: 'important', }, ], /** * Should be performed after searching for type names because of "таб". * "таб" is a reserved word, but never used without a preceding type name. * "НАЗНАЧИТЬ", "Фввод", and "Фвывод" are not reserved words. */ keyword: { pattern: wrapId( /(^|[])(?:алг|арг(?:\x20*рез)?|ввод|ВКЛЮЧИТЬ|вс[её]|выбор|вывод|выход|дано|для|до|дс|если|иначе|исп|использовать|кон(?:(?:\x20+|_)исп)?|кц(?:(?:\x20+|_)при)?|надо|нач|нс|нц|от|пауза|пока|при|раза?|рез|стоп|таб|то|утв|шаг)(?=[]|$)/ .source ), lookbehind: true, }, /** Should be performed after searching for reserved words. */ name: { // eslint-disable-next-line regexp/no-super-linear-backtracking pattern: wrapId( /(^|[])[^\d][^]*(?:\x20+[^]+)*(?=[]|$)/ .source ), lookbehind: true, }, /** Should be performed after searching for names. */ number: { pattern: wrapId( /(^|[])(?:\B\$[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)(?=[]|$)/ .source, 'i' ), lookbehind: true, }, /** Should be performed after searching for words. */ punctuation: /:=|[(),:;\[\]]/, /** * Should be performed after searching for * - numeric constants (because of "+" and "-"); * - punctuation marks (because of ":=" and "="). */ 'operator-char': { pattern: /\*\*?|<[=>]?|>=?|[-+/=]/, alias: 'operator', }, }; Prism.languages.kum = Prism.languages.kumir; })(Prism); /a> 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 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
!(function (e) {
  (e.languages.sass = e.languages.extend('css', {
    comment: {
      pattern: /^([ \t]*)\/[\/*].*(?:(?:\r?\n|\r)\1[ \t].+)*/m,
      lookbehind: !0,
      greedy: !0,
    },
  })),
    e.languages.insertBefore('sass', 'atrule', {
      'atrule-line': {
        pattern: /^(?:[ \t]*)[@+=].+/m,
        greedy: !0,
        inside: { atrule: /(?:@[\w-]+|[+=])/ },
      },
    }),
    delete e.languages.sass.atrule;
  var r = /\$[-\w]+|#\{\$[-\w]+\}/,
    t = [
      /[+*\/%]|[=!]=|<=?|>=?|\b(?:and|not|or)\b/,
      { pattern: /(\s)-(?=\s)/, lookbehind: !0 },
    ];
  e.languages.insertBefore('sass', 'property', {
    'variable-line': {
      pattern: /^[ \t]*\$.+/m,
      greedy: !0,
      inside: { punctuation: /:/, variable: r, operator: t },
    },
    'property-line': {
      pattern: /^[ \t]*(?:[^:\s]+ *:.*|:[^:\s].*)/m,
      greedy: !0,
      inside: {
        property: [
          /[^:\s]+(?=\s*:)/,
          { pattern: /(:)[^:\s]+/, lookbehind: !0 },
        ],
        punctuation: /:/,
        variable: r,
        operator: t,
        important: e.languages.sass.important,
      },
    },
  }),
    delete e.languages.sass.property,
    delete e.languages.sass.important,
    e.languages.insertBefore('sass', 'punctuation', {
      selector: {
        pattern:
          /^([ \t]*)\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*(?:,(?:\r?\n|\r)\1[ \t]+\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*)*/m,
        lookbehind: !0,
        greedy: !0,
      },
    });
})(Prism);