UNPKG

refractor

Version:

Lightweight, robust, elegant virtual syntax highlighting using Prism

42 lines (40 loc) 1.1 kB
'use strict'; module.exports = sas; sas.displayName = 'sas'; sas.aliases = []; function sas(Prism) { Prism.languages.sas = { datalines: { pattern: /^\s*(?:(?:data)?lines|cards);[\s\S]+?(?:\r?\n|\r);/im, alias: 'string', inside: { keyword: { pattern: /^(\s*)(?:(?:data)?lines|cards)/i, lookbehind: true }, punctuation: /;/ } }, comment: [ { pattern: /(^\s*|;\s*)\*.*;/m, lookbehind: true }, /\/\*[\s\S]+?\*\// ], datetime: { // '1jan2013'd, '9:25:19pm't, '18jan2003:9:27:05am'dt pattern: /'[^']+'(?:dt?|t)\b/i, alias: 'number' }, string: { pattern: /(["'])(?:\1\1|(?!\1)[\s\S])*\1/, greedy: true }, keyword: /\b(?:data|else|format|if|input|proc\s\w+|quit|run|then)\b/i, // Decimal (1.2e23), hexadecimal (0c1x) number: /(?:\B-|\b)(?:[\da-f]+x|\d+(?:\.\d+)?(?:e[+-]?\d+)?)/i, operator: /\*\*?|\|\|?|!!?|¦¦?|<[>=]?|>[<=]?|[-+\/=&]|[~¬^]=?|\b(?:eq|ne|gt|lt|ge|le|in|not)\b/i, punctuation: /[$%@.(){}\[\];,\\]/ }; }