(command.CommandList
  children: [
    (C {<Id.KW_Set set>} {<-e>})
    (C {<cd>} 
      {
        (DQ 
          (command_sub
            left_token: <Id.Left_DollarParen '$('>
            child: (C {<dirname>} {(DQ ($ Id.VSub_Number '$0'))})
          ) <'/..'>
        )
      }
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_Number '$1'))} {<Id.Lit_RBracket ']'>})
              terminator: <Id.Op_Semi _>
            )
          ]
          action: [
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_Number '$1'))} {<Id.Lit_Equals '='>} 
                          {(DQ <production>)} {<Id.Lit_RBracket ']'>}
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<heroku>} {<run>} {<rails>} {<console>} {<--app>} {<heroku-app-name>})]
                  spids: [60 77]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_Number '$1'))} {<Id.Lit_Equals '='>} 
                          {(DQ <staging>)} {<Id.Lit_RBracket ']'>}
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<heroku>} {<run>} {<rails>} {<console>} {<--app>} {<heroku-app-name-staging>})
                  ]
                  spids: [93 110]
                )
              ]
              else_action: [
                (C {<echo>} 
                  {
                    (DQ <'Sorry, I don\'t know how to connect to the \''> ($ Id.VSub_Number '$1') 
                      <'\' environment.'>
                    )
                  }
                )
                (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>})
              ]
            )
          ]
          spids: [36 49]
        )
      ]
      else_action: [(C {<'script/update'>}) (C {<'bin/rails'>} {<console>})]
    )
  ]
)