(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:pkgname)
          op: assign_op.Equal
          rhs: {<octave>}
          spids: [6]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:pkgver)
          op: assign_op.Equal
          rhs: {<4.2.0>}
          spids: [9]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:pkgrel)
          op: assign_op.Equal
          rhs: {<1>}
          spids: [12]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:pkgdesc)
          op: assign_op.Equal
          rhs: {(DQ <'A high-level language, primarily intended for numerical computations'>)}
          spids: [15]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:url)
          op: assign_op.Equal
          rhs: {(DQ <'https://www.gnu.org/software/octave/'>)}
          spids: [20]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:arch)
          op: assign_op.Equal
          rhs: {(DQ <all>)}
          spids: [25]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:license)
          op: assign_op.Equal
          rhs: {(DQ <GPL3>)}
          spids: [30]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:depends)
          op: assign_op.Equal
          rhs: {(DQ )}
          spids: [35]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:subpackages)
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName '$pkgname') <-doc>)}
          spids: [39]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:makedepends)
          op: assign_op.Equal
          rhs: 
            {
              (DQ <'autoconf automake bison curl fftw-dev fltk-dev fontconfig-dev\n'> 
                <'\tfreetype-dev gfortran glu-dev gnuplot imagemagick-dev hdf5-dev\n'> <'\tlapack-dev libsm-dev libltdl lcms2-dev pcre-dev perl pkgconf qt-dev\n'> 
                <'\treadline-dev texinfo zlib-dev'>
              )
            }
          spids: [45]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:source)
          op: assign_op.Equal
          rhs: 
            {
              (DQ <'ftp://ftp.gnu.org/gnu/octave/'> ($ Id.VSub_DollarName '$pkgname') <-> 
                ($ Id.VSub_DollarName '$pkgver') <'.tar.gz\n'> <'\tless-docs.patch\n'> <'\tlibinterp-deps.patch\n'> <'\tabs.patch\n'> <'\tgnulib.patch'>
              )
            }
          spids: [53]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:builddir)
          op: assign_op.Equal
          rhs: 
            {
              (DQ ($ Id.VSub_DollarName '$srcdir') <'/'> ($ Id.VSub_DollarName '$pkgname') <-> 
                ($ Id.VSub_DollarName '$pkgver')
              )
            }
          spids: [66]
        )
      ]
    )
    (command.ShFunction
      name: prepare
      body: 
        (BraceGroup
          children: [
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {<default_prepare>})
                (command.ControlFlow
                  token: <Id.ControlFlow_Return return>
                  arg_word: {<1>}
                )
              ]
            )
            (C {<cd>} {(DQ ($ Id.VSub_DollarName '$builddir'))})
            (command.Pipeline
              children: [
                (C {<find>} {<-name>} 
                  {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\*'>) <.cc>} {<-o>} {<-name>} {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\*'>) <.h>} {<-o>} {<-name>} 
                  {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\*'>) <.yy>}
                )
                (C {<xargs>} {<sed>} {<-i>} {<-e>} 
                  {(SQ <'s/#include <c\\(math\\|stdlib\\)>/#include <\\1.h>/'>)}
                )
              ]
              negated: F
            )
            (command.Pipeline
              children: [
                (C {<find>} {<-name>} {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\*'>) <.h>} 
                  {<-o>} {<-name>} {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\*'>) <.cc>}
                )
                (C {<xargs>} {<sed>} {<-i>} {<-e>} {(SQ <'s/<config.h>/"config.h"/'>)} {<-e>} 
                  {(SQ <'s/<base-list.h>/"base-list.h"/'>)}
                )
              ]
              negated: F
            )
          ]
        )
    )
    (command.ShFunction
      name: build
      body: 
        (BraceGroup
          children: [
            (C {<cd>} {(DQ ($ Id.VSub_DollarName '$builddir'))})
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {<'./configure'>} {<--build> <Id.Lit_Equals '='> ($ Id.VSub_DollarName '$CBUILD')} 
                  {<--host> <Id.Lit_Equals '='> ($ Id.VSub_DollarName '$CHOST')} {<--prefix> <Id.Lit_Equals '='> <'/usr'>} {<--sysconfdir> <Id.Lit_Equals '='> <'/etc'>} 
                  {<--infodir> <Id.Lit_Equals '='> <'/usr/share/info'>} {<--mandir> <Id.Lit_Equals '='> <'/usr/share/man'>} {<--localstatedir> <Id.Lit_Equals '='> <'/var'>} 
                  {<--enable-shared>} {<--disable-static>}
                )
                (command.ControlFlow
                  token: <Id.ControlFlow_Return return>
                  arg_word: {<1>}
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {<make>})
                (command.ControlFlow
                  token: <Id.ControlFlow_Return return>
                  arg_word: {<1>}
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: package
      body: 
        (BraceGroup
          children: [
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {<make>} {<Id.Lit_VarLike 'DESTDIR='> (DQ ($ Id.VSub_DollarName '$pkgdir') <'/'>)} 
                  {<-C>} {(DQ ($ Id.VSub_DollarName '$builddir'))} {<install>}
                )
                (command.ControlFlow
                  token: <Id.ControlFlow_Return return>
                  arg_word: {<1>}
                )
              ]
            )
            (C {<rm>} {<-rf>} {(DQ ($ Id.VSub_DollarName '$pkgdir')) <'/usr/lib/charset.alias'>})
          ]
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:md5sums)
          op: assign_op.Equal
          rhs: 
            {
              (DQ <'4423db4dd6c2b43cacf9e9dcfa95473d  octave-4.2.0.tar.gz\n'> 
                <'1b8f1f97aa4acc3777c8760759ef3bb0  less-docs.patch\n'> <'cf78869bd53964b339578c054614de38  libinterp-deps.patch\n'> 
                <'bb971c157909841c1ccbe17ae0c6244c  abs.patch\n'> <'e22f7385ef92fab75191c8925455c097  gnulib.patch'>
              )
            }
          spids: [303]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:sha256sums)
          op: assign_op.Equal
          rhs: 
            {
              (DQ 
                <
'443ba73782f3531c94bcf016f2f0362a58e186ddb8269af7dcce973562795567  octave-4.2.0.tar.gz\n'
                > <'827aae1d7ca615a855733d031aa77aedc076b4db01bb70add4e5631f9084a326  less-docs.patch\n'> 
                <
'978280090f7e490c5e5b92785854b6dbe2971e1c7ed9c1f3c087a6e6f61a40e8  libinterp-deps.patch\n'
                > <'fe0683d91d36805a7787fb5b70ccc052a6aaf08594b95b97a904504f5227986d  abs.patch\n'> 
                <'75562bd81b6cb44e9e5bacf8b1ba556df565001f9dea7960a4346073ed997c33  gnulib.patch'>
              )
            }
          spids: [312]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:sha512sums)
          op: assign_op.Equal
          rhs: 
            {
              (DQ 
                <
'5d16665d4ef8f218320f471704f8702f3a2911cc4a083cae318c1df0f787d50dddbc511dc91e11379314d65cecac6d521abac026860feca19d11ffdb52d3e678  octave-4.2.0.tar.gz\n'
                > 
                <
'eb2b754c15eda423bf59061728052993a2ee9611d474e7fa6026f2961561764e6fc56fbb8128ec266bb569e99d7fecb5b68b5ed3f02ae33dd27709a89426f204  less-docs.patch\n'
                > 
                <
'093b13ad457e290d746908a5de1855071b2cd27b4c08101826d32fcf63398e863c3b72bb81f19255a04a880a2bf49e3ced1141bf7d0044db1328c6f2c9492f66  libinterp-deps.patch\n'
                > 
                <
'bcd111f35baf2681da2b1ad1edbe956ee359c5fb0114797b27747fa78e6f118406bb7fb325c1fa03c18e29815d2d4b8d9a28faf72c1fbbec526e8fbaed0cb820  abs.patch\n'
                > 
                <
'50d9a7cefc0d39b666b646abe26148d7640ed2c4505244e3b5d4ba4348f80fc5d0d08465a575682fcae88d245bf72e7ba13df580003a2c5de6b7b222131a5392  gnulib.patch'
                >
              )
            }
          spids: [321]
        )
      ]
    )
  ]
)