X-Git-Url: https://git.hcoop.net/jackhill/mal.git/blobdiff_plain/44aef1f4013c07ea9744870bed856425ebd3edc6..f87ea3e7419ec3f4d53acc3e5807e11618b2784f:/scala/step8_macros.scala diff --git a/scala/step8_macros.scala b/scala/step8_macros.scala index 04a8d47d..48d15c25 100644 --- a/scala/step8_macros.scala +++ b/scala/step8_macros.scala @@ -39,7 +39,8 @@ object step8_macros { def is_macro_call(ast: Any, env: Env): Boolean = { ast match { case ml: MalList => { - if (types._symbol_Q(ml(0)) && + if (ml.value.length > 0 && + types._symbol_Q(ml(0)) && env.find(ml(0).asInstanceOf[Symbol]) != null) { env.get(ml(0).asInstanceOf[Symbol]) match { case f: MalFunction => return f.ismacro @@ -92,6 +93,9 @@ object step8_macros { return eval_ast(ast, env) ast.asInstanceOf[MalList].value match { + case Nil => { + return ast + } case Symbol("def!") :: a1 :: a2 :: Nil => { return env.set(a1.asInstanceOf[Symbol], EVAL(a2, env)) }