]> luflow.net public git repositories - flow-web.git/blob - static/highlight/es/languages/xl.js
Initial commit.
[flow-web.git] / static / highlight / es / languages / xl.js
1 /*! `xl` grammar compiled for Highlight.js 11.11.1 */
2 var hljsGrammar = (function () {
3 'use strict';
4
5 /*
6 Language: XL
7 Author: Christophe de Dinechin <christophe@taodyne.com>
8 Description: An extensible programming language, based on parse tree rewriting
9 Website: http://xlr.sf.net
10 */
11
12 function xl(hljs) {
13 const KWS = [
14 "if",
15 "then",
16 "else",
17 "do",
18 "while",
19 "until",
20 "for",
21 "loop",
22 "import",
23 "with",
24 "is",
25 "as",
26 "where",
27 "when",
28 "by",
29 "data",
30 "constant",
31 "integer",
32 "real",
33 "text",
34 "name",
35 "boolean",
36 "symbol",
37 "infix",
38 "prefix",
39 "postfix",
40 "block",
41 "tree"
42 ];
43 const BUILT_INS = [
44 "in",
45 "mod",
46 "rem",
47 "and",
48 "or",
49 "xor",
50 "not",
51 "abs",
52 "sign",
53 "floor",
54 "ceil",
55 "sqrt",
56 "sin",
57 "cos",
58 "tan",
59 "asin",
60 "acos",
61 "atan",
62 "exp",
63 "expm1",
64 "log",
65 "log2",
66 "log10",
67 "log1p",
68 "pi",
69 "at",
70 "text_length",
71 "text_range",
72 "text_find",
73 "text_replace",
74 "contains",
75 "page",
76 "slide",
77 "basic_slide",
78 "title_slide",
79 "title",
80 "subtitle",
81 "fade_in",
82 "fade_out",
83 "fade_at",
84 "clear_color",
85 "color",
86 "line_color",
87 "line_width",
88 "texture_wrap",
89 "texture_transform",
90 "texture",
91 "scale_?x",
92 "scale_?y",
93 "scale_?z?",
94 "translate_?x",
95 "translate_?y",
96 "translate_?z?",
97 "rotate_?x",
98 "rotate_?y",
99 "rotate_?z?",
100 "rectangle",
101 "circle",
102 "ellipse",
103 "sphere",
104 "path",
105 "line_to",
106 "move_to",
107 "quad_to",
108 "curve_to",
109 "theme",
110 "background",
111 "contents",
112 "locally",
113 "time",
114 "mouse_?x",
115 "mouse_?y",
116 "mouse_buttons"
117 ];
118 const BUILTIN_MODULES = [
119 "ObjectLoader",
120 "Animate",
121 "MovieCredits",
122 "Slides",
123 "Filters",
124 "Shading",
125 "Materials",
126 "LensFlare",
127 "Mapping",
128 "VLCAudioVideo",
129 "StereoDecoder",
130 "PointCloud",
131 "NetworkAccess",
132 "RemoteControl",
133 "RegExp",
134 "ChromaKey",
135 "Snowfall",
136 "NodeJS",
137 "Speech",
138 "Charts"
139 ];
140 const LITERALS = [
141 "true",
142 "false",
143 "nil"
144 ];
145 const KEYWORDS = {
146 $pattern: /[a-zA-Z][a-zA-Z0-9_?]*/,
147 keyword: KWS,
148 literal: LITERALS,
149 built_in: BUILT_INS.concat(BUILTIN_MODULES)
150 };
151
152 const DOUBLE_QUOTE_TEXT = {
153 className: 'string',
154 begin: '"',
155 end: '"',
156 illegal: '\\n'
157 };
158 const SINGLE_QUOTE_TEXT = {
159 className: 'string',
160 begin: '\'',
161 end: '\'',
162 illegal: '\\n'
163 };
164 const LONG_TEXT = {
165 className: 'string',
166 begin: '<<',
167 end: '>>'
168 };
169 const BASED_NUMBER = {
170 className: 'number',
171 begin: '[0-9]+#[0-9A-Z_]+(\\.[0-9-A-Z_]+)?#?([Ee][+-]?[0-9]+)?'
172 };
173 const IMPORT = {
174 beginKeywords: 'import',
175 end: '$',
176 keywords: KEYWORDS,
177 contains: [ DOUBLE_QUOTE_TEXT ]
178 };
179 const FUNCTION_DEFINITION = {
180 className: 'function',
181 begin: /[a-z][^\n]*->/,
182 returnBegin: true,
183 end: /->/,
184 contains: [
185 hljs.inherit(hljs.TITLE_MODE, { starts: {
186 endsWithParent: true,
187 keywords: KEYWORDS
188 } })
189 ]
190 };
191 return {
192 name: 'XL',
193 aliases: [ 'tao' ],
194 keywords: KEYWORDS,
195 contains: [
196 hljs.C_LINE_COMMENT_MODE,
197 hljs.C_BLOCK_COMMENT_MODE,
198 DOUBLE_QUOTE_TEXT,
199 SINGLE_QUOTE_TEXT,
200 LONG_TEXT,
201 FUNCTION_DEFINITION,
202 IMPORT,
203 BASED_NUMBER,
204 hljs.NUMBER_MODE
205 ]
206 };
207 }
208
209 return xl;
210
211 })();
212 ;
213 export default hljsGrammar;