aboutsummaryrefslogtreecommitdiff
path: root/node_modules/highlight.js/lib/languages/pony.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/highlight.js/lib/languages/pony.js')
-rw-r--r--node_modules/highlight.js/lib/languages/pony.js90
1 files changed, 90 insertions, 0 deletions
diff --git a/node_modules/highlight.js/lib/languages/pony.js b/node_modules/highlight.js/lib/languages/pony.js
new file mode 100644
index 000000000..af2e7243c
--- /dev/null
+++ b/node_modules/highlight.js/lib/languages/pony.js
@@ -0,0 +1,90 @@
+module.exports = function(hljs) {
+ var KEYWORDS = {
+ keyword:
+ 'actor addressof and as be break class compile_error compile_intrinsic' +
+ 'consume continue delegate digestof do else elseif embed end error' +
+ 'for fun if ifdef in interface is isnt lambda let match new not object' +
+ 'or primitive recover repeat return struct then trait try type until ' +
+ 'use var where while with xor',
+ meta:
+ 'iso val tag trn box ref',
+ literal:
+ 'this false true'
+ };
+
+ var TRIPLE_QUOTE_STRING_MODE = {
+ className: 'string',
+ begin: '"""', end: '"""',
+ relevance: 10
+ };
+
+ var QUOTE_STRING_MODE = {
+ className: 'string',
+ begin: '"', end: '"',
+ contains: [hljs.BACKSLASH_ESCAPE]
+ };
+
+ var SINGLE_QUOTE_CHAR_MODE = {
+ className: 'string',
+ begin: '\'', end: '\'',
+ contains: [hljs.BACKSLASH_ESCAPE],
+ relevance: 0
+ };
+
+ var TYPE_NAME = {
+ className: 'type',
+ begin: '\\b_?[A-Z][\\w]*',
+ relevance: 0
+ };
+
+ var PRIMED_NAME = {
+ begin: hljs.IDENT_RE + '\'', relevance: 0
+ };
+
+ var CLASS = {
+ className: 'class',
+ beginKeywords: 'class actor', end: '$',
+ contains: [
+ hljs.TITLE_MODE,
+ hljs.C_LINE_COMMENT_MODE
+ ]
+ }
+
+ var FUNCTION = {
+ className: 'function',
+ beginKeywords: 'new fun', end: '=>',
+ contains: [
+ hljs.TITLE_MODE,
+ {
+ begin: /\(/, end: /\)/,
+ contains: [
+ TYPE_NAME,
+ PRIMED_NAME,
+ hljs.C_NUMBER_MODE,
+ hljs.C_BLOCK_COMMENT_MODE
+ ]
+ },
+ {
+ begin: /:/, endsWithParent: true,
+ contains: [TYPE_NAME]
+ },
+ hljs.C_LINE_COMMENT_MODE
+ ]
+ }
+
+ return {
+ keywords: KEYWORDS,
+ contains: [
+ CLASS,
+ FUNCTION,
+ TYPE_NAME,
+ TRIPLE_QUOTE_STRING_MODE,
+ QUOTE_STRING_MODE,
+ SINGLE_QUOTE_CHAR_MODE,
+ PRIMED_NAME,
+ hljs.C_NUMBER_MODE,
+ hljs.C_LINE_COMMENT_MODE,
+ hljs.C_BLOCK_COMMENT_MODE
+ ]
+ };
+}; \ No newline at end of file