(command.CommandList
  children: [
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<Id.Lit_LBracket '['>} {($ Id.VSub_Pound '#')} {<-ne>} {<1>} 
                      {<Id.Lit_RBracket ']'>}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.Simple
              words: [{<echo>} {(DQ <'USAGE: '> ($ Id.VSub_Number 0) <' <path to libimpi.h>'>)}]
              redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
              more_env: []
              do_fork: T
            )
            (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>})
          ]
          spids: [90 103]
        )
      ]
      else_action: []
      redirects: []
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<Id.Lit_LBracket '['>} {<-r>} {($ Id.VSub_Number 1)} {<Id.Lit_RBracket ']'>})
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'libipmi_h='> name:libipmi_h)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 1)}
                  spids: [139]
                )
              ]
              redirects: []
            )
          ]
          spids: [125 136]
        )
      ]
      else_action: [
        (command.Simple
          words: [{<echo>} {(DQ <'USAGE: '> ($ Id.VSub_Number 0) <' <path to libimpi.h>'>)}]
          redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
          more_env: []
          do_fork: T
        )
        (command.Simple
          words: [{<echo>} {(DQ <'Make sure libipmi.h exists and is readable'>)}]
          redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
          more_env: []
          do_fork: T
        )
        (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>})
      ]
      redirects: []
    )
    (C {<echo>} 
      {
        (DQ <'/*\n'> <' * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.\n'> 
          <' * Use is subject to license terms.\n'> <' */\n'> <'\n'> <'#include <libipmi.h>\n'> <'#include <ipmi_impl.h>'>
        )
      }
    )
    (C {<echo>} {(DQ <'\n'> <'ipmi_name_trans_t ipmi_errno_table[] = {'>)})
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pattern='> name:pattern)
          op: assign_op.Equal
          rhs: 
            {
              (DQ <'\t'> <Id.Lit_BadBackslash '\\'> <'(EIPMI_[0-9A-Z_]*'> <Id.Lit_BadBackslash '\\'> 
                <')[^ '> <Id.Lit_BadBackslash '\\'> <'/]*'> <Id.Lit_BadBackslash '\\'> <'/'> <Id.Lit_BadBackslash '\\'> <'* '> 
                <Id.Lit_BadBackslash '\\'> <'(.*'> <Id.Lit_BadBackslash '\\'> <') '> <Id.Lit_BadBackslash '\\'> <'*'> <Id.Lit_BadBackslash '\\'> <'/'> 
                <Id.Lit_Dollar '$'>
              )
            }
          spids: [205]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'replace='> name:replace)
          op: assign_op.Equal
          rhs: 
            {
              (DQ <'\t{ '> <Id.Lit_BadBackslash '\\'> <'1, '> 
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <Id.Lit_BadBackslash '\\'> <2> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                <' },'>
              )
            }
          spids: [229]
        )
      ]
      redirects: []
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (command.Pipeline
          children: [
            (C {<cat>} {($ Id.VSub_DollarName libipmi_h)})
            (C {<sed>} {<-n>} 
              {(DQ <'s/'> ($ Id.VSub_DollarName pattern) <'/'> ($ Id.VSub_DollarName replace) <'/p'>)}
            )
          ]
          negated: F
          stderr_indices: []
        )
        (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>})
      ]
    )
    (C {<echo>} {(DQ <Id.Lit_BadBackslash '\\'> <'t{ 0, NULL }\n'> <'};'>)})
    (C {<echo>} {(DQ <Id.Lit_BadBackslash '\\'> <'nipmi_name_trans_t ipmi_entity_table[] = {'>)})
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pattern='> name:pattern)
          op: assign_op.Equal
          rhs: 
            {
              (DQ <'#define\tIPMI_ET_'> <Id.Lit_BadBackslash '\\'> <'([A-Z0-9_]*'> 
                <Id.Lit_BadBackslash '\\'> <').*'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$')
              )
            }
          spids: [293]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'replace='> name:replace)
          op: assign_op.Equal
          rhs: 
            {
              (DQ <'\t{ IPMI_ET_'> <Id.Lit_BadBackslash '\\'> <'1, '> 
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <Id.Lit_BadBackslash '\\'> <1> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                <' },'>
              )
            }
          spids: [303]
        )
      ]
      redirects: []
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (command.Pipeline
          children: [
            (C {<cat>} {($ Id.VSub_DollarName libipmi_h)})
            (C {<sed>} {<-n>} 
              {(DQ <'s/'> ($ Id.VSub_DollarName pattern) <'/'> ($ Id.VSub_DollarName replace) <'/p'>)}
            )
          ]
          negated: F
          stderr_indices: []
        )
        (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>})
      ]
    )
    (C {<echo>} {(DQ <Id.Lit_BadBackslash '\\'> <'t{ 0, NULL }\n'> <'};'>)})
    (C {<echo>} {(DQ <Id.Lit_BadBackslash '\\'> <'nipmi_name_trans_t ipmi_sensor_type_table[] = {'>)})
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pattern='> name:pattern)
          op: assign_op.Equal
          rhs: 
            {
              (DQ <'#define\tIPMI_ST_'> <Id.Lit_BadBackslash '\\'> <'([A-Z0-9_]*'> 
                <Id.Lit_BadBackslash '\\'> <').*'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$')
              )
            }
          spids: [367]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'replace='> name:replace)
          op: assign_op.Equal
          rhs: 
            {
              (DQ <'\t{ IPMI_ST_'> <Id.Lit_BadBackslash '\\'> <'1, '> 
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <Id.Lit_BadBackslash '\\'> <1> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                <' },'>
              )
            }
          spids: [377]
        )
      ]
      redirects: []
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (command.Pipeline
          children: [
            (C {<cat>} {($ Id.VSub_DollarName libipmi_h)})
            (C {<sed>} {<-n>} 
              {(DQ <'s/'> ($ Id.VSub_DollarName pattern) <'/'> ($ Id.VSub_DollarName replace) <'/p'>)}
            )
          ]
          negated: F
          stderr_indices: []
        )
        (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>})
      ]
    )
    (C {<echo>} {(DQ <Id.Lit_BadBackslash '\\'> <'t{ 0, NULL }\n'> <'};'>)})
    (C {<echo>} {(DQ <Id.Lit_BadBackslash '\\'> <'nipmi_name_trans_t ipmi_reading_type_table[] = {'>)})
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pattern='> name:pattern)
          op: assign_op.Equal
          rhs: 
            {
              (DQ <'#define\tIPMI_RT_'> <Id.Lit_BadBackslash '\\'> <'([A-Z0-9_]*'> 
                <Id.Lit_BadBackslash '\\'> <').*'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$')
              )
            }
          spids: [441]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'replace='> name:replace)
          op: assign_op.Equal
          rhs: 
            {
              (DQ <'\t{ IPMI_RT_'> <Id.Lit_BadBackslash '\\'> <'1, '> 
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <Id.Lit_BadBackslash '\\'> <1> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                <' },'>
              )
            }
          spids: [451]
        )
      ]
      redirects: []
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (command.Pipeline
          children: [
            (C {<cat>} {($ Id.VSub_DollarName libipmi_h)})
            (C {<sed>} {<-n>} 
              {(DQ <'s/'> ($ Id.VSub_DollarName pattern) <'/'> ($ Id.VSub_DollarName replace) <'/p'>)}
            )
          ]
          negated: F
          stderr_indices: []
        )
        (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>})
      ]
    )
    (C {<echo>} {(DQ <Id.Lit_BadBackslash '\\'> <'t{ 0, NULL }\n'> <'};'>)})
    (C {<echo>} {(DQ <Id.Lit_BadBackslash '\\'> <'nipmi_name_trans_t ipmi_units_type_table[] = {'>)})
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pattern='> name:pattern)
          op: assign_op.Equal
          rhs: 
            {
              (DQ <'#define\tIPMI_UNITS_'> <Id.Lit_BadBackslash '\\'> <'([A-Z0-9_]*'> 
                <Id.Lit_BadBackslash '\\'> <').*'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$')
              )
            }
          spids: [515]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'replace='> name:replace)
          op: assign_op.Equal
          rhs: 
            {
              (DQ <'\t{ IPMI_UNITS_'> <Id.Lit_BadBackslash '\\'> <'1, '> 
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <Id.Lit_BadBackslash '\\'> <1> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                <' },'>
              )
            }
          spids: [525]
        )
      ]
      redirects: []
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (command.Pipeline
          children: [
            (C {<cat>} {($ Id.VSub_DollarName libipmi_h)})
            (C {<sed>} {<-n>} 
              {(DQ <'s/'> ($ Id.VSub_DollarName pattern) <'/'> ($ Id.VSub_DollarName replace) <'/p'>)}
            )
          ]
          negated: F
          stderr_indices: []
        )
        (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>})
      ]
    )
    (C {<echo>} {(DQ <Id.Lit_BadBackslash '\\'> <'t{ 0, NULL }\n'> <'};'>)})
  ]
)