code: def p_if_command(p):
      '''if_command : IF compound_list THEN compound_list FI
                    | IF compound_list THEN compound_list ELSE compound_list FI
                    | IF compound_list THEN compound_list elif_clause FI'''
      # we currently don't distinguish the various lists that make up the
      # command, because it's not needed later on. if there will be a need
      # we can always add different nodes for elif/else.
      parts = _makeparts(p)
      p[0] = ast.node(kind='compound',
                      redirects=[],
                      list=[ast.node(kind='if', parts=parts, pos=_partsspan(parts))],
                      pos=_partsspan(parts)f p_if_command(p):
      '''if_command : IF compound_list THEN compound_list FI
                    | IF compound_list THEN compound_list ELSE compound_list FI
                    | IF compound_list THEN compound_list elif_clause FI'''
      # we currently don't distinguish the various lists that make up the
      # command, because it's not needed later on. if there will be a need
      # we can always add different nodes for elif/else.
      parts = _makeparts(p)
      p[0] = ast.node(kind='compound',
                      redirects=[],
                      list=[ast.node(kind='if', parts=parts, pos=_partsspan(parts))],
                      pos=_partsspan(parts))
docs: if_command : IF compound_list THEN compound_list FI
                    | IF compound_list THEN compound_list ELSE compound_list FI
                    | IF compound_list THEN compound_list elif_clause FI