mirror of
https://github.com/kanaka/mal.git
synced 2024-09-20 01:57:09 +03:00
parent
3339bb6a17
commit
d3ec299408
@ -34,6 +34,7 @@ class Step3_env {
|
||||
|
||||
// apply
|
||||
var alst = switch (ast) { case MalList(lst): lst; case _: []; }
|
||||
if (alst.length == 0) { return ast; }
|
||||
|
||||
switch (alst[0]) {
|
||||
case MalSymbol("def!"):
|
||||
|
@ -35,6 +35,7 @@ class Step4_if_fn_do {
|
||||
|
||||
// apply
|
||||
var alst = _list(ast);
|
||||
if (alst.length == 0) { return ast; }
|
||||
|
||||
switch (alst[0]) {
|
||||
case MalSymbol("def!"):
|
||||
|
@ -36,6 +36,7 @@ class Step5_tco {
|
||||
|
||||
// apply
|
||||
var alst = _list(ast);
|
||||
if (alst.length == 0) { return ast; }
|
||||
|
||||
switch (alst[0]) {
|
||||
case MalSymbol("def!"):
|
||||
|
@ -36,6 +36,7 @@ class Step6_file {
|
||||
|
||||
// apply
|
||||
var alst = _list(ast);
|
||||
if (alst.length == 0) { return ast; }
|
||||
|
||||
switch (alst[0]) {
|
||||
case MalSymbol("def!"):
|
||||
|
@ -64,6 +64,7 @@ class Step7_quote {
|
||||
|
||||
// apply
|
||||
var alst = _list(ast);
|
||||
if (alst.length == 0) { return ast; }
|
||||
|
||||
switch (alst[0]) {
|
||||
case MalSymbol("def!"):
|
||||
|
@ -43,6 +43,7 @@ class Step8_macros {
|
||||
|
||||
static function is_macro(ast:MalType, env:Env) {
|
||||
return switch(ast) {
|
||||
case MalList([]): false;
|
||||
case MalList(a):
|
||||
var a0 = a[0];
|
||||
return symbol_Q(a0) &&
|
||||
@ -90,6 +91,7 @@ class Step8_macros {
|
||||
if (!list_Q(ast)) { return eval_ast(ast, env); }
|
||||
|
||||
var alst = _list(ast);
|
||||
if (alst.length == 0) { return ast; }
|
||||
switch (alst[0]) {
|
||||
case MalSymbol("def!"):
|
||||
return env.set(alst[1], EVAL(alst[2], env));
|
||||
|
@ -45,6 +45,7 @@ class Step9_try {
|
||||
|
||||
static function is_macro(ast:MalType, env:Env) {
|
||||
return switch(ast) {
|
||||
case MalList([]): false;
|
||||
case MalList(a):
|
||||
var a0 = a[0];
|
||||
return symbol_Q(a0) &&
|
||||
@ -92,6 +93,7 @@ class Step9_try {
|
||||
if (!list_Q(ast)) { return eval_ast(ast, env); }
|
||||
|
||||
var alst = _list(ast);
|
||||
if (alst.length == 0) { return ast; }
|
||||
switch (alst[0]) {
|
||||
case MalSymbol("def!"):
|
||||
return env.set(alst[1], EVAL(alst[2], env));
|
||||
|
@ -45,6 +45,7 @@ class StepA_mal {
|
||||
|
||||
static function is_macro(ast:MalType, env:Env) {
|
||||
return switch(ast) {
|
||||
case MalList([]): false;
|
||||
case MalList(a):
|
||||
var a0 = a[0];
|
||||
return symbol_Q(a0) &&
|
||||
@ -92,6 +93,7 @@ class StepA_mal {
|
||||
if (!list_Q(ast)) { return eval_ast(ast, env); }
|
||||
|
||||
var alst = _list(ast);
|
||||
if (alst.length == 0) { return ast; }
|
||||
switch (alst[0]) {
|
||||
case MalSymbol("def!"):
|
||||
return env.set(alst[1], EVAL(alst[2], env));
|
||||
|
Loading…
Reference in New Issue
Block a user