   # 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
+  defp tip_expr_token_name([h|t]) when h == ?\s or 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
+  defp tip_expr_token_name('od' ++ [h|_]) when h == ?\s or h == ?\t or h == ?) do
     :start_expr
   end
 
-  defp tip_expr_token_name('>-' ++ [h|_]) when h == ?\s orelse h == ?\t orelse h == ?) do
+  defp tip_expr_token_name('>-' ++ [h|_]) when h == ?\s or h == ?\t or h == ?) do
     :start_expr
   end
 

  end

  defp valid_key_identifier?([h|t]) \
      when h >= ?a andalso h <= ?z   \
      when h >= ?A andalso h <= ?Z   \
      when h >= ?0 andalso h <= ?9 do
    valid_key_identifier?(t)
  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

