If if were altered to be a container of terms, each with its own condition and nodelist, rendering an if becomes iterating the terms to find the first whose condition is True.
And if and elif are effectively the same as far as a term goes. An else is a term whose condition is always True.
Alternatively, because of how parsing works, each ElseIf could consume its follower, and rendering simply becomes "if my condition is true, render me, else render my follower."
If
if
were altered to be a container ofterms
, each with its own condition and nodelist, rendering anif
becomes iterating the terms to find the first whose condition is True.And
if
andelif
are effectively the same as far as aterm
goes. Anelse
is aterm
whose condition is always True.Alternatively, because of how parsing works, each ElseIf could consume its follower, and rendering simply becomes "if my condition is true, render me, else render my follower."
This could make long if/elif chains slow.