]> luflow.net public git repositories - flow-web.git/blob - static/highlight/es/languages/lasso.js
Initial commit.
[flow-web.git] / static / highlight / es / languages / lasso.js
1 /*! `lasso` grammar compiled for Highlight.js 11.11.1 */
2 var hljsGrammar = (function () {
3 'use strict';
4
5 /*
6 Language: Lasso
7 Author: Eric Knibbe <eric@lassosoft.com>
8 Description: Lasso is a language and server platform for database-driven web applications. This definition handles Lasso 9 syntax and LassoScript for Lasso 8.6 and earlier.
9 Website: http://www.lassosoft.com/What-Is-Lasso
10 Category: database, web
11 */
12
13 function lasso(hljs) {
14 const LASSO_IDENT_RE = '[a-zA-Z_][\\w.]*';
15 const LASSO_ANGLE_RE = '<\\?(lasso(script)?|=)';
16 const LASSO_CLOSE_RE = '\\]|\\?>';
17 const LASSO_KEYWORDS = {
18 $pattern: LASSO_IDENT_RE + '|&[lg]t;',
19 literal:
20 'true false none minimal full all void and or not '
21 + 'bw nbw ew new cn ncn lt lte gt gte eq neq rx nrx ft',
22 built_in:
23 'array date decimal duration integer map pair string tag xml null '
24 + 'boolean bytes keyword list locale queue set stack staticarray '
25 + 'local var variable global data self inherited currentcapture givenblock',
26 keyword:
27 'cache database_names database_schemanames database_tablenames '
28 + 'define_tag define_type email_batch encode_set html_comment handle '
29 + 'handle_error header if inline iterate ljax_target link '
30 + 'link_currentaction link_currentgroup link_currentrecord link_detail '
31 + 'link_firstgroup link_firstrecord link_lastgroup link_lastrecord '
32 + 'link_nextgroup link_nextrecord link_prevgroup link_prevrecord log '
33 + 'loop namespace_using output_none portal private protect records '
34 + 'referer referrer repeating resultset rows search_args '
35 + 'search_arguments select sort_args sort_arguments thread_atomic '
36 + 'value_list while abort case else fail_if fail_ifnot fail if_empty '
37 + 'if_false if_null if_true loop_abort loop_continue loop_count params '
38 + 'params_up return return_value run_children soap_definetag '
39 + 'soap_lastrequest soap_lastresponse tag_name ascending average by '
40 + 'define descending do equals frozen group handle_failure import in '
41 + 'into join let match max min on order parent protected provide public '
42 + 'require returnhome skip split_thread sum take thread to trait type '
43 + 'where with yield yieldhome'
44 };
45 const HTML_COMMENT = hljs.COMMENT(
46 '<!--',
47 '-->',
48 { relevance: 0 }
49 );
50 const LASSO_NOPROCESS = {
51 className: 'meta',
52 begin: '\\[noprocess\\]',
53 starts: {
54 end: '\\[/noprocess\\]',
55 returnEnd: true,
56 contains: [ HTML_COMMENT ]
57 }
58 };
59 const LASSO_START = {
60 className: 'meta',
61 begin: '\\[/noprocess|' + LASSO_ANGLE_RE
62 };
63 const LASSO_DATAMEMBER = {
64 className: 'symbol',
65 begin: '\'' + LASSO_IDENT_RE + '\''
66 };
67 const LASSO_CODE = [
68 hljs.C_LINE_COMMENT_MODE,
69 hljs.C_BLOCK_COMMENT_MODE,
70 hljs.inherit(hljs.C_NUMBER_MODE, { begin: hljs.C_NUMBER_RE + '|(-?infinity|NaN)\\b' }),
71 hljs.inherit(hljs.APOS_STRING_MODE, { illegal: null }),
72 hljs.inherit(hljs.QUOTE_STRING_MODE, { illegal: null }),
73 {
74 className: 'string',
75 begin: '`',
76 end: '`'
77 },
78 { // variables
79 variants: [
80 { begin: '[#$]' + LASSO_IDENT_RE },
81 {
82 begin: '#',
83 end: '\\d+',
84 illegal: '\\W'
85 }
86 ] },
87 {
88 className: 'type',
89 begin: '::\\s*',
90 end: LASSO_IDENT_RE,
91 illegal: '\\W'
92 },
93 {
94 className: 'params',
95 variants: [
96 {
97 begin: '-(?!infinity)' + LASSO_IDENT_RE,
98 relevance: 0
99 },
100 { begin: '(\\.\\.\\.)' }
101 ]
102 },
103 {
104 begin: /(->|\.)\s*/,
105 relevance: 0,
106 contains: [ LASSO_DATAMEMBER ]
107 },
108 {
109 className: 'class',
110 beginKeywords: 'define',
111 returnEnd: true,
112 end: '\\(|=>',
113 contains: [ hljs.inherit(hljs.TITLE_MODE, { begin: LASSO_IDENT_RE + '(=(?!>))?|[-+*/%](?!>)' }) ]
114 }
115 ];
116 return {
117 name: 'Lasso',
118 aliases: [
119 'ls',
120 'lassoscript'
121 ],
122 case_insensitive: true,
123 keywords: LASSO_KEYWORDS,
124 contains: [
125 {
126 className: 'meta',
127 begin: LASSO_CLOSE_RE,
128 relevance: 0,
129 starts: { // markup
130 end: '\\[|' + LASSO_ANGLE_RE,
131 returnEnd: true,
132 relevance: 0,
133 contains: [ HTML_COMMENT ]
134 }
135 },
136 LASSO_NOPROCESS,
137 LASSO_START,
138 {
139 className: 'meta',
140 begin: '\\[no_square_brackets',
141 starts: {
142 end: '\\[/no_square_brackets\\]', // not implemented in the language
143 keywords: LASSO_KEYWORDS,
144 contains: [
145 {
146 className: 'meta',
147 begin: LASSO_CLOSE_RE,
148 relevance: 0,
149 starts: {
150 end: '\\[noprocess\\]|' + LASSO_ANGLE_RE,
151 returnEnd: true,
152 contains: [ HTML_COMMENT ]
153 }
154 },
155 LASSO_NOPROCESS,
156 LASSO_START
157 ].concat(LASSO_CODE)
158 }
159 },
160 {
161 className: 'meta',
162 begin: '\\[',
163 relevance: 0
164 },
165 {
166 className: 'meta',
167 begin: '^#!',
168 end: 'lasso9$',
169 relevance: 10
170 }
171 ].concat(LASSO_CODE)
172 };
173 }
174
175 return lasso;
176
177 })();
178 ;
179 export default hljsGrammar;