1 | Prism.languages.sas = {
|
2 | 'datalines': {
|
3 | pattern: /^\s*(?:(?:data)?lines|cards);[\s\S]+?(?:\r?\n|\r);/im,
|
4 | alias: 'string',
|
5 | inside: {
|
6 | 'keyword': {
|
7 | pattern: /^(\s*)(?:(?:data)?lines|cards)/i,
|
8 | lookbehind: true
|
9 | },
|
10 | 'punctuation': /;/
|
11 | }
|
12 | },
|
13 | 'comment': [
|
14 | {
|
15 | pattern: /(^\s*|;\s*)\*.*;/m,
|
16 | lookbehind: true
|
17 | },
|
18 | /\/\*[\s\S]+?\*\
|
19 | ],
|
20 | 'datetime': {
|
21 |
|
22 | pattern: /'[^']+'(?:dt?|t)\b/i,
|
23 | alias: 'number'
|
24 | },
|
25 | 'string': {
|
26 | pattern: /(["'])(?:\1\1|(?!\1)[\s\S])*\1/,
|
27 | greedy: true
|
28 | },
|
29 | 'keyword': /\b(?:data|else|format|if|input|proc\s\w+|quit|run|then)\b/i,
|
30 |
|
31 | 'number': /\b(?:[\da-f]+x|\d+(?:\.\d+)?(?:e[+-]?\d+)?)/i,
|
32 | 'operator': /\*\*?|\|\|?|!!?|¦¦?|<[>=]?|>[<=]?|[-+\/=&]|[~¬^]=?|\b(?:eq|ne|gt|lt|ge|le|in|not)\b/i,
|
33 | 'punctuation': /[$%@.(){}\[\];,\\]/
|
34 | };
|