-
-
Notifications
You must be signed in to change notification settings - Fork 36
/
sparql.js
24 lines (23 loc) · 1.25 KB
/
sparql.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
// @ts-nocheck
import refractorTurtle from './turtle.js'
sparql.displayName = 'sparql'
sparql.aliases = ['rq']
/** @type {import('../core.js').Syntax} */
export default function sparql(Prism) {
Prism.register(refractorTurtle)
Prism.languages.sparql = Prism.languages.extend('turtle', {
boolean: /\b(?:false|true)\b/i,
variable: {
pattern: /[?$]\w+/,
greedy: true
}
})
Prism.languages.insertBefore('sparql', 'punctuation', {
keyword: [
/\b(?:A|ADD|ALL|AS|ASC|ASK|BNODE|BY|CLEAR|CONSTRUCT|COPY|CREATE|DATA|DEFAULT|DELETE|DESC|DESCRIBE|DISTINCT|DROP|EXISTS|FILTER|FROM|GROUP|HAVING|INSERT|INTO|LIMIT|LOAD|MINUS|MOVE|NAMED|NOT|NOW|OFFSET|OPTIONAL|ORDER|RAND|REDUCED|SELECT|SEPARATOR|SERVICE|SILENT|STRUUID|UNION|USING|UUID|VALUES|WHERE)\b/i,
/\b(?:ABS|AVG|BIND|BOUND|CEIL|COALESCE|CONCAT|CONTAINS|COUNT|DATATYPE|DAY|ENCODE_FOR_URI|FLOOR|GROUP_CONCAT|HOURS|IF|IRI|isBLANK|isIRI|isLITERAL|isNUMERIC|isURI|LANG|LANGMATCHES|LCASE|MAX|MD5|MIN|MINUTES|MONTH|REGEX|REPLACE|ROUND|sameTerm|SAMPLE|SECONDS|SHA1|SHA256|SHA384|SHA512|STR|STRAFTER|STRBEFORE|STRDT|STRENDS|STRLANG|STRLEN|STRSTARTS|SUBSTR|SUM|TIMEZONE|TZ|UCASE|URI|YEAR)\b(?=\s*\()/i,
/\b(?:BASE|GRAPH|PREFIX)\b/i
]
})
Prism.languages.rq = Prism.languages.sparql
}