Fix in if reguarding pins.
This commit is contained in:
parent
277ada3c89
commit
296ea01ea1
|
@ -11,10 +11,10 @@ defmodule Farmbot.CeleryScript.AST.Node.If do
|
|||
|
||||
if is_number(left) or is_nil(left) do
|
||||
eval_if(left, op, rhs)
|
||||
|> fn(result) ->
|
||||
Logger.debug 2, "IF evaluated to #{result}."
|
||||
result
|
||||
end.() # for debug purposes.
|
||||
# |> fn(result) ->
|
||||
# Logger.debug 2, "IF evaluated to #{inspect result}."
|
||||
# result
|
||||
# end.() # for debug purposes.
|
||||
|> do_jump(else_, then_, env)
|
||||
else
|
||||
{:error, "Lefthand could not be evaluated to a number (#{inspect left})", env}
|
||||
|
@ -28,13 +28,14 @@ defmodule Farmbot.CeleryScript.AST.Node.If do
|
|||
defp eval_lhs({:pin, pin}) do
|
||||
case Farmbot.BotState.get_pin_value(pin) do
|
||||
{:ok, val} -> val
|
||||
{:error, :unknown_pin} -> nil
|
||||
{:error, reason} -> {:error, reason}
|
||||
end
|
||||
end
|
||||
|
||||
defp eval_if(nil, :is_undefined, _), do: true
|
||||
defp eval_if(_, :is_undefined, _), do: false
|
||||
defp eval_if(nil, _, _), do: {:error, "left hand side undefined."}
|
||||
defp eval_if(nil, _, _), do: {:error, "Could not eval IF because left hand side of if statement is undefined."}
|
||||
|
||||
defp eval_if(lhs, :>, rhs) when lhs > rhs, do: true
|
||||
defp eval_if(_lhs, :>, _rhs), do: false
|
||||
|
|
Loading…
Reference in a new issue