fez-lisp 1.6.42 → 1.6.44
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/types.js +16 -16
- package/src/utils.js +55 -0
package/package.json
CHANGED
package/src/types.js
CHANGED
@@ -1083,8 +1083,8 @@ export const SPECIAL_FORM_TYPES = {
|
|
1083
1083
|
[STATS]: {
|
1084
1084
|
retried: Infinity,
|
1085
1085
|
[SIGNATURE]: PLACEHOLDER,
|
1086
|
-
[TYPE_PROP]: [ATOM],
|
1087
|
-
[RETURNS]: [ATOM],
|
1086
|
+
[TYPE_PROP]: [ATOM, SPECIAL_NUMBER],
|
1087
|
+
[RETURNS]: [ATOM, SPECIAL_NUMBER],
|
1088
1088
|
[ARGUMENTS]: [],
|
1089
1089
|
[ARG_COUNT]: 0
|
1090
1090
|
}
|
@@ -1093,8 +1093,8 @@ export const SPECIAL_FORM_TYPES = {
|
|
1093
1093
|
[STATS]: {
|
1094
1094
|
retried: Infinity,
|
1095
1095
|
[SIGNATURE]: PLACEHOLDER,
|
1096
|
-
[TYPE_PROP]: [ATOM],
|
1097
|
-
[RETURNS]: [ATOM],
|
1096
|
+
[TYPE_PROP]: [ATOM, SPECIAL_NUMBER],
|
1097
|
+
[RETURNS]: [ATOM, SPECIAL_NUMBER],
|
1098
1098
|
[ARGUMENTS]: [],
|
1099
1099
|
[ARG_COUNT]: 0
|
1100
1100
|
}
|
@@ -1114,8 +1114,8 @@ export const SPECIAL_FORM_TYPES = {
|
|
1114
1114
|
[STATS]: {
|
1115
1115
|
retried: Infinity,
|
1116
1116
|
[SIGNATURE]: PLACEHOLDER,
|
1117
|
-
[TYPE_PROP]: [ATOM],
|
1118
|
-
[RETURNS]: [ATOM],
|
1117
|
+
[TYPE_PROP]: [ATOM, SPECIAL_NUMBER],
|
1118
|
+
[RETURNS]: [ATOM, SPECIAL_NUMBER],
|
1119
1119
|
|
1120
1120
|
[ARGUMENTS]: [],
|
1121
1121
|
[ARG_COUNT]: 0
|
@@ -1125,8 +1125,8 @@ export const SPECIAL_FORM_TYPES = {
|
|
1125
1125
|
[STATS]: {
|
1126
1126
|
retried: Infinity,
|
1127
1127
|
[SIGNATURE]: PLACEHOLDER,
|
1128
|
-
[TYPE_PROP]: [ATOM],
|
1129
|
-
[RETURNS]: [ATOM],
|
1128
|
+
[TYPE_PROP]: [ATOM, SPECIAL_NUMBER],
|
1129
|
+
[RETURNS]: [ATOM, SPECIAL_NUMBER],
|
1130
1130
|
[ARGUMENTS]: [],
|
1131
1131
|
[ARG_COUNT]: 0
|
1132
1132
|
}
|
@@ -1146,8 +1146,8 @@ export const SPECIAL_FORM_TYPES = {
|
|
1146
1146
|
[STATS]: {
|
1147
1147
|
retried: Infinity,
|
1148
1148
|
[SIGNATURE]: PLACEHOLDER,
|
1149
|
-
[TYPE_PROP]: [ATOM],
|
1150
|
-
[RETURNS]: [ATOM],
|
1149
|
+
[TYPE_PROP]: [ATOM, SPECIAL_NUMBER],
|
1150
|
+
[RETURNS]: [ATOM, SPECIAL_NUMBER],
|
1151
1151
|
[ARGUMENTS]: [],
|
1152
1152
|
[ARG_COUNT]: 0
|
1153
1153
|
}
|
@@ -1156,8 +1156,8 @@ export const SPECIAL_FORM_TYPES = {
|
|
1156
1156
|
[STATS]: {
|
1157
1157
|
retried: Infinity,
|
1158
1158
|
[SIGNATURE]: PLACEHOLDER,
|
1159
|
-
[TYPE_PROP]: [ATOM],
|
1160
|
-
[RETURNS]: [ATOM],
|
1159
|
+
[TYPE_PROP]: [ATOM, SPECIAL_NUMBER],
|
1160
|
+
[RETURNS]: [ATOM, SPECIAL_NUMBER],
|
1161
1161
|
[ARGUMENTS]: [],
|
1162
1162
|
[ARG_COUNT]: 0
|
1163
1163
|
}
|
@@ -1177,8 +1177,8 @@ export const SPECIAL_FORM_TYPES = {
|
|
1177
1177
|
[STATS]: {
|
1178
1178
|
retried: Infinity,
|
1179
1179
|
[SIGNATURE]: PLACEHOLDER,
|
1180
|
-
[TYPE_PROP]: [ATOM],
|
1181
|
-
[RETURNS]: [ATOM],
|
1180
|
+
[TYPE_PROP]: [ATOM, SPECIAL_NUMBER],
|
1181
|
+
[RETURNS]: [ATOM, SPECIAL_NUMBER],
|
1182
1182
|
[ARGUMENTS]: [],
|
1183
1183
|
[ARG_COUNT]: 0
|
1184
1184
|
}
|
@@ -1187,8 +1187,8 @@ export const SPECIAL_FORM_TYPES = {
|
|
1187
1187
|
[STATS]: {
|
1188
1188
|
retried: Infinity,
|
1189
1189
|
[SIGNATURE]: PLACEHOLDER,
|
1190
|
-
[TYPE_PROP]: [ATOM],
|
1191
|
-
[RETURNS]: [ATOM],
|
1190
|
+
[TYPE_PROP]: [ATOM, SPECIAL_NUMBER],
|
1191
|
+
[RETURNS]: [ATOM, SPECIAL_NUMBER],
|
1192
1192
|
[ARGUMENTS]: [],
|
1193
1193
|
[ARG_COUNT]: 0
|
1194
1194
|
}
|
package/src/utils.js
CHANGED
@@ -30,6 +30,14 @@ import { debugStackToString, startDebug, debug } from './debugger.js'
|
|
30
30
|
export const logError = (error) =>
|
31
31
|
console.log('\x1b[31m', `\n${error}\n`, '\x1b[0m')
|
32
32
|
export const logSuccess = (output) => console.log('\x1b[32m', output, '\x1b[0m')
|
33
|
+
export const logType = (type) => {
|
34
|
+
console.log('\n\x1b[34m')
|
35
|
+
console.log(type, '\n\x1b[0m')
|
36
|
+
}
|
37
|
+
export const logResult = (result) => {
|
38
|
+
console.log('\x1b[34m')
|
39
|
+
console.log(result, '\n\x1b[0m')
|
40
|
+
}
|
33
41
|
export const wrapInBracesString = (exp) => `(${stringifyArgs(exp)})`
|
34
42
|
export const logExp = function (exp, ...args) {
|
35
43
|
console.log(wrapInBracesString(exp), ...args)
|
@@ -365,12 +373,59 @@ export const isInputVariable = (x) =>
|
|
365
373
|
x[1][TYPE] === WORD &&
|
366
374
|
x[1][VALUE] === 'INPUT'
|
367
375
|
|
376
|
+
export const init = () => {
|
377
|
+
import('fs').then(({ writeFileSync }) => {
|
378
|
+
writeFileSync('main.lisp', '')
|
379
|
+
writeFileSync('types.lisp', '')
|
380
|
+
writeFileSync(
|
381
|
+
'main.js',
|
382
|
+
`import { compile, enhance, parse, LISP, UTILS } from 'fez-lisp'
|
383
|
+
import { readFileSync } from 'fs'
|
384
|
+
export const dev = (source, types) => {
|
385
|
+
try {
|
386
|
+
const parsed = parse(source)
|
387
|
+
const { evaluated, type, error } = UTILS.debug(
|
388
|
+
parsed,
|
389
|
+
true,
|
390
|
+
types ? types : undefined
|
391
|
+
)
|
392
|
+
if (error == null) {
|
393
|
+
if (type) {
|
394
|
+
UTILS.logType(type)
|
395
|
+
}
|
396
|
+
UTILS.logResult(LISP.serialise(evaluated))
|
397
|
+
} else UTILS.logError(error.message)
|
398
|
+
} catch (error) {
|
399
|
+
UTILS.logError(error.message)
|
400
|
+
}
|
401
|
+
}
|
402
|
+
export const comp = (source) =>
|
403
|
+
UTILS.logResult(
|
404
|
+
LISP.serialise(new Function('return ' + compile(enhance(parse(source))))())
|
405
|
+
)
|
406
|
+
const file = readFileSync('./main.lisp', 'utf-8')
|
407
|
+
switch (process.argv[2]) {
|
408
|
+
case 'comp':
|
409
|
+
comp(file)
|
410
|
+
break
|
411
|
+
case 'dev':
|
412
|
+
dev(file, readFileSync('./types.lisp', 'utf-8'))
|
413
|
+
break
|
414
|
+
}
|
415
|
+
`
|
416
|
+
)
|
417
|
+
})
|
418
|
+
}
|
419
|
+
|
368
420
|
export const UTILS = {
|
421
|
+
init,
|
369
422
|
debug,
|
370
423
|
startDebug,
|
371
424
|
debugStackToString,
|
372
425
|
handleUnbalancedQuotes,
|
373
426
|
handleUnbalancedParens,
|
427
|
+
logType,
|
428
|
+
logResult,
|
374
429
|
logError,
|
375
430
|
logSuccess,
|
376
431
|
formatErrorWithCallstack,
|