`if-elif` statements break if there's no `else`

Author: jonbarronCreated Oct 23, 2023Updated Oct 24, 2023
Labelsbug: minor

Environment

If you used latexify on the browser, fill the following items.

  • Browser: Google Chrome Version 118.0.5993.96
  • Frontend:Google Colaboratory

Description

If you try to latexify a function that contains an if/elif statement, it will terminate with an error message of "LatexifySyntaxError: Multiple statements are not supported in If nodes." unless there is an else statement. This is awkward, because there are many things that someone would want to express with if/elif statements that look awkward when rendered using a else statement instead of an elif. Here's an example:

image

Reproduction

Here's that code:

@latexify.function(use_math_symbol=True)
def fn(x):
  if x < 0:
    return -1
  elif x == 0:
    return 0
  elif x > 0:
    return 1

fn

Expected behavior

I'd like to be able to do something like image

but without that placeholder "else: return None" bit at the end, which is currently necessary.