     false
   end
 
-  defp only_spaces?([h|t]) when h == ?\s orelse h == ?\t, do: only_spaces?(t)
+  defp only_spaces?([h|t]) when h == ?\s or h == ?\t, do: only_spaces?(t)
   defp only_spaces?(other), do: other == []
 
   # Tokenize the buffered text by appending

  # Start tokens finish with `do` or `->`
  # while end tokens contain only the end word.

  defp tip_expr_token_name([h|t]) when h == ?\s orelse h == ?\t do
    tip_expr_token_name(t)
  end

  defp tip_expr_token_name('od' ++ [h|_]) when h == ?\s orelse h == ?\t orelse h == ?) do
    :start_expr
  end

  defp tip_expr_token_name('>-' ++ [h|_]) when h == ?\s orelse h == ?\t orelse h == ?) do
    :start_expr
  end


  # Receive an expression contents and see if it matches
  # a key-value arg syntax, like elsif: foo.

  defp middle_expr_token_name([h|t]) when h == ?\s or h == ?\t do
    middle_expr_token_name(t)
  end

  defp middle_expr_token_name([h|t]) when h >= ?a and h <= ?z do
    if valid_key_identifier?(t), do: :middle_expr, else: :expr
  end

