summaryrefslogtreecommitdiffstats
path: root/common/unqlite/jx9_const.c
diff options
context:
space:
mode:
Diffstat (limited to 'common/unqlite/jx9_const.c')
-rw-r--r--common/unqlite/jx9_const.c1423
1 files changed, 1423 insertions, 0 deletions
diff --git a/common/unqlite/jx9_const.c b/common/unqlite/jx9_const.c
new file mode 100644
index 0000000..37328a0
--- /dev/null
+++ b/common/unqlite/jx9_const.c
@@ -0,0 +1,1423 @@
1/*
2 * Symisc JX9: A Highly Efficient Embeddable Scripting Engine Based on JSON.
3 * Copyright (C) 2012-2013, Symisc Systems http://jx9.symisc.net/
4 * Version 1.7.2
5 * For information on licensing, redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES
6 * please contact Symisc Systems via:
7 * legal@symisc.net
8 * licensing@symisc.net
9 * contact@symisc.net
10 * or visit:
11 * http://jx9.symisc.net/
12 */
13 /* $SymiscID: const.c v1.7 Win7 2012-12-13 00:01 stable <chm@symisc.net> $ */
14#ifndef JX9_AMALGAMATION
15#include "jx9Int.h"
16#endif
17/* This file implement built-in constants for the JX9 engine. */
18/*
19 * JX9_VERSION
20 * __JX9__
21 * Expand the current version of the JX9 engine.
22 */
23static void JX9_VER_Const(jx9_value *pVal, void *pUnused)
24{
25 SXUNUSED(pUnused);
26 jx9_value_string(pVal, jx9_lib_signature(), -1/*Compute length automatically*/);
27}
28#ifdef __WINNT__
29#include <Windows.h>
30#elif defined(__UNIXES__)
31#include <sys/utsname.h>
32#endif
33/*
34 * JX9_OS
35 * __OS__
36 * Expand the name of the host Operating System.
37 */
38static void JX9_OS_Const(jx9_value *pVal, void *pUnused)
39{
40#if defined(__WINNT__)
41 jx9_value_string(pVal, "WinNT", (int)sizeof("WinNT")-1);
42#elif defined(__UNIXES__)
43 struct utsname sInfo;
44 if( uname(&sInfo) != 0 ){
45 jx9_value_string(pVal, "Unix", (int)sizeof("Unix")-1);
46 }else{
47 jx9_value_string(pVal, sInfo.sysname, -1);
48 }
49#else
50 jx9_value_string(pVal,"Host OS", (int)sizeof("Host OS")-1);
51#endif
52 SXUNUSED(pUnused);
53}
54/*
55 * JX9_EOL
56 * Expand the correct 'End Of Line' symbol for this platform.
57 */
58static void JX9_EOL_Const(jx9_value *pVal, void *pUnused)
59{
60 SXUNUSED(pUnused);
61#ifdef __WINNT__
62 jx9_value_string(pVal, "\r\n", (int)sizeof("\r\n")-1);
63#else
64 jx9_value_string(pVal, "\n", (int)sizeof(char));
65#endif
66}
67/*
68 * JX9_INT_MAX
69 * Expand the largest integer supported.
70 * Note that JX9 deals with 64-bit integer for all platforms.
71 */
72static void JX9_INTMAX_Const(jx9_value *pVal, void *pUnused)
73{
74 SXUNUSED(pUnused);
75 jx9_value_int64(pVal, SXI64_HIGH);
76}
77/*
78 * JX9_INT_SIZE
79 * Expand the size in bytes of a 64-bit integer.
80 */
81static void JX9_INTSIZE_Const(jx9_value *pVal, void *pUnused)
82{
83 SXUNUSED(pUnused);
84 jx9_value_int64(pVal, sizeof(sxi64));
85}
86/*
87 * DIRECTORY_SEPARATOR.
88 * Expand the directory separator character.
89 */
90static void JX9_DIRSEP_Const(jx9_value *pVal, void *pUnused)
91{
92 SXUNUSED(pUnused);
93#ifdef __WINNT__
94 jx9_value_string(pVal, "\\", (int)sizeof(char));
95#else
96 jx9_value_string(pVal, "/", (int)sizeof(char));
97#endif
98}
99/*
100 * PATH_SEPARATOR.
101 * Expand the path separator character.
102 */
103static void JX9_PATHSEP_Const(jx9_value *pVal, void *pUnused)
104{
105 SXUNUSED(pUnused);
106#ifdef __WINNT__
107 jx9_value_string(pVal, ";", (int)sizeof(char));
108#else
109 jx9_value_string(pVal, ":", (int)sizeof(char));
110#endif
111}
112#ifndef __WINNT__
113#include <time.h>
114#endif
115/*
116 * __TIME__
117 * Expand the current time (GMT).
118 */
119static void JX9_TIME_Const(jx9_value *pVal, void *pUnused)
120{
121 Sytm sTm;
122#ifdef __WINNT__
123 SYSTEMTIME sOS;
124 GetSystemTime(&sOS);
125 SYSTEMTIME_TO_SYTM(&sOS, &sTm);
126#else
127 struct tm *pTm;
128 time_t t;
129 time(&t);
130 pTm = gmtime(&t);
131 STRUCT_TM_TO_SYTM(pTm, &sTm);
132#endif
133 SXUNUSED(pUnused); /* cc warning */
134 /* Expand */
135 jx9_value_string_format(pVal, "%02d:%02d:%02d", sTm.tm_hour, sTm.tm_min, sTm.tm_sec);
136}
137/*
138 * __DATE__
139 * Expand the current date in the ISO-8601 format.
140 */
141static void JX9_DATE_Const(jx9_value *pVal, void *pUnused)
142{
143 Sytm sTm;
144#ifdef __WINNT__
145 SYSTEMTIME sOS;
146 GetSystemTime(&sOS);
147 SYSTEMTIME_TO_SYTM(&sOS, &sTm);
148#else
149 struct tm *pTm;
150 time_t t;
151 time(&t);
152 pTm = gmtime(&t);
153 STRUCT_TM_TO_SYTM(pTm, &sTm);
154#endif
155 SXUNUSED(pUnused); /* cc warning */
156 /* Expand */
157 jx9_value_string_format(pVal, "%04d-%02d-%02d", sTm.tm_year, sTm.tm_mon+1, sTm.tm_mday);
158}
159/*
160 * __FILE__
161 * Path of the processed script.
162 */
163static void JX9_FILE_Const(jx9_value *pVal, void *pUserData)
164{
165 jx9_vm *pVm = (jx9_vm *)pUserData;
166 SyString *pFile;
167 /* Peek the top entry */
168 pFile = (SyString *)SySetPeek(&pVm->aFiles);
169 if( pFile == 0 ){
170 /* Expand the magic word: ":MEMORY:" */
171 jx9_value_string(pVal, ":MEMORY:", (int)sizeof(":MEMORY:")-1);
172 }else{
173 jx9_value_string(pVal, pFile->zString, pFile->nByte);
174 }
175}
176/*
177 * __DIR__
178 * Directory holding the processed script.
179 */
180static void JX9_DIR_Const(jx9_value *pVal, void *pUserData)
181{
182 jx9_vm *pVm = (jx9_vm *)pUserData;
183 SyString *pFile;
184 /* Peek the top entry */
185 pFile = (SyString *)SySetPeek(&pVm->aFiles);
186 if( pFile == 0 ){
187 /* Expand the magic word: ":MEMORY:" */
188 jx9_value_string(pVal, ":MEMORY:", (int)sizeof(":MEMORY:")-1);
189 }else{
190 if( pFile->nByte > 0 ){
191 const char *zDir;
192 int nLen;
193 zDir = jx9ExtractDirName(pFile->zString, (int)pFile->nByte, &nLen);
194 jx9_value_string(pVal, zDir, nLen);
195 }else{
196 /* Expand '.' as the current directory*/
197 jx9_value_string(pVal, ".", (int)sizeof(char));
198 }
199 }
200}
201/*
202 * E_ERROR
203 * Expands 1
204 */
205static void JX9_E_ERROR_Const(jx9_value *pVal, void *pUserData)
206{
207 jx9_value_int(pVal, 1);
208 SXUNUSED(pUserData);
209}
210/*
211 * E_WARNING
212 * Expands 2
213 */
214static void JX9_E_WARNING_Const(jx9_value *pVal, void *pUserData)
215{
216 jx9_value_int(pVal, 2);
217 SXUNUSED(pUserData);
218}
219/*
220 * E_PARSE
221 * Expands 4
222 */
223static void JX9_E_PARSE_Const(jx9_value *pVal, void *pUserData)
224{
225 jx9_value_int(pVal, 4);
226 SXUNUSED(pUserData);
227}
228/*
229 * E_NOTICE
230 * Expands 8
231 */
232static void JX9_E_NOTICE_Const(jx9_value *pVal, void *pUserData)
233{
234 jx9_value_int(pVal, 8);
235 SXUNUSED(pUserData);
236}
237/*
238 * CASE_LOWER
239 * Expands 0.
240 */
241static void JX9_CASE_LOWER_Const(jx9_value *pVal, void *pUserData)
242{
243 jx9_value_int(pVal, 0);
244 SXUNUSED(pUserData);
245}
246/*
247 * CASE_UPPER
248 * Expands 1.
249 */
250static void JX9_CASE_UPPER_Const(jx9_value *pVal, void *pUserData)
251{
252 jx9_value_int(pVal, 1);
253 SXUNUSED(pUserData);
254}
255/*
256 * STR_PAD_LEFT
257 * Expands 0.
258 */
259static void JX9_STR_PAD_LEFT_Const(jx9_value *pVal, void *pUserData)
260{
261 jx9_value_int(pVal, 0);
262 SXUNUSED(pUserData);
263}
264/*
265 * STR_PAD_RIGHT
266 * Expands 1.
267 */
268static void JX9_STR_PAD_RIGHT_Const(jx9_value *pVal, void *pUserData)
269{
270 jx9_value_int(pVal, 1);
271 SXUNUSED(pUserData);
272}
273/*
274 * STR_PAD_BOTH
275 * Expands 2.
276 */
277static void JX9_STR_PAD_BOTH_Const(jx9_value *pVal, void *pUserData)
278{
279 jx9_value_int(pVal, 2);
280 SXUNUSED(pUserData);
281}
282/*
283 * COUNT_NORMAL
284 * Expands 0
285 */
286static void JX9_COUNT_NORMAL_Const(jx9_value *pVal, void *pUserData)
287{
288 jx9_value_int(pVal, 0);
289 SXUNUSED(pUserData);
290}
291/*
292 * COUNT_RECURSIVE
293 * Expands 1.
294 */
295static void JX9_COUNT_RECURSIVE_Const(jx9_value *pVal, void *pUserData)
296{
297 jx9_value_int(pVal, 1);
298 SXUNUSED(pUserData);
299}
300/*
301 * SORT_ASC
302 * Expands 1.
303 */
304static void JX9_SORT_ASC_Const(jx9_value *pVal, void *pUserData)
305{
306 jx9_value_int(pVal, 1);
307 SXUNUSED(pUserData);
308}
309/*
310 * SORT_DESC
311 * Expands 2.
312 */
313static void JX9_SORT_DESC_Const(jx9_value *pVal, void *pUserData)
314{
315 jx9_value_int(pVal, 2);
316 SXUNUSED(pUserData);
317}
318/*
319 * SORT_REGULAR
320 * Expands 3.
321 */
322static void JX9_SORT_REG_Const(jx9_value *pVal, void *pUserData)
323{
324 jx9_value_int(pVal, 3);
325 SXUNUSED(pUserData);
326}
327/*
328 * SORT_NUMERIC
329 * Expands 4.
330 */
331static void JX9_SORT_NUMERIC_Const(jx9_value *pVal, void *pUserData)
332{
333 jx9_value_int(pVal, 4);
334 SXUNUSED(pUserData);
335}
336/*
337 * SORT_STRING
338 * Expands 5.
339 */
340static void JX9_SORT_STRING_Const(jx9_value *pVal, void *pUserData)
341{
342 jx9_value_int(pVal, 5);
343 SXUNUSED(pUserData);
344}
345/*
346 * JX9_ROUND_HALF_UP
347 * Expands 1.
348 */
349static void JX9_JX9_ROUND_HALF_UP_Const(jx9_value *pVal, void *pUserData)
350{
351 jx9_value_int(pVal, 1);
352 SXUNUSED(pUserData);
353}
354/*
355 * SJX9_ROUND_HALF_DOWN
356 * Expands 2.
357 */
358static void JX9_JX9_ROUND_HALF_DOWN_Const(jx9_value *pVal, void *pUserData)
359{
360 jx9_value_int(pVal, 2);
361 SXUNUSED(pUserData);
362}
363/*
364 * JX9_ROUND_HALF_EVEN
365 * Expands 3.
366 */
367static void JX9_JX9_ROUND_HALF_EVEN_Const(jx9_value *pVal, void *pUserData)
368{
369 jx9_value_int(pVal, 3);
370 SXUNUSED(pUserData);
371}
372/*
373 * JX9_ROUND_HALF_ODD
374 * Expands 4.
375 */
376static void JX9_JX9_ROUND_HALF_ODD_Const(jx9_value *pVal, void *pUserData)
377{
378 jx9_value_int(pVal, 4);
379 SXUNUSED(pUserData);
380}
381#ifdef JX9_ENABLE_MATH_FUNC
382/*
383 * PI
384 * Expand the value of pi.
385 */
386static void JX9_M_PI_Const(jx9_value *pVal, void *pUserData)
387{
388 SXUNUSED(pUserData); /* cc warning */
389 jx9_value_double(pVal, JX9_PI);
390}
391/*
392 * M_E
393 * Expand 2.7182818284590452354
394 */
395static void JX9_M_E_Const(jx9_value *pVal, void *pUserData)
396{
397 SXUNUSED(pUserData); /* cc warning */
398 jx9_value_double(pVal, 2.7182818284590452354);
399}
400/*
401 * M_LOG2E
402 * Expand 2.7182818284590452354
403 */
404static void JX9_M_LOG2E_Const(jx9_value *pVal, void *pUserData)
405{
406 SXUNUSED(pUserData); /* cc warning */
407 jx9_value_double(pVal, 1.4426950408889634074);
408}
409/*
410 * M_LOG10E
411 * Expand 0.4342944819032518276
412 */
413static void JX9_M_LOG10E_Const(jx9_value *pVal, void *pUserData)
414{
415 SXUNUSED(pUserData); /* cc warning */
416 jx9_value_double(pVal, 0.4342944819032518276);
417}
418/*
419 * M_LN2
420 * Expand 0.69314718055994530942
421 */
422static void JX9_M_LN2_Const(jx9_value *pVal, void *pUserData)
423{
424 SXUNUSED(pUserData); /* cc warning */
425 jx9_value_double(pVal, 0.69314718055994530942);
426}
427/*
428 * M_LN10
429 * Expand 2.30258509299404568402
430 */
431static void JX9_M_LN10_Const(jx9_value *pVal, void *pUserData)
432{
433 SXUNUSED(pUserData); /* cc warning */
434 jx9_value_double(pVal, 2.30258509299404568402);
435}
436/*
437 * M_PI_2
438 * Expand 1.57079632679489661923
439 */
440static void JX9_M_PI_2_Const(jx9_value *pVal, void *pUserData)
441{
442 SXUNUSED(pUserData); /* cc warning */
443 jx9_value_double(pVal, 1.57079632679489661923);
444}
445/*
446 * M_PI_4
447 * Expand 0.78539816339744830962
448 */
449static void JX9_M_PI_4_Const(jx9_value *pVal, void *pUserData)
450{
451 SXUNUSED(pUserData); /* cc warning */
452 jx9_value_double(pVal, 0.78539816339744830962);
453}
454/*
455 * M_1_PI
456 * Expand 0.31830988618379067154
457 */
458static void JX9_M_1_PI_Const(jx9_value *pVal, void *pUserData)
459{
460 SXUNUSED(pUserData); /* cc warning */
461 jx9_value_double(pVal, 0.31830988618379067154);
462}
463/*
464 * M_2_PI
465 * Expand 0.63661977236758134308
466 */
467static void JX9_M_2_PI_Const(jx9_value *pVal, void *pUserData)
468{
469 SXUNUSED(pUserData); /* cc warning */
470 jx9_value_double(pVal, 0.63661977236758134308);
471}
472/*
473 * M_SQRTPI
474 * Expand 1.77245385090551602729
475 */
476static void JX9_M_SQRTPI_Const(jx9_value *pVal, void *pUserData)
477{
478 SXUNUSED(pUserData); /* cc warning */
479 jx9_value_double(pVal, 1.77245385090551602729);
480}
481/*
482 * M_2_SQRTPI
483 * Expand 1.12837916709551257390
484 */
485static void JX9_M_2_SQRTPI_Const(jx9_value *pVal, void *pUserData)
486{
487 SXUNUSED(pUserData); /* cc warning */
488 jx9_value_double(pVal, 1.12837916709551257390);
489}
490/*
491 * M_SQRT2
492 * Expand 1.41421356237309504880
493 */
494static void JX9_M_SQRT2_Const(jx9_value *pVal, void *pUserData)
495{
496 SXUNUSED(pUserData); /* cc warning */
497 jx9_value_double(pVal, 1.41421356237309504880);
498}
499/*
500 * M_SQRT3
501 * Expand 1.73205080756887729352
502 */
503static void JX9_M_SQRT3_Const(jx9_value *pVal, void *pUserData)
504{
505 SXUNUSED(pUserData); /* cc warning */
506 jx9_value_double(pVal, 1.73205080756887729352);
507}
508/*
509 * M_SQRT1_2
510 * Expand 0.70710678118654752440
511 */
512static void JX9_M_SQRT1_2_Const(jx9_value *pVal, void *pUserData)
513{
514 SXUNUSED(pUserData); /* cc warning */
515 jx9_value_double(pVal, 0.70710678118654752440);
516}
517/*
518 * M_LNPI
519 * Expand 1.14472988584940017414
520 */
521static void JX9_M_LNPI_Const(jx9_value *pVal, void *pUserData)
522{
523 SXUNUSED(pUserData); /* cc warning */
524 jx9_value_double(pVal, 1.14472988584940017414);
525}
526/*
527 * M_EULER
528 * Expand 0.57721566490153286061
529 */
530static void JX9_M_EULER_Const(jx9_value *pVal, void *pUserData)
531{
532 SXUNUSED(pUserData); /* cc warning */
533 jx9_value_double(pVal, 0.57721566490153286061);
534}
535#endif /* JX9_DISABLE_BUILTIN_MATH */
536/*
537 * DATE_ATOM
538 * Expand Atom (example: 2005-08-15T15:52:01+00:00)
539 */
540static void JX9_DATE_ATOM_Const(jx9_value *pVal, void *pUserData)
541{
542 SXUNUSED(pUserData); /* cc warning */
543 jx9_value_string(pVal, "Y-m-d\\TH:i:sP", -1/*Compute length automatically*/);
544}
545/*
546 * DATE_COOKIE
547 * HTTP Cookies (example: Monday, 15-Aug-05 15:52:01 UTC)
548 */
549static void JX9_DATE_COOKIE_Const(jx9_value *pVal, void *pUserData)
550{
551 SXUNUSED(pUserData); /* cc warning */
552 jx9_value_string(pVal, "l, d-M-y H:i:s T", -1/*Compute length automatically*/);
553}
554/*
555 * DATE_ISO8601
556 * ISO-8601 (example: 2005-08-15T15:52:01+0000)
557 */
558static void JX9_DATE_ISO8601_Const(jx9_value *pVal, void *pUserData)
559{
560 SXUNUSED(pUserData); /* cc warning */
561 jx9_value_string(pVal, "Y-m-d\\TH:i:sO", -1/*Compute length automatically*/);
562}
563/*
564 * DATE_RFC822
565 * RFC 822 (example: Mon, 15 Aug 05 15:52:01 +0000)
566 */
567static void JX9_DATE_RFC822_Const(jx9_value *pVal, void *pUserData)
568{
569 SXUNUSED(pUserData); /* cc warning */
570 jx9_value_string(pVal, "D, d M y H:i:s O", -1/*Compute length automatically*/);
571}
572/*
573 * DATE_RFC850
574 * RFC 850 (example: Monday, 15-Aug-05 15:52:01 UTC)
575 */
576static void JX9_DATE_RFC850_Const(jx9_value *pVal, void *pUserData)
577{
578 SXUNUSED(pUserData); /* cc warning */
579 jx9_value_string(pVal, "l, d-M-y H:i:s T", -1/*Compute length automatically*/);
580}
581/*
582 * DATE_RFC1036
583 * RFC 1123 (example: Mon, 15 Aug 2005 15:52:01 +0000)
584 */
585static void JX9_DATE_RFC1036_Const(jx9_value *pVal, void *pUserData)
586{
587 SXUNUSED(pUserData); /* cc warning */
588 jx9_value_string(pVal, "D, d M y H:i:s O", -1/*Compute length automatically*/);
589}
590/*
591 * DATE_RFC1123
592 * RFC 1123 (example: Mon, 15 Aug 2005 15:52:01 +0000)
593 */
594static void JX9_DATE_RFC1123_Const(jx9_value *pVal, void *pUserData)
595{
596 SXUNUSED(pUserData); /* cc warning */
597 jx9_value_string(pVal, "D, d M Y H:i:s O", -1/*Compute length automatically*/);
598}
599/*
600 * DATE_RFC2822
601 * RFC 2822 (Mon, 15 Aug 2005 15:52:01 +0000)
602 */
603static void JX9_DATE_RFC2822_Const(jx9_value *pVal, void *pUserData)
604{
605 SXUNUSED(pUserData); /* cc warning */
606 jx9_value_string(pVal, "D, d M Y H:i:s O", -1/*Compute length automatically*/);
607}
608/*
609 * DATE_RSS
610 * RSS (Mon, 15 Aug 2005 15:52:01 +0000)
611 */
612static void JX9_DATE_RSS_Const(jx9_value *pVal, void *pUserData)
613{
614 SXUNUSED(pUserData); /* cc warning */
615 jx9_value_string(pVal, "D, d M Y H:i:s O", -1/*Compute length automatically*/);
616}
617/*
618 * DATE_W3C
619 * World Wide Web Consortium (example: 2005-08-15T15:52:01+00:00)
620 */
621static void JX9_DATE_W3C_Const(jx9_value *pVal, void *pUserData)
622{
623 SXUNUSED(pUserData); /* cc warning */
624 jx9_value_string(pVal, "Y-m-d\\TH:i:sP", -1/*Compute length automatically*/);
625}
626/*
627 * ENT_COMPAT
628 * Expand 0x01 (Must be a power of two)
629 */
630static void JX9_ENT_COMPAT_Const(jx9_value *pVal, void *pUserData)
631{
632 SXUNUSED(pUserData); /* cc warning */
633 jx9_value_int(pVal, 0x01);
634}
635/*
636 * ENT_QUOTES
637 * Expand 0x02 (Must be a power of two)
638 */
639static void JX9_ENT_QUOTES_Const(jx9_value *pVal, void *pUserData)
640{
641 SXUNUSED(pUserData); /* cc warning */
642 jx9_value_int(pVal, 0x02);
643}
644/*
645 * ENT_NOQUOTES
646 * Expand 0x04 (Must be a power of two)
647 */
648static void JX9_ENT_NOQUOTES_Const(jx9_value *pVal, void *pUserData)
649{
650 SXUNUSED(pUserData); /* cc warning */
651 jx9_value_int(pVal, 0x04);
652}
653/*
654 * ENT_IGNORE
655 * Expand 0x08 (Must be a power of two)
656 */
657static void JX9_ENT_IGNORE_Const(jx9_value *pVal, void *pUserData)
658{
659 SXUNUSED(pUserData); /* cc warning */
660 jx9_value_int(pVal, 0x08);
661}
662/*
663 * ENT_SUBSTITUTE
664 * Expand 0x10 (Must be a power of two)
665 */
666static void JX9_ENT_SUBSTITUTE_Const(jx9_value *pVal, void *pUserData)
667{
668 SXUNUSED(pUserData); /* cc warning */
669 jx9_value_int(pVal, 0x10);
670}
671/*
672 * ENT_DISALLOWED
673 * Expand 0x20 (Must be a power of two)
674 */
675static void JX9_ENT_DISALLOWED_Const(jx9_value *pVal, void *pUserData)
676{
677 SXUNUSED(pUserData); /* cc warning */
678 jx9_value_int(pVal, 0x20);
679}
680/*
681 * ENT_HTML401
682 * Expand 0x40 (Must be a power of two)
683 */
684static void JX9_ENT_HTML401_Const(jx9_value *pVal, void *pUserData)
685{
686 SXUNUSED(pUserData); /* cc warning */
687 jx9_value_int(pVal, 0x40);
688}
689/*
690 * ENT_XML1
691 * Expand 0x80 (Must be a power of two)
692 */
693static void JX9_ENT_XML1_Const(jx9_value *pVal, void *pUserData)
694{
695 SXUNUSED(pUserData); /* cc warning */
696 jx9_value_int(pVal, 0x80);
697}
698/*
699 * ENT_XHTML
700 * Expand 0x100 (Must be a power of two)
701 */
702static void JX9_ENT_XHTML_Const(jx9_value *pVal, void *pUserData)
703{
704 SXUNUSED(pUserData); /* cc warning */
705 jx9_value_int(pVal, 0x100);
706}
707/*
708 * ENT_HTML5
709 * Expand 0x200 (Must be a power of two)
710 */
711static void JX9_ENT_HTML5_Const(jx9_value *pVal, void *pUserData)
712{
713 SXUNUSED(pUserData); /* cc warning */
714 jx9_value_int(pVal, 0x200);
715}
716/*
717 * ISO-8859-1
718 * ISO_8859_1
719 * Expand 1
720 */
721static void JX9_ISO88591_Const(jx9_value *pVal, void *pUserData)
722{
723 SXUNUSED(pUserData); /* cc warning */
724 jx9_value_int(pVal, 1);
725}
726/*
727 * UTF-8
728 * UTF8
729 * Expand 2
730 */
731static void JX9_UTF8_Const(jx9_value *pVal, void *pUserData)
732{
733 SXUNUSED(pUserData); /* cc warning */
734 jx9_value_int(pVal, 1);
735}
736/*
737 * HTML_ENTITIES
738 * Expand 1
739 */
740static void JX9_HTML_ENTITIES_Const(jx9_value *pVal, void *pUserData)
741{
742 SXUNUSED(pUserData); /* cc warning */
743 jx9_value_int(pVal, 1);
744}
745/*
746 * HTML_SPECIALCHARS
747 * Expand 2
748 */
749static void JX9_HTML_SPECIALCHARS_Const(jx9_value *pVal, void *pUserData)
750{
751 SXUNUSED(pUserData); /* cc warning */
752 jx9_value_int(pVal, 2);
753}
754/*
755 * JX9_URL_SCHEME.
756 * Expand 1
757 */
758static void JX9_JX9_URL_SCHEME_Const(jx9_value *pVal, void *pUserData)
759{
760 SXUNUSED(pUserData); /* cc warning */
761 jx9_value_int(pVal, 1);
762}
763/*
764 * JX9_URL_HOST.
765 * Expand 2
766 */
767static void JX9_JX9_URL_HOST_Const(jx9_value *pVal, void *pUserData)
768{
769 SXUNUSED(pUserData); /* cc warning */
770 jx9_value_int(pVal, 2);
771}
772/*
773 * JX9_URL_PORT.
774 * Expand 3
775 */
776static void JX9_JX9_URL_PORT_Const(jx9_value *pVal, void *pUserData)
777{
778 SXUNUSED(pUserData); /* cc warning */
779 jx9_value_int(pVal, 3);
780}
781/*
782 * JX9_URL_USER.
783 * Expand 4
784 */
785static void JX9_JX9_URL_USER_Const(jx9_value *pVal, void *pUserData)
786{
787 SXUNUSED(pUserData); /* cc warning */
788 jx9_value_int(pVal, 4);
789}
790/*
791 * JX9_URL_PASS.
792 * Expand 5
793 */
794static void JX9_JX9_URL_PASS_Const(jx9_value *pVal, void *pUserData)
795{
796 SXUNUSED(pUserData); /* cc warning */
797 jx9_value_int(pVal, 5);
798}
799/*
800 * JX9_URL_PATH.
801 * Expand 6
802 */
803static void JX9_JX9_URL_PATH_Const(jx9_value *pVal, void *pUserData)
804{
805 SXUNUSED(pUserData); /* cc warning */
806 jx9_value_int(pVal, 6);
807}
808/*
809 * JX9_URL_QUERY.
810 * Expand 7
811 */
812static void JX9_JX9_URL_QUERY_Const(jx9_value *pVal, void *pUserData)
813{
814 SXUNUSED(pUserData); /* cc warning */
815 jx9_value_int(pVal, 7);
816}
817/*
818 * JX9_URL_FRAGMENT.
819 * Expand 8
820 */
821static void JX9_JX9_URL_FRAGMENT_Const(jx9_value *pVal, void *pUserData)
822{
823 SXUNUSED(pUserData); /* cc warning */
824 jx9_value_int(pVal, 8);
825}
826/*
827 * JX9_QUERY_RFC1738
828 * Expand 1
829 */
830static void JX9_JX9_QUERY_RFC1738_Const(jx9_value *pVal, void *pUserData)
831{
832 SXUNUSED(pUserData); /* cc warning */
833 jx9_value_int(pVal, 1);
834}
835/*
836 * JX9_QUERY_RFC3986
837 * Expand 1
838 */
839static void JX9_JX9_QUERY_RFC3986_Const(jx9_value *pVal, void *pUserData)
840{
841 SXUNUSED(pUserData); /* cc warning */
842 jx9_value_int(pVal, 2);
843}
844/*
845 * FNM_NOESCAPE
846 * Expand 0x01 (Must be a power of two)
847 */
848static void JX9_FNM_NOESCAPE_Const(jx9_value *pVal, void *pUserData)
849{
850 SXUNUSED(pUserData); /* cc warning */
851 jx9_value_int(pVal, 0x01);
852}
853/*
854 * FNM_PATHNAME
855 * Expand 0x02 (Must be a power of two)
856 */
857static void JX9_FNM_PATHNAME_Const(jx9_value *pVal, void *pUserData)
858{
859 SXUNUSED(pUserData); /* cc warning */
860 jx9_value_int(pVal, 0x02);
861}
862/*
863 * FNM_PERIOD
864 * Expand 0x04 (Must be a power of two)
865 */
866static void JX9_FNM_PERIOD_Const(jx9_value *pVal, void *pUserData)
867{
868 SXUNUSED(pUserData); /* cc warning */
869 jx9_value_int(pVal, 0x04);
870}
871/*
872 * FNM_CASEFOLD
873 * Expand 0x08 (Must be a power of two)
874 */
875static void JX9_FNM_CASEFOLD_Const(jx9_value *pVal, void *pUserData)
876{
877 SXUNUSED(pUserData); /* cc warning */
878 jx9_value_int(pVal, 0x08);
879}
880/*
881 * PATHINFO_DIRNAME
882 * Expand 1.
883 */
884static void JX9_PATHINFO_DIRNAME_Const(jx9_value *pVal, void *pUserData)
885{
886 SXUNUSED(pUserData); /* cc warning */
887 jx9_value_int(pVal, 1);
888}
889/*
890 * PATHINFO_BASENAME
891 * Expand 2.
892 */
893static void JX9_PATHINFO_BASENAME_Const(jx9_value *pVal, void *pUserData)
894{
895 SXUNUSED(pUserData); /* cc warning */
896 jx9_value_int(pVal, 2);
897}
898/*
899 * PATHINFO_EXTENSION
900 * Expand 3.
901 */
902static void JX9_PATHINFO_EXTENSION_Const(jx9_value *pVal, void *pUserData)
903{
904 SXUNUSED(pUserData); /* cc warning */
905 jx9_value_int(pVal, 3);
906}
907/*
908 * PATHINFO_FILENAME
909 * Expand 4.
910 */
911static void JX9_PATHINFO_FILENAME_Const(jx9_value *pVal, void *pUserData)
912{
913 SXUNUSED(pUserData); /* cc warning */
914 jx9_value_int(pVal, 4);
915}
916/*
917 * ASSERT_ACTIVE.
918 * Expand the value of JX9_ASSERT_ACTIVE defined in jx9Int.h
919 */
920static void JX9_ASSERT_ACTIVE_Const(jx9_value *pVal, void *pUserData)
921{
922 SXUNUSED(pUserData); /* cc warning */
923 jx9_value_int(pVal, JX9_ASSERT_DISABLE);
924}
925/*
926 * ASSERT_WARNING.
927 * Expand the value of JX9_ASSERT_WARNING defined in jx9Int.h
928 */
929static void JX9_ASSERT_WARNING_Const(jx9_value *pVal, void *pUserData)
930{
931 SXUNUSED(pUserData); /* cc warning */
932 jx9_value_int(pVal, JX9_ASSERT_WARNING);
933}
934/*
935 * ASSERT_BAIL.
936 * Expand the value of JX9_ASSERT_BAIL defined in jx9Int.h
937 */
938static void JX9_ASSERT_BAIL_Const(jx9_value *pVal, void *pUserData)
939{
940 SXUNUSED(pUserData); /* cc warning */
941 jx9_value_int(pVal, JX9_ASSERT_BAIL);
942}
943/*
944 * ASSERT_QUIET_EVAL.
945 * Expand the value of JX9_ASSERT_QUIET_EVAL defined in jx9Int.h
946 */
947static void JX9_ASSERT_QUIET_EVAL_Const(jx9_value *pVal, void *pUserData)
948{
949 SXUNUSED(pUserData); /* cc warning */
950 jx9_value_int(pVal, JX9_ASSERT_QUIET_EVAL);
951}
952/*
953 * ASSERT_CALLBACK.
954 * Expand the value of JX9_ASSERT_CALLBACK defined in jx9Int.h
955 */
956static void JX9_ASSERT_CALLBACK_Const(jx9_value *pVal, void *pUserData)
957{
958 SXUNUSED(pUserData); /* cc warning */
959 jx9_value_int(pVal, JX9_ASSERT_CALLBACK);
960}
961/*
962 * SEEK_SET.
963 * Expand 0
964 */
965static void JX9_SEEK_SET_Const(jx9_value *pVal, void *pUserData)
966{
967 SXUNUSED(pUserData); /* cc warning */
968 jx9_value_int(pVal, 0);
969}
970/*
971 * SEEK_CUR.
972 * Expand 1
973 */
974static void JX9_SEEK_CUR_Const(jx9_value *pVal, void *pUserData)
975{
976 SXUNUSED(pUserData); /* cc warning */
977 jx9_value_int(pVal, 1);
978}
979/*
980 * SEEK_END.
981 * Expand 2
982 */
983static void JX9_SEEK_END_Const(jx9_value *pVal, void *pUserData)
984{
985 SXUNUSED(pUserData); /* cc warning */
986 jx9_value_int(pVal, 2);
987}
988/*
989 * LOCK_SH.
990 * Expand 2
991 */
992static void JX9_LOCK_SH_Const(jx9_value *pVal, void *pUserData)
993{
994 SXUNUSED(pUserData); /* cc warning */
995 jx9_value_int(pVal, 1);
996}
997/*
998 * LOCK_NB.
999 * Expand 5
1000 */
1001static void JX9_LOCK_NB_Const(jx9_value *pVal, void *pUserData)
1002{
1003 SXUNUSED(pUserData); /* cc warning */
1004 jx9_value_int(pVal, 5);
1005}
1006/*
1007 * LOCK_EX.
1008 * Expand 0x01 (MUST BE A POWER OF TWO)
1009 */
1010static void JX9_LOCK_EX_Const(jx9_value *pVal, void *pUserData)
1011{
1012 SXUNUSED(pUserData); /* cc warning */
1013 jx9_value_int(pVal, 0x01);
1014}
1015/*
1016 * LOCK_UN.
1017 * Expand 0
1018 */
1019static void JX9_LOCK_UN_Const(jx9_value *pVal, void *pUserData)
1020{
1021 SXUNUSED(pUserData); /* cc warning */
1022 jx9_value_int(pVal, 0);
1023}
1024/*
1025 * FILE_USE_INC_PATH
1026 * Expand 0x01 (Must be a power of two)
1027 */
1028static void JX9_FILE_USE_INCLUDE_PATH_Const(jx9_value *pVal, void *pUserData)
1029{
1030 SXUNUSED(pUserData); /* cc warning */
1031 jx9_value_int(pVal, 0x1);
1032}
1033/*
1034 * FILE_IGN_NL
1035 * Expand 0x02 (Must be a power of two)
1036 */
1037static void JX9_FILE_IGNORE_NEW_LINES_Const(jx9_value *pVal, void *pUserData)
1038{
1039 SXUNUSED(pUserData); /* cc warning */
1040 jx9_value_int(pVal, 0x2);
1041}
1042/*
1043 * FILE_SKIP_EL
1044 * Expand 0x04 (Must be a power of two)
1045 */
1046static void JX9_FILE_SKIP_EMPTY_LINES_Const(jx9_value *pVal, void *pUserData)
1047{
1048 SXUNUSED(pUserData); /* cc warning */
1049 jx9_value_int(pVal, 0x4);
1050}
1051/*
1052 * FILE_APPEND
1053 * Expand 0x08 (Must be a power of two)
1054 */
1055static void JX9_FILE_APPEND_Const(jx9_value *pVal, void *pUserData)
1056{
1057 SXUNUSED(pUserData); /* cc warning */
1058 jx9_value_int(pVal, 0x08);
1059}
1060/*
1061 * SCANDIR_SORT_ASCENDING
1062 * Expand 0
1063 */
1064static void JX9_SCANDIR_SORT_ASCENDING_Const(jx9_value *pVal, void *pUserData)
1065{
1066 SXUNUSED(pUserData); /* cc warning */
1067 jx9_value_int(pVal, 0);
1068}
1069/*
1070 * SCANDIR_SORT_DESCENDING
1071 * Expand 1
1072 */
1073static void JX9_SCANDIR_SORT_DESCENDING_Const(jx9_value *pVal, void *pUserData)
1074{
1075 SXUNUSED(pUserData); /* cc warning */
1076 jx9_value_int(pVal, 1);
1077}
1078/*
1079 * SCANDIR_SORT_NONE
1080 * Expand 2
1081 */
1082static void JX9_SCANDIR_SORT_NONE_Const(jx9_value *pVal, void *pUserData)
1083{
1084 SXUNUSED(pUserData); /* cc warning */
1085 jx9_value_int(pVal, 2);
1086}
1087/*
1088 * GLOB_MARK
1089 * Expand 0x01 (must be a power of two)
1090 */
1091static void JX9_GLOB_MARK_Const(jx9_value *pVal, void *pUserData)
1092{
1093 SXUNUSED(pUserData); /* cc warning */
1094 jx9_value_int(pVal, 0x01);
1095}
1096/*
1097 * GLOB_NOSORT
1098 * Expand 0x02 (must be a power of two)
1099 */
1100static void JX9_GLOB_NOSORT_Const(jx9_value *pVal, void *pUserData)
1101{
1102 SXUNUSED(pUserData); /* cc warning */
1103 jx9_value_int(pVal, 0x02);
1104}
1105/*
1106 * GLOB_NOCHECK
1107 * Expand 0x04 (must be a power of two)
1108 */
1109static void JX9_GLOB_NOCHECK_Const(jx9_value *pVal, void *pUserData)
1110{
1111 SXUNUSED(pUserData); /* cc warning */
1112 jx9_value_int(pVal, 0x04);
1113}
1114/*
1115 * GLOB_NOESCAPE
1116 * Expand 0x08 (must be a power of two)
1117 */
1118static void JX9_GLOB_NOESCAPE_Const(jx9_value *pVal, void *pUserData)
1119{
1120 SXUNUSED(pUserData); /* cc warning */
1121 jx9_value_int(pVal, 0x08);
1122}
1123/*
1124 * GLOB_BRACE
1125 * Expand 0x10 (must be a power of two)
1126 */
1127static void JX9_GLOB_BRACE_Const(jx9_value *pVal, void *pUserData)
1128{
1129 SXUNUSED(pUserData); /* cc warning */
1130 jx9_value_int(pVal, 0x10);
1131}
1132/*
1133 * GLOB_ONLYDIR
1134 * Expand 0x20 (must be a power of two)
1135 */
1136static void JX9_GLOB_ONLYDIR_Const(jx9_value *pVal, void *pUserData)
1137{
1138 SXUNUSED(pUserData); /* cc warning */
1139 jx9_value_int(pVal, 0x20);
1140}
1141/*
1142 * GLOB_ERR
1143 * Expand 0x40 (must be a power of two)
1144 */
1145static void JX9_GLOB_ERR_Const(jx9_value *pVal, void *pUserData)
1146{
1147 SXUNUSED(pUserData); /* cc warning */
1148 jx9_value_int(pVal, 0x40);
1149}
1150/*
1151 * STDIN
1152 * Expand the STDIN handle as a resource.
1153 */
1154static void JX9_STDIN_Const(jx9_value *pVal, void *pUserData)
1155{
1156 jx9_vm *pVm = (jx9_vm *)pUserData;
1157 void *pResource;
1158 pResource = jx9ExportStdin(pVm);
1159 jx9_value_resource(pVal, pResource);
1160}
1161/*
1162 * STDOUT
1163 * Expand the STDOUT handle as a resource.
1164 */
1165static void JX9_STDOUT_Const(jx9_value *pVal, void *pUserData)
1166{
1167 jx9_vm *pVm = (jx9_vm *)pUserData;
1168 void *pResource;
1169 pResource = jx9ExportStdout(pVm);
1170 jx9_value_resource(pVal, pResource);
1171}
1172/*
1173 * STDERR
1174 * Expand the STDERR handle as a resource.
1175 */
1176static void JX9_STDERR_Const(jx9_value *pVal, void *pUserData)
1177{
1178 jx9_vm *pVm = (jx9_vm *)pUserData;
1179 void *pResource;
1180 pResource = jx9ExportStderr(pVm);
1181 jx9_value_resource(pVal, pResource);
1182}
1183/*
1184 * INI_SCANNER_NORMAL
1185 * Expand 1
1186 */
1187static void JX9_INI_SCANNER_NORMAL_Const(jx9_value *pVal, void *pUserData)
1188{
1189 SXUNUSED(pUserData); /* cc warning */
1190 jx9_value_int(pVal, 1);
1191}
1192/*
1193 * INI_SCANNER_RAW
1194 * Expand 2
1195 */
1196static void JX9_INI_SCANNER_RAW_Const(jx9_value *pVal, void *pUserData)
1197{
1198 SXUNUSED(pUserData); /* cc warning */
1199 jx9_value_int(pVal, 2);
1200}
1201/*
1202 * EXTR_OVERWRITE
1203 * Expand 0x01 (Must be a power of two)
1204 */
1205static void JX9_EXTR_OVERWRITE_Const(jx9_value *pVal, void *pUserData)
1206{
1207 SXUNUSED(pUserData); /* cc warning */
1208 jx9_value_int(pVal, 0x1);
1209}
1210/*
1211 * EXTR_SKIP
1212 * Expand 0x02 (Must be a power of two)
1213 */
1214static void JX9_EXTR_SKIP_Const(jx9_value *pVal, void *pUserData)
1215{
1216 SXUNUSED(pUserData); /* cc warning */
1217 jx9_value_int(pVal, 0x2);
1218}
1219/*
1220 * EXTR_PREFIX_SAME
1221 * Expand 0x04 (Must be a power of two)
1222 */
1223static void JX9_EXTR_PREFIX_SAME_Const(jx9_value *pVal, void *pUserData)
1224{
1225 SXUNUSED(pUserData); /* cc warning */
1226 jx9_value_int(pVal, 0x4);
1227}
1228/*
1229 * EXTR_PREFIX_ALL
1230 * Expand 0x08 (Must be a power of two)
1231 */
1232static void JX9_EXTR_PREFIX_ALL_Const(jx9_value *pVal, void *pUserData)
1233{
1234 SXUNUSED(pUserData); /* cc warning */
1235 jx9_value_int(pVal, 0x8);
1236}
1237/*
1238 * EXTR_PREFIX_INVALID
1239 * Expand 0x10 (Must be a power of two)
1240 */
1241static void JX9_EXTR_PREFIX_INVALID_Const(jx9_value *pVal, void *pUserData)
1242{
1243 SXUNUSED(pUserData); /* cc warning */
1244 jx9_value_int(pVal, 0x10);
1245}
1246/*
1247 * EXTR_IF_EXISTS
1248 * Expand 0x20 (Must be a power of two)
1249 */
1250static void JX9_EXTR_IF_EXISTS_Const(jx9_value *pVal, void *pUserData)
1251{
1252 SXUNUSED(pUserData); /* cc warning */
1253 jx9_value_int(pVal, 0x20);
1254}
1255/*
1256 * EXTR_PREFIX_IF_EXISTS
1257 * Expand 0x40 (Must be a power of two)
1258 */
1259static void JX9_EXTR_PREFIX_IF_EXISTS_Const(jx9_value *pVal, void *pUserData)
1260{
1261 SXUNUSED(pUserData); /* cc warning */
1262 jx9_value_int(pVal, 0x40);
1263}
1264/*
1265 * Table of built-in constants.
1266 */
1267static const jx9_builtin_constant aBuiltIn[] = {
1268 {"JX9_VERSION", JX9_VER_Const },
1269 {"JX9_ENGINE", JX9_VER_Const },
1270 {"__JX9__", JX9_VER_Const },
1271 {"JX9_OS", JX9_OS_Const },
1272 {"__OS__", JX9_OS_Const },
1273 {"JX9_EOL", JX9_EOL_Const },
1274 {"JX9_INT_MAX", JX9_INTMAX_Const },
1275 {"MAXINT", JX9_INTMAX_Const },
1276 {"JX9_INT_SIZE", JX9_INTSIZE_Const },
1277 {"PATH_SEPARATOR", JX9_PATHSEP_Const },
1278 {"DIRECTORY_SEPARATOR", JX9_DIRSEP_Const },
1279 {"DIR_SEP", JX9_DIRSEP_Const },
1280 {"__TIME__", JX9_TIME_Const },
1281 {"__DATE__", JX9_DATE_Const },
1282 {"__FILE__", JX9_FILE_Const },
1283 {"__DIR__", JX9_DIR_Const },
1284 {"E_ERROR", JX9_E_ERROR_Const },
1285 {"E_WARNING", JX9_E_WARNING_Const},
1286 {"E_PARSE", JX9_E_PARSE_Const },
1287 {"E_NOTICE", JX9_E_NOTICE_Const },
1288 {"CASE_LOWER", JX9_CASE_LOWER_Const },
1289 {"CASE_UPPER", JX9_CASE_UPPER_Const },
1290 {"STR_PAD_LEFT", JX9_STR_PAD_LEFT_Const },
1291 {"STR_PAD_RIGHT", JX9_STR_PAD_RIGHT_Const},
1292 {"STR_PAD_BOTH", JX9_STR_PAD_BOTH_Const },
1293 {"COUNT_NORMAL", JX9_COUNT_NORMAL_Const },
1294 {"COUNT_RECURSIVE", JX9_COUNT_RECURSIVE_Const },
1295 {"SORT_ASC", JX9_SORT_ASC_Const },
1296 {"SORT_DESC", JX9_SORT_DESC_Const },
1297 {"SORT_REGULAR", JX9_SORT_REG_Const },
1298 {"SORT_NUMERIC", JX9_SORT_NUMERIC_Const },
1299 {"SORT_STRING", JX9_SORT_STRING_Const },
1300 {"JX9_ROUND_HALF_DOWN", JX9_JX9_ROUND_HALF_DOWN_Const },
1301 {"JX9_ROUND_HALF_EVEN", JX9_JX9_ROUND_HALF_EVEN_Const },
1302 {"JX9_ROUND_HALF_UP", JX9_JX9_ROUND_HALF_UP_Const },
1303 {"JX9_ROUND_HALF_ODD", JX9_JX9_ROUND_HALF_ODD_Const },
1304#ifdef JX9_ENABLE_MATH_FUNC
1305 {"PI", JX9_M_PI_Const },
1306 {"M_E", JX9_M_E_Const },
1307 {"M_LOG2E", JX9_M_LOG2E_Const },
1308 {"M_LOG10E", JX9_M_LOG10E_Const },
1309 {"M_LN2", JX9_M_LN2_Const },
1310 {"M_LN10", JX9_M_LN10_Const },
1311 {"M_PI_2", JX9_M_PI_2_Const },
1312 {"M_PI_4", JX9_M_PI_4_Const },
1313 {"M_1_PI", JX9_M_1_PI_Const },
1314 {"M_2_PI", JX9_M_2_PI_Const },
1315 {"M_SQRTPI", JX9_M_SQRTPI_Const },
1316 {"M_2_SQRTPI", JX9_M_2_SQRTPI_Const },
1317 {"M_SQRT2", JX9_M_SQRT2_Const },
1318 {"M_SQRT3", JX9_M_SQRT3_Const },
1319 {"M_SQRT1_2", JX9_M_SQRT1_2_Const },
1320 {"M_LNPI", JX9_M_LNPI_Const },
1321 {"M_EULER", JX9_M_EULER_Const },
1322#endif /* JX9_ENABLE_MATH_FUNC */
1323 {"DATE_ATOM", JX9_DATE_ATOM_Const },
1324 {"DATE_COOKIE", JX9_DATE_COOKIE_Const },
1325 {"DATE_ISO8601", JX9_DATE_ISO8601_Const },
1326 {"DATE_RFC822", JX9_DATE_RFC822_Const },
1327 {"DATE_RFC850", JX9_DATE_RFC850_Const },
1328 {"DATE_RFC1036", JX9_DATE_RFC1036_Const },
1329 {"DATE_RFC1123", JX9_DATE_RFC1123_Const },
1330 {"DATE_RFC2822", JX9_DATE_RFC2822_Const },
1331 {"DATE_RFC3339", JX9_DATE_ATOM_Const },
1332 {"DATE_RSS", JX9_DATE_RSS_Const },
1333 {"DATE_W3C", JX9_DATE_W3C_Const },
1334 {"ENT_COMPAT", JX9_ENT_COMPAT_Const },
1335 {"ENT_QUOTES", JX9_ENT_QUOTES_Const },
1336 {"ENT_NOQUOTES", JX9_ENT_NOQUOTES_Const },
1337 {"ENT_IGNORE", JX9_ENT_IGNORE_Const },
1338 {"ENT_SUBSTITUTE", JX9_ENT_SUBSTITUTE_Const},
1339 {"ENT_DISALLOWED", JX9_ENT_DISALLOWED_Const},
1340 {"ENT_HTML401", JX9_ENT_HTML401_Const },
1341 {"ENT_XML1", JX9_ENT_XML1_Const },
1342 {"ENT_XHTML", JX9_ENT_XHTML_Const },
1343 {"ENT_HTML5", JX9_ENT_HTML5_Const },
1344 {"ISO-8859-1", JX9_ISO88591_Const },
1345 {"ISO_8859_1", JX9_ISO88591_Const },
1346 {"UTF-8", JX9_UTF8_Const },
1347 {"UTF8", JX9_UTF8_Const },
1348 {"HTML_ENTITIES", JX9_HTML_ENTITIES_Const},
1349 {"HTML_SPECIALCHARS", JX9_HTML_SPECIALCHARS_Const },
1350 {"JX9_URL_SCHEME", JX9_JX9_URL_SCHEME_Const},
1351 {"JX9_URL_HOST", JX9_JX9_URL_HOST_Const},
1352 {"JX9_URL_PORT", JX9_JX9_URL_PORT_Const},
1353 {"JX9_URL_USER", JX9_JX9_URL_USER_Const},
1354 {"JX9_URL_PASS", JX9_JX9_URL_PASS_Const},
1355 {"JX9_URL_PATH", JX9_JX9_URL_PATH_Const},
1356 {"JX9_URL_QUERY", JX9_JX9_URL_QUERY_Const},
1357 {"JX9_URL_FRAGMENT", JX9_JX9_URL_FRAGMENT_Const},
1358 {"JX9_QUERY_RFC1738", JX9_JX9_QUERY_RFC1738_Const},
1359 {"JX9_QUERY_RFC3986", JX9_JX9_QUERY_RFC3986_Const},
1360 {"FNM_NOESCAPE", JX9_FNM_NOESCAPE_Const },
1361 {"FNM_PATHNAME", JX9_FNM_PATHNAME_Const },
1362 {"FNM_PERIOD", JX9_FNM_PERIOD_Const },
1363 {"FNM_CASEFOLD", JX9_FNM_CASEFOLD_Const },
1364 {"PATHINFO_DIRNAME", JX9_PATHINFO_DIRNAME_Const },
1365 {"PATHINFO_BASENAME", JX9_PATHINFO_BASENAME_Const },
1366 {"PATHINFO_EXTENSION", JX9_PATHINFO_EXTENSION_Const},
1367 {"PATHINFO_FILENAME", JX9_PATHINFO_FILENAME_Const },
1368 {"ASSERT_ACTIVE", JX9_ASSERT_ACTIVE_Const },
1369 {"ASSERT_WARNING", JX9_ASSERT_WARNING_Const },
1370 {"ASSERT_BAIL", JX9_ASSERT_BAIL_Const },
1371 {"ASSERT_QUIET_EVAL", JX9_ASSERT_QUIET_EVAL_Const },
1372 {"ASSERT_CALLBACK", JX9_ASSERT_CALLBACK_Const },
1373 {"SEEK_SET", JX9_SEEK_SET_Const },
1374 {"SEEK_CUR", JX9_SEEK_CUR_Const },
1375 {"SEEK_END", JX9_SEEK_END_Const },
1376 {"LOCK_EX", JX9_LOCK_EX_Const },
1377 {"LOCK_SH", JX9_LOCK_SH_Const },
1378 {"LOCK_NB", JX9_LOCK_NB_Const },
1379 {"LOCK_UN", JX9_LOCK_UN_Const },
1380 {"FILE_USE_INC_PATH", JX9_FILE_USE_INCLUDE_PATH_Const},
1381 {"FILE_IGN_NL", JX9_FILE_IGNORE_NEW_LINES_Const},
1382 {"FILE_SKIP_EL", JX9_FILE_SKIP_EMPTY_LINES_Const},
1383 {"FILE_APPEND", JX9_FILE_APPEND_Const },
1384 {"SCANDIR_SORT_ASC", JX9_SCANDIR_SORT_ASCENDING_Const },
1385 {"SCANDIR_SORT_DESC", JX9_SCANDIR_SORT_DESCENDING_Const },
1386 {"SCANDIR_SORT_NONE", JX9_SCANDIR_SORT_NONE_Const },
1387 {"GLOB_MARK", JX9_GLOB_MARK_Const },
1388 {"GLOB_NOSORT", JX9_GLOB_NOSORT_Const },
1389 {"GLOB_NOCHECK", JX9_GLOB_NOCHECK_Const },
1390 {"GLOB_NOESCAPE", JX9_GLOB_NOESCAPE_Const},
1391 {"GLOB_BRACE", JX9_GLOB_BRACE_Const },
1392 {"GLOB_ONLYDIR", JX9_GLOB_ONLYDIR_Const },
1393 {"GLOB_ERR", JX9_GLOB_ERR_Const },
1394 {"STDIN", JX9_STDIN_Const },
1395 {"stdin", JX9_STDIN_Const },
1396 {"STDOUT", JX9_STDOUT_Const },
1397 {"stdout", JX9_STDOUT_Const },
1398 {"STDERR", JX9_STDERR_Const },
1399 {"stderr", JX9_STDERR_Const },
1400 {"INI_SCANNER_NORMAL", JX9_INI_SCANNER_NORMAL_Const },
1401 {"INI_SCANNER_RAW", JX9_INI_SCANNER_RAW_Const },
1402 {"EXTR_OVERWRITE", JX9_EXTR_OVERWRITE_Const },
1403 {"EXTR_SKIP", JX9_EXTR_SKIP_Const },
1404 {"EXTR_PREFIX_SAME", JX9_EXTR_PREFIX_SAME_Const },
1405 {"EXTR_PREFIX_ALL", JX9_EXTR_PREFIX_ALL_Const },
1406 {"EXTR_PREFIX_INVALID", JX9_EXTR_PREFIX_INVALID_Const },
1407 {"EXTR_IF_EXISTS", JX9_EXTR_IF_EXISTS_Const },
1408 {"EXTR_PREFIX_IF_EXISTS", JX9_EXTR_PREFIX_IF_EXISTS_Const}
1409};
1410/*
1411 * Register the built-in constants defined above.
1412 */
1413JX9_PRIVATE void jx9RegisterBuiltInConstant(jx9_vm *pVm)
1414{
1415 sxu32 n;
1416 /*
1417 * Note that all built-in constants have access to the jx9 virtual machine
1418 * that trigger the constant invocation as their private data.
1419 */
1420 for( n = 0 ; n < SX_ARRAYSIZE(aBuiltIn) ; ++n ){
1421 jx9_create_constant(&(*pVm), aBuiltIn[n].zName, aBuiltIn[n].xExpand, &(*pVm));
1422 }
1423}