-
-
Notifications
You must be signed in to change notification settings - Fork 37
/
Copy pathturtle.js
61 lines (60 loc) · 1.46 KB
/
turtle.js
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
// @ts-nocheck
turtle.displayName = 'turtle'
turtle.aliases = ['trig']
/** @type {import('../core.js').Syntax} */
export default function turtle(Prism) {
Prism.languages.turtle = {
comment: {
pattern: /#.*/,
greedy: true
},
'multiline-string': {
pattern:
/"""(?:(?:""?)?(?:[^"\\]|\\.))*"""|'''(?:(?:''?)?(?:[^'\\]|\\.))*'''/,
greedy: true,
alias: 'string',
inside: {
comment: /#.*/
}
},
string: {
pattern: /"(?:[^\\"\r\n]|\\.)*"|'(?:[^\\'\r\n]|\\.)*'/,
greedy: true
},
url: {
pattern:
/<(?:[^\x00-\x20<>"{}|^`\\]|\\(?:u[\da-fA-F]{4}|U[\da-fA-F]{8}))*>/,
greedy: true,
inside: {
punctuation: /[<>]/
}
},
function: {
pattern:
/(?:(?![-.\d\xB7])[-.\w\xB7\xC0-\uFFFD]+)?:(?:(?![-.])(?:[-.:\w\xC0-\uFFFD]|%[\da-f]{2}|\\.)+)?/i,
inside: {
'local-name': {
pattern: /([^:]*:)[\s\S]+/,
lookbehind: true
},
prefix: {
pattern: /[\s\S]+/,
inside: {
punctuation: /:/
}
}
}
},
number: /[+-]?\b\d+(?:\.\d*)?(?:e[+-]?\d+)?/i,
punctuation: /[{}.,;()[\]]|\^\^/,
boolean: /\b(?:false|true)\b/,
keyword: [/(?:\ba|@prefix|@base)\b|=/, /\b(?:base|graph|prefix)\b/i],
tag: {
pattern: /@[a-z]+(?:-[a-z\d]+)*/i,
inside: {
punctuation: /@/
}
}
}
Prism.languages.trig = Prism.languages['turtle']
}