summaryrefslogtreecommitdiffstats
path: root/public/prism/prism-oz.js
blob: 46388be234b1db22f061124f91521772e502f3c7 (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
Prism.languages.oz = {
  comment: {
    pattern: /\/\*[\s\S]*?\*\/|%.*/,
    greedy: true,
  },
  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: /`(?:[^`\\]|\\.)+`/,
  'attr-name': /\b\w+(?=[ \t]*:(?![:=]))/,
  operator:
    /:(?:=|::?)|<[-:=]?|=(?:=|<?:?)|>=?:?|\\=:?|!!?|[|#+\-*\/,~^@]|\b(?:andthen|div|mod|orelse)\b/,
  punctuation: /[\[\](){}.:;?]/,
};
/ 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;