summaryrefslogtreecommitdiffstats
path: root/public/prism/prism-sparql.js
blob: 74713687d89a7298222844055cad506bf0671b56 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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;
span class="w"> Prism.languages.soy = { comment: [ /\/\*[\s\S]*?\*\//, { pattern: /(\s)\/\/.*/, lookbehind: true, greedy: true, }, ], 'command-arg': { pattern: /(\{+\/?\s*(?:alias|call|delcall|delpackage|deltemplate|namespace|template)\s+)\.?[\w.]+/, lookbehind: true, alias: 'string', inside: { punctuation: /\./, }, }, parameter: { pattern: /(\{+\/?\s*@?param\??\s+)\.?[\w.]+/, lookbehind: true, alias: 'variable', }, keyword: [ { pattern: /(\{+\/?[^\S\r\n]*)(?:\\[nrt]|alias|call|case|css|default|delcall|delpackage|deltemplate|else(?:if)?|fallbackmsg|for(?:each)?|if(?:empty)?|lb|let|literal|msg|namespace|nil|@?param\??|rb|sp|switch|template|xid)/, lookbehind: true, }, /\b(?:any|as|attributes|bool|css|float|html|in|int|js|list|map|null|number|string|uri)\b/, ], delimiter: { pattern: /^\{+\/?|\/?\}+$/, alias: 'punctuation', }, property: /\w+(?==)/, variable: { pattern: /\$[^\W\d]\w*(?:\??(?:\.\w+|\[[^\]]+\]))*/, inside: { string: { pattern: stringPattern, greedy: true, }, number: numberPattern, punctuation: /[\[\].?]/, }, }, string: { pattern: stringPattern, greedy: true, }, function: [ /\w+(?=\()/, { pattern: /(\|[^\S\r\n]*)\w+/, lookbehind: true, }, ], boolean: /\b(?:false|true)\b/, number: numberPattern, operator: /\?:?|<=?|>=?|==?|!=|[+*/%-]|\b(?:and|not|or)\b/, punctuation: /[{}()\[\]|.,:]/, }; // Tokenize all inline Soy expressions Prism.hooks.add('before-tokenize', function (env) { var soyPattern = /\{\{.+?\}\}|\{.+?\}|\s\/\/.*|\/\*[\s\S]*?\*\//g; var soyLitteralStart = '{literal}'; var soyLitteralEnd = '{/literal}'; var soyLitteralMode = false; Prism.languages['markup-templating'].buildPlaceholders( env, 'soy', soyPattern, function (match) { // Soy tags inside {literal} block are ignored if (match === soyLitteralEnd) { soyLitteralMode = false; } if (!soyLitteralMode) { if (match === soyLitteralStart) { soyLitteralMode = true; } return true; } return false; } ); }); // Re-insert the tokens after tokenizing Prism.hooks.add('after-tokenize', function (env) { Prism.languages['markup-templating'].tokenizePlaceholders(env, 'soy'); }); })(Prism);