(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:scale) op:Equal rhs:{(2)} spids:[8])]
      spids: [8]
    )
    (FuncDef
      name: show_help
      body: 
        (BraceGroup
          children: [
            (SimpleCommand
              words: [{(cat)}]
              redirects: [
                (HereDoc
                  op_id: Redir_DLess
                  fd: -1
                  body: 
                    {
                      (DQ ('  In addition to standard math functions, calc also supports:\n') ('\n') 
                        ('  a % b       remainder of a/b\n') ('  a ^ b       exponential: a raised to the b power\n') ('  s(x)        sine of x, x in radians\n') 
                        ('  c(x)        cosine of x, x in radians\n') ('  a(x)        arctangent of x, in radians\n') ('  l(x)        natural log of x\n') 
                        ('  e(x)        exponential log of raising e to the x \n') ('  j(n,x)      Bessel function of integer order n of x\n') 
                        ('  scale N     show N fractional digits (default = 2)\n')
                      )
                    }
                  do_expansion: True
                  here_end: EOF
                  was_filled: True
                  spids: [21]
                )
              ]
            )
          ]
          spids: [17]
        )
      spids: [13 16]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(Lit_Other '[')} {($ VSub_Pound '$#')} {(-gt)} {(0)} {(Lit_Other ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [(C {(exec)} {(scriptbc)} {(DQ ($ VSub_At '$@'))})]
          spids: [-1 54]
        )
      ]
      spids: [-1 65]
    )
    (C {(echo)} {(DQ ("Calc--a simple calculator. Enter 'help' for help, 'quit' to quit."))})
    (C {(/bin/echo)} {(-n)} {(DQ ('calc> '))})
    (While
      cond: [(C {(read)} {(command)} {(args)})]
      body: 
        (DoGroup
          children: [
            (Case
              to_match: {($ VSub_Name '$command')}
              arms: [
                (case_arm
                  pat_list: [{(quit)} {(exit)}]
                  action: [(C {(exit)} {(0)})]
                  spids: [103 106 112 -1]
                )
                (case_arm
                  pat_list: [{(help)} {(EscapedLiteralPart token:<Lit_EscapedChar '\\?'>)}]
                  action: [(C {(show_help)})]
                  spids: [115 118 122 -1]
                )
                (case_arm
                  pat_list: [{(scale)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:scale)
                          op: Equal
                          rhs: {($ VSub_Name '$args')}
                          spids: [128]
                        )
                      ]
                      spids: [128]
                    )
                  ]
                  spids: [125 126 131 -1]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [
                    (C {(scriptbc)} {(-p)} {($ VSub_Name '$scale')} {(DQ ($ VSub_Name '$command'))} 
                      {(DQ ($ VSub_Name '$args'))}
                    )
                  ]
                  spids: [134 135 151 -1]
                )
              ]
              spids: [95 100 154]
            )
            (C {(/bin/echo)} {(-n)} {(DQ ('calc> '))})
          ]
          spids: [92 166]
        )
    )
    (C {(echo)} {(DQ )})
    (C {(exit)} {(0)})
  ]
)