UNPKG

1.38 kBJavaScriptView Raw
1Prism.languages.cypher = {
2 // https://neo4j.com/docs/cypher-manual/current/syntax/comments/
3 'comment': /\/\/.*/,
4 'string': {
5 pattern: /"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/,
6 greedy: true
7 },
8 'class-name': {
9 pattern: /(:\s*)(?:\w+|`(?:[^`\\\r\n])*`)(?=\s*[{):])/,
10 lookbehind: true,
11 greedy: true
12 },
13 'relationship': {
14 pattern: /(-\[\s*(?:\w+\s*|`(?:[^`\\\r\n])*`\s*)?:\s*|\|\s*:\s*)(?:\w+|`(?:[^`\\\r\n])*`)/,
15 lookbehind: true,
16 greedy: true,
17 alias: 'property'
18 },
19 'identifier': {
20 pattern: /`(?:[^`\\\r\n])*`/,
21 greedy: true,
22 alias: 'symbol'
23 },
24
25 'variable': /\$\w+/,
26
27 // https://neo4j.com/docs/cypher-manual/current/syntax/reserved/
28 'keyword': /\b(?:ADD|ALL|AND|AS|ASC|ASCENDING|ASSERT|BY|CALL|CASE|COMMIT|CONSTRAINT|CONTAINS|CREATE|CSV|DELETE|DESC|DESCENDING|DETACH|DISTINCT|DO|DROP|ELSE|END|ENDS|EXISTS|FOR|FOREACH|IN|INDEX|IS|JOIN|KEY|LIMIT|LOAD|MANDATORY|MATCH|MERGE|NODE|NOT|OF|ON|OPTIONAL|OR|ORDER(?=\s+BY)|PERIODIC|REMOVE|REQUIRE|RETURN|SCALAR|SCAN|SET|SKIP|START|STARTS|THEN|UNION|UNIQUE|UNWIND|USING|WHEN|WHERE|WITH|XOR|YIELD)\b/i,
29
30 'function': /\b\w+\b(?=\s*\()/,
31
32 'boolean': /\b(?:true|false|null)\b/i,
33 'number': /\b(?:0x[\da-fA-F]+|\d+(?:\.\d+)?(?:[eE][+-]?\d+)?)\b/,
34 // https://neo4j.com/docs/cypher-manual/current/syntax/operators/
35 'operator': /:|<--?|--?>?|<>|=~?|[<>]=?|[+*/%^|]|\.\.\.?/,
36 'punctuation': /[()[\]{},;.]/
37};