1
1
mirror of https://github.com/kanaka/mal.git synced 2024-09-21 02:27:10 +03:00

Update Elixir syntax & version to work with v1.5.x

This commit is contained in:
Michael Pope 2017-09-12 11:34:43 -07:00
parent ef7fc8cad5
commit e68e138f27
13 changed files with 29 additions and 29 deletions

View File

@ -75,7 +75,7 @@ defmodule Mal.Core do
def readline(prompt) do
IO.write(:stdio, prompt)
IO.read(:stdio, :line)
|> String.strip(?\n)
|> String.trim("\n")
end
defp convert_vector({type, ast, meta}) when type == :map do
@ -223,9 +223,9 @@ defmodule Mal.Core do
end
defp seq([nil]), do: nil
defp seq([{:list, [], meta}]), do: nil
defp seq([{:list, [], _meta}]), do: nil
defp seq([{:list, ast, meta}]), do: {:list, ast, meta}
defp seq([{:vector, [], meta}]), do: nil
defp seq([{:vector, [], _meta}]), do: nil
defp seq([{:vector, ast, meta}]), do: {:list, ast, meta}
defp seq([""]), do: nil
defp seq([s]), do: {:list, String.split(s, "", trim: true), nil}

View File

@ -1,12 +1,12 @@
defmodule Mix.Tasks.Step0Repl do
def run(_), do: loop
def run(_), do: loop()
defp loop do
Mal.Core.readline("user> ")
|> read_eval_print
|> IO.puts
loop
loop()
end
defp read(input) do

View File

@ -1,12 +1,12 @@
defmodule Mix.Tasks.Step1ReadPrint do
def run(_), do: loop
def run(_), do: loop()
defp loop do
Mal.Core.readline("user> ")
|> read_eval_print
|> IO.puts
loop
loop()
end
defp read(input) do

View File

@ -6,7 +6,7 @@ defmodule Mix.Tasks.Step2Eval do
"/" => &div/2
}
def run(_), do: loop
def run(_), do: loop()
defp loop do
IO.write(:stdio, "user> ")
@ -14,7 +14,7 @@ defmodule Mix.Tasks.Step2Eval do
|> read_eval_print
|> IO.puts
loop
loop()
end
defp eval_ast({:list, ast, meta}, env) when is_list(ast) do
@ -46,7 +46,7 @@ defmodule Mix.Tasks.Step2Eval do
Mal.Reader.read_str(input)
end
defp eval({:list, [], _} = empty_ast, env), do: empty_ast
defp eval({:list, [], _} = empty_ast, _env), do: empty_ast
defp eval({:list, ast, meta}, env), do: eval_list(ast, env, meta)
defp eval(ast, env), do: eval_ast(ast, env)

View File

@ -50,7 +50,7 @@ defmodule Mix.Tasks.Step3Env do
Mal.Reader.read_str(input)
end
defp eval_bindings([], _env), do: _env
defp eval_bindings([], env), do: env
defp eval_bindings([{:symbol, key}, binding | tail], env) do
evaluated = eval(binding, env)
Mal.Env.set(env, key, evaluated)
@ -58,7 +58,7 @@ defmodule Mix.Tasks.Step3Env do
end
defp eval_bindings(_bindings, _env), do: throw({:error, "Unbalanced let* bindings"})
defp eval({:list, [], _} = empty_ast, env), do: empty_ast
defp eval({:list, [], _} = empty_ast, _env), do: empty_ast
defp eval({:list, ast, meta}, env), do: eval_list(ast, env, meta)
defp eval(ast, env), do: eval_ast(ast, env)

View File

@ -59,7 +59,7 @@ defmodule Mix.Tasks.Step4IfFnDo do
Mal.Reader.read_str(input)
end
defp eval_bindings([], _env), do: _env
defp eval_bindings([], env), do: env
defp eval_bindings([{:symbol, key}, binding | tail], env) do
evaluated = eval(binding, env)
Mal.Env.set(env, key, evaluated)
@ -67,7 +67,7 @@ defmodule Mix.Tasks.Step4IfFnDo do
end
defp eval_bindings(_bindings, _env), do: throw({:error, "Unbalanced let* bindings"})
defp eval({:list, [], _} = empty_ast, env), do: empty_ast
defp eval({:list, [], _} = empty_ast, _env), do: empty_ast
defp eval({:list, ast, meta}, env), do: eval_list(ast, env, meta)
defp eval(ast, env), do: eval_ast(ast, env)

View File

@ -59,7 +59,7 @@ defmodule Mix.Tasks.Step5Tco do
Mal.Reader.read_str(input)
end
defp eval_bindings([], _env), do: _env
defp eval_bindings([], env), do: env
defp eval_bindings([{:symbol, key}, binding | tail], env) do
evaluated = eval(binding, env)
Mal.Env.set(env, key, evaluated)
@ -67,7 +67,7 @@ defmodule Mix.Tasks.Step5Tco do
end
defp eval_bindings(_bindings, _env), do: throw({:error, "Unbalanced let* bindings"})
defp eval({:list, [], _} = empty_ast, env), do: empty_ast
defp eval({:list, [], _} = empty_ast, _env), do: empty_ast
defp eval({:list, ast, meta}, env), do: eval_list(ast, env, meta)
defp eval(ast, env), do: eval_ast(ast, env)

View File

@ -82,7 +82,7 @@ defmodule Mix.Tasks.Step6File do
Mal.Reader.read_str(input)
end
defp eval_bindings([], _env), do: _env
defp eval_bindings([], env), do: env
defp eval_bindings([{:symbol, key}, binding | tail], env) do
evaluated = eval(binding, env)
Mal.Env.set(env, key, evaluated)
@ -90,7 +90,7 @@ defmodule Mix.Tasks.Step6File do
end
defp eval_bindings(_bindings, _env), do: throw({:error, "Unbalanced let* bindings"})
defp eval({:list, [], _} = empty_ast, env), do: empty_ast
defp eval({:list, [], _} = empty_ast, _env), do: empty_ast
defp eval({:list, ast, meta}, env), do: eval_list(ast, env, meta)
defp eval(ast, env), do: eval_ast(ast, env)

View File

@ -82,7 +82,7 @@ defmodule Mix.Tasks.Step7Quote do
Mal.Reader.read_str(input)
end
defp eval_bindings([], _env), do: _env
defp eval_bindings([], env), do: env
defp eval_bindings([{:symbol, key}, binding | tail], env) do
evaluated = eval(binding, env)
Mal.Env.set(env, key, evaluated)
@ -114,7 +114,7 @@ defmodule Mix.Tasks.Step7Quote do
end
defp quasiquote(ast, _env), do: list([{:symbol, "quote"}, ast])
defp eval({:list, [], _} = empty_ast, env), do: empty_ast
defp eval({:list, [], _} = empty_ast, _env), do: empty_ast
defp eval({:list, ast, meta}, env), do: eval_list(ast, env, meta)
defp eval(ast, env), do: eval_ast(ast, env)

View File

@ -105,7 +105,7 @@ defmodule Mix.Tasks.Step8Macros do
Mal.Reader.read_str(input)
end
defp eval_bindings([], _env), do: _env
defp eval_bindings([], env), do: env
defp eval_bindings([{:symbol, key}, binding | tail], env) do
evaluated = eval(binding, env)
Mal.Env.set(env, key, evaluated)
@ -159,7 +159,7 @@ defmodule Mix.Tasks.Step8Macros do
end
end
defp eval({:list, [], _} = empty_ast, env), do: empty_ast
defp eval({:list, [], _} = empty_ast, _env), do: empty_ast
defp eval({:list, _list, _meta} = ast, env) do
case macroexpand(ast, env) do
{:list, list, meta} -> eval_list(list, env, meta)

View File

@ -105,7 +105,7 @@ defmodule Mix.Tasks.Step9Try do
Mal.Reader.read_str(input)
end
defp eval_bindings([], _env), do: _env
defp eval_bindings([], env), do: env
defp eval_bindings([{:symbol, key}, binding | tail], env) do
evaluated = eval(binding, env)
Mal.Env.set(env, key, evaluated)
@ -159,7 +159,7 @@ defmodule Mix.Tasks.Step9Try do
end
end
defp eval({:list, [], _} = empty_ast, env), do: empty_ast
defp eval({:list, [], _} = empty_ast, _env), do: empty_ast
defp eval({:list, _list, _meta} = ast, env) do
case macroexpand(ast, env) do
{:list, list, meta} -> eval_list(list, env, meta)

View File

@ -124,7 +124,7 @@ defmodule Mix.Tasks.StepAMal do
Mal.Reader.read_str(input)
end
defp eval_bindings([], _env), do: _env
defp eval_bindings([], env), do: env
defp eval_bindings([{:symbol, key}, binding | tail], env) do
evaluated = eval(binding, env)
Mal.Env.set(env, key, evaluated)
@ -178,7 +178,7 @@ defmodule Mix.Tasks.StepAMal do
end
end
defp eval({:list, [], _} = empty_ast, env), do: empty_ast
defp eval({:list, [], _} = empty_ast, _env), do: empty_ast
defp eval({:list, _list, _meta} = ast, env) do
case macroexpand(ast, env) do
{:list, list, meta} -> eval_list(list, env, meta)

View File

@ -4,12 +4,12 @@ defmodule Mal.Mixfile do
def project do
[app: :mal,
version: "0.0.1",
elixir: "~> 1.0",
elixir: "~> 1.5",
build_embedded: Mix.env == :prod,
start_permanent: Mix.env == :prod,
deps: deps,
deps: deps(),
default_task: "stepA_mal",
escript: escript]
escript: escript()]
end
def escript do