diff options
Diffstat (limited to 'node_modules/highlight.js/lib/languages/xquery.js')
-rw-r--r-- | node_modules/highlight.js/lib/languages/xquery.js | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/node_modules/highlight.js/lib/languages/xquery.js b/node_modules/highlight.js/lib/languages/xquery.js new file mode 100644 index 000000000..7c6d567f7 --- /dev/null +++ b/node_modules/highlight.js/lib/languages/xquery.js @@ -0,0 +1,70 @@ +module.exports = function(hljs) { + var KEYWORDS = 'for let if while then else return where group by xquery encoding version' + + 'module namespace boundary-space preserve strip default collation base-uri ordering' + + 'copy-namespaces order declare import schema namespace function option in allowing empty' + + 'at tumbling window sliding window start when only end when previous next stable ascending' + + 'descending empty greatest least some every satisfies switch case typeswitch try catch and' + + 'or to union intersect instance of treat as castable cast map array delete insert into' + + 'replace value rename copy modify update'; + var LITERAL = 'false true xs:string xs:integer element item xs:date xs:datetime xs:float xs:double xs:decimal QName xs:anyURI xs:long xs:int xs:short xs:byte attribute'; + var VAR = { + begin: /\$[a-zA-Z0-9\-]+/ + }; + + var NUMBER = { + className: 'number', + begin: '(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b', + relevance: 0 + }; + + var STRING = { + className: 'string', + variants: [ + {begin: /"/, end: /"/, contains: [{begin: /""/, relevance: 0}]}, + {begin: /'/, end: /'/, contains: [{begin: /''/, relevance: 0}]} + ] + }; + + var ANNOTATION = { + className: 'meta', + begin: '%\\w+' + }; + + var COMMENT = { + className: 'comment', + begin: '\\(:', end: ':\\)', + relevance: 10, + contains: [ + { + className: 'doctag', begin: '@\\w+' + } + ] + }; + + var METHOD = { + begin: '{', end: '}' + }; + + var CONTAINS = [ + VAR, + STRING, + NUMBER, + COMMENT, + ANNOTATION, + METHOD + ]; + METHOD.contains = CONTAINS; + + + return { + aliases: ['xpath', 'xq'], + case_insensitive: false, + lexemes: /[a-zA-Z\$][a-zA-Z0-9_:\-]*/, + illegal: /(proc)|(abstract)|(extends)|(until)|(#)/, + keywords: { + keyword: KEYWORDS, + literal: LITERAL + }, + contains: CONTAINS + }; +};
\ No newline at end of file |