From 55d6a409a3f3628d2e63513807b316e405c7e0e8 Mon Sep 17 00:00:00 2001 From: Quentin Leonetti Date: Sat, 13 Jul 2019 14:49:53 +0200 Subject: [PATCH 1/2] add run command --- desktop/sources/scripts/lisp.js | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/desktop/sources/scripts/lisp.js b/desktop/sources/scripts/lisp.js index c54763e..6ce5316 100644 --- a/desktop/sources/scripts/lisp.js +++ b/desktop/sources/scripts/lisp.js @@ -1,6 +1,9 @@ 'use strict' function Lisp (input, lib) { + const path = require('path') + const fs = require('fs') + const TYPES = { identifier: 0, number: 1, string: 2, bool: 3 } const Context = function (scope, parent) { this.scope = scope @@ -16,6 +19,13 @@ function Lisp (input, lib) { } const special = { + run: (input, context) => { + const file = fs.readFileSync( + path.resolve(input[1].value), + {encoding: "utf-8"}) + + return interpret(this.parse(file), context) + }, let: function (input, context) { const letContext = input[1].reduce(function (acc, x) { acc.scope[x[0].value] = interpret(x[1], context) @@ -47,6 +57,7 @@ function Lisp (input, lib) { } const interpret = function (input, context) { + console.log(input, context) if (context === undefined) { return interpret(input, new Context(lib)) } else if (input instanceof Array) { From 9bf643e1a12a830052e481ae5e50d5085512ca6a Mon Sep 17 00:00:00 2001 From: Quentin Leonetti Date: Sat, 13 Jul 2019 14:51:09 +0200 Subject: [PATCH 2/2] remove console.log --- desktop/sources/scripts/lisp.js | 1 - 1 file changed, 1 deletion(-) diff --git a/desktop/sources/scripts/lisp.js b/desktop/sources/scripts/lisp.js index 6ce5316..f30fde6 100644 --- a/desktop/sources/scripts/lisp.js +++ b/desktop/sources/scripts/lisp.js @@ -57,7 +57,6 @@ function Lisp (input, lib) { } const interpret = function (input, context) { - console.log(input, context) if (context === undefined) { return interpret(input, new Context(lib)) } else if (input instanceof Array) {