(command.CommandList
  children: [
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Simple
                  blame_tok: <Id.Lit_LBracket '['>
                  more_env: []
                  words: [
                    {<Id.Lit_LBracket '['>}
                    {($ Id.VSub_Pound '#')}
                    {<-lt>}
                    {<1>}
                    {<Id.Lit_RBracket ']'>}
                  ]
                  redirects: []
                  do_fork: T
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.Sentence
              child: 
                (command.Simple
                  blame_tok: <echo>
                  more_env: []
                  words: [
                    {<echo>}
                    {(DQ <' '> ($ Id.VSub_Number 0) <' <driver source (e.g., if_em.c)>'>)}
                  ]
                  redirects: []
                  do_fork: T
                )
              terminator: <Id.Op_Semi _>
            )
            (command.Sentence
              child: (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<1>})
              terminator: <Id.Op_Semi _>
            )
          ]
          spids: [107 119]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.Sentence
      child: 
        (command.ShAssignment
          left: <Id.Lit_VarLike '__ifp__='>
          pairs: [
            (AssignPair
              left: <Id.Lit_VarLike '__ifp__='>
              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '__ifp__='> name:__ifp__)
              op: assign_op.Equal
              rhs: {(DQ <ifp>)}
            )
          ]
          redirects: []
        )
      terminator: <Id.Op_Semi _>
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'file='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'file='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'file='> name:file)
          op: assign_op.Equal
          rhs: {($ Id.VSub_Number 1)}
        )
      ]
      redirects: []
    )
    (command.ShFunction
      name_tok: <rotateCursor>
      name: rotateCursor
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName toggle)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <1>
                  pattern: (pat.Words words:[{<1>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <printf>
                      more_env: []
                      words: [
                        {<printf>}
                        {
                          (DQ <' '> 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\\\'>
                              ch: '\\'
                            ) <' '>
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <printf>
                      more_env: []
                      words: [
                        {<printf>}
                        {(DQ <Id.Lit_BadBackslash '\\'> <b> <Id.Lit_BadBackslash '\\'> <b>)}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'toggle='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'toggle='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'toggle='> name:toggle)
                          op: assign_op.Equal
                          rhs: {(DQ <2>)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <2>
                  pattern: (pat.Words words:[{<2>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <printf>
                      more_env: []
                      words: [{<printf>} {(DQ <' | '>)}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <printf>
                      more_env: []
                      words: [
                        {<printf>}
                        {
                          (DQ <Id.Lit_BadBackslash '\\'> <b> <Id.Lit_BadBackslash '\\'> <b> 
                            <Id.Lit_BadBackslash '\\'> <b>
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'toggle='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'toggle='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'toggle='> name:toggle)
                          op: assign_op.Equal
                          rhs: {(DQ <3>)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <3>
                  pattern: (pat.Words words:[{<3>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <printf>
                      more_env: []
                      words: [{<printf>} {(DQ <' / '>)}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <printf>
                      more_env: []
                      words: [
                        {<printf>}
                        {
                          (DQ <Id.Lit_BadBackslash '\\'> <b> <Id.Lit_BadBackslash '\\'> <b> 
                            <Id.Lit_BadBackslash '\\'> <b>
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'toggle='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'toggle='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'toggle='> name:toggle)
                          op: assign_op.Equal
                          rhs: {(DQ <4>)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <printf>
                      more_env: []
                      words: [{<printf>} {(DQ <' - '>)}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <printf>
                      more_env: []
                      words: [
                        {<printf>}
                        {
                          (DQ <Id.Lit_BadBackslash '\\'> <b> <Id.Lit_BadBackslash '\\'> <b> 
                            <Id.Lit_BadBackslash '\\'> <b>
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'toggle='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'toggle='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'toggle='> name:toggle)
                          op: assign_op.Equal
                          rhs: {(DQ <1>)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <handle_set>
      name: handle_set
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'line='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'line='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'line='> name:line)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 1)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'set='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'set='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'set='> name:set)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (CommandSub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Pipeline
                            children: [
                              (command.Simple
                                blame_tok: <echo>
                                more_env: []
                                words: [{<echo>} {($ Id.VSub_DollarName line)}]
                                redirects: []
                                do_fork: T
                              )
                              (command.Simple
                                blame_tok: <grep>
                                more_env: []
                                words: [{<grep>} {(DQ ($ Id.VSub_DollarName __ifp__) <'->.* = '>)}]
                                redirects: []
                                do_fork: T
                              )
                            ]
                            ops: [<Id.Op_Pipe _>]
                          )
                        right: <Id.Backtick_Right '`'>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Simple
                          blame_tok: <Id.Lit_LBracket '['>
                          more_env: []
                          words: [
                            {<Id.Lit_LBracket '['>}
                            {<Id.KW_Bang '!'>}
                            {<-z>}
                            {(DQ ($ Id.VSub_DollarName set))}
                            {<Id.Lit_RBracket ']'>}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'word='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'word='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'word='> name:word)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (command.Simple
                                        blame_tok: <echo>
                                        more_env: []
                                        words: [{<echo>} {($ Id.VSub_DollarName line)}]
                                        redirects: []
                                        do_fork: T
                                      )
                                      (command.Simple
                                        blame_tok: <awk>
                                        more_env: []
                                        words: [{<awk>} {<-F>} {(DQ <if_>)} {(SQ <' { print $2 }'>)}]
                                        redirects: []
                                        do_fork: T
                                      )
                                      (command.Simple
                                        blame_tok: <awk>
                                        more_env: []
                                        words: [{<awk>} {<-F> (DQ <' ='>)} {(SQ <'{ print $1 }'>)}]
                                        redirects: []
                                        do_fork: T
                                      )
                                    ]
                                    ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>]
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'value='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'value='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'value='> name:value)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (command.Simple
                                        blame_tok: <echo>
                                        more_env: []
                                        words: [{<echo>} {($ Id.VSub_DollarName line)}]
                                        redirects: []
                                        do_fork: T
                                      )
                                      (command.Simple
                                        blame_tok: <awk>
                                        more_env: []
                                        words: [{<awk>} {<-F>} {(DQ <'='>)} {(SQ <'{ print $2 }'>)}]
                                        redirects: []
                                        do_fork: T
                                      )
                                      (command.Simple
                                        blame_tok: <sed>
                                        more_env: []
                                        words: [{<sed>} {<-e>} {(SQ <'s/;//g'>)}]
                                        redirects: []
                                        do_fork: T
                                      )
                                    ]
                                    ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>]
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'new='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'new='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'new='> name:new)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Simple
                                    blame_tok: <echo>
                                    more_env: []
                                    words: [
                                      {<echo>}
                                      {<if_set> ($ Id.VSub_DollarName word) 
                                        (DQ <Id.Lit_BadBackslash '\\'> <'('> 
                                          ($ Id.VSub_DollarName __ifp__) <','>
                                        ) ($ Id.VSub_DollarName value) (DQ <');'>)
                                      }
                                    ]
                                    redirects: []
                                    do_fork: T
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'new='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'new='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'new='> name:new)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (command.Simple
                                        blame_tok: <echo>
                                        more_env: []
                                        words: [{<echo>} {($ Id.VSub_DollarName new)}]
                                        redirects: []
                                        do_fork: T
                                      )
                                      (command.Simple
                                        blame_tok: <sed>
                                        more_env: []
                                        words: [{<sed>} {<-e>} {(SQ <'s/&/\\\\&/'>)}]
                                        redirects: []
                                        do_fork: T
                                      )
                                    ]
                                    ops: [<Id.Op_Pipe _>]
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'old='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'old='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'old='> name:old)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (command.Simple
                                        blame_tok: <echo>
                                        more_env: []
                                        words: [{<echo>} {($ Id.VSub_DollarName line)}]
                                        redirects: []
                                        do_fork: T
                                      )
                                      (command.Simple
                                        blame_tok: <sed>
                                        more_env: []
                                        words: [{<sed>} {<-e>} {(SQ <'s/^[ \t]*//'>)}]
                                        redirects: []
                                        do_fork: T
                                      )
                                    ]
                                    ops: [<Id.Op_Pipe _>]
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'line='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'line='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'line='> name:line)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (command.Simple
                                        blame_tok: <echo>
                                        more_env: []
                                        words: [{<echo>} {($ Id.VSub_DollarName line)}]
                                        redirects: []
                                        do_fork: T
                                      )
                                      (command.Simple
                                        blame_tok: <sed>
                                        more_env: []
                                        words: [
                                          {<sed>}
                                          {<-e> (SQ <'s/'>) ($ Id.VSub_DollarName old) (SQ <'/'>) 
                                            ($ Id.VSub_DollarName new) (SQ <'/g'>)
                                          }
                                        ]
                                        redirects: []
                                        do_fork: T
                                      )
                                    ]
                                    ops: [<Id.Op_Pipe _>]
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.ControlFlow
                      keyword: <Id.ControlFlow_Return return>
                      arg_word: {<0>}
                    )
                  ]
                  spids: [337 352]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.ControlFlow keyword:<Id.ControlFlow_Return return> arg_word:{<1>})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <handle_inc>
      name: handle_inc
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'line='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'line='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'line='> name:line)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 1)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'inc='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'inc='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'inc='> name:inc)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (CommandSub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Pipeline
                            children: [
                              (command.Simple
                                blame_tok: <echo>
                                more_env: []
                                words: [{<echo>} {($ Id.VSub_DollarName line)}]
                                redirects: []
                                do_fork: T
                              )
                              (command.Simple
                                blame_tok: <grep>
                                more_env: []
                                words: [
                                  {<grep>}
                                  {
                                    (DQ ($ Id.VSub_DollarName __ifp__) <'->.*++'> 
                                      <Id.Lit_BadBackslash '\\'> <'|++'> ($ Id.VSub_DollarName __ifp__) <'->.*'>
                                    )
                                  }
                                ]
                                redirects: []
                                do_fork: T
                              )
                            ]
                            ops: [<Id.Op_Pipe _>]
                          )
                        right: <Id.Backtick_Right '`'>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Simple
                          blame_tok: <Id.Lit_LBracket '['>
                          more_env: []
                          words: [
                            {<Id.Lit_LBracket '['>}
                            {<Id.KW_Bang '!'>}
                            {<-z>}
                            {(DQ ($ Id.VSub_DollarName inc))}
                            {<Id.Lit_RBracket ']'>}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'word='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'word='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'word='> name:word)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (command.Simple
                                        blame_tok: <echo>
                                        more_env: []
                                        words: [{<echo>} {($ Id.VSub_DollarName line)}]
                                        redirects: []
                                        do_fork: T
                                      )
                                      (command.Simple
                                        blame_tok: <awk>
                                        more_env: []
                                        words: [{<awk>} {<-F> (DQ <if_>)} {(SQ <'{ print $2 }'>)}]
                                        redirects: []
                                        do_fork: T
                                      )
                                      (command.Simple
                                        blame_tok: <awk>
                                        more_env: []
                                        words: [
                                          {<awk>}
                                          {<-F> (DQ <Id.Lit_BadBackslash '\\'> <'+'>)}
                                          {(SQ <'{ print $1}'>)}
                                        ]
                                        redirects: []
                                        do_fork: T
                                      )
                                    ]
                                    ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>]
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'value='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'value='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'value='> name:value)
                              op: assign_op.Equal
                              rhs: {(SQ <' 1'>)}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'old='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'old='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'old='> name:old)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (command.Simple
                                        blame_tok: <echo>
                                        more_env: []
                                        words: [{<echo>} {($ Id.VSub_DollarName line)}]
                                        redirects: []
                                        do_fork: T
                                      )
                                      (command.Simple
                                        blame_tok: <sed>
                                        more_env: []
                                        words: [{<sed>} {<-e>} {(SQ <'s/^[ \t]*//'>)}]
                                        redirects: []
                                        do_fork: T
                                      )
                                    ]
                                    ops: [<Id.Op_Pipe _>]
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'new='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'new='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'new='> name:new)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Simple
                                    blame_tok: <echo>
                                    more_env: []
                                    words: [
                                      {<echo>}
                                      {<if_inc> ($ Id.VSub_DollarName word) 
                                        (DQ <Id.Lit_BadBackslash '\\'> <'('> 
                                          ($ Id.VSub_DollarName __ifp__) <','>
                                        ) ($ Id.VSub_DollarName value) (DQ <');'>)
                                      }
                                    ]
                                    redirects: []
                                    do_fork: T
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'new='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'new='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'new='> name:new)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (command.Simple
                                        blame_tok: <echo>
                                        more_env: []
                                        words: [{<echo>} {($ Id.VSub_DollarName new)}]
                                        redirects: []
                                        do_fork: T
                                      )
                                      (command.Simple
                                        blame_tok: <sed>
                                        more_env: []
                                        words: [{<sed>} {<-e>} {(SQ <'s/&/\\\\&/'>)}]
                                        redirects: []
                                        do_fork: T
                                      )
                                    ]
                                    ops: [<Id.Op_Pipe _>]
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'line='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'line='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'line='> name:line)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (command.Simple
                                        blame_tok: <echo>
                                        more_env: []
                                        words: [{<echo>} {($ Id.VSub_DollarName line)}]
                                        redirects: []
                                        do_fork: T
                                      )
                                      (command.Simple
                                        blame_tok: <sed>
                                        more_env: []
                                        words: [
                                          {<sed>}
                                          {<-e> (SQ <'s/'>) ($ Id.VSub_DollarName old) (SQ <'/'>) 
                                            ($ Id.VSub_DollarName new) (SQ <'/g'>)
                                          }
                                        ]
                                        redirects: []
                                        do_fork: T
                                      )
                                    ]
                                    ops: [<Id.Op_Pipe _>]
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.Sentence
                      child: 
                        (command.ControlFlow
                          keyword: <Id.ControlFlow_Return return>
                          arg_word: {<0>}
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  spids: [568 583]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Sentence
              child: (command.ControlFlow keyword:<Id.ControlFlow_Return return> arg_word:{<1>})
              terminator: <Id.Op_Semi _>
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <handle_add>
      name: handle_add
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'line='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'line='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'line='> name:line)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 1)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'add='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'add='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'add='> name:add)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (CommandSub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Pipeline
                            children: [
                              (command.Simple
                                blame_tok: <echo>
                                more_env: []
                                words: [{<echo>} {($ Id.VSub_DollarName line)}]
                                redirects: []
                                do_fork: T
                              )
                              (command.Simple
                                blame_tok: <grep>
                                more_env: []
                                words: [{<grep>} {(DQ ($ Id.VSub_DollarName __ifp__) <'->.*+= '>)}]
                                redirects: []
                                do_fork: T
                              )
                            ]
                            ops: [<Id.Op_Pipe _>]
                          )
                        right: <Id.Backtick_Right '`'>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Simple
                          blame_tok: <Id.Lit_LBracket '['>
                          more_env: []
                          words: [
                            {<Id.Lit_LBracket '['>}
                            {<Id.KW_Bang '!'>}
                            {<-z>}
                            {(DQ ($ Id.VSub_DollarName add))}
                            {<Id.Lit_RBracket ']'>}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'word='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'word='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'word='> name:word)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (command.Simple
                                        blame_tok: <echo>
                                        more_env: []
                                        words: [{<echo>} {($ Id.VSub_DollarName line)}]
                                        redirects: []
                                        do_fork: T
                                      )
                                      (command.Simple
                                        blame_tok: <awk>
                                        more_env: []
                                        words: [{<awk>} {<-F> (DQ <if_>)} {(SQ <'{ print $2 }'>)}]
                                        redirects: []
                                        do_fork: T
                                      )
                                      (command.Simple
                                        blame_tok: <awk>
                                        more_env: []
                                        words: [{<awk>} {(SQ <'{ print $1}'>)}]
                                        redirects: []
                                        do_fork: T
                                      )
                                    ]
                                    ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>]
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'value='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'value='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'value='> name:value)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (command.Simple
                                        blame_tok: <echo>
                                        more_env: []
                                        words: [{<echo>} {($ Id.VSub_DollarName line)}]
                                        redirects: []
                                        do_fork: T
                                      )
                                      (command.Simple
                                        blame_tok: <awk>
                                        more_env: []
                                        words: [{<awk>} {<-F> (DQ <'='>)} {(SQ <'{ print $2}'>)}]
                                        redirects: []
                                        do_fork: T
                                      )
                                      (command.Simple
                                        blame_tok: <sed>
                                        more_env: []
                                        words: [{<sed>} {<-e>} {(SQ <'s/;//g'>)}]
                                        redirects: []
                                        do_fork: T
                                      )
                                    ]
                                    ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>]
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'new='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'new='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'new='> name:new)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Simple
                                    blame_tok: <echo>
                                    more_env: []
                                    words: [
                                      {<echo>}
                                      {<if_inc> ($ Id.VSub_DollarName word) 
                                        (DQ <Id.Lit_BadBackslash '\\'> <'('> 
                                          ($ Id.VSub_DollarName __ifp__) <','> ($ Id.VSub_DollarName value) <');'>
                                        )
                                      }
                                    ]
                                    redirects: []
                                    do_fork: T
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'new='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'new='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'new='> name:new)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (command.Simple
                                        blame_tok: <echo>
                                        more_env: []
                                        words: [{<echo>} {($ Id.VSub_DollarName new)}]
                                        redirects: []
                                        do_fork: T
                                      )
                                      (command.Simple
                                        blame_tok: <sed>
                                        more_env: []
                                        words: [{<sed>} {<-e>} {(SQ <'s/&/\\\\&/'>)}]
                                        redirects: []
                                        do_fork: T
                                      )
                                    ]
                                    ops: [<Id.Op_Pipe _>]
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'old='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'old='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'old='> name:old)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (command.Simple
                                        blame_tok: <echo>
                                        more_env: []
                                        words: [{<echo>} {($ Id.VSub_DollarName line)}]
                                        redirects: []
                                        do_fork: T
                                      )
                                      (command.Simple
                                        blame_tok: <sed>
                                        more_env: []
                                        words: [{<sed>} {<-e>} {(SQ <'s/^[ \t]*//'>)}]
                                        redirects: []
                                        do_fork: T
                                      )
                                    ]
                                    ops: [<Id.Op_Pipe _>]
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'line='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'line='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'line='> name:line)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (command.Simple
                                        blame_tok: <echo>
                                        more_env: []
                                        words: [{<echo>} {($ Id.VSub_DollarName line)}]
                                        redirects: []
                                        do_fork: T
                                      )
                                      (command.Simple
                                        blame_tok: <sed>
                                        more_env: []
                                        words: [
                                          {<sed>}
                                          {<-e> (SQ <'s/'>) ($ Id.VSub_DollarName old) (SQ <'/'>) 
                                            ($ Id.VSub_DollarName new) (SQ <'/g'>)
                                          }
                                        ]
                                        redirects: []
                                        do_fork: T
                                      )
                                    ]
                                    ops: [<Id.Op_Pipe _>]
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.ControlFlow
                      keyword: <Id.ControlFlow_Return return>
                      arg_word: {<0>}
                    )
                  ]
                  spids: [766 781]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Sentence
              child: (command.ControlFlow keyword:<Id.ControlFlow_Return return> arg_word:{<1>})
              terminator: <Id.Op_Semi _>
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <handle_or>
      name: handle_or
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'line='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'line='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'line='> name:line)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 1)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'or='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'or='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'or='> name:or)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (CommandSub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Pipeline
                            children: [
                              (command.Simple
                                blame_tok: <echo>
                                more_env: []
                                words: [{<echo>} {($ Id.VSub_DollarName line)}]
                                redirects: []
                                do_fork: T
                              )
                              (command.Simple
                                blame_tok: <grep>
                                more_env: []
                                words: [{<grep>} {(DQ ($ Id.VSub_DollarName __ifp__) <'->.*|= '>)}]
                                redirects: []
                                do_fork: T
                              )
                            ]
                            ops: [<Id.Op_Pipe _>]
                          )
                        right: <Id.Backtick_Right '`'>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Simple
                          blame_tok: <Id.Lit_LBracket '['>
                          more_env: []
                          words: [
                            {<Id.Lit_LBracket '['>}
                            {<Id.KW_Bang '!'>}
                            {<-z>}
                            {(DQ ($ Id.VSub_DollarName or))}
                            {<Id.Lit_RBracket ']'>}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'word='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'word='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'word='> name:word)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (command.Simple
                                        blame_tok: <echo>
                                        more_env: []
                                        words: [{<echo>} {($ Id.VSub_DollarName line)}]
                                        redirects: []
                                        do_fork: T
                                      )
                                      (command.Simple
                                        blame_tok: <awk>
                                        more_env: []
                                        words: [{<awk>} {<-F> (DQ <if_>)} {(SQ <'{ print $2 }'>)}]
                                        redirects: []
                                        do_fork: T
                                      )
                                      (command.Simple
                                        blame_tok: <awk>
                                        more_env: []
                                        words: [{<awk>} {(SQ <'{ print $1}'>)}]
                                        redirects: []
                                        do_fork: T
                                      )
                                    ]
                                    ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>]
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'value='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'value='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'value='> name:value)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (command.Simple
                                        blame_tok: <echo>
                                        more_env: []
                                        words: [{<echo>} {($ Id.VSub_DollarName line)}]
                                        redirects: []
                                        do_fork: T
                                      )
                                      (command.Simple
                                        blame_tok: <awk>
                                        more_env: []
                                        words: [{<awk>} {<-F> (DQ <'='>)} {(SQ <'{ print $2}'>)}]
                                        redirects: []
                                        do_fork: T
                                      )
                                      (command.Simple
                                        blame_tok: <sed>
                                        more_env: []
                                        words: [{<sed>} {<-e>} {(SQ <'s/;//g'>)}]
                                        redirects: []
                                        do_fork: T
                                      )
                                    ]
                                    ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>]
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'new='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'new='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'new='> name:new)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Simple
                                    blame_tok: <echo>
                                    more_env: []
                                    words: [
                                      {<echo>}
                                      {<if_set> (${ Id.VSub_Name word) <bit> 
                                        (DQ <'('> ($ Id.VSub_DollarName __ifp__) <','> 
                                          ($ Id.VSub_DollarName value) <', 0);'>
                                        )
                                      }
                                    ]
                                    redirects: []
                                    do_fork: T
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'new='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'new='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'new='> name:new)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (command.Simple
                                        blame_tok: <echo>
                                        more_env: []
                                        words: [{<echo>} {($ Id.VSub_DollarName new)}]
                                        redirects: []
                                        do_fork: T
                                      )
                                      (command.Simple
                                        blame_tok: <sed>
                                        more_env: []
                                        words: [{<sed>} {<-e>} {(SQ <'s/&/\\\\&/'>)}]
                                        redirects: []
                                        do_fork: T
                                      )
                                    ]
                                    ops: [<Id.Op_Pipe _>]
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'old='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'old='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'old='> name:old)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (command.Simple
                                        blame_tok: <echo>
                                        more_env: []
                                        words: [{<echo>} {($ Id.VSub_DollarName line)}]
                                        redirects: []
                                        do_fork: T
                                      )
                                      (command.Simple
                                        blame_tok: <sed>
                                        more_env: []
                                        words: [{<sed>} {<-e>} {(SQ <'s/^[ \t]*//'>)}]
                                        redirects: []
                                        do_fork: T
                                      )
                                    ]
                                    ops: [<Id.Op_Pipe _>]
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'line='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'line='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'line='> name:line)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (command.Simple
                                        blame_tok: <echo>
                                        more_env: []
                                        words: [{<echo>} {($ Id.VSub_DollarName line)}]
                                        redirects: []
                                        do_fork: T
                                      )
                                      (command.Simple
                                        blame_tok: <sed>
                                        more_env: []
                                        words: [
                                          {<sed>}
                                          {<-e> (SQ <'s/'>) ($ Id.VSub_DollarName old) (SQ <'/'>) 
                                            ($ Id.VSub_DollarName new) (SQ <'/g'>)
                                          }
                                        ]
                                        redirects: []
                                        do_fork: T
                                      )
                                    ]
                                    ops: [<Id.Op_Pipe _>]
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.Sentence
                      child: 
                        (command.ControlFlow
                          keyword: <Id.ControlFlow_Return return>
                          arg_word: {<0>}
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  spids: [979 994]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Sentence
              child: (command.ControlFlow keyword:<Id.ControlFlow_Return return> arg_word:{<1>})
              terminator: <Id.Op_Semi _>
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <handle_and>
      name: handle_and
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'line='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'line='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'line='> name:line)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 1)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'or='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'or='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'or='> name:or)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (CommandSub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Pipeline
                            children: [
                              (command.Simple
                                blame_tok: <echo>
                                more_env: []
                                words: [{<echo>} {($ Id.VSub_DollarName line)}]
                                redirects: []
                                do_fork: T
                              )
                              (command.Simple
                                blame_tok: <grep>
                                more_env: []
                                words: [{<grep>} {(DQ ($ Id.VSub_DollarName __ifp__) <'->.*&= '>)}]
                                redirects: []
                                do_fork: T
                              )
                            ]
                            ops: [<Id.Op_Pipe _>]
                          )
                        right: <Id.Backtick_Right '`'>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Simple
                          blame_tok: <Id.Lit_LBracket '['>
                          more_env: []
                          words: [
                            {<Id.Lit_LBracket '['>}
                            {<Id.KW_Bang '!'>}
                            {<-z>}
                            {(DQ ($ Id.VSub_DollarName or))}
                            {<Id.Lit_RBracket ']'>}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'word='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'word='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'word='> name:word)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (command.Simple
                                        blame_tok: <echo>
                                        more_env: []
                                        words: [{<echo>} {($ Id.VSub_DollarName line)}]
                                        redirects: []
                                        do_fork: T
                                      )
                                      (command.Simple
                                        blame_tok: <awk>
                                        more_env: []
                                        words: [{<awk>} {<-F> (DQ <if_>)} {(SQ <'{ print $2 }'>)}]
                                        redirects: []
                                        do_fork: T
                                      )
                                      (command.Simple
                                        blame_tok: <awk>
                                        more_env: []
                                        words: [{<awk>} {(SQ <'{ print $1}'>)}]
                                        redirects: []
                                        do_fork: T
                                      )
                                    ]
                                    ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>]
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'value='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'value='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'value='> name:value)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (command.Simple
                                        blame_tok: <echo>
                                        more_env: []
                                        words: [{<echo>} {($ Id.VSub_DollarName line)}]
                                        redirects: []
                                        do_fork: T
                                      )
                                      (command.Simple
                                        blame_tok: <awk>
                                        more_env: []
                                        words: [{<awk>} {<-F> (DQ <'='>)} {(SQ <'{ print $2}'>)}]
                                        redirects: []
                                        do_fork: T
                                      )
                                      (command.Simple
                                        blame_tok: <sed>
                                        more_env: []
                                        words: [{<sed>} {<-e>} {(SQ <'s/;//g'>)}]
                                        redirects: []
                                        do_fork: T
                                      )
                                    ]
                                    ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>]
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'value='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'value='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'value='> name:value)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (command.Simple
                                        blame_tok: <echo>
                                        more_env: []
                                        words: [{<echo>} {($ Id.VSub_DollarName value)}]
                                        redirects: []
                                        do_fork: T
                                      )
                                      (command.Simple
                                        blame_tok: <sed>
                                        more_env: []
                                        words: [{<sed>} {<-e> (SQ <'s/~//g'>)}]
                                        redirects: []
                                        do_fork: T
                                      )
                                    ]
                                    ops: [<Id.Op_Pipe _>]
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'new='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'new='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'new='> name:new)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Simple
                                    blame_tok: <echo>
                                    more_env: []
                                    words: [
                                      {<echo>}
                                      {<if_set> (${ Id.VSub_Name word) <bit> 
                                        (DQ <Id.Lit_BadBackslash '\\'> <'('> 
                                          ($ Id.VSub_DollarName __ifp__) <', 0,'> ($ Id.VSub_DollarName value) <');'>
                                        )
                                      }
                                    ]
                                    redirects: []
                                    do_fork: T
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'new='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'new='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'new='> name:new)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (command.Simple
                                        blame_tok: <echo>
                                        more_env: []
                                        words: [{<echo>} {($ Id.VSub_DollarName new)}]
                                        redirects: []
                                        do_fork: T
                                      )
                                      (command.Simple
                                        blame_tok: <sed>
                                        more_env: []
                                        words: [{<sed>} {<-e>} {(SQ <'s/&/\\\\&/'>)}]
                                        redirects: []
                                        do_fork: T
                                      )
                                    ]
                                    ops: [<Id.Op_Pipe _>]
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'old='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'old='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'old='> name:old)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (command.Simple
                                        blame_tok: <echo>
                                        more_env: []
                                        words: [{<echo>} {($ Id.VSub_DollarName line)}]
                                        redirects: []
                                        do_fork: T
                                      )
                                      (command.Simple
                                        blame_tok: <sed>
                                        more_env: []
                                        words: [{<sed>} {<-e>} {(SQ <'s/^[ \t]*//'>)}]
                                        redirects: []
                                        do_fork: T
                                      )
                                    ]
                                    ops: [<Id.Op_Pipe _>]
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'line='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'line='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'line='> name:line)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (command.Simple
                                        blame_tok: <echo>
                                        more_env: []
                                        words: [{<echo>} {($ Id.VSub_DollarName line)}]
                                        redirects: []
                                        do_fork: T
                                      )
                                      (command.Simple
                                        blame_tok: <sed>
                                        more_env: []
                                        words: [
                                          {<sed>}
                                          {<-e> (SQ <'s/'>) ($ Id.VSub_DollarName old) (SQ <'/'>) 
                                            ($ Id.VSub_DollarName new) (SQ <'/g'>)
                                          }
                                        ]
                                        redirects: []
                                        do_fork: T
                                      )
                                    ]
                                    ops: [<Id.Op_Pipe _>]
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.Sentence
                      child: 
                        (command.ControlFlow
                          keyword: <Id.ControlFlow_Return return>
                          arg_word: {<0>}
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  spids: [1199 1214]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Sentence
              child: (command.ControlFlow keyword:<Id.ControlFlow_Return return> arg_word:{<1>})
              terminator: <Id.Op_Semi _>
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <handle_toggle>
      name: handle_toggle
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'line='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'line='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'line='> name:line)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 1)}
                )
              ]
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Simple
                          blame_tok: <Id.Lit_LBracket '['>
                          more_env: []
                          words: [
                            {<Id.Lit_LBracket '['>}
                            {<Id.KW_Bang '!'>}
                            {<-z>}
                            {
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (command.Simple
                                        blame_tok: <echo>
                                        more_env: []
                                        words: [{<echo>} {($ Id.VSub_DollarName line)}]
                                        redirects: []
                                        do_fork: T
                                      )
                                      (command.Simple
                                        blame_tok: <grep>
                                        more_env: []
                                        words: [{<grep>} {(DQ <Id.Lit_BadBackslash '\\'> <'^='>)}]
                                        redirects: []
                                        do_fork: T
                                      )
                                    ]
                                    ops: [<Id.Op_Pipe _>]
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                            {<Id.Lit_RBracket ']'>}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'line='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'line='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'line='> name:line)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (command.Simple
                                        blame_tok: <echo>
                                        more_env: []
                                        words: [{<echo>} {($ Id.VSub_DollarName line)}]
                                        redirects: []
                                        do_fork: T
                                      )
                                      (command.Simple
                                        blame_tok: <sed>
                                        more_env: []
                                        words: [
                                          {<sed>}
                                          {<-e>}
                                          {(SQ <'s/'>) (DQ ($ Id.VSub_DollarName __ifp__)) 
                                            (SQ <'->if_\\(.*\\) ^=\\(.*\\);/if_toggle\\1('>) (DQ ($ Id.VSub_DollarName __ifp__)) (SQ <',\\2);/g'>)
                                          }
                                        ]
                                        redirects: []
                                        do_fork: T
                                      )
                                    ]
                                    ops: [<Id.Op_Pipe _>]
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.Sentence
                      child: 
                        (command.ControlFlow
                          keyword: <Id.ControlFlow_Return return>
                          arg_word: {<0>}
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  spids: [1419 1449]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.ControlFlow keyword:<Id.ControlFlow_Return return> arg_word:{<1>})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <handle_misc>
      name: handle_misc
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'line='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'line='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'line='> name:line)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 1)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'get='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'get='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'get='> name:get)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (CommandSub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Pipeline
                            children: [
                              (command.Simple
                                blame_tok: <echo>
                                more_env: []
                                words: [{<echo>} {($ Id.VSub_DollarName line)}]
                                redirects: []
                                do_fork: T
                              )
                              (command.Simple
                                blame_tok: <grep>
                                more_env: []
                                words: [
                                  {<grep>}
                                  {
                                    (DQ <if_capabilities> <Id.Lit_BadBackslash '\\'> <'|if_flags'> 
                                      <Id.Lit_BadBackslash '\\'> <'|if_softc'> <Id.Lit_BadBackslash '\\'> <'|if_capenable'> <Id.Lit_BadBackslash '\\'> <'|if_mtu'> 
                                      <Id.Lit_BadBackslash '\\'> <'|if_drv_flags'>
                                    )
                                  }
                                ]
                                redirects: []
                                do_fork: T
                              )
                            ]
                            ops: [<Id.Op_Pipe _>]
                          )
                        right: <Id.Backtick_Right '`'>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Simple
                          blame_tok: <Id.Lit_LBracket '['>
                          more_env: []
                          words: [
                            {<Id.Lit_LBracket '['>}
                            {<Id.KW_Bang '!'>}
                            {<-z>}
                            {(DQ ($ Id.VSub_DollarName get))}
                            {<Id.Lit_RBracket ']'>}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'word='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'word='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'word='> name:word)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (command.Simple
                                        blame_tok: <echo>
                                        more_env: []
                                        words: [{<echo>} {($ Id.VSub_DollarName line)}]
                                        redirects: []
                                        do_fork: T
                                      )
                                      (command.Simple
                                        blame_tok: <awk>
                                        more_env: []
                                        words: [
                                          {<awk>}
                                          {<-F> (DQ ($ Id.VSub_DollarName __ifp__) <'->if_'>)}
                                          {(SQ <'{ print $2 }'>)}
                                        ]
                                        redirects: []
                                        do_fork: T
                                      )
                                      (command.Simple
                                        blame_tok: <sed>
                                        more_env: []
                                        words: [{<sed>} {<-e> (SQ <'s/[^a-zA-Z0-9_]/\\@/'>)}]
                                        redirects: []
                                        do_fork: T
                                      )
                                      (command.Simple
                                        blame_tok: <awk>
                                        more_env: []
                                        words: [
                                          {<awk>}
                                          {<-F> (DQ <Id.Lit_BadBackslash '\\'> <'@'>)}
                                          {(SQ <'{ print $1}'>)}
                                        ]
                                        redirects: []
                                        do_fork: T
                                      )
                                    ]
                                    ops: [<Id.Op_Pipe _> <Id.Op_Pipe _> <Id.Op_Pipe _>]
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'old='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'old='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'old='> name:old)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Simple
                                    blame_tok: <echo>
                                    more_env: []
                                    words: [
                                      {<echo>}
                                      {(DQ ($ Id.VSub_DollarName __ifp__) <'->if_'>) 
                                        (${ Id.VSub_Name word)
                                      }
                                    ]
                                    redirects: []
                                    do_fork: T
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'new='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'new='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'new='> name:new)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Simple
                                    blame_tok: <echo>
                                    more_env: []
                                    words: [
                                      {<echo>}
                                      {(DQ <if_get>) (${ Id.VSub_Name word) 
                                        (DQ <'('> ($ Id.VSub_DollarName __ifp__) <')'>)
                                      }
                                    ]
                                    redirects: []
                                    do_fork: T
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'new='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'new='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'new='> name:new)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (command.Simple
                                        blame_tok: <echo>
                                        more_env: []
                                        words: [{<echo>} {($ Id.VSub_DollarName new)}]
                                        redirects: []
                                        do_fork: T
                                      )
                                      (command.Simple
                                        blame_tok: <sed>
                                        more_env: []
                                        words: [{<sed>} {<-e>} {(SQ <'s/&/\\\\&/'>)}]
                                        redirects: []
                                        do_fork: T
                                      )
                                    ]
                                    ops: [<Id.Op_Pipe _>]
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'line='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'line='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'line='> name:line)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (command.Simple
                                        blame_tok: <echo>
                                        more_env: []
                                        words: [{<echo>} {($ Id.VSub_DollarName line)}]
                                        redirects: []
                                        do_fork: T
                                      )
                                      (command.Simple
                                        blame_tok: <sed>
                                        more_env: []
                                        words: [
                                          {<sed>}
                                          {<-e> (SQ <'s/'>) ($ Id.VSub_DollarName old) (SQ <'/'>) 
                                            ($ Id.VSub_DollarName new) (SQ <'/g'>)
                                          }
                                        ]
                                        redirects: []
                                        do_fork: T
                                      )
                                    ]
                                    ops: [<Id.Op_Pipe _>]
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.Sentence
                      child: 
                        (command.ControlFlow
                          keyword: <Id.ControlFlow_Return return>
                          arg_word: {<0>}
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  spids: [1565 1580]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Sentence
              child: (command.ControlFlow keyword:<Id.ControlFlow_Return return> arg_word:{<1>})
              terminator: <Id.Op_Semi _>
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <replace_str>
      name: replace_str
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'line='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'line='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'line='> name:line)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 1)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'orig='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'orig='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'orig='> name:orig)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 2)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'new='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'new='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'new='> name:new)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 3)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'line='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'line='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'line='> name:line)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (CommandSub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Pipeline
                            children: [
                              (command.Simple
                                blame_tok: <echo>
                                more_env: []
                                words: [{<echo>} {($ Id.VSub_DollarName line)}]
                                redirects: []
                                do_fork: T
                              )
                              (command.Simple
                                blame_tok: <sed>
                                more_env: []
                                words: [
                                  {<sed>}
                                  {<-e>}
                                  {(SQ <'s/'>) (DQ ($ Id.VSub_DollarName orig)) (SQ <'\\(.*\\)/'>) 
                                    (DQ ($ Id.VSub_DollarName new)) (SQ <'\\1/g'>)
                                  }
                                ]
                                redirects: []
                                do_fork: T
                              )
                            ]
                            ops: [<Id.Op_Pipe _>]
                          )
                        right: <Id.Backtick_Right '`'>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.Sentence
              child: (command.ControlFlow keyword:<Id.ControlFlow_Return return> arg_word:{<0>})
              terminator: <Id.Op_Semi _>
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <handle_special>
      name: handle_special
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'line='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'line='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'line='> name:line)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 1)}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <replace_str>
              more_env: []
              words: [
                {<replace_str>}
                {($ Id.VSub_DollarName line)}
                {
                  (DQ <'('> <Id.Lit_BadBackslash '\\'> <'*'> ($ Id.VSub_DollarName __ifp__) 
                    <'->if_input)'>
                  )
                }
                {(DQ <if_input>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <replace_str>
              more_env: []
              words: [
                {<replace_str>}
                {($ Id.VSub_DollarName line)}
                {(DQ <if_setinit>)}
                {(DQ <if_setinitfn>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <replace_str>
              more_env: []
              words: [
                {<replace_str>}
                {($ Id.VSub_DollarName line)}
                {(DQ <if_setioctl>)}
                {(DQ <if_setioctlfn>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <replace_str>
              more_env: []
              words: [
                {<replace_str>}
                {($ Id.VSub_DollarName line)}
                {(DQ <if_getdrv_flags>)}
                {(DQ <if_getdrvflags>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <replace_str>
              more_env: []
              words: [
                {<replace_str>}
                {($ Id.VSub_DollarName line)}
                {(DQ <if_setdrv_flagsbit>)}
                {(DQ <if_setdrvflagbits>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <replace_str>
              more_env: []
              words: [
                {<replace_str>}
                {($ Id.VSub_DollarName line)}
                {(DQ <if_setstart>)}
                {(DQ <if_setstartfn>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <replace_str>
              more_env: []
              words: [
                {<replace_str>}
                {($ Id.VSub_DollarName line)}
                {(DQ <if_sethwassistbit>)}
                {(DQ <if_sethwassistbits>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <replace_str>
              more_env: []
              words: [
                {<replace_str>}
                {($ Id.VSub_DollarName line)}
                {(DQ <ifmedia_init>)}
                {(DQ <ifmedia_init_drv>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <replace_str>
              more_env: []
              words: [
                {<replace_str>}
                {($ Id.VSub_DollarName line)}
                {(DQ <'IFQ_DRV_IS_EMPTY(&'> ($ Id.VSub_DollarName __ifp__) <'->if_snd)'>)}
                {(DQ <'if_sendq_empty('> ($ Id.VSub_DollarName __ifp__) <')'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <replace_str>
              more_env: []
              words: [
                {<replace_str>}
                {($ Id.VSub_DollarName line)}
                {(DQ <'IFQ_DRV_PREPEND(&'> ($ Id.VSub_DollarName __ifp__) <'->if_snd'>)}
                {(DQ <'if_sendq_prepend('> ($ Id.VSub_DollarName __ifp__))}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <replace_str>
              more_env: []
              words: [
                {<replace_str>}
                {($ Id.VSub_DollarName line)}
                {(DQ <'IFQ_SET_READY(&ifp->if_snd)'>)}
                {(DQ <'if_setsendqready('> ($ Id.VSub_DollarName __ifp__) <')'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'line='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'line='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'line='> name:line)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (CommandSub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Pipeline
                            children: [
                              (command.Simple
                                blame_tok: <echo>
                                more_env: []
                                words: [{<echo>} {($ Id.VSub_DollarName line)}]
                                redirects: []
                                do_fork: T
                              )
                              (command.Simple
                                blame_tok: <sed>
                                more_env: []
                                words: [
                                  {<sed>}
                                  {<-e>}
                                  {(SQ <'s/IFQ_SET_MAXLEN(&'>) ($ Id.VSub_DollarName __ifp__) 
                                    (SQ <'->if_snd, \\(.*\\))/if_setsendqlen('>) ($ Id.VSub_DollarName __ifp__) (SQ <', \\1)/g'>)
                                  }
                                ]
                                redirects: []
                                do_fork: T
                              )
                            ]
                            ops: [<Id.Op_Pipe _>]
                          )
                        right: <Id.Backtick_Right '`'>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'line='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'line='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'line='> name:line)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (CommandSub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Pipeline
                            children: [
                              (command.Simple
                                blame_tok: <echo>
                                more_env: []
                                words: [{<echo>} {($ Id.VSub_DollarName line)}]
                                redirects: []
                                do_fork: T
                              )
                              (command.Simple
                                blame_tok: <sed>
                                more_env: []
                                words: [
                                  {<sed>}
                                  {<-e>}
                                  {(SQ <'s/IFQ_DRV_DEQUEUE(&'>) ($ Id.VSub_DollarName __ifp__) 
                                    (SQ <'->if_snd, \\(.*\\))/\\1 = if_dequeue('>) ($ Id.VSub_DollarName __ifp__) (SQ <')/g'>)
                                  }
                                ]
                                redirects: []
                                do_fork: T
                              )
                            ]
                            ops: [<Id.Op_Pipe _>]
                          )
                        right: <Id.Backtick_Right '`'>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.ControlFlow keyword:<Id.ControlFlow_Return return> arg_word:{<0>})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Simple
                  blame_tok: <Id.Lit_LBracket '['>
                  more_env: []
                  words: [
                    {<Id.Lit_LBracket '['>}
                    {<-e>}
                    {($ Id.VSub_DollarName file) <.tmp>}
                    {<Id.Lit_RBracket ']'>}
                  ]
                  redirects: []
                  do_fork: T
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.Simple
              blame_tok: <rm>
              more_env: []
              words: [{<rm>} {($ Id.VSub_DollarName file) <.tmp>}]
              redirects: []
              do_fork: T
            )
          ]
          spids: [2051 2062]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'IFS='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'IFS='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <echo>
      more_env: []
      words: [
        {<echo>}
        {<-n>}
        {(DQ <'Conversion for '> ($ Id.VSub_DollarName file) <' started, please wait: '>)}
      ]
      redirects: []
      do_fork: T
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'FAIL_PAT='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'FAIL_PAT='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'FAIL_PAT='> name:FAIL_PAT)
          op: assign_op.Equal
          rhs: {(DQ <'XXX - DRVAPI'>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'count='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'count='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'count='> name:count)
          op: assign_op.Equal
          rhs: {<0>}
        )
      ]
      redirects: []
    )
    (command.Pipeline
      children: [
        (command.Simple
          blame_tok: <cat>
          more_env: []
          words: [{<cat>} {($ Id.VSub_Number 1)}]
          redirects: []
          do_fork: T
        )
        (command.WhileUntil
          keyword: <Id.KW_While while>
          cond: 
            (condition.Shell
              commands: [
                (command.Simple
                  blame_tok: <read>
                  more_env: []
                  words: [{<read>} {<-r>} {<line>}]
                  redirects: []
                  do_fork: T
                )
              ]
            )
          body: 
            (command.DoGroup
              left: <Id.KW_Do do>
              children: [
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'count='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'count='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'count='> name:count)
                      op: assign_op.Equal
                      rhs: 
                        {
                          (CommandSub
                            left_token: <Id.Left_Backtick '`'>
                            child: 
                              (command.Simple
                                blame_tok: <expr>
                                more_env: []
                                words: [
                                  {<expr>}
                                  {($ Id.VSub_DollarName count)}
                                  {<Id.Lit_Other '+'>}
                                  {<1>}
                                ]
                                redirects: []
                                do_fork: T
                              )
                            right: <Id.Backtick_Right '`'>
                          )
                        }
                    )
                  ]
                  redirects: []
                )
                (command.Simple
                  blame_tok: <rotateCursor>
                  more_env: []
                  words: [{<rotateCursor>}]
                  redirects: []
                  do_fork: T
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'pat='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'pat='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pat='> name:pat)
                      op: assign_op.Equal
                      rhs: 
                        {
                          (CommandSub
                            left_token: <Id.Left_Backtick '`'>
                            child: 
                              (command.Pipeline
                                children: [
                                  (command.Simple
                                    blame_tok: <echo>
                                    more_env: []
                                    words: [{<echo>} {($ Id.VSub_DollarName line)}]
                                    redirects: []
                                    do_fork: T
                                  )
                                  (command.Simple
                                    blame_tok: <grep>
                                    more_env: []
                                    words: [{<grep>} {(DQ ($ Id.VSub_DollarName __ifp__) <'->'>)}]
                                    redirects: []
                                    do_fork: T
                                  )
                                ]
                                ops: [<Id.Op_Pipe _>]
                              )
                            right: <Id.Backtick_Right '`'>
                          )
                        }
                    )
                  ]
                  redirects: []
                )
                (command.WhileUntil
                  keyword: <Id.KW_While while>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Simple
                          blame_tok: <Id.Lit_LBracket '['>
                          more_env: []
                          words: [
                            {<Id.Lit_LBracket '['>}
                            {(DQ ($ Id.VSub_DollarName pat))}
                            {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                            {(DQ )}
                            {<Id.Lit_RBracket ']'>}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      ]
                    )
                  body: 
                    (command.DoGroup
                      left: <Id.KW_Do do>
                      children: [
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'pat='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'pat='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pat='> name:pat)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (CommandSub
                                    left_token: <Id.Left_Backtick '`'>
                                    child: 
                                      (command.Pipeline
                                        children: [
                                          (command.Simple
                                            blame_tok: <echo>
                                            more_env: []
                                            words: [{<echo>} {($ Id.VSub_DollarName line)}]
                                            redirects: []
                                            do_fork: T
                                          )
                                          (command.Simple
                                            blame_tok: <grep>
                                            more_env: []
                                            words: [
                                              {<grep>}
                                              {(DQ ($ Id.VSub_DollarName __ifp__) <'->'>)}
                                            ]
                                            redirects: []
                                            do_fork: T
                                          )
                                        ]
                                        ops: [<Id.Op_Pipe _>]
                                      )
                                    right: <Id.Backtick_Right '`'>
                                  )
                                }
                            )
                          ]
                          redirects: []
                        )
                        (command.If
                          if_kw: <Id.KW_If if>
                          arms: [
                            (IfArm
                              keyword: <Id.KW_If if>
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Simple
                                      blame_tok: <Id.Lit_LBracket '['>
                                      more_env: []
                                      words: [
                                        {<Id.Lit_LBracket '['>}
                                        {<Id.KW_Bang '!'>}
                                        {<-z>}
                                        {
                                          (CommandSub
                                            left_token: <Id.Left_Backtick '`'>
                                            child: 
                                              (command.Pipeline
                                                children: [
                                                  (command.Simple
                                                    blame_tok: <echo>
                                                    more_env: []
                                                    words: [{<echo>} {($ Id.VSub_DollarName pat)}]
                                                    redirects: []
                                                    do_fork: T
                                                  )
                                                  (command.Simple
                                                    blame_tok: <grep>
                                                    more_env: []
                                                    words: [
                                                      {<grep>}
                                                      {(DQ ($ Id.VSub_DollarName FAIL_PAT))}
                                                    ]
                                                    redirects: []
                                                    do_fork: T
                                                  )
                                                ]
                                                ops: [<Id.Op_Pipe _>]
                                              )
                                            right: <Id.Backtick_Right '`'>
                                          )
                                        }
                                        {<Id.Lit_RBracket ']'>}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                )
                              then_kw: <Id.KW_Then then>
                              action: [
                                (command.Sentence
                                  child: (command.ControlFlow keyword:<Id.ControlFlow_Break break>)
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                              spids: [2180 2207]
                            )
                          ]
                          else_action: []
                          fi_kw: <Id.KW_Fi fi>
                          redirects: []
                        )
                        (command.Simple
                          blame_tok: <handle_set>
                          more_env: []
                          words: [{<handle_set>} {($ Id.VSub_DollarName line)}]
                          redirects: []
                          do_fork: T
                        )
                        (command.If
                          if_kw: <Id.KW_If if>
                          arms: [
                            (IfArm
                              keyword: <Id.KW_If if>
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Simple
                                      blame_tok: <Id.Lit_LBracket '['>
                                      more_env: []
                                      words: [
                                        {<Id.Lit_LBracket '['>}
                                        {($ Id.VSub_QMark '?')}
                                        {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                        {<0>}
                                        {<Id.Lit_RBracket ']'>}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                )
                              then_kw: <Id.KW_Then then>
                              action: [
                                (command.Simple
                                  blame_tok: <handle_inc>
                                  more_env: []
                                  words: [{<handle_inc>} {($ Id.VSub_DollarName line)}]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              spids: [2224 2238]
                            )
                          ]
                          else_action: []
                          fi_kw: <Id.KW_Fi fi>
                          redirects: []
                        )
                        (command.If
                          if_kw: <Id.KW_If if>
                          arms: [
                            (IfArm
                              keyword: <Id.KW_If if>
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Simple
                                      blame_tok: <Id.Lit_LBracket '['>
                                      more_env: []
                                      words: [
                                        {<Id.Lit_LBracket '['>}
                                        {($ Id.VSub_QMark '?')}
                                        {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                        {<0>}
                                        {<Id.Lit_RBracket ']'>}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                )
                              then_kw: <Id.KW_Then then>
                              action: [
                                (command.Simple
                                  blame_tok: <handle_add>
                                  more_env: []
                                  words: [{<handle_add>} {($ Id.VSub_DollarName line)}]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              spids: [2251 2265]
                            )
                          ]
                          else_action: []
                          fi_kw: <Id.KW_Fi fi>
                          redirects: []
                        )
                        (command.If
                          if_kw: <Id.KW_If if>
                          arms: [
                            (IfArm
                              keyword: <Id.KW_If if>
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Simple
                                      blame_tok: <Id.Lit_LBracket '['>
                                      more_env: []
                                      words: [
                                        {<Id.Lit_LBracket '['>}
                                        {($ Id.VSub_QMark '?')}
                                        {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                        {<0>}
                                        {<Id.Lit_RBracket ']'>}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                )
                              then_kw: <Id.KW_Then then>
                              action: [
                                (command.Simple
                                  blame_tok: <handle_or>
                                  more_env: []
                                  words: [{<handle_or>} {($ Id.VSub_DollarName line)}]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              spids: [2277 2291]
                            )
                          ]
                          else_action: []
                          fi_kw: <Id.KW_Fi fi>
                          redirects: []
                        )
                        (command.If
                          if_kw: <Id.KW_If if>
                          arms: [
                            (IfArm
                              keyword: <Id.KW_If if>
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Simple
                                      blame_tok: <Id.Lit_LBracket '['>
                                      more_env: []
                                      words: [
                                        {<Id.Lit_LBracket '['>}
                                        {($ Id.VSub_QMark '?')}
                                        {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                        {<0>}
                                        {<Id.Lit_RBracket ']'>}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                )
                              then_kw: <Id.KW_Then then>
                              action: [
                                (command.Simple
                                  blame_tok: <handle_and>
                                  more_env: []
                                  words: [{<handle_and>} {($ Id.VSub_DollarName line)}]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              spids: [2303 2317]
                            )
                          ]
                          else_action: []
                          fi_kw: <Id.KW_Fi fi>
                          redirects: []
                        )
                        (command.If
                          if_kw: <Id.KW_If if>
                          arms: [
                            (IfArm
                              keyword: <Id.KW_If if>
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Simple
                                      blame_tok: <Id.Lit_LBracket '['>
                                      more_env: []
                                      words: [
                                        {<Id.Lit_LBracket '['>}
                                        {($ Id.VSub_QMark '?')}
                                        {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                        {<0>}
                                        {<Id.Lit_RBracket ']'>}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                )
                              then_kw: <Id.KW_Then then>
                              action: [
                                (command.Simple
                                  blame_tok: <handle_toggle>
                                  more_env: []
                                  words: [{<handle_toggle>} {($ Id.VSub_DollarName line)}]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              spids: [2329 2343]
                            )
                          ]
                          else_action: []
                          fi_kw: <Id.KW_Fi fi>
                          redirects: []
                        )
                        (command.If
                          if_kw: <Id.KW_If if>
                          arms: [
                            (IfArm
                              keyword: <Id.KW_If if>
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Simple
                                      blame_tok: <Id.Lit_LBracket '['>
                                      more_env: []
                                      words: [
                                        {<Id.Lit_LBracket '['>}
                                        {($ Id.VSub_QMark '?')}
                                        {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                        {<0>}
                                        {<Id.Lit_RBracket ']'>}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                )
                              then_kw: <Id.KW_Then then>
                              action: [
                                (command.Simple
                                  blame_tok: <handle_misc>
                                  more_env: []
                                  words: [{<handle_misc>} {($ Id.VSub_DollarName line)}]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              spids: [2355 2369]
                            )
                          ]
                          else_action: []
                          fi_kw: <Id.KW_Fi fi>
                          redirects: []
                        )
                        (command.If
                          if_kw: <Id.KW_If if>
                          arms: [
                            (IfArm
                              keyword: <Id.KW_If if>
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Simple
                                      blame_tok: <Id.Lit_LBracket '['>
                                      more_env: []
                                      words: [
                                        {<Id.Lit_LBracket '['>}
                                        {($ Id.VSub_QMark '?')}
                                        {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                        {<0>}
                                        {<Id.Lit_RBracket ']'>}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                )
                              then_kw: <Id.KW_Then then>
                              action: [
                                (command.Simple
                                  blame_tok: <handle_special>
                                  more_env: []
                                  words: [{<handle_special>} {($ Id.VSub_DollarName line)}]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              spids: [2382 2396]
                            )
                          ]
                          else_action: []
                          fi_kw: <Id.KW_Fi fi>
                          redirects: []
                        )
                        (command.If
                          if_kw: <Id.KW_If if>
                          arms: [
                            (IfArm
                              keyword: <Id.KW_If if>
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Simple
                                      blame_tok: <Id.Lit_LBracket '['>
                                      more_env: []
                                      words: [
                                        {<Id.Lit_LBracket '['>}
                                        {<Id.KW_Bang '!'>}
                                        {<-z>}
                                        {
                                          (CommandSub
                                            left_token: <Id.Left_Backtick '`'>
                                            child: 
                                              (command.Pipeline
                                                children: [
                                                  (command.Simple
                                                    blame_tok: <echo>
                                                    more_env: []
                                                    words: [{<echo>} {($ Id.VSub_DollarName line)}]
                                                    redirects: []
                                                    do_fork: T
                                                  )
                                                  (command.Simple
                                                    blame_tok: <grep>
                                                    more_env: []
                                                    words: [
                                                      {<grep>}
                                                      {(DQ ($ Id.VSub_DollarName __ifp__) <'->'>)}
                                                    ]
                                                    redirects: []
                                                    do_fork: T
                                                  )
                                                ]
                                                ops: [<Id.Op_Pipe _>]
                                              )
                                            right: <Id.Backtick_Right '`'>
                                          )
                                        }
                                        {<Id.Lit_RBracket ']'>}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                )
                              then_kw: <Id.KW_Then then>
                              action: [
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'line='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'line='>
                                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'line='> name:line)
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (CommandSub
                                            left_token: <Id.Left_Backtick '`'>
                                            child: 
                                              (command.Pipeline
                                                children: [
                                                  (command.Simple
                                                    blame_tok: <echo>
                                                    more_env: []
                                                    words: [{<echo>} {($ Id.VSub_DollarName line)}]
                                                    redirects: []
                                                    do_fork: T
                                                  )
                                                  (command.Simple
                                                    blame_tok: <sed>
                                                    more_env: []
                                                    words: [
                                                      {<sed>}
                                                      {<-e>}
                                                      {(SQ <'s:$: \\/* '>) (${ Id.VSub_Name FAIL_PAT) 
                                                        (SQ <' *\\/:g'>)
                                                      }
                                                    ]
                                                    redirects: []
                                                    do_fork: T
                                                  )
                                                ]
                                                ops: [<Id.Op_Pipe _>]
                                              )
                                            right: <Id.Backtick_Right '`'>
                                          )
                                        }
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              spids: [2409 2437]
                            )
                          ]
                          else_action: []
                          fi_kw: <Id.KW_Fi fi>
                          redirects: []
                        )
                      ]
                      right: <Id.KW_Done done>
                    )
                  redirects: []
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'line='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'line='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'line='> name:line)
                      op: assign_op.Equal
                      rhs: 
                        {
                          (CommandSub
                            left_token: <Id.Left_Backtick '`'>
                            child: 
                              (command.Pipeline
                                children: [
                                  (command.Simple
                                    blame_tok: <echo>
                                    more_env: []
                                    words: [{<echo>} {(DQ ($ Id.VSub_DollarName line))}]
                                    redirects: []
                                    do_fork: T
                                  )
                                  (command.Simple
                                    blame_tok: <sed>
                                    more_env: []
                                    words: [
                                      {<sed>}
                                      {<-e>}
                                      {(SQ <'s:VLAN_CAPABILITIES('>) ($ Id.VSub_DollarName __ifp__) 
                                        (SQ <'):if_vlancap('>) ($ Id.VSub_DollarName __ifp__) (SQ <'):g'>)
                                      }
                                    ]
                                    redirects: []
                                    do_fork: T
                                  )
                                ]
                                ops: [<Id.Op_Pipe _>]
                              )
                            right: <Id.Backtick_Right '`'>
                          )
                        }
                    )
                  ]
                  redirects: []
                )
                (command.If
                  if_kw: <Id.KW_If if>
                  arms: [
                    (IfArm
                      keyword: <Id.KW_If if>
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Simple
                              blame_tok: <Id.Lit_LBracket '['>
                              more_env: []
                              words: [
                                {<Id.Lit_LBracket '['>}
                                {<Id.KW_Bang '!'>}
                                {<-z>}
                                {
                                  (CommandSub
                                    left_token: <Id.Left_Backtick '`'>
                                    child: 
                                      (command.Pipeline
                                        children: [
                                          (command.Simple
                                            blame_tok: <echo>
                                            more_env: []
                                            words: [{<echo>} {($ Id.VSub_DollarName line)}]
                                            redirects: []
                                            do_fork: T
                                          )
                                          (command.Simple
                                            blame_tok: <grep>
                                            more_env: []
                                            words: [{<grep>} {(DQ <'struct ifnet'>)}]
                                            redirects: []
                                            do_fork: T
                                          )
                                        ]
                                        ops: [<Id.Op_Pipe _>]
                                      )
                                    right: <Id.Backtick_Right '`'>
                                  )
                                }
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          ]
                        )
                      then_kw: <Id.KW_Then then>
                      action: [
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'line='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'line='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'line='> name:line)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (CommandSub
                                    left_token: <Id.Left_Backtick '`'>
                                    child: 
                                      (command.Pipeline
                                        children: [
                                          (command.Simple
                                            blame_tok: <echo>
                                            more_env: []
                                            words: [{<echo>} {($ Id.VSub_DollarName line)}]
                                            redirects: []
                                            do_fork: T
                                          )
                                          (command.Simple
                                            blame_tok: <sed>
                                            more_env: []
                                            words: [
                                              {<sed>}
                                              {<-e>}
                                              {(SQ <'s/struct ifnet[ \\t]*\\*/if_t /g'>)}
                                            ]
                                            redirects: []
                                            do_fork: T
                                          )
                                        ]
                                        ops: [<Id.Op_Pipe _>]
                                      )
                                    right: <Id.Backtick_Right '`'>
                                  )
                                }
                            )
                          ]
                          redirects: []
                        )
                      ]
                      spids: [2509 2536]
                    )
                  ]
                  else_action: []
                  fi_kw: <Id.KW_Fi fi>
                  redirects: []
                )
                (command.Simple
                  blame_tok: <echo>
                  more_env: []
                  words: [{<echo>} {(DQ ($ Id.VSub_DollarName line))}]
                  redirects: [
                    (Redir
                      op: <Id.Redir_DGreat '>>'>
                      loc: (redir_loc.Fd fd:1)
                      arg: {($ Id.VSub_DollarName file) <.tmp>}
                    )
                  ]
                  do_fork: T
                )
              ]
              right: <Id.KW_Done done>
            )
          redirects: []
        )
      ]
      ops: [<Id.Op_Pipe _>]
    )
    (command.Simple blame_tok:<echo> more_env:[] words:[{<echo>} {(DQ )}] redirects:[] do_fork:T)
    (command.ShAssignment
      left: <Id.Lit_VarLike 'count='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'count='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'count='> name:count)
          op: assign_op.Equal
          rhs: 
            {
              (CommandSub
                left_token: <Id.Left_Backtick '`'>
                child: 
                  (command.Pipeline
                    children: [
                      (command.Simple
                        blame_tok: <grep>
                        more_env: []
                        words: [
                          {<grep>}
                          {($ Id.VSub_DollarName FAIL_PAT)}
                          {($ Id.VSub_DollarName file) <.tmp>}
                        ]
                        redirects: []
                        do_fork: T
                      )
                      (command.Simple
                        blame_tok: <wc>
                        more_env: []
                        words: [{<wc>} {<-l>}]
                        redirects: []
                        do_fork: T
                      )
                    ]
                    ops: [<Id.Op_Pipe _>]
                  )
                right: <Id.Backtick_Right '`'>
              )
            }
        )
      ]
      redirects: []
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Simple
                  blame_tok: <Id.Lit_LBracket '['>
                  more_env: []
                  words: [
                    {<Id.Lit_LBracket '['>}
                    {($ Id.VSub_DollarName count)}
                    {<-gt>}
                    {<0>}
                    {<Id.Lit_RBracket ']'>}
                  ]
                  redirects: []
                  do_fork: T
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [
                {<echo>}
                {(DQ ($ Id.VSub_DollarName count) <' lines could not be converted to DRVAPI'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [
                {<echo>}
                {(DQ <'Look for /* '> ($ Id.VSub_DollarName FAIL_PAT) <' */ in the converted file'>)}
              ]
              redirects: []
              do_fork: T
            )
          ]
          spids: [2602 2614]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.Simple
      blame_tok: <echo>
      more_env: []
      words: [
        {<echo>}
        {
          (DQ <'original '> ($ Id.VSub_DollarName file) <'  has been moved to '> 
            ($ Id.VSub_DollarName file) <.orig>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <mv>
      more_env: []
      words: [{<mv>} {($ Id.VSub_DollarName file)} {($ Id.VSub_DollarName file) <.orig>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <mv>
      more_env: []
      words: [{<mv>} {($ Id.VSub_DollarName file) <.tmp>} {($ Id.VSub_DollarName file)}]
      redirects: []
      do_fork: T
    )
  ]
)