1
1
mirror of https://github.com/kanaka/mal.git synced 2024-09-19 09:38:28 +03:00

coffee, es6, js, mal, miniMAL: fix macro result evaluation

Issue #142
This commit is contained in:
Dov Murik 2016-01-25 21:21:31 -05:00
parent b1165f9178
commit bfa3dd3593
15 changed files with 24 additions and 18 deletions

View File

@ -47,8 +47,8 @@ EVAL = (ast, env) ->
if !types._list_Q ast then return eval_ast ast, env
# apply list
ast = macroexpand ast, env
if !types._list_Q ast then return ast
ast = macroexpand ast, env
if !types._list_Q ast then return eval_ast ast, env
[a0, a1, a2, a3] = ast
switch a0.name

View File

@ -47,8 +47,8 @@ EVAL = (ast, env) ->
if !types._list_Q ast then return eval_ast ast, env
# apply list
ast = macroexpand ast, env
if !types._list_Q ast then return ast
ast = macroexpand ast, env
if !types._list_Q ast then return eval_ast ast, env
[a0, a1, a2, a3] = ast
switch a0.name

View File

@ -47,8 +47,8 @@ EVAL = (ast, env) ->
if !types._list_Q ast then return eval_ast ast, env
# apply list
ast = macroexpand ast, env
if !types._list_Q ast then return ast
ast = macroexpand ast, env
if !types._list_Q ast then return eval_ast ast, env
[a0, a1, a2, a3] = ast
switch a0.name

View File

@ -64,7 +64,7 @@ const EVAL = (ast, env) => {
if (!_list_Q(ast)) { return eval_ast(ast, env) }
ast = macroexpand(ast, env)
if (!_list_Q(ast)) { return ast; }
if (!_list_Q(ast)) { return eval_ast(ast, env) }
const [a0, a1, a2, a3] = ast
const a0sym = _symbol_Q(a0) ? Symbol.keyFor(a0) : Symbol(':default')

View File

@ -64,7 +64,7 @@ const EVAL = (ast, env) => {
if (!_list_Q(ast)) { return eval_ast(ast, env) }
ast = macroexpand(ast, env)
if (!_list_Q(ast)) { return ast; }
if (!_list_Q(ast)) { return eval_ast(ast, env) }
const [a0, a1, a2, a3] = ast
const a0sym = _symbol_Q(a0) ? Symbol.keyFor(a0) : Symbol(':default')

View File

@ -64,7 +64,7 @@ const EVAL = (ast, env) => {
if (!_list_Q(ast)) { return eval_ast(ast, env) }
ast = macroexpand(ast, env)
if (!_list_Q(ast)) { return ast; }
if (!_list_Q(ast)) { return eval_ast(ast, env) }
const [a0, a1, a2, a3] = ast
const a0sym = _symbol_Q(a0) ? Symbol.keyFor(a0) : Symbol(':default')

View File

@ -78,7 +78,9 @@ function _EVAL(ast, env) {
// apply list
ast = macroexpand(ast, env);
if (!types._list_Q(ast)) { return ast; }
if (!types._list_Q(ast)) {
return eval_ast(ast, env);
}
var a0 = ast[0], a1 = ast[1], a2 = ast[2], a3 = ast[3];
switch (a0.value) {

View File

@ -78,7 +78,9 @@ function _EVAL(ast, env) {
// apply list
ast = macroexpand(ast, env);
if (!types._list_Q(ast)) { return ast; }
if (!types._list_Q(ast)) {
return eval_ast(ast, env);
}
var a0 = ast[0], a1 = ast[1], a2 = ast[2], a3 = ast[3];
switch (a0.value) {

View File

@ -79,7 +79,9 @@ function _EVAL(ast, env) {
// apply list
ast = macroexpand(ast, env);
if (!types._list_Q(ast)) { return ast; }
if (!types._list_Q(ast)) {
return eval_ast(ast, env);
}
var a0 = ast[0], a1 = ast[1], a2 = ast[2], a3 = ast[3];
switch (a0.value) {

View File

@ -74,7 +74,7 @@
;; apply list
(let* [ast (MACROEXPAND ast env)]
(if (not (list? ast))
ast
(eval-ast ast env)
(let* [a0 (first ast)]
(cond

View File

@ -74,7 +74,7 @@
;; apply list
(let* [ast (MACROEXPAND ast env)]
(if (not (list? ast))
ast
(eval-ast ast env)
(let* [a0 (first ast)]
(cond

View File

@ -74,7 +74,7 @@
;; apply list
(let* [ast (MACROEXPAND ast env)]
(if (not (list? ast))
ast
(eval-ast ast env)
(let* [a0 (first ast)]
(cond

View File

@ -73,7 +73,7 @@
["eval-ast", "ast", "env"],
["let", ["ast", ["macroexpand", "ast", "env"]],
["if", ["not", ["list?", "ast"]],
"ast",
["eval-ast", "ast", "env"],
["let", ["a0", ["get", ["first", "ast"], ["`", "val"]]],
["if", ["=", ["`", "def!"], "a0"],
["env-set", "env", ["nth", "ast", 1],

View File

@ -73,7 +73,7 @@
["eval-ast", "ast", "env"],
["let", ["ast", ["macroexpand", "ast", "env"]],
["if", ["not", ["list?", "ast"]],
"ast",
["eval-ast", "ast", "env"],
["let", ["a0", ["get", ["first", "ast"], ["`", "val"]]],
["if", ["=", ["`", "def!"], "a0"],
["env-set", "env", ["nth", "ast", 1],

View File

@ -73,7 +73,7 @@
["eval-ast", "ast", "env"],
["let", ["ast", ["macroexpand", "ast", "env"]],
["if", ["not", ["list?", "ast"]],
"ast",
["eval-ast", "ast", "env"],
["let", ["a0", ["get", ["first", "ast"], ["`", "val"]]],
["if", ["=", ["`", "def!"], "a0"],
["env-set", "env", ["nth", "ast", 1],