diff --git a/desktop/sources/scripts/commander.js b/desktop/sources/scripts/commander.js index 4f9d441..cfc6f34 100644 --- a/desktop/sources/scripts/commander.js +++ b/desktop/sources/scripts/commander.js @@ -34,7 +34,7 @@ function Commander (ronin) { } this.reindent = function () { - let val = this._input.value.replace(/\n/g, '').replace(/\( \(/g, '((').replace(/\) \)/g, '))').replace(/ {2}/g, ' ').trim() + let val = this._input.value.replace(/\n/g, '').replace(/ +(?= )/g, '').replace(/\( \(/g, '((').replace(/\) \)/g, '))').trim() let depth = 0 for (let i = 0; i < val.length; i++) { const c = val.charAt(i) diff --git a/desktop/sources/scripts/lisp.js b/desktop/sources/scripts/lisp.js index fe9b520..ed2a26a 100644 --- a/desktop/sources/scripts/lisp.js +++ b/desktop/sources/scripts/lisp.js @@ -20,9 +20,9 @@ function Lisp (input, lib) { const special = { include: (input, context) => { - const p = input[1].value - if (!fs.existsSync(p)) { console.warn('Source', p); return [] } - const file = fs.readFileSync(p, { encoding: 'utf-8' }) + if (!input[1].value || !fs.existsSync(input[1].value)) { console.warn('Source', input[1].value); return [] } + const file = fs.readFileSync(input[1].value, { encoding: 'utf-8' }) + console.log(input, context) return interpret(this.parse(file), context) }, let: function (input, context) { diff --git a/examples/include.lisp b/examples/include.lisp new file mode 100644 index 0000000..bb1fdb9 --- /dev/null +++ b/examples/include.lisp @@ -0,0 +1,4 @@ +; include +( + (include "../examples/recursive.lisp") + (echo line-color)) \ No newline at end of file diff --git a/examples/recursive.lisp b/examples/recursive.lisp index 7c4cd6c..fb7003f 100644 --- a/examples/recursive.lisp +++ b/examples/recursive.lisp @@ -1,17 +1,16 @@ ; recursive - ( - (clear) - (def line-color "red") + (clear) (defn rec - (v) - (if (gt v 0) - ((stroke (circle - (mul 5 v) - (mul 5 v) - (mul 5 v)) 1 line-color) - (rec (sub v 5)))) - ) - - (rec 100) -) \ No newline at end of file + (v) + (if + (gt v 0) + ( + (stroke + (circle + (mul 5 v) + (mul 5 v) + (mul 5 v)) 1 "red") + (rec + (sub v 5))))) + (rec 100)) \ No newline at end of file diff --git a/examples/run.lisp b/examples/run.lisp deleted file mode 100644 index 1877cf0..0000000 --- a/examples/run.lisp +++ /dev/null @@ -1,4 +0,0 @@ -( - (include "../examples/recursive.lisp") - (echo line-color) -) \ No newline at end of file