(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PATH='> name:PATH)
          op: assign_op.Equal
          rhs: {<'/usr/bin'>}
          spids: [93]
        )
      ]
      redirects: []
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<test>} {<-z>} {(DQ ($ Id.VSub_Number 3))} {<-o>} {(DQ ($ Id.VSub_Number 3))} 
                      {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_Number 1))} {<-o>} {(DQ ($ Id.VSub_Number 3))} {<Id.Lit_Equals '='>} 
                      {(DQ ($ Id.VSub_Number 2))}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (C {<echo>} 
              {
                (command_sub
                  left_token: <Id.Left_Backtick '`'>
                  child: 
                    (C {<gettext>} {<TEXT_DOMAIN>} 
                      {(DQ <'usage: diffmk name1 name2 name3 -- name3 must be different'>)}
                    )
                  right: <Id.Backtick_Right '`'>
                )
              }
            )
            (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>})
          ]
          spids: [96 131]
        )
      ]
      else_action: []
      redirects: []
    )
    (command.Pipeline
      children: [
        (C {<diff>} {<-e>} {($ Id.VSub_Number 1)} {($ Id.VSub_Number 2)})
        (command.Subshell
          child: 
            (command.CommandList
              children: [
                (command.Sentence
                  child: 
                    (C {<sed>} {<-n>} {<-e>} 
                      {
                        (SQ <'\n'> <'/[ac]$/{\n'> <'\tp\n'> <'\ta\\\n'> <'.mc |\n'> <': loop\n'> <'\tn\n'> 
                          <'\t/^\\.$/b done1\n'> <'\tp\n'> <'\tb loop\n'> <': done1\n'> <'\ta\\\n'> <'.mc\\\n'> <'.\n'> <'\tb\n'> <'}\n'> <'\n'> <'/d$/{\n'> 
                          <'\ts/d/c/p\n'> <'\ta\\\n'> <'.mc *\\\n'> <'.mc\\\n'> <'.\n'> <'\tb\n'> <'}'>
                        )
                      }
                    )
                  terminator: <Id.Op_Semi _>
                )
                (C {<echo>} {(SQ <'1,$p'>)})
              ]
            )
          redirects: []
        )
        (C {<ed>} {<->} {($ Id.VSub_Number 1)})
        (command.Simple
          words: [
            {<sed>}
            {<-e>}
            {
              (SQ <'\n'> <'/^\\.TS/,/.*\\. *$/b pos\n'> <'/^\\.T&/,/.*\\. *$/b pos\n'> <'p\n'> <'d\n'> 
                <':pos\n'> <'/^\\.mc/d\n'>
              )
            }
          ]
          redirects: [
            (redir
              op: <Id.Redir_Great '>'>
              loc: (redir_loc.Fd fd:1)
              arg: {($ Id.VSub_Number 3)}
            )
          ]
          more_env: []
          do_fork: T
        )
      ]
      negated: F
      stderr_indices: []
    )
  ]
)