Current section

Files

Jump to
pantagruel lib mix tasks parse.ex
Raw

lib/mix/tasks/parse.ex

defmodule Mix.Tasks.Pantagruel.Eval do
use Mix.Task
def run([filename]) do
parsed =
try do
filename
|> Pantagruel.read!()
rescue
e in Pantagruel.Eval.State.UnboundVariablesError ->
IO.puts(e.message)
IO.inspect(e.unbound)
exit("Invalid program.")
end
case parsed do
%{} = r ->
IO.puts("Resulting environment:")
IO.inspect(r)
end
end
end
defmodule Mix.Tasks.Pantagruel.Scan do
use Mix.Task
def run([filename]) do
scanned =
filename
|> File.read!()
|> Pantagruel.Scan.scan()
IO.inspect(scanned)
end
end
defmodule Mix.Tasks.Pantagruel.Parse do
use Mix.Task
def run([filename]) do
{:ok, scanned, rest, %{}, _, _} =
filename
|> File.read!()
|> Pantagruel.Scan.scan()
|> Pantagruel.Parse.program()
IO.inspect(scanned)
IO.inspect rest
end
end