14 lines
399 B
Elixir
14 lines
399 B
Elixir
defmodule Ast do
|
|
def main do
|
|
expr = IO.gets("Give an expression:\n") |> String.Chars.to_string |> String.trim
|
|
case Code.string_to_quoted(expr) do
|
|
{:ok, ast} ->
|
|
IO.puts("AST is: " <> inspect(ast))
|
|
{result, _} = Code.eval_quoted(ast)
|
|
IO.puts("Result = #{result}")
|
|
{:error, {_meta, message_info, _token}} ->
|
|
IO.puts(message_info)
|
|
end
|
|
end
|
|
end
|