(command.CommandList
  children: [
    (C {<Id.Lit_Colon ':'>} 
      {
        (braced_var_sub
          token: <Id.VSub_Name LOCALE_FR>
          suffix_op: (suffix_op.Unary op_id:Id.VTest_Equals arg_word:{<fr_FR>})
        )
      }
    )
    (C {<Id.Lit_Colon ':'>} 
      {
        (braced_var_sub
          token: <Id.VSub_Name LOCALE_FR_UTF8>
          suffix_op: (suffix_op.Unary op_id:Id.VTest_Equals arg_word:{<fr_FR.UTF-8>})
        )
      }
    )
    (C {<Id.Lit_Colon ':'>} 
      {
        (braced_var_sub
          token: <Id.VSub_Name LOCALE_JA>
          suffix_op: (suffix_op.Unary op_id:Id.VTest_Equals arg_word:{<ja_JP>})
        )
      }
    )
    (C {<Id.Lit_Colon ':'>} 
      {
        (braced_var_sub
          token: <Id.VSub_Name LOCALE_ZH_CN>
          suffix_op: (suffix_op.Unary op_id:Id.VTest_Equals arg_word:{<zh_CN.GB18030>})
        )
      }
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (command.AndOr
                  ops: [Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp]
                  children: [
                    (C {<test>} {($ Id.VSub_DollarName '$LOCALE_FR')} {<Id.Lit_Equals '='>} {<none>})
                    (C {<test>} {($ Id.VSub_DollarName '$LOCALE_FR_UTF8')} {<Id.Lit_Equals '='>} {<none>})
                    (C {<test>} {($ Id.VSub_DollarName '$LOCALE_JA')} {<Id.Lit_Equals '='>} {<none>})
                    (C {<test>} {($ Id.VSub_DollarName '$LOCALE_ZH_CN')} {<Id.Lit_Equals '='>} {<none>})
                  ]
                )
              terminator: <Id.Op_Semi _>
            )
          ]
          action: [
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: (C {<test>} {<-f>} {<'/usr/bin/localedef'>})
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<echo>} {(DQ <'Skipping test: no locale for testing is installed'>)})]
                  spids: [83 92]
                )
              ]
              else_action: [(C {<echo>} {(DQ <'Skipping test: no locale for testing is supported'>)})]
            )
            (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<77>})
          ]
          spids: [37 80]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (C {<test>} {($ Id.VSub_DollarName '$LOCALE_FR')} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} 
                  {<none>}
                )
              terminator: <Id.Op_Semi _>
            )
          ]
          action: [
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (command.Simple
                  words: [{<'./test-setlocale1'> (${ Id.VSub_Name EXEEXT)}]
                  more_env: [
                    (env_pair
                      name: LC_ALL
                      val: {($ Id.VSub_DollarName '$LOCALE_FR')}
                      spids: [137]
                    )
                  ]
                  do_fork: T
                )
                (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>})
              ]
            )
          ]
          spids: [122 134]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (C {<test>} {($ Id.VSub_DollarName '$LOCALE_FR_UTF8')} 
                  {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<none>}
                )
              terminator: <Id.Op_Semi _>
            )
          ]
          action: [
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (command.Simple
                  words: [{<'./test-setlocale1'> (${ Id.VSub_Name EXEEXT)}]
                  more_env: [
                    (env_pair
                      name: LC_ALL
                      val: {($ Id.VSub_DollarName '$LOCALE_FR_UTF8')}
                      spids: [169]
                    )
                  ]
                  do_fork: T
                )
                (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>})
              ]
            )
          ]
          spids: [154 166]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (C {<test>} {($ Id.VSub_DollarName '$LOCALE_JA')} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} 
                  {<none>}
                )
              terminator: <Id.Op_Semi _>
            )
          ]
          action: [
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (command.Simple
                  words: [{<'./test-setlocale1'> (${ Id.VSub_Name EXEEXT)}]
                  more_env: [
                    (env_pair
                      name: LC_ALL
                      val: {($ Id.VSub_DollarName '$LOCALE_JA')}
                      spids: [201]
                    )
                  ]
                  do_fork: T
                )
                (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>})
              ]
            )
          ]
          spids: [186 198]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (C {<test>} {($ Id.VSub_DollarName '$LOCALE_ZH_CN')} 
                  {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<none>}
                )
              terminator: <Id.Op_Semi _>
            )
          ]
          action: [
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (command.Simple
                  words: [{<'./test-setlocale1'> (${ Id.VSub_Name EXEEXT)}]
                  more_env: [
                    (env_pair
                      name: LC_ALL
                      val: {($ Id.VSub_DollarName '$LOCALE_ZH_CN')}
                      spids: [233]
                    )
                  ]
                  do_fork: T
                )
                (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>})
              ]
            )
          ]
          spids: [218 230]
        )
      ]
    )
    (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<0>})
  ]
)