(CommandList
  children: [
    (C {(set)} {(-o)} {(nounset)})
    (C {(set)} {(-o)} {(pipefail)})
    (C {(set)} {(-o)} {(errexit)})
    (Assignment
      keyword: Assign_Readonly
      pairs: [
        (assign_pair
          lhs: (LhsName name:OIL_VERSION)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: (CommandList children:[(C {(head)} {(-n)} {(1)} {(oil-version.txt)})])
                left_token: <Left_CommandSub "$(">
                spids: [108 116]
              )
            }
          spids: [107]
        )
      ]
      spids: [105]
    )
    (C {(export)} {(OIL_VERSION)})
    (FuncDef
      name: _build-timestamp
      body: 
        (BraceGroup
          children: [
            (C {(echo)} {(SQ <"<hr/>">)})
            (C {(echo)} 
              {
                (DQ ("<i>Generated on ") 
                  (CommandSubPart
                    command_list: (CommandList children:[(C {(date)})])
                    left_token: <Left_CommandSub "$(">
                    spids: [144 146]
                  ) ("</i>")
                )
              }
            )
          ]
          spids: [130]
        )
      spids: [126 129]
    )
    (FuncDef
      name: _quick-ref
      body: (BraceGroup children:[(C {(build/quick_ref.py)} {(DQ ($ VSub_At "$@"))})] spids:[179])
      spids: [175 178]
    )
    (FuncDef
      name: x-quick-ref
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:prog)
                  op: Equal
                  rhs: {($ VSub_Number "$1")}
                  spids: [200]
                )
              ]
              spids: [198]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:html_out)
                  op: Equal
                  rhs: {(_build/doc/) ($ VSub_Name "$prog") (-quick-ref.html)}
                  spids: [207]
                )
              ]
              spids: [205]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:text_out_dir)
                  op: Equal
                  rhs: {(_build/) ($ VSub_Name "$prog") (-quick-ref)}
                  spids: [215]
                )
              ]
              spids: [213]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:py_out)
                  op: Equal
                  rhs: {(_devbuild/) (${ VSub_Name prog) (_help.py)}
                  spids: [223]
                )
              ]
              spids: [221]
            )
            (C {(mkdir)} {(-p)} {(_build/doc)} {($ VSub_Name "$text_out_dir")} {(_devbuild)})
            (C {(touch)} {(_devbuild/__init__.py)})
            (BraceGroup
              children: [
                (SimpleCommand
                  words: [{(cat)}]
                  redirects: [
                    (HereDoc
                      op_id: Redir_DLess
                      fd: -1
                      body: 
                        {
                          (DQ ("<!DOCTYPE html>\n") ("<html>\n") ("  <head>\n") ("    <style>\n") 
                            ("      a:link {\n") ("        text-decoration: none;\n") ("      }\n") ("      a:hover {\n") 
                            ("        text-decoration: underline;\n") ("      }\n") ("      body {\n") ("        margin: 0 auto;\n") ("        width: 50em;\n") ("      }\n") 
                            ("      /* different color because they're links but not topics */\n") ("      .level1 {\n") ("        /* color: green; */\n") ("        color: black;\n") ("      }\n") 
                            ("      .level2 {\n") ("        color: #555;\n") ("      }\n") ("      h1,h2,h3,h4 {\n") ("      /* color: darkcyan; */\n") 
                            ("      }\n") ("    </style>\n") ("  </head>\n") ("  <body>\n") ("    <p style=") (Right_DoubleQuote "\"") 
                            ("color: darkred; font-size: x-large;") (Right_DoubleQuote "\"") (">\n") ("      NOTE: This document is a work in progress!\n") ("    </p>\n")
                          )
                        }
                      do_expansion: True
                      here_end: EOF
                      was_filled: True
                      spids: [257]
                    )
                  ]
                )
                (C {(_quick-ref)} {(toc)} {(doc/) (${ VSub_Name prog) (-quick-ref-toc.txt)})
                (C {(_quick-ref)} {(pages)} {(doc/) (${ VSub_Name prog) (-quick-ref-pages.txt)} 
                  {($ VSub_Name "$text_out_dir")} {($ VSub_Name "$py_out")}
                )
                (C {(_build-timestamp)})
                (SimpleCommand
                  words: [{(cat)}]
                  redirects: [
                    (HereDoc
                      op_id: Redir_DLess
                      fd: -1
                      body: {(DQ ("  </body>\n") ("</html>\n"))}
                      do_expansion: True
                      here_end: EOF
                      was_filled: True
                      spids: [334]
                    )
                  ]
                )
              ]
              redirects: [
                (Redir
                  op_id: Redir_Great
                  fd: -1
                  arg_word: {($ VSub_Name "$html_out")}
                  spids: [342]
                )
              ]
              spids: [252]
            )
          ]
          spids: [195]
        )
      spids: [191 194]
    )
    (FuncDef
      name: osh-quick-ref
      body: (BraceGroup children:[(C {(x-quick-ref)} {(osh)} {(DQ ($ VSub_At "$@"))})] spids:[353])
      spids: [349 352]
    )
    (FuncDef
      name: oil-quick-ref
      body: (BraceGroup children:[(C {(x-quick-ref)} {(oil)} {(DQ ($ VSub_At "$@"))})] spids:[371])
      spids: [367 370]
    )
    (FuncDef
      name: markdown2html
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:src)
                  op: Equal
                  rhs: {($ VSub_Number "$1")}
                  spids: [394]
                )
              ]
              spids: [392]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:out)
                  op: Equal
                  rhs: {($ VSub_Number "$2")}
                  spids: [400]
                )
              ]
              spids: [398]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:monospace)
                  op: Equal
                  rhs: 
                    {
                      (BracedVarSub
                        token: <VSub_Number 3>
                        suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{})
                        spids: [407 410]
                      )
                    }
                  spids: [406]
                )
              ]
              spids: [404]
            )
            (C {(mkdir)} {(-p)} {(_build/doc)})
            (BraceGroup
              children: [
                (SimpleCommand
                  words: [{(cat)}]
                  redirects: [
                    (HereDoc
                      op_id: Redir_DLess
                      fd: -1
                      body: 
                        {
                          (DQ ("<!DOCTYPE html>\n") ("<html>\n") ("  <head>\n") ("    <style>\n") 
                            ("      body {\n") ("        margin: 0 auto;\n") ("        width: 40em;\n") ("        ") ($ VSub_Name "$monospace") ("\n") 
                            ("      }\n") ("      pre {\n") ("        color: green;\n") ("        margin-left: 4em;\n") ("      }\n") 
                            ("    </style>\n") ("  </head>\n") ("  <body>\n")
                          )
                        }
                      do_expansion: True
                      here_end: EOF
                      was_filled: True
                      spids: [425]
                    )
                  ]
                )
                (SimpleCommand
                  words: [{(markdown)}]
                  redirects: [
                    (Redir
                      op_id: Redir_Less
                      fd: -1
                      arg_word: {($ VSub_Name "$src")}
                      spids: [451]
                    )
                  ]
                )
                (C {(_build-timestamp)})
                (SimpleCommand
                  words: [{(cat)}]
                  redirects: [
                    (HereDoc
                      op_id: Redir_DLess
                      fd: -1
                      body: {(DQ ("  </body>\n") ("</html>\n"))}
                      do_expansion: True
                      here_end: EOF
                      was_filled: True
                      spids: [465]
                    )
                  ]
                )
              ]
              redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{($ VSub_Name "$out")} spids:[473])]
              spids: [421]
            )
          ]
          spids: [389]
        )
      spids: [385 388]
    )
    (Assignment
      keyword: Assign_Readonly
      pairs: [
        (assign_pair
          lhs: (LhsName name:MONOSPACE)
          op: Equal
          rhs: {(SQ <"font-family: monospace;">)}
          spids: [482]
        )
      ]
      spids: [480]
    )
    (FuncDef
      name: install
      body: 
        (BraceGroup
          children: [
            (C {(markdown2html)} {(INSTALL.txt)} {(_build/doc/INSTALL.html)} 
              {(DQ ($ VSub_Name "$MONOSPACE"))}
            )
          ]
          spids: [492]
        )
      spids: [488 491]
    )
    (FuncDef
      name: release-index
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:out)
                  op: Equal
                  rhs: 
                    {
                      (BracedVarSub
                        token: <VSub_Number 1>
                        suffix_op: 
                          (StringUnary
                            op_id: VTest_ColonHyphen
                            arg_word: 
                              {(_build) (Lit_Slash /) (doc) (Lit_Slash /) (release-index.html)}
                          )
                        spids: [518 526]
                      )
                    }
                  spids: [517]
                )
              ]
              spids: [515]
            )
            (C {(markdown2html)} {(doc/release-index.md)} {($ VSub_Name "$out")} {(SQ )})
          ]
          spids: [512]
        )
      spids: [508 511]
    )
    (FuncDef
      name: _sed-ext
      body: 
        (BraceGroup
          children: [(C {(sed)} {(--regexp-extended)} {(-i)} {(DQ ($ VSub_At "$@"))})]
          spids: [552]
        )
      spids: [548 551]
    )
    (FuncDef
      name: update-src-versions
      body: 
        (BraceGroup
          children: [
            (C {(_sed-ext)} 
              {(DQ ("s/Version [0-9]+.[0-9]+.[a-z0-9]+/Version ") ($ VSub_Name "$OIL_VERSION") (/g))} {(doc/release-index.md)}
            )
            (C {(_sed-ext)} 
              {(DQ ("s/oil-[0-9]+.[0-9]+.[a-z0-9]+/oil-") ($ VSub_Name "$OIL_VERSION") (/g))} {(INSTALL.txt)}
            )
          ]
          spids: [572]
        )
      spids: [568 571]
    )
    (C {(DQ ($ VSub_At "$@"))})
  ]
)