]> luflow.net public git repositories - flow-web.git/blob - static/highlight/es/languages/pony.js
Initial commit.
[flow-web.git] / static / highlight / es / languages / pony.js
1 /*! `pony` grammar compiled for Highlight.js 11.11.1 */
2 var hljsGrammar = (function () {
3 'use strict';
4
5 /*
6 Language: Pony
7 Author: Joe Eli McIlvain <joe.eli.mac@gmail.com>
8 Description: Pony is an open-source, object-oriented, actor-model,
9 capabilities-secure, high performance programming language.
10 Website: https://www.ponylang.io
11 Category: system
12 */
13
14 function pony(hljs) {
15 const KEYWORDS = {
16 keyword:
17 'actor addressof and as be break class compile_error compile_intrinsic '
18 + 'consume continue delegate digestof do else elseif embed end error '
19 + 'for fun if ifdef in interface is isnt lambda let match new not object '
20 + 'or primitive recover repeat return struct then trait try type until '
21 + 'use var where while with xor',
22 meta:
23 'iso val tag trn box ref',
24 literal:
25 'this false true'
26 };
27
28 const TRIPLE_QUOTE_STRING_MODE = {
29 className: 'string',
30 begin: '"""',
31 end: '"""',
32 relevance: 10
33 };
34
35 const QUOTE_STRING_MODE = {
36 className: 'string',
37 begin: '"',
38 end: '"',
39 contains: [ hljs.BACKSLASH_ESCAPE ]
40 };
41
42 const SINGLE_QUOTE_CHAR_MODE = {
43 className: 'string',
44 begin: '\'',
45 end: '\'',
46 contains: [ hljs.BACKSLASH_ESCAPE ],
47 relevance: 0
48 };
49
50 const TYPE_NAME = {
51 className: 'type',
52 begin: '\\b_?[A-Z][\\w]*',
53 relevance: 0
54 };
55
56 const PRIMED_NAME = {
57 begin: hljs.IDENT_RE + '\'',
58 relevance: 0
59 };
60
61 const NUMBER_MODE = {
62 className: 'number',
63 begin: '(-?)(\\b0[xX][a-fA-F0-9]+|\\b0[bB][01]+|(\\b\\d+(_\\d+)?(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)',
64 relevance: 0
65 };
66
67 /**
68 * The `FUNCTION` and `CLASS` modes were intentionally removed to simplify
69 * highlighting and fix cases like
70 * ```
71 * interface Iterator[A: A]
72 * fun has_next(): Bool
73 * fun next(): A?
74 * ```
75 * where it is valid to have a function head without a body
76 */
77
78 return {
79 name: 'Pony',
80 keywords: KEYWORDS,
81 contains: [
82 TYPE_NAME,
83 TRIPLE_QUOTE_STRING_MODE,
84 QUOTE_STRING_MODE,
85 SINGLE_QUOTE_CHAR_MODE,
86 PRIMED_NAME,
87 NUMBER_MODE,
88 hljs.C_LINE_COMMENT_MODE,
89 hljs.C_BLOCK_COMMENT_MODE
90 ]
91 };
92 }
93
94 return pony;
95
96 })();
97 ;
98 export default hljsGrammar;