oilshell.org

Side By Side Lines Parsed? Parse Process Time (secs) Internal Parse Time (secs) Parsed Lines/sec Translated? Filename
view 102 OK 0.33 0.33 309.1 FAIL alias.sh
view 116 FAIL 0.11 - - FAIL append.sh
view 765 FAIL 0.13 - - FAIL arith.sh
view 670 FAIL 0.37 - - FAIL arrays.sh
view 224 FAIL 0.09 - - FAIL arrays2.sh
view 472 FAIL 0.19 - - FAIL attributes.sh
view 517 FAIL 0.56 - - FAIL basic.sh
view 353 FAIL 0.13 - - FAIL bracket.sh
view 642 FAIL 0.25 - - FAIL builtins.sh
view 85 OK 0.24 0.24 354.2 FAIL case.sh
view 694 FAIL 0.13 - - FAIL comvar.sh
view 686 FAIL 0.11 - - FAIL comvario.sh
view 368 FAIL 0.26 - - FAIL coprocess.sh
view 213 FAIL 0.09 - - FAIL cubetype.sh
view 74 FAIL 0.11 - - FAIL enum.sh
view 80 OK 0.22 0.22 363.6 FAIL exit.sh
view 126 FAIL 0.17 - - FAIL expand.sh
view 1,210 FAIL 0.21 - - FAIL functions.sh
view 374 OK 0.77 0.77 485.7 FAIL glob.sh
view 105 OK 0.24 0.24 437.5 FAIL grep.sh
view 500 FAIL 0.34 - - FAIL heredoc.sh
view 499 FAIL 0.15 - - FAIL io.sh
view 87 OK 0.18 0.18 483.3 FAIL leaks.sh
view 345 FAIL 0.1 - - FAIL locale.sh
view 202 FAIL 0.11 - - FAIL math.sh
view 697 FAIL 0.1 - - FAIL nameref.sh
view 106 FAIL 0.11 - - FAIL namespace.sh
view 544 FAIL 0.68 - - FAIL options.sh
view 395 FAIL 0.13 - - FAIL path.sh
view 138 FAIL 0.1 - - FAIL pointtype.sh
view 442 OK 0.27 0.27 1637.0 FAIL pty.sh
view 369 FAIL 0.18 - - FAIL quoting.sh
view 215 FAIL 0.13 - - FAIL quoting2.sh
view 70 OK 0.15 0.15 466.7 FAIL readcsv.sh
view 70 FAIL 0.13 - - FAIL recttype.sh
view 83 OK 0.26 0.26 319.2 FAIL restricted.sh
view 183 OK 0.38 0.38 481.6 FAIL return.sh
view 67 OK 0.09 0.09 744.4 FAIL select.sh
view 160 FAIL 0.12 - - FAIL sigchld.sh
view 435 FAIL 0.12 - - FAIL signal.sh
view 690 FAIL 0.12 - - FAIL statics.sh
view 620 FAIL 0.14 - - FAIL subshell.sh
view 664 FAIL 0.42 - - FAIL substring.sh
view 101 OK 0.27 0.27 374.1 FAIL tilde.sh
view 81 FAIL 0.09 - - FAIL timetype.sh
view 163 FAIL 0.13 - - FAIL treemove.sh
view 642 FAIL 0.14 - - FAIL types.sh
view 677 FAIL 0.12 - - FAIL variables.sh
view 215 FAIL 0.1 - - FAIL vartree1.sh
view 335 FAIL 0.1 - - FAIL vartree2.sh

stderr

Parsing statics.sh
        Line 40 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/statics.sh'
  	typeset name
  	^~~~~~~
Unexpected array literal: (CompoundWord
  parts: [
    (ArrayLiteralPart
      words: [
        (CompoundWord
          parts: [(LiteralPart token:(token id:Lit_Chars val:typeset span_id:165))]
        )
        (CompoundWord parts:[(LiteralPart token:(token id:Lit_Chars val:name span_id:167))])
        (CompoundWord
          parts: [(LiteralPart token:(token id:Lit_Chars val:typeset span_id:170))]
        )
        (CompoundWord parts:[(LiteralPart token:(token id:Lit_Chars val:cmd span_id:172))])
        (CompoundWord
          parts: [(LiteralPart token:(token id:Lit_Chars val:typeset span_id:175))]
        )
        (CompoundWord
          parts: [(LiteralPart token:(token id:Lit_Chars val:expected_output span_id:177))]
        )
      ]
    )
  ]
)
---
Line 0 of '<unknown>'
  <no position info for token>
Error parsing AndOr in ParseCommandTerm
---

        
Translating statics.sh
        Line 40 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/statics.sh'
  	typeset name
  	^~~~~~~
Unexpected array literal: (CompoundWord
  parts: [
    (ArrayLiteralPart
      words: [
        (CompoundWord
          parts: [(LiteralPart token:(token id:Lit_Chars val:typeset span_id:165))]
        )
        (CompoundWord parts:[(LiteralPart token:(token id:Lit_Chars val:name span_id:167))])
        (CompoundWord
          parts: [(LiteralPart token:(token id:Lit_Chars val:typeset span_id:170))]
        )
        (CompoundWord parts:[(LiteralPart token:(token id:Lit_Chars val:cmd span_id:172))])
        (CompoundWord
          parts: [(LiteralPart token:(token id:Lit_Chars val:typeset span_id:175))]
        )
        (CompoundWord
          parts: [(LiteralPart token:(token id:Lit_Chars val:expected_output span_id:177))]
        )
      ]
    )
  ]
)
---
Line 0 of '<unknown>'
  <no position info for token>
Error parsing AndOr in ParseCommandTerm
---

        
Parsing math.sh
        Line 43 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/math.sh'
          compound out=( typeset stdout stderr ; integer res )
                                               ^
Unexpected word in array literal: (TokenWord token:(token id:Op_Semi val:";" span_id:222))
---
Line 0 of '<unknown>'
  <no position info for token>
_ReadArrayLiteralPart failed
---
Line 43 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/math.sh'
          compound out=( typeset stdout stderr ; integer res )
                       ^
Error reading command word
---
Line 0 of '<unknown>'
  <no position info for token>
Error parsing AndOr in ParseCommandTerm
---
Line 0 of '<unknown>'
  <no position info for token>
Error parsing AndOr in ParseCommandTerm
---

        
Translating math.sh
        Line 43 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/math.sh'
          compound out=( typeset stdout stderr ; integer res )
                                               ^
Unexpected word in array literal: (TokenWord token:(token id:Op_Semi val:";" span_id:222))
---
Line 0 of '<unknown>'
  <no position info for token>
_ReadArrayLiteralPart failed
---
Line 43 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/math.sh'
          compound out=( typeset stdout stderr ; integer res )
                       ^
Error reading command word
---
Line 0 of '<unknown>'
  <no position info for token>
Error parsing AndOr in ParseCommandTerm
---
Line 0 of '<unknown>'
  <no position info for token>
Error parsing AndOr in ParseCommandTerm
---

        
Translating alias.sh
        Traceback (most recent call last):
  File "bin/osh", line 469, in <module>
    main(sys.argv)
  File "bin/osh", line 452, in main
    sys.exit(OilMain(argv))
  File "bin/osh", line 435, in OilMain
    status = OshMain(main_argv, login_shell)
  File "bin/osh", line 350, in OshMain
    osh2oil.PrintAsOil(arena, node, opts.debug_spans)
  File "/home/andy/git/oil/bin/../tools/osh2oil.py", line 69, in PrintAsOil
    fixer.DoCommand(node, None, at_top_level=True)  # no local symbols yet
  File "/home/andy/git/oil/bin/../tools/osh2oil.py", line 473, in DoCommand
    self.DoCommand(child, local_symbols)
  File "/home/andy/git/oil/bin/../tools/osh2oil.py", line 532, in DoCommand
    self.DoWordInCommand(w, local_symbols)
  File "/home/andy/git/oil/bin/../tools/osh2oil.py", line 989, in DoWordInCommand
    self.DoWordPart(part, local_symbols)
  File "/home/andy/git/oil/bin/../tools/osh2oil.py", line 1167, in DoWordPart
    self.DoArithExpr(node.anode, local_symbols)
  File "/home/andy/git/oil/bin/../tools/osh2oil.py", line 1196, in DoArithExpr
    raise AssertionError(node.__class__.__name__)
AssertionError: TernaryOp

        
Parsing namespace.sh
        Line 35 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/namespace.sh'
  typeset -C bar=(x=3 y=4 t=7)
                  ^~
Unexpected array literal: (CompoundWord
  parts: [
    (ArrayLiteralPart
      words: [
        (CompoundWord
          parts: [
            (LiteralPart token:(token id:Lit_VarLike val:"x=" span_id:173))
            (LiteralPart token:(token id:Lit_Chars val:3 span_id:174))
          ]
        )
        (CompoundWord
          parts: [
            (LiteralPart token:(token id:Lit_VarLike val:"y=" span_id:176))
            (LiteralPart token:(token id:Lit_Chars val:4 span_id:177))
          ]
        )
        (CompoundWord
          parts: [
            (LiteralPart token:(token id:Lit_VarLike val:"t=" span_id:179))
            (LiteralPart token:(token id:Lit_Chars val:7 span_id:180))
          ]
        )
      ]
    )
  ]
)
---
Line 0 of '<unknown>'
  <no position info for token>
Error parsing AndOr in ParseCommandTerm
---

        
Translating namespace.sh
        Line 35 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/namespace.sh'
  typeset -C bar=(x=3 y=4 t=7)
                  ^~
Unexpected array literal: (CompoundWord
  parts: [
    (ArrayLiteralPart
      words: [
        (CompoundWord
          parts: [
            (LiteralPart token:(token id:Lit_VarLike val:"x=" span_id:173))
            (LiteralPart token:(token id:Lit_Chars val:3 span_id:174))
          ]
        )
        (CompoundWord
          parts: [
            (LiteralPart token:(token id:Lit_VarLike val:"y=" span_id:176))
            (LiteralPart token:(token id:Lit_Chars val:4 span_id:177))
          ]
        )
        (CompoundWord
          parts: [
            (LiteralPart token:(token id:Lit_VarLike val:"t=" span_id:179))
            (LiteralPart token:(token id:Lit_Chars val:7 span_id:180))
          ]
        )
      ]
    )
  ]
)
---
Line 0 of '<unknown>'
  <no position info for token>
Error parsing AndOr in ParseCommandTerm
---

        
Parsing io.sh
        Line 72 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/io.sh'
  	( dir=/proc/self/fd	semantics='open'	)
  	^
Unexpected word in array literal: (TokenWord token:(token id:Op_LParen val:"(" span_id:473))
---
Line 0 of '<unknown>'
  <no position info for token>
_ReadArrayLiteralPart failed
---
Line 71 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/io.sh'
  FDFS=(
       ^
Error reading command word
---

        
Translating io.sh
        Line 72 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/io.sh'
  	( dir=/proc/self/fd	semantics='open'	)
  	^
Unexpected word in array literal: (TokenWord token:(token id:Op_LParen val:"(" span_id:473))
---
Line 0 of '<unknown>'
  <no position info for token>
_ReadArrayLiteralPart failed
---
Line 71 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/io.sh'
  FDFS=(
       ^
Error reading command word
---

        
Parsing timetype.sh
        Line 34 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/timetype.sh'
  	get()
  	   ^
Unexpected word in array literal: (TokenWord token:(token id:Op_LParen val:"(" span_id:153))
---
Line 0 of '<unknown>'
  <no position info for token>
_ReadArrayLiteralPart failed
---
Line 31 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/timetype.sh'
  typeset -T Time_t=(
                    ^
Error reading command word
---
Line 0 of '<unknown>'
  <no position info for token>
Error parsing AndOr in ParseCommandTerm
---

        
Translating timetype.sh
        Line 34 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/timetype.sh'
  	get()
  	   ^
Unexpected word in array literal: (TokenWord token:(token id:Op_LParen val:"(" span_id:153))
---
Line 0 of '<unknown>'
  <no position info for token>
_ReadArrayLiteralPart failed
---
Line 31 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/timetype.sh'
  typeset -T Time_t=(
                    ^
Error reading command word
---
Line 0 of '<unknown>'
  <no position info for token>
Error parsing AndOr in ParseCommandTerm
---

        
Parsing builtins.sh
        Line 0 of '<unknown>'
  <no position info for token>
Got redirects in control flow: [(Redir
  op_id: Redir_Great
  fd: 2
  arg_word: 
    (CompoundWord parts:[(LiteralPart token:(token id:Lit_Chars val:/dev/null span_id:1147))])
  spids: [1146]
)]
---
Line 0 of '<unknown>'
  <no position info for token>
Error parsing AndOr in ParseCommandTerm
---
Line 0 of '<unknown>'
  <no position info for token>
Error parsing AndOr in ParseCommandTerm
---

        
Translating builtins.sh
        Line 0 of '<unknown>'
  <no position info for token>
Got redirects in control flow: [(Redir
  op_id: Redir_Great
  fd: 2
  arg_word: 
    (CompoundWord parts:[(LiteralPart token:(token id:Lit_Chars val:/dev/null span_id:1147))])
  spids: [1146]
)]
---
Line 0 of '<unknown>'
  <no position info for token>
Error parsing AndOr in ParseCommandTerm
---
Line 0 of '<unknown>'
  <no position info for token>
Error parsing AndOr in ParseCommandTerm
---

        
Parsing substring.sh
        osh warning: WARNING: Got redirects in assignment: [(Redir
  op_id: Redir_Great
  fd: 2
  arg_word: 
    (CompoundWord parts:[(LiteralPart token:(token id:Lit_Chars val:/dev/null span_id:2500))])
  spids: [2498]
)]
Line 267 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/substring.sh'
  [[ ${.sh.match[0]} == dfg ]] || err_exit '.sh.match[0] not dfg'
       ^
parse error: Unexpected token (token id:Unknown_Tok val:. span_id:2702)

        
Translating substring.sh
        osh warning: WARNING: Got redirects in assignment: [(Redir
  op_id: Redir_Great
  fd: 2
  arg_word: 
    (CompoundWord parts:[(LiteralPart token:(token id:Lit_Chars val:/dev/null span_id:2500))])
  spids: [2498]
)]
Line 267 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/substring.sh'
  [[ ${.sh.match[0]} == dfg ]] || err_exit '.sh.match[0] not dfg'
       ^
parse error: Unexpected token (token id:Unknown_Tok val:. span_id:2702)

        
Translating return.sh
        Traceback (most recent call last):
  File "bin/osh", line 469, in <module>
    main(sys.argv)
  File "bin/osh", line 452, in main
    sys.exit(OilMain(argv))
  File "bin/osh", line 435, in OilMain
    status = OshMain(main_argv, login_shell)
  File "bin/osh", line 350, in OshMain
    osh2oil.PrintAsOil(arena, node, opts.debug_spans)
  File "/home/andy/git/oil/bin/../tools/osh2oil.py", line 69, in PrintAsOil
    fixer.DoCommand(node, None, at_top_level=True)  # no local symbols yet
  File "/home/andy/git/oil/bin/../tools/osh2oil.py", line 473, in DoCommand
    self.DoCommand(child, local_symbols)
  File "/home/andy/git/oil/bin/../tools/osh2oil.py", line 536, in DoCommand
    self.DoRedirect(r, local_symbols)
  File "/home/andy/git/oil/bin/../tools/osh2oil.py", line 270, in DoRedirect
    raise NotImplementedError(node.__class__.__name__)
NotImplementedError: HereDoc

        
Parsing variables.sh
        Line 34 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/variables.sh'
  [[ ${.sh.version} == "$KSH_VERSION" ]] || err_exit '.sh.version != KSH_VERSION'
       ^
parse error: Unexpected token (token id:Unknown_Tok val:. span_id:167)

        
Translating variables.sh
        Line 34 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/variables.sh'
  [[ ${.sh.version} == "$KSH_VERSION" ]] || err_exit '.sh.version != KSH_VERSION'
       ^
parse error: Unexpected token (token id:Unknown_Tok val:. span_id:167)

        
Translating select.sh
        Traceback (most recent call last):
  File "bin/osh", line 469, in <module>
    main(sys.argv)
  File "bin/osh", line 452, in main
    sys.exit(OilMain(argv))
  File "bin/osh", line 435, in OilMain
    status = OshMain(main_argv, login_shell)
  File "bin/osh", line 350, in OshMain
    osh2oil.PrintAsOil(arena, node, opts.debug_spans)
  File "/home/andy/git/oil/bin/../tools/osh2oil.py", line 69, in PrintAsOil
    fixer.DoCommand(node, None, at_top_level=True)  # no local symbols yet
  File "/home/andy/git/oil/bin/../tools/osh2oil.py", line 473, in DoCommand
    self.DoCommand(child, local_symbols)
  File "/home/andy/git/oil/bin/../tools/osh2oil.py", line 536, in DoCommand
    self.DoRedirect(r, local_symbols)
  File "/home/andy/git/oil/bin/../tools/osh2oil.py", line 270, in DoRedirect
    raise NotImplementedError(node.__class__.__name__)
NotImplementedError: HereDoc

        
Parsing pointtype.sh
        Line 34 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/pointtype.sh'
  	len()
  	   ^
Unexpected word in array literal: (TokenWord token:(token id:Op_LParen val:"(" span_id:152))
---
Line 0 of '<unknown>'
  <no position info for token>
_ReadArrayLiteralPart failed
---
Line 31 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/pointtype.sh'
  typeset -T Pt_t=(
                  ^
Error reading command word
---
Line 0 of '<unknown>'
  <no position info for token>
Error parsing AndOr in ParseCommandTerm
---

        
Translating pointtype.sh
        Line 34 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/pointtype.sh'
  	len()
  	   ^
Unexpected word in array literal: (TokenWord token:(token id:Op_LParen val:"(" span_id:152))
---
Line 0 of '<unknown>'
  <no position info for token>
_ReadArrayLiteralPart failed
---
Line 31 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/pointtype.sh'
  typeset -T Pt_t=(
                  ^
Error reading command word
---
Line 0 of '<unknown>'
  <no position info for token>
Error parsing AndOr in ParseCommandTerm
---

        
Parsing quoting2.sh
        Line 75 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/quoting2.sh'
  x=$((echo foo)|(cat))
                ^
Expected second paren to end arith sub, got (token id:Op_Pipe val:"|" span_id:687)
---
Line 75 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/quoting2.sh'
  x=$((echo foo)|(cat))
                ^
Error reading command word
---

        
Translating quoting2.sh
        Line 75 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/quoting2.sh'
  x=$((echo foo)|(cat))
                ^
Expected second paren to end arith sub, got (token id:Op_Pipe val:"|" span_id:687)
---
Line 75 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/quoting2.sh'
  x=$((echo foo)|(cat))
                ^
Error reading command word
---

        
Translating tilde.sh
        Traceback (most recent call last):
  File "bin/osh", line 469, in <module>
    main(sys.argv)
  File "bin/osh", line 452, in main
    sys.exit(OilMain(argv))
  File "bin/osh", line 435, in OilMain
    status = OshMain(main_argv, login_shell)
  File "bin/osh", line 350, in OshMain
    osh2oil.PrintAsOil(arena, node, opts.debug_spans)
  File "/home/andy/git/oil/bin/../tools/osh2oil.py", line 69, in PrintAsOil
    fixer.DoCommand(node, None, at_top_level=True)  # no local symbols yet
  File "/home/andy/git/oil/bin/../tools/osh2oil.py", line 473, in DoCommand
    self.DoCommand(child, local_symbols)
  File "/home/andy/git/oil/bin/../tools/osh2oil.py", line 532, in DoCommand
    self.DoWordInCommand(w, local_symbols)
  File "/home/andy/git/oil/bin/../tools/osh2oil.py", line 989, in DoWordInCommand
    self.DoWordPart(part, local_symbols)
  File "/home/andy/git/oil/bin/../tools/osh2oil.py", line 1167, in DoWordPart
    self.DoArithExpr(node.anode, local_symbols)
  File "/home/andy/git/oil/bin/../tools/osh2oil.py", line 1196, in DoArithExpr
    raise AssertionError(node.__class__.__name__)
AssertionError: TernaryOp

        
Parsing coprocess.sh
        Line 147 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/coprocess.sh'
  	{ : |& } 2>/dev/null ||
  	       ^
Unexpected }
---
Line 0 of '<unknown>'
  <no position info for token>
Error parsing command after pipe
---
Line 0 of '<unknown>'
  <no position info for token>
Error parsing AndOr in ParseCommandTerm
---
Line 0 of '<unknown>'
  <no position info for token>
Error parsing AndOr in ParseCommandTerm
---
Line 0 of '<unknown>'
  <no position info for token>
Error parsing AndOr in ParseCommandTerm
---

        
Translating coprocess.sh
        Line 147 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/coprocess.sh'
  	{ : |& } 2>/dev/null ||
  	       ^
Unexpected }
---
Line 0 of '<unknown>'
  <no position info for token>
Error parsing command after pipe
---
Line 0 of '<unknown>'
  <no position info for token>
Error parsing AndOr in ParseCommandTerm
---
Line 0 of '<unknown>'
  <no position info for token>
Error parsing AndOr in ParseCommandTerm
---
Line 0 of '<unknown>'
  <no position info for token>
Error parsing AndOr in ParseCommandTerm
---

        
Parsing arrays2.sh
        Line 37 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/arrays2.sh'
  	do	[[ ${a[i][j]} == "$i$j" ]] || err_exit "\${a[$i][$j]} != $i$j"
  	  	         ^
parse error: Unexpected token (token id:VOp2_LBracket val:"[" span_id:243)

        
Translating arrays2.sh
        Line 37 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/arrays2.sh'
  	do	[[ ${a[i][j]} == "$i$j" ]] || err_exit "\${a[$i][$j]} != $i$j"
  	  	         ^
parse error: Unexpected token (token id:VOp2_LBracket val:"[" span_id:243)

        
Translating pty.sh
        Traceback (most recent call last):
  File "bin/osh", line 469, in <module>
    main(sys.argv)
  File "bin/osh", line 452, in main
    sys.exit(OilMain(argv))
  File "bin/osh", line 435, in OilMain
    status = OshMain(main_argv, login_shell)
  File "bin/osh", line 350, in OshMain
    osh2oil.PrintAsOil(arena, node, opts.debug_spans)
  File "/home/andy/git/oil/bin/../tools/osh2oil.py", line 69, in PrintAsOil
    fixer.DoCommand(node, None, at_top_level=True)  # no local symbols yet
  File "/home/andy/git/oil/bin/../tools/osh2oil.py", line 473, in DoCommand
    self.DoCommand(child, local_symbols)
  File "/home/andy/git/oil/bin/../tools/osh2oil.py", line 632, in DoCommand
    self.DoCommand(child, new_local_symbols)
  File "/home/andy/git/oil/bin/../tools/osh2oil.py", line 609, in DoCommand
    self.DoArithExpr(node.child, local_symbols)
  File "/home/andy/git/oil/bin/../tools/osh2oil.py", line 1196, in DoArithExpr
    raise AssertionError(node.__class__.__name__)
AssertionError: UnaryAssign

        
Parsing nameref.sh
        Line 45 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/nameref.sh'
  	if	[[ ${foo.child} !=  ${bar.child} ]]
  	  	        ^
Unexpected token after var sub: (token id:Unknown_Tok val:. span_id:251)
---
Line 45 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/nameref.sh'
  	if	[[ ${foo.child} !=  ${bar.child} ]]
  	  	        ^
Error reading command word
---
Line 45 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/nameref.sh'
  	if	[[ ${foo.child} !=  ${bar.child} ]]
  	  	^~
Error parsing [[
---
Line 0 of '<unknown>'
  <no position info for token>
Error parsing AndOr in ParseCommandTerm
---
Line 0 of '<unknown>'
  <no position info for token>
Error parsing AndOr in ParseCommandTerm
---
Line 0 of '<unknown>'
  <no position info for token>
Error parsing AndOr in ParseCommandTerm
---

        
Translating nameref.sh
        Line 45 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/nameref.sh'
  	if	[[ ${foo.child} !=  ${bar.child} ]]
  	  	        ^
Unexpected token after var sub: (token id:Unknown_Tok val:. span_id:251)
---
Line 45 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/nameref.sh'
  	if	[[ ${foo.child} !=  ${bar.child} ]]
  	  	        ^
Error reading command word
---
Line 45 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/nameref.sh'
  	if	[[ ${foo.child} !=  ${bar.child} ]]
  	  	^~
Error parsing [[
---
Line 0 of '<unknown>'
  <no position info for token>
Error parsing AndOr in ParseCommandTerm
---
Line 0 of '<unknown>'
  <no position info for token>
Error parsing AndOr in ParseCommandTerm
---
Line 0 of '<unknown>'
  <no position info for token>
Error parsing AndOr in ParseCommandTerm
---

        
Translating leaks.sh
        Traceback (most recent call last):
  File "bin/osh", line 469, in <module>
    main(sys.argv)
  File "bin/osh", line 452, in main
    sys.exit(OilMain(argv))
  File "bin/osh", line 435, in OilMain
    status = OshMain(main_argv, login_shell)
  File "bin/osh", line 350, in OshMain
    osh2oil.PrintAsOil(arena, node, opts.debug_spans)
  File "/home/andy/git/oil/bin/../tools/osh2oil.py", line 69, in PrintAsOil
    fixer.DoCommand(node, None, at_top_level=True)  # no local symbols yet
  File "/home/andy/git/oil/bin/../tools/osh2oil.py", line 473, in DoCommand
    self.DoCommand(child, local_symbols)
  File "/home/andy/git/oil/bin/../tools/osh2oil.py", line 532, in DoCommand
    self.DoWordInCommand(w, local_symbols)
  File "/home/andy/git/oil/bin/../tools/osh2oil.py", line 989, in DoWordInCommand
    self.DoWordPart(part, local_symbols)
  File "/home/andy/git/oil/bin/../tools/osh2oil.py", line 1167, in DoWordPart
    self.DoArithExpr(node.anode, local_symbols)
  File "/home/andy/git/oil/bin/../tools/osh2oil.py", line 1196, in DoArithExpr
    raise AssertionError(node.__class__.__name__)
AssertionError: TernaryOp

        
Parsing quoting.sh
        Line 74 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/quoting.sh'
  x=$((echo foo)|(cat))
                ^
Expected second paren to end arith sub, got (token id:Op_Pipe val:"|" span_id:682)
---
Line 74 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/quoting.sh'
  x=$((echo foo)|(cat))
                ^
Error reading command word
---

        
Translating quoting.sh
        Line 74 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/quoting.sh'
  x=$((echo foo)|(cat))
                ^
Expected second paren to end arith sub, got (token id:Op_Pipe val:"|" span_id:682)
---
Line 74 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/quoting.sh'
  x=$((echo foo)|(cat))
                ^
Error reading command word
---

        
Parsing functions.sh
        Line 101 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/functions.sh'
  abc() print hi
        ^~~~~
Expected a compound command (e.g. for while if case), got (CompoundWord parts:[(LiteralPart token:(token id:Lit_Chars val:print span_id:632))])
---
Line 0 of '<unknown>'
  <no position info for token>
Error parsing AndOr in ParseCommandTerm
---

        
Translating functions.sh
        Line 101 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/functions.sh'
  abc() print hi
        ^~~~~
Expected a compound command (e.g. for while if case), got (CompoundWord parts:[(LiteralPart token:(token id:Lit_Chars val:print span_id:632))])
---
Line 0 of '<unknown>'
  <no position info for token>
Error parsing AndOr in ParseCommandTerm
---

        
Parsing cubetype.sh
        Line 41 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/cubetype.sh'
  	len()
  	   ^
Unexpected word in array literal: (TokenWord token:(token id:Op_LParen val:"(" span_id:225))
---
Line 0 of '<unknown>'
  <no position info for token>
_ReadArrayLiteralPart failed
---
Line 32 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/cubetype.sh'
  typeset -T Box_t=(
                   ^
Error reading command word
---
Line 0 of '<unknown>'
  <no position info for token>
Error parsing AndOr in ParseCommandTerm
---

        
Translating cubetype.sh
        Line 41 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/cubetype.sh'
  	len()
  	   ^
Unexpected word in array literal: (TokenWord token:(token id:Op_LParen val:"(" span_id:225))
---
Line 0 of '<unknown>'
  <no position info for token>
_ReadArrayLiteralPart failed
---
Line 32 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/cubetype.sh'
  typeset -T Box_t=(
                   ^
Error reading command word
---
Line 0 of '<unknown>'
  <no position info for token>
Error parsing AndOr in ParseCommandTerm
---

        
Parsing attributes.sh
        Line 104 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/attributes.sh'
  readonly $a=foo
           ^~
Variable names must be constant strings, got (CompoundWord
  parts: [
    (SimpleVarSub token:(token id:VSub_Name val:"$a" span_id:798))
    (LiteralPart token:(token id:Lit_Other val:"=" span_id:799))
    (LiteralPart token:(token id:Lit_Chars val:foo span_id:800))
  ]
)
---
Line 0 of '<unknown>'
  <no position info for token>
Error parsing AndOr in ParseCommandTerm
---

        
Translating attributes.sh
        Line 104 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/attributes.sh'
  readonly $a=foo
           ^~
Variable names must be constant strings, got (CompoundWord
  parts: [
    (SimpleVarSub token:(token id:VSub_Name val:"$a" span_id:798))
    (LiteralPart token:(token id:Lit_Other val:"=" span_id:799))
    (LiteralPart token:(token id:Lit_Chars val:foo span_id:800))
  ]
)
---
Line 0 of '<unknown>'
  <no position info for token>
Error parsing AndOr in ParseCommandTerm
---

        
Parsing treemove.sh
        Line 99 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/treemove.sh'
  [[ "${tree1.subtree["a_node"].one}" == "hello" ]] || err_exit "expected tree1.subtree[\"a_node\"].one == 'hello', got ${tree1.subtree["a_node"].one}"
             ^
Unexpected token after var sub: (token id:Unknown_Tok val:. span_id:381)
---
Line 99 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/treemove.sh'
  [[ "${tree1.subtree["a_node"].one}" == "hello" ]] || err_exit "expected tree1.subtree[\"a_node\"].one == 'hello', got ${tree1.subtree["a_node"].one}"
             ^
Error reading command word
---
Line 99 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/treemove.sh'
  [[ "${tree1.subtree["a_node"].one}" == "hello" ]] || err_exit "expected tree1.subtree[\"a_node\"].one == 'hello', got ${tree1.subtree["a_node"].one}"
  ^~
Error parsing [[
---
Line 0 of '<unknown>'
  <no position info for token>
Error parsing AndOr in ParseCommandTerm
---

        
Translating treemove.sh
        Line 99 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/treemove.sh'
  [[ "${tree1.subtree["a_node"].one}" == "hello" ]] || err_exit "expected tree1.subtree[\"a_node\"].one == 'hello', got ${tree1.subtree["a_node"].one}"
             ^
Unexpected token after var sub: (token id:Unknown_Tok val:. span_id:381)
---
Line 99 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/treemove.sh'
  [[ "${tree1.subtree["a_node"].one}" == "hello" ]] || err_exit "expected tree1.subtree[\"a_node\"].one == 'hello', got ${tree1.subtree["a_node"].one}"
             ^
Error reading command word
---
Line 99 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/treemove.sh'
  [[ "${tree1.subtree["a_node"].one}" == "hello" ]] || err_exit "expected tree1.subtree[\"a_node\"].one == 'hello', got ${tree1.subtree["a_node"].one}"
  ^~
Error parsing [[
---
Line 0 of '<unknown>'
  <no position info for token>
Error parsing AndOr in ParseCommandTerm
---

        
Parsing vartree2.sh
        Traceback (most recent call last):
  File "bin/osh", line 469, in <module>
    main(sys.argv)
  File "bin/osh", line 452, in main
    sys.exit(OilMain(argv))
  File "bin/osh", line 435, in OilMain
    status = OshMain(main_argv, login_shell)
  File "bin/osh", line 336, in OshMain
    node = c_parser.ParseWholeFile()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1592, in ParseWholeFile
    node = self.ParseCommandTerm()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1504, in ParseCommandTerm
    child = self.ParseAndOr()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1373, in ParseAndOr
    left = self.ParsePipeline()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1308, in ParsePipeline
    child = self.ParseCommand()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1257, in ParseCommand
    return self.ParseKshFunctionDef()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1175, in ParseKshFunctionDef
    if not self.ParseFunctionBody(func):
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1090, in ParseFunctionBody
    body = self.ParseCompoundCommand()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1055, in ParseCompoundCommand
    return self.ParseBraceGroup()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 667, in ParseBraceGroup
    c_list = self.ParseCommandList()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1570, in ParseCommandList
    node = self.ParseCommandTerm()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1504, in ParseCommandTerm
    child = self.ParseAndOr()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1373, in ParseAndOr
    left = self.ParsePipeline()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1308, in ParsePipeline
    child = self.ParseCommand()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1262, in ParseCommand
    node = self.ParseCompoundCommand()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1060, in ParseCompoundCommand
    return self.ParseFor()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 821, in ParseFor
    node = self._ParseForEachLoop()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 781, in _ParseForEachLoop
    iter_words, semi_spid = self.ParseForWords()
TypeError: 'NoneType' object is not iterable

        
Translating vartree2.sh
        Traceback (most recent call last):
  File "bin/osh", line 469, in <module>
    main(sys.argv)
  File "bin/osh", line 452, in main
    sys.exit(OilMain(argv))
  File "bin/osh", line 435, in OilMain
    status = OshMain(main_argv, login_shell)
  File "bin/osh", line 336, in OshMain
    node = c_parser.ParseWholeFile()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1592, in ParseWholeFile
    node = self.ParseCommandTerm()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1504, in ParseCommandTerm
    child = self.ParseAndOr()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1373, in ParseAndOr
    left = self.ParsePipeline()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1308, in ParsePipeline
    child = self.ParseCommand()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1257, in ParseCommand
    return self.ParseKshFunctionDef()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1175, in ParseKshFunctionDef
    if not self.ParseFunctionBody(func):
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1090, in ParseFunctionBody
    body = self.ParseCompoundCommand()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1055, in ParseCompoundCommand
    return self.ParseBraceGroup()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 667, in ParseBraceGroup
    c_list = self.ParseCommandList()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1570, in ParseCommandList
    node = self.ParseCommandTerm()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1504, in ParseCommandTerm
    child = self.ParseAndOr()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1373, in ParseAndOr
    left = self.ParsePipeline()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1308, in ParsePipeline
    child = self.ParseCommand()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1262, in ParseCommand
    node = self.ParseCompoundCommand()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1060, in ParseCompoundCommand
    return self.ParseFor()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 821, in ParseFor
    node = self._ParseForEachLoop()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 781, in _ParseForEachLoop
    iter_words, semi_spid = self.ParseForWords()
TypeError: 'NoneType' object is not iterable

        
Parsing comvario.sh
        Line 60 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/comvario.sh'
  	integer bopen=0
  	^~~~~~~
Unexpected array literal: (CompoundWord
  parts: [
    (ArrayLiteralPart
      words: [
        (CompoundWord
          parts: [(LiteralPart token:(token id:Lit_Chars val:integer span_id:249))]
        )
        (CompoundWord
          parts: [
            (LiteralPart token:(token id:Lit_VarLike val:"bopen=" span_id:251))
            (LiteralPart token:(token id:Lit_Chars val:0 span_id:252))
          ]
        )
        (CompoundWord
          parts: [(LiteralPart token:(token id:Lit_Chars val:integer span_id:255))]
        )
        (CompoundWord
          parts: [
            (LiteralPart token:(token id:Lit_VarLike val:"bclose=" span_id:257))
            (LiteralPart token:(token id:Lit_Chars val:0 span_id:258))
          ]
        )
      ]
    )
  ]
)
---
Line 0 of '<unknown>'
  <no position info for token>
Error parsing AndOr in ParseCommandTerm
---

        
Translating comvario.sh
        Line 60 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/comvario.sh'
  	integer bopen=0
  	^~~~~~~
Unexpected array literal: (CompoundWord
  parts: [
    (ArrayLiteralPart
      words: [
        (CompoundWord
          parts: [(LiteralPart token:(token id:Lit_Chars val:integer span_id:249))]
        )
        (CompoundWord
          parts: [
            (LiteralPart token:(token id:Lit_VarLike val:"bopen=" span_id:251))
            (LiteralPart token:(token id:Lit_Chars val:0 span_id:252))
          ]
        )
        (CompoundWord
          parts: [(LiteralPart token:(token id:Lit_Chars val:integer span_id:255))]
        )
        (CompoundWord
          parts: [
            (LiteralPart token:(token id:Lit_VarLike val:"bclose=" span_id:257))
            (LiteralPart token:(token id:Lit_Chars val:0 span_id:258))
          ]
        )
      ]
    )
  ]
)
---
Line 0 of '<unknown>'
  <no position info for token>
Error parsing AndOr in ParseCommandTerm
---

        
Parsing append.sh
        Traceback (most recent call last):
  File "bin/osh", line 469, in <module>
    main(sys.argv)
  File "bin/osh", line 452, in main
    sys.exit(OilMain(argv))
  File "bin/osh", line 435, in OilMain
    status = OshMain(main_argv, login_shell)
  File "bin/osh", line 336, in OshMain
    node = c_parser.ParseWholeFile()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1592, in ParseWholeFile
    node = self.ParseCommandTerm()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1504, in ParseCommandTerm
    child = self.ParseAndOr()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1373, in ParseAndOr
    left = self.ParsePipeline()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1308, in ParsePipeline
    child = self.ParseCommand()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1262, in ParseCommand
    node = self.ParseCompoundCommand()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1055, in ParseCompoundCommand
    return self.ParseBraceGroup()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 667, in ParseBraceGroup
    c_list = self.ParseCommandList()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1568, in ParseCommandList
    if not self._NewlineOk(): return None
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 193, in _NewlineOk
    if not self._Peek():
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 156, in _Peek
    w = self.w_parser.ReadWord(self.next_lex_mode)
  File "/home/andy/git/oil/bin/../osh/word_parse.py", line 1130, in ReadWord
    w, need_more = self._ReadWord(lex_mode)
  File "/home/andy/git/oil/bin/../osh/word_parse.py", line 1091, in _ReadWord
    w = self._ReadCompoundWord(lex_mode=lex_mode)
  File "/home/andy/git/oil/bin/../osh/word_parse.py", line 925, in _ReadCompoundWord
    part2 = self._ReadArrayLiteralPart()
  File "/home/andy/git/oil/bin/../osh/word_parse.py", line 861, in _ReadArrayLiteralPart
    assert self.cur_token.id == Id.Op_LParen, self.cur_token
AssertionError: (token id:WS_Space val:" " span_id:216)

        
Translating append.sh
        Traceback (most recent call last):
  File "bin/osh", line 469, in <module>
    main(sys.argv)
  File "bin/osh", line 452, in main
    sys.exit(OilMain(argv))
  File "bin/osh", line 435, in OilMain
    status = OshMain(main_argv, login_shell)
  File "bin/osh", line 336, in OshMain
    node = c_parser.ParseWholeFile()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1592, in ParseWholeFile
    node = self.ParseCommandTerm()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1504, in ParseCommandTerm
    child = self.ParseAndOr()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1373, in ParseAndOr
    left = self.ParsePipeline()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1308, in ParsePipeline
    child = self.ParseCommand()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1262, in ParseCommand
    node = self.ParseCompoundCommand()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1055, in ParseCompoundCommand
    return self.ParseBraceGroup()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 667, in ParseBraceGroup
    c_list = self.ParseCommandList()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1568, in ParseCommandList
    if not self._NewlineOk(): return None
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 193, in _NewlineOk
    if not self._Peek():
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 156, in _Peek
    w = self.w_parser.ReadWord(self.next_lex_mode)
  File "/home/andy/git/oil/bin/../osh/word_parse.py", line 1130, in ReadWord
    w, need_more = self._ReadWord(lex_mode)
  File "/home/andy/git/oil/bin/../osh/word_parse.py", line 1091, in _ReadWord
    w = self._ReadCompoundWord(lex_mode=lex_mode)
  File "/home/andy/git/oil/bin/../osh/word_parse.py", line 925, in _ReadCompoundWord
    part2 = self._ReadArrayLiteralPart()
  File "/home/andy/git/oil/bin/../osh/word_parse.py", line 861, in _ReadArrayLiteralPart
    assert self.cur_token.id == Id.Op_LParen, self.cur_token
AssertionError: (token id:WS_Space val:" " span_id:216)

        
Parsing path.sh
        Line 60 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/path.sh'
  [[ ${ foobar;} == foobar2 ]] || err_exit 'foobar should output foobar2 with ${}'
       ^
parse error: Unexpected token (token id:Unknown_Tok val:" " span_id:360)

        
Translating path.sh
        Line 60 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/path.sh'
  [[ ${ foobar;} == foobar2 ]] || err_exit 'foobar should output foobar2 with ${}'
       ^
parse error: Unexpected token (token id:Unknown_Tok val:" " span_id:360)

        
Parsing types.sh
        Line 37 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/types.sh'
  	typeset name=foobar
  	^~~~~~~
Unexpected array literal: (CompoundWord
  parts: [
    (ArrayLiteralPart
      words: [
        (CompoundWord
          parts: [(LiteralPart token:(token id:Lit_Chars val:typeset span_id:182))]
        )
        (CompoundWord
          parts: [
            (LiteralPart token:(token id:Lit_VarLike val:"name=" span_id:184))
            (LiteralPart token:(token id:Lit_Chars val:foobar span_id:185))
          ]
        )
        (CompoundWord
          parts: [(LiteralPart token:(token id:Lit_Chars val:typeset span_id:188))]
        )
        (CompoundWord
          parts: [
            (LiteralPart token:(token id:Lit_VarLike val:"x=" span_id:190))
            (ArrayLiteralPart
              words: [
                (CompoundWord
                  parts: [
                    (LiteralPart
                      token: (token id:Lit_VarLike val:"hi=" span_id:192)
                    )
                    (LiteralPart token:(token id:Lit_Chars val:ok span_id:193))
                  ]
                )
                (CompoundWord
                  parts: [
                    (LiteralPart
                      token: (token id:Lit_VarLike val:"bar=" span_id:195)
                    )
                    (LiteralPart token:(token id:Lit_Chars val:yes span_id:196))
                  ]
                )
              ]
            )
          ]
        )
        (CompoundWord
          parts: [(LiteralPart token:(token id:Lit_Chars val:typeset span_id:200))]
        )
        (CompoundWord
          parts: [
            (LiteralPart token:(token id:Lit_VarLike val:"y=" span_id:202))
            (ArrayLiteralPart
              words: [
                (CompoundWord
                  parts: [
                    (LiteralPart
                      token: (token id:Lit_VarLike val:"xa=" span_id:204)
                    )
                    (LiteralPart token:(token id:Lit_Chars val:xx span_id:205))
                  ]
                )
                (CompoundWord
                  parts: [
                    (LiteralPart
                      token: (token id:Lit_VarLike val:"xq=" span_id:207)
                    )
                    (LiteralPart token:(token id:Lit_Chars val:89 span_id:208))
                  ]
                )
              ]
            )
          ]
        )
        (CompoundWord
          parts: [(LiteralPart token:(token id:Lit_Chars val:typeset span_id:212))]
        )
        (CompoundWord parts:[(LiteralPart token:(token id:Lit_Chars val:-A span_id:214))])
        (CompoundWord
          parts: [
            (LiteralPart token:(token id:Lit_VarLike val:"aa=" span_id:216))
            (ArrayLiteralPart
              words: [
                (CompoundWord
                  parts: [
                    (LiteralPart token:(token id:Lit_Other val:"[" span_id:218))
                    (LiteralPart token:(token id:Lit_Chars val:one span_id:219))
                    (LiteralPart token:(token id:Lit_Other val:"]" span_id:220))
                    (LiteralPart token:(token id:Lit_Other val:"=" span_id:221))
                    (LiteralPart token:(token id:Lit_Chars val:abc span_id:222))
                  ]
                )
                (CompoundWord
                  parts: [
                    (LiteralPart token:(token id:Lit_Other val:"[" span_id:224))
                    (LiteralPart token:(token id:Lit_Chars val:two span_id:225))
                    (LiteralPart token:(token id:Lit_Other val:"]" span_id:226))
                    (LiteralPart token:(token id:Lit_Other val:"=" span_id:227))
                    (LiteralPart token:(token id:Lit_Chars val:def span_id:228))
                  ]
                )
              ]
            )
          ]
        )
        (CompoundWord
          parts: [(LiteralPart token:(token id:Lit_Chars val:typeset span_id:232))]
        )
        (CompoundWord parts:[(LiteralPart token:(token id:Lit_Chars val:-a span_id:234))])
        (CompoundWord
          parts: [
            (LiteralPart token:(token id:Lit_VarLike val:"ia=" span_id:236))
            (ArrayLiteralPart
              words: [
                (CompoundWord
                  parts: [(LiteralPart token:(token id:Lit_Chars val:abc span_id:238))]
                )
                (CompoundWord
                  parts: [(LiteralPart token:(token id:Lit_Chars val:def span_id:240))]
                )
              ]
            )
          ]
        )
        (CompoundWord
          parts: [(LiteralPart token:(token id:Lit_Chars val:typeset span_id:244))]
        )
        (CompoundWord parts:[(LiteralPart token:(token id:Lit_Chars val:-i span_id:246))])
        (CompoundWord
          parts: [
            (LiteralPart token:(token id:Lit_VarLike val:"z=" span_id:248))
            (LiteralPart token:(token id:Lit_Chars val:5 span_id:249))
          ]
        )
      ]
    )
  ]
)
---
Line 0 of '<unknown>'
  <no position info for token>
Error parsing AndOr in ParseCommandTerm
---

        
Translating types.sh
        Line 37 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/types.sh'
  	typeset name=foobar
  	^~~~~~~
Unexpected array literal: (CompoundWord
  parts: [
    (ArrayLiteralPart
      words: [
        (CompoundWord
          parts: [(LiteralPart token:(token id:Lit_Chars val:typeset span_id:182))]
        )
        (CompoundWord
          parts: [
            (LiteralPart token:(token id:Lit_VarLike val:"name=" span_id:184))
            (LiteralPart token:(token id:Lit_Chars val:foobar span_id:185))
          ]
        )
        (CompoundWord
          parts: [(LiteralPart token:(token id:Lit_Chars val:typeset span_id:188))]
        )
        (CompoundWord
          parts: [
            (LiteralPart token:(token id:Lit_VarLike val:"x=" span_id:190))
            (ArrayLiteralPart
              words: [
                (CompoundWord
                  parts: [
                    (LiteralPart
                      token: (token id:Lit_VarLike val:"hi=" span_id:192)
                    )
                    (LiteralPart token:(token id:Lit_Chars val:ok span_id:193))
                  ]
                )
                (CompoundWord
                  parts: [
                    (LiteralPart
                      token: (token id:Lit_VarLike val:"bar=" span_id:195)
                    )
                    (LiteralPart token:(token id:Lit_Chars val:yes span_id:196))
                  ]
                )
              ]
            )
          ]
        )
        (CompoundWord
          parts: [(LiteralPart token:(token id:Lit_Chars val:typeset span_id:200))]
        )
        (CompoundWord
          parts: [
            (LiteralPart token:(token id:Lit_VarLike val:"y=" span_id:202))
            (ArrayLiteralPart
              words: [
                (CompoundWord
                  parts: [
                    (LiteralPart
                      token: (token id:Lit_VarLike val:"xa=" span_id:204)
                    )
                    (LiteralPart token:(token id:Lit_Chars val:xx span_id:205))
                  ]
                )
                (CompoundWord
                  parts: [
                    (LiteralPart
                      token: (token id:Lit_VarLike val:"xq=" span_id:207)
                    )
                    (LiteralPart token:(token id:Lit_Chars val:89 span_id:208))
                  ]
                )
              ]
            )
          ]
        )
        (CompoundWord
          parts: [(LiteralPart token:(token id:Lit_Chars val:typeset span_id:212))]
        )
        (CompoundWord parts:[(LiteralPart token:(token id:Lit_Chars val:-A span_id:214))])
        (CompoundWord
          parts: [
            (LiteralPart token:(token id:Lit_VarLike val:"aa=" span_id:216))
            (ArrayLiteralPart
              words: [
                (CompoundWord
                  parts: [
                    (LiteralPart token:(token id:Lit_Other val:"[" span_id:218))
                    (LiteralPart token:(token id:Lit_Chars val:one span_id:219))
                    (LiteralPart token:(token id:Lit_Other val:"]" span_id:220))
                    (LiteralPart token:(token id:Lit_Other val:"=" span_id:221))
                    (LiteralPart token:(token id:Lit_Chars val:abc span_id:222))
                  ]
                )
                (CompoundWord
                  parts: [
                    (LiteralPart token:(token id:Lit_Other val:"[" span_id:224))
                    (LiteralPart token:(token id:Lit_Chars val:two span_id:225))
                    (LiteralPart token:(token id:Lit_Other val:"]" span_id:226))
                    (LiteralPart token:(token id:Lit_Other val:"=" span_id:227))
                    (LiteralPart token:(token id:Lit_Chars val:def span_id:228))
                  ]
                )
              ]
            )
          ]
        )
        (CompoundWord
          parts: [(LiteralPart token:(token id:Lit_Chars val:typeset span_id:232))]
        )
        (CompoundWord parts:[(LiteralPart token:(token id:Lit_Chars val:-a span_id:234))])
        (CompoundWord
          parts: [
            (LiteralPart token:(token id:Lit_VarLike val:"ia=" span_id:236))
            (ArrayLiteralPart
              words: [
                (CompoundWord
                  parts: [(LiteralPart token:(token id:Lit_Chars val:abc span_id:238))]
                )
                (CompoundWord
                  parts: [(LiteralPart token:(token id:Lit_Chars val:def span_id:240))]
                )
              ]
            )
          ]
        )
        (CompoundWord
          parts: [(LiteralPart token:(token id:Lit_Chars val:typeset span_id:244))]
        )
        (CompoundWord parts:[(LiteralPart token:(token id:Lit_Chars val:-i span_id:246))])
        (CompoundWord
          parts: [
            (LiteralPart token:(token id:Lit_VarLike val:"z=" span_id:248))
            (LiteralPart token:(token id:Lit_Chars val:5 span_id:249))
          ]
        )
      ]
    )
  ]
)
---
Line 0 of '<unknown>'
  <no position info for token>
Error parsing AndOr in ParseCommandTerm
---

        
Parsing locale.sh
        Line 31 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/locale.sh'
  unset LANG ${!LC_*}
                   ^
Unexpected token after var sub: (token id:Unknown_Tok val:"*" span_id:134)
---
Line 31 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/locale.sh'
  unset LANG ${!LC_*}
                   ^
Error reading command word
---
Line 0 of '<unknown>'
  <no position info for token>
Error parsing AndOr in ParseCommandTerm
---

        
Translating locale.sh
        Line 31 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/locale.sh'
  unset LANG ${!LC_*}
                   ^
Unexpected token after var sub: (token id:Unknown_Tok val:"*" span_id:134)
---
Line 31 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/locale.sh'
  unset LANG ${!LC_*}
                   ^
Error reading command word
---
Line 0 of '<unknown>'
  <no position info for token>
Error parsing AndOr in ParseCommandTerm
---

        
Parsing options.sh
        Line 359 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/options.sh'
  	( nopipefail=0 pipefail=1 command='false|true|true' )
  	^
Unexpected word in array literal: (TokenWord token:(token id:Op_LParen val:"(" span_id:4025))
---
Line 0 of '<unknown>'
  <no position info for token>
_ReadArrayLiteralPart failed
---
Line 358 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/options.sh'
  pipeline=(
           ^
Error reading command word
---

        
Translating options.sh
        Line 359 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/options.sh'
  	( nopipefail=0 pipefail=1 command='false|true|true' )
  	^
Unexpected word in array literal: (TokenWord token:(token id:Op_LParen val:"(" span_id:4025))
---
Line 0 of '<unknown>'
  <no position info for token>
_ReadArrayLiteralPart failed
---
Line 358 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/options.sh'
  pipeline=(
           ^
Error reading command word
---

        
Translating grep.sh
        Traceback (most recent call last):
  File "bin/osh", line 469, in <module>
    main(sys.argv)
  File "bin/osh", line 452, in main
    sys.exit(OilMain(argv))
  File "bin/osh", line 435, in OilMain
    status = OshMain(main_argv, login_shell)
  File "bin/osh", line 350, in OshMain
    osh2oil.PrintAsOil(arena, node, opts.debug_spans)
  File "/home/andy/git/oil/bin/../tools/osh2oil.py", line 69, in PrintAsOil
    fixer.DoCommand(node, None, at_top_level=True)  # no local symbols yet
  File "/home/andy/git/oil/bin/../tools/osh2oil.py", line 473, in DoCommand
    self.DoCommand(child, local_symbols)
  File "/home/andy/git/oil/bin/../tools/osh2oil.py", line 632, in DoCommand
    self.DoCommand(child, new_local_symbols)
  File "/home/andy/git/oil/bin/../tools/osh2oil.py", line 682, in DoCommand
    self.DoCommand(node.body, local_symbols)
  File "/home/andy/git/oil/bin/../tools/osh2oil.py", line 652, in DoCommand
    self.DoCommand(child, local_symbols)
  File "/home/andy/git/oil/bin/../tools/osh2oil.py", line 719, in DoCommand
    self.DoCommand(child, local_symbols)
  File "/home/andy/git/oil/bin/../tools/osh2oil.py", line 565, in DoCommand
    self.DoCommand(child, local_symbols)
  File "/home/andy/git/oil/bin/../tools/osh2oil.py", line 609, in DoCommand
    self.DoArithExpr(node.child, local_symbols)
  File "/home/andy/git/oil/bin/../tools/osh2oil.py", line 1196, in DoArithExpr
    raise AssertionError(node.__class__.__name__)
AssertionError: ArithVarRef

        
Translating restricted.sh
        Traceback (most recent call last):
  File "bin/osh", line 469, in <module>
    main(sys.argv)
  File "bin/osh", line 452, in main
    sys.exit(OilMain(argv))
  File "bin/osh", line 435, in OilMain
    status = OshMain(main_argv, login_shell)
  File "bin/osh", line 350, in OshMain
    osh2oil.PrintAsOil(arena, node, opts.debug_spans)
  File "/home/andy/git/oil/bin/../tools/osh2oil.py", line 69, in PrintAsOil
    fixer.DoCommand(node, None, at_top_level=True)  # no local symbols yet
  File "/home/andy/git/oil/bin/../tools/osh2oil.py", line 473, in DoCommand
    self.DoCommand(child, local_symbols)
  File "/home/andy/git/oil/bin/../tools/osh2oil.py", line 536, in DoCommand
    self.DoRedirect(r, local_symbols)
  File "/home/andy/git/oil/bin/../tools/osh2oil.py", line 270, in DoRedirect
    raise NotImplementedError(node.__class__.__name__)
NotImplementedError: HereDoc

        
Parsing vartree1.sh
        Traceback (most recent call last):
  File "bin/osh", line 469, in <module>
    main(sys.argv)
  File "bin/osh", line 452, in main
    sys.exit(OilMain(argv))
  File "bin/osh", line 435, in OilMain
    status = OshMain(main_argv, login_shell)
  File "bin/osh", line 336, in OshMain
    node = c_parser.ParseWholeFile()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1592, in ParseWholeFile
    node = self.ParseCommandTerm()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1504, in ParseCommandTerm
    child = self.ParseAndOr()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1373, in ParseAndOr
    left = self.ParsePipeline()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1308, in ParsePipeline
    child = self.ParseCommand()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1257, in ParseCommand
    return self.ParseKshFunctionDef()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1175, in ParseKshFunctionDef
    if not self.ParseFunctionBody(func):
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1090, in ParseFunctionBody
    body = self.ParseCompoundCommand()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1055, in ParseCompoundCommand
    return self.ParseBraceGroup()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 667, in ParseBraceGroup
    c_list = self.ParseCommandList()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1570, in ParseCommandList
    node = self.ParseCommandTerm()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1504, in ParseCommandTerm
    child = self.ParseAndOr()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1373, in ParseAndOr
    left = self.ParsePipeline()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1308, in ParsePipeline
    child = self.ParseCommand()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1262, in ParseCommand
    node = self.ParseCompoundCommand()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1060, in ParseCompoundCommand
    return self.ParseFor()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 821, in ParseFor
    node = self._ParseForEachLoop()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 781, in _ParseForEachLoop
    iter_words, semi_spid = self.ParseForWords()
TypeError: 'NoneType' object is not iterable

        
Translating vartree1.sh
        Traceback (most recent call last):
  File "bin/osh", line 469, in <module>
    main(sys.argv)
  File "bin/osh", line 452, in main
    sys.exit(OilMain(argv))
  File "bin/osh", line 435, in OilMain
    status = OshMain(main_argv, login_shell)
  File "bin/osh", line 336, in OshMain
    node = c_parser.ParseWholeFile()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1592, in ParseWholeFile
    node = self.ParseCommandTerm()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1504, in ParseCommandTerm
    child = self.ParseAndOr()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1373, in ParseAndOr
    left = self.ParsePipeline()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1308, in ParsePipeline
    child = self.ParseCommand()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1257, in ParseCommand
    return self.ParseKshFunctionDef()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1175, in ParseKshFunctionDef
    if not self.ParseFunctionBody(func):
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1090, in ParseFunctionBody
    body = self.ParseCompoundCommand()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1055, in ParseCompoundCommand
    return self.ParseBraceGroup()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 667, in ParseBraceGroup
    c_list = self.ParseCommandList()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1570, in ParseCommandList
    node = self.ParseCommandTerm()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1504, in ParseCommandTerm
    child = self.ParseAndOr()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1373, in ParseAndOr
    left = self.ParsePipeline()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1308, in ParsePipeline
    child = self.ParseCommand()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1262, in ParseCommand
    node = self.ParseCompoundCommand()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1060, in ParseCompoundCommand
    return self.ParseFor()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 821, in ParseFor
    node = self._ParseForEachLoop()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 781, in _ParseForEachLoop
    iter_words, semi_spid = self.ParseForWords()
TypeError: 'NoneType' object is not iterable

        
Parsing recttype.sh
        Line 34 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/recttype.sh'
  	len()
  	   ^
Unexpected word in array literal: (TokenWord token:(token id:Op_LParen val:"(" span_id:152))
---
Line 0 of '<unknown>'
  <no position info for token>
_ReadArrayLiteralPart failed
---
Line 31 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/recttype.sh'
  typeset -T Pt_t=(
                  ^
Error reading command word
---
Line 0 of '<unknown>'
  <no position info for token>
Error parsing AndOr in ParseCommandTerm
---

        
Translating recttype.sh
        Line 34 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/recttype.sh'
  	len()
  	   ^
Unexpected word in array literal: (TokenWord token:(token id:Op_LParen val:"(" span_id:152))
---
Line 0 of '<unknown>'
  <no position info for token>
_ReadArrayLiteralPart failed
---
Line 31 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/recttype.sh'
  typeset -T Pt_t=(
                  ^
Error reading command word
---
Line 0 of '<unknown>'
  <no position info for token>
Error parsing AndOr in ParseCommandTerm
---

        
Parsing sigchld.sh
        Line 67 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/sigchld.sh'
  if	[[ ${.sh.version} == Version?*([[:upper:]])J* ]]
    	     ^
parse error: Unexpected token (token id:Unknown_Tok val:. span_id:262)

        
Translating sigchld.sh
        Line 67 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/sigchld.sh'
  if	[[ ${.sh.version} == Version?*([[:upper:]])J* ]]
    	     ^
parse error: Unexpected token (token id:Unknown_Tok val:. span_id:262)

        
Parsing basic.sh
        Line 369 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/basic.sh'
  (( $($SHELL $tmp/scriptx) > 2.0 )) && err_exit 'command substitution causes pipefail option to hang'
                               ^
Unknown token in arith context: (token id:Unknown_Tok val:. span_id:3166)
---
Line 369 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/basic.sh'
  (( $($SHELL $tmp/scriptx) > 2.0 )) && err_exit 'command substitution causes pipefail option to hang'
                               ^
Unknown token in arith context: (token id:Unknown_Tok val:. span_id:3166)
---
Line 0 of '<unknown>'
  <no position info for token>
Error reading arith word in ArithParser
---
Line 0 of '<unknown>'
  <no position info for token>

---
Line 0 of '<unknown>'
  <no position info for token>
Error parsing dparen statement
---
Line 369 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/basic.sh'
  (( $($SHELL $tmp/scriptx) > 2.0 )) && err_exit 'command substitution causes pipefail option to hang'
  ^~
Error parsing ((
---
Line 0 of '<unknown>'
  <no position info for token>
Error parsing AndOr in ParseCommandTerm
---

        
Translating basic.sh
        Line 369 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/basic.sh'
  (( $($SHELL $tmp/scriptx) > 2.0 )) && err_exit 'command substitution causes pipefail option to hang'
                               ^
Unknown token in arith context: (token id:Unknown_Tok val:. span_id:3166)
---
Line 369 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/basic.sh'
  (( $($SHELL $tmp/scriptx) > 2.0 )) && err_exit 'command substitution causes pipefail option to hang'
                               ^
Unknown token in arith context: (token id:Unknown_Tok val:. span_id:3166)
---
Line 0 of '<unknown>'
  <no position info for token>
Error reading arith word in ArithParser
---
Line 0 of '<unknown>'
  <no position info for token>

---
Line 0 of '<unknown>'
  <no position info for token>
Error parsing dparen statement
---
Line 369 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/basic.sh'
  (( $($SHELL $tmp/scriptx) > 2.0 )) && err_exit 'command substitution causes pipefail option to hang'
  ^~
Error parsing ((
---
Line 0 of '<unknown>'
  <no position info for token>
Error parsing AndOr in ParseCommandTerm
---

        
Translating readcsv.sh
        Traceback (most recent call last):
  File "bin/osh", line 469, in <module>
    main(sys.argv)
  File "bin/osh", line 452, in main
    sys.exit(OilMain(argv))
  File "bin/osh", line 435, in OilMain
    status = OshMain(main_argv, login_shell)
  File "bin/osh", line 350, in OshMain
    osh2oil.PrintAsOil(arena, node, opts.debug_spans)
  File "/home/andy/git/oil/bin/../tools/osh2oil.py", line 69, in PrintAsOil
    fixer.DoCommand(node, None, at_top_level=True)  # no local symbols yet
  File "/home/andy/git/oil/bin/../tools/osh2oil.py", line 473, in DoCommand
    self.DoCommand(child, local_symbols)
  File "/home/andy/git/oil/bin/../tools/osh2oil.py", line 536, in DoCommand
    self.DoRedirect(r, local_symbols)
  File "/home/andy/git/oil/bin/../tools/osh2oil.py", line 270, in DoRedirect
    raise NotImplementedError(node.__class__.__name__)
NotImplementedError: HereDoc

        
Parsing expand.sh
        Traceback (most recent call last):
  File "bin/osh", line 469, in <module>
    main(sys.argv)
  File "bin/osh", line 452, in main
    sys.exit(OilMain(argv))
  File "bin/osh", line 435, in OilMain
    status = OshMain(main_argv, login_shell)
  File "bin/osh", line 336, in OshMain
    node = c_parser.ParseWholeFile()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1592, in ParseWholeFile
    node = self.ParseCommandTerm()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1504, in ParseCommandTerm
    child = self.ParseAndOr()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1373, in ParseAndOr
    left = self.ParsePipeline()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1308, in ParsePipeline
    child = self.ParseCommand()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1262, in ParseCommand
    node = self.ParseCompoundCommand()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1060, in ParseCompoundCommand
    return self.ParseFor()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 821, in ParseFor
    node = self._ParseForEachLoop()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 782, in _ParseForEachLoop
    words2 = braces.BraceDetectAll(iter_words)
  File "/home/andy/git/oil/bin/../core/braces.py", line 151, in BraceDetectAll
    brace_tree = _BraceDetect(w)
  File "/home/andy/git/oil/bin/../core/braces.py", line 84, in _BraceDetect
    for i, part in enumerate(w.parts):
AttributeError: 'TokenWord' object has no attribute 'parts'

        
Translating expand.sh
        Traceback (most recent call last):
  File "bin/osh", line 469, in <module>
    main(sys.argv)
  File "bin/osh", line 452, in main
    sys.exit(OilMain(argv))
  File "bin/osh", line 435, in OilMain
    status = OshMain(main_argv, login_shell)
  File "bin/osh", line 336, in OshMain
    node = c_parser.ParseWholeFile()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1592, in ParseWholeFile
    node = self.ParseCommandTerm()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1504, in ParseCommandTerm
    child = self.ParseAndOr()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1373, in ParseAndOr
    left = self.ParsePipeline()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1308, in ParsePipeline
    child = self.ParseCommand()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1262, in ParseCommand
    node = self.ParseCompoundCommand()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1060, in ParseCompoundCommand
    return self.ParseFor()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 821, in ParseFor
    node = self._ParseForEachLoop()
  File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 782, in _ParseForEachLoop
    words2 = braces.BraceDetectAll(iter_words)
  File "/home/andy/git/oil/bin/../core/braces.py", line 151, in BraceDetectAll
    brace_tree = _BraceDetect(w)
  File "/home/andy/git/oil/bin/../core/braces.py", line 84, in _BraceDetect
    for i, part in enumerate(w.parts):
AttributeError: 'TokenWord' object has no attribute 'parts'

        
Parsing arith.sh
        Line 60 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/arith.sh'
  	if	(( 2.5 != 2.5 ))
  	  	    ^
Unknown token in arith context: (token id:Unknown_Tok val:. span_id:383)
---
Line 60 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/arith.sh'
  	if	(( 2.5 != 2.5 ))
  	  	    ^
Unknown token in arith context: (token id:Unknown_Tok val:. span_id:383)
---
Line 0 of '<unknown>'
  <no position info for token>
Error reading arith word in ArithParser
---
Line 0 of '<unknown>'
  <no position info for token>

---
Line 0 of '<unknown>'
  <no position info for token>
Error parsing dparen statement
---
Line 60 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/arith.sh'
  	if	(( 2.5 != 2.5 ))
  	  	^~
Error parsing ((
---
Line 0 of '<unknown>'
  <no position info for token>
Error parsing AndOr in ParseCommandTerm
---
Line 0 of '<unknown>'
  <no position info for token>
Error parsing AndOr in ParseCommandTerm
---
Line 0 of '<unknown>'
  <no position info for token>
Error parsing AndOr in ParseCommandTerm
---

        
Translating arith.sh
        Line 60 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/arith.sh'
  	if	(( 2.5 != 2.5 ))
  	  	    ^
Unknown token in arith context: (token id:Unknown_Tok val:. span_id:383)
---
Line 60 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/arith.sh'
  	if	(( 2.5 != 2.5 ))
  	  	    ^
Unknown token in arith context: (token id:Unknown_Tok val:. span_id:383)
---
Line 0 of '<unknown>'
  <no position info for token>
Error reading arith word in ArithParser
---
Line 0 of '<unknown>'
  <no position info for token>

---
Line 0 of '<unknown>'
  <no position info for token>
Error parsing dparen statement
---
Line 60 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/arith.sh'
  	if	(( 2.5 != 2.5 ))
  	  	^~
Error parsing ((
---
Line 0 of '<unknown>'
  <no position info for token>
Error parsing AndOr in ParseCommandTerm
---
Line 0 of '<unknown>'
  <no position info for token>
Error parsing AndOr in ParseCommandTerm
---
Line 0 of '<unknown>'
  <no position info for token>
Error parsing AndOr in ParseCommandTerm
---

        
Translating glob.sh
        Traceback (most recent call last):
  File "bin/osh", line 469, in <module>
    main(sys.argv)
  File "bin/osh", line 452, in main
    sys.exit(OilMain(argv))
  File "bin/osh", line 435, in OilMain
    status = OshMain(main_argv, login_shell)
  File "bin/osh", line 350, in OshMain
    osh2oil.PrintAsOil(arena, node, opts.debug_spans)
  File "/home/andy/git/oil/bin/../tools/osh2oil.py", line 69, in PrintAsOil
    fixer.DoCommand(node, None, at_top_level=True)  # no local symbols yet
  File "/home/andy/git/oil/bin/../tools/osh2oil.py", line 473, in DoCommand
    self.DoCommand(child, local_symbols)
  File "/home/andy/git/oil/bin/../tools/osh2oil.py", line 632, in DoCommand
    self.DoCommand(child, new_local_symbols)
  File "/home/andy/git/oil/bin/../tools/osh2oil.py", line 609, in DoCommand
    self.DoArithExpr(node.child, local_symbols)
  File "/home/andy/git/oil/bin/../tools/osh2oil.py", line 1196, in DoArithExpr
    raise AssertionError(node.__class__.__name__)
AssertionError: UnaryAssign

        
Parsing comvar.sh
        Line 35 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/comvar.sh'
  if	(( (p.x*p.x + p.y*p.y) > 1.01 ))
    	     ^
Unknown token in arith context: (token id:Unknown_Tok val:. span_id:156)
---
Line 35 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/comvar.sh'
  if	(( (p.x*p.x + p.y*p.y) > 1.01 ))
    	     ^
Unknown token in arith context: (token id:Unknown_Tok val:. span_id:156)
---
Line 0 of '<unknown>'
  <no position info for token>
Error reading arith word in ArithParser
---
Line 0 of '<unknown>'
  <no position info for token>

---
Line 0 of '<unknown>'
  <no position info for token>
Error parsing dparen statement
---
Line 35 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/comvar.sh'
  if	(( (p.x*p.x + p.y*p.y) > 1.01 ))
    	^~
Error parsing ((
---
Line 0 of '<unknown>'
  <no position info for token>
Error parsing AndOr in ParseCommandTerm
---
Line 0 of '<unknown>'
  <no position info for token>
Error parsing AndOr in ParseCommandTerm
---

        
Translating comvar.sh
        Line 35 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/comvar.sh'
  if	(( (p.x*p.x + p.y*p.y) > 1.01 ))
    	     ^
Unknown token in arith context: (token id:Unknown_Tok val:. span_id:156)
---
Line 35 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/comvar.sh'
  if	(( (p.x*p.x + p.y*p.y) > 1.01 ))
    	     ^
Unknown token in arith context: (token id:Unknown_Tok val:. span_id:156)
---
Line 0 of '<unknown>'
  <no position info for token>
Error reading arith word in ArithParser
---
Line 0 of '<unknown>'
  <no position info for token>

---
Line 0 of '<unknown>'
  <no position info for token>
Error parsing dparen statement
---
Line 35 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/comvar.sh'
  if	(( (p.x*p.x + p.y*p.y) > 1.01 ))
    	^~
Error parsing ((
---
Line 0 of '<unknown>'
  <no position info for token>
Error parsing AndOr in ParseCommandTerm
---
Line 0 of '<unknown>'
  <no position info for token>
Error parsing AndOr in ParseCommandTerm
---

        
Parsing arrays.sh
        Line 212 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/arrays.sh'
  if	[[ ${!foovar@} != +(foovar[[:alnum:]]?([ ])) ]]
    	            ^
Unexpected token after var sub: (token id:Unknown_Tok val:"@" span_id:1734)
---
Line 212 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/arrays.sh'
  if	[[ ${!foovar@} != +(foovar[[:alnum:]]?([ ])) ]]
    	            ^
Error reading command word
---
Line 212 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/arrays.sh'
  if	[[ ${!foovar@} != +(foovar[[:alnum:]]?([ ])) ]]
    	^~
Error parsing [[
---
Line 0 of '<unknown>'
  <no position info for token>
Error parsing AndOr in ParseCommandTerm
---
Line 0 of '<unknown>'
  <no position info for token>
Error parsing AndOr in ParseCommandTerm
---

        
Translating arrays.sh
        Line 212 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/arrays.sh'
  if	[[ ${!foovar@} != +(foovar[[:alnum:]]?([ ])) ]]
    	            ^
Unexpected token after var sub: (token id:Unknown_Tok val:"@" span_id:1734)
---
Line 212 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/arrays.sh'
  if	[[ ${!foovar@} != +(foovar[[:alnum:]]?([ ])) ]]
    	            ^
Error reading command word
---
Line 212 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/arrays.sh'
  if	[[ ${!foovar@} != +(foovar[[:alnum:]]?([ ])) ]]
    	^~
Error parsing [[
---
Line 0 of '<unknown>'
  <no position info for token>
Error parsing AndOr in ParseCommandTerm
---
Line 0 of '<unknown>'
  <no position info for token>
Error parsing AndOr in ParseCommandTerm
---

        
Parsing enum.sh
        Line 30 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/enum.sh'
  enum Color_t=(red green blue orange yellow)
                ^~~
Unexpected array literal: (CompoundWord
  parts: [
    (ArrayLiteralPart
      words: [
        (CompoundWord parts:[(LiteralPart token:(token id:Lit_Chars val:red span_id:134))])
        (CompoundWord parts:[(LiteralPart token:(token id:Lit_Chars val:green span_id:136))])
        (CompoundWord parts:[(LiteralPart token:(token id:Lit_Chars val:blue span_id:138))])
        (CompoundWord
          parts: [(LiteralPart token:(token id:Lit_Chars val:orange span_id:140))]
        )
        (CompoundWord
          parts: [(LiteralPart token:(token id:Lit_Chars val:yellow span_id:142))]
        )
      ]
    )
  ]
)
---
Line 0 of '<unknown>'
  <no position info for token>
Error parsing AndOr in ParseCommandTerm
---

        
Translating enum.sh
        Line 30 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/enum.sh'
  enum Color_t=(red green blue orange yellow)
                ^~~
Unexpected array literal: (CompoundWord
  parts: [
    (ArrayLiteralPart
      words: [
        (CompoundWord parts:[(LiteralPart token:(token id:Lit_Chars val:red span_id:134))])
        (CompoundWord parts:[(LiteralPart token:(token id:Lit_Chars val:green span_id:136))])
        (CompoundWord parts:[(LiteralPart token:(token id:Lit_Chars val:blue span_id:138))])
        (CompoundWord
          parts: [(LiteralPart token:(token id:Lit_Chars val:orange span_id:140))]
        )
        (CompoundWord
          parts: [(LiteralPart token:(token id:Lit_Chars val:yellow span_id:142))]
        )
      ]
    )
  ]
)
---
Line 0 of '<unknown>'
  <no position info for token>
Error parsing AndOr in ParseCommandTerm
---

        
Parsing subshell.sh
        Line 38 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/subshell.sh'
  z.foo=( [one]=hello [two]=(x=3 y=4) [three]=hi)
          ^
Expected word type Right_FuncDef, got (CompoundWord
  parts: [
    (LiteralPart token:(token id:Lit_Other val:"[" span_id:202))
    (LiteralPart token:(token id:Lit_Chars val:one span_id:203))
    (LiteralPart token:(token id:Lit_Other val:"]" span_id:204))
    (LiteralPart token:(token id:Lit_Other val:"=" span_id:205))
    (LiteralPart token:(token id:Lit_Chars val:hello span_id:206))
  ]
)
---
Line 0 of '<unknown>'
  <no position info for token>
Error parsing AndOr in ParseCommandTerm
---

        
Translating subshell.sh
        Line 38 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/subshell.sh'
  z.foo=( [one]=hello [two]=(x=3 y=4) [three]=hi)
          ^
Expected word type Right_FuncDef, got (CompoundWord
  parts: [
    (LiteralPart token:(token id:Lit_Other val:"[" span_id:202))
    (LiteralPart token:(token id:Lit_Chars val:one span_id:203))
    (LiteralPart token:(token id:Lit_Other val:"]" span_id:204))
    (LiteralPart token:(token id:Lit_Other val:"=" span_id:205))
    (LiteralPart token:(token id:Lit_Chars val:hello span_id:206))
  ]
)
---
Line 0 of '<unknown>'
  <no position info for token>
Error parsing AndOr in ParseCommandTerm
---

        
Parsing signal.sh
        Line 43 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/signal.sh'
  	elif	[[ $s == ?(SIG)$t ]]
  	    	          ^
Unexpected extra word (TokenWord token:(token id:Op_LParen val:"(" span_id:275))
---
Line 43 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/signal.sh'
  	elif	[[ $s == ?(SIG)$t ]]
  	    	^~
Error parsing [[
---
Line 0 of '<unknown>'
  <no position info for token>
Error parsing AndOr in ParseCommandTerm
---
Line 0 of '<unknown>'
  <no position info for token>
Error parsing AndOr in ParseCommandTerm
---
Line 0 of '<unknown>'
  <no position info for token>
Error parsing AndOr in ParseCommandTerm
---

        
Translating signal.sh
        Line 43 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/signal.sh'
  	elif	[[ $s == ?(SIG)$t ]]
  	    	          ^
Unexpected extra word (TokenWord token:(token id:Op_LParen val:"(" span_id:275))
---
Line 43 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/signal.sh'
  	elif	[[ $s == ?(SIG)$t ]]
  	    	^~
Error parsing [[
---
Line 0 of '<unknown>'
  <no position info for token>
Error parsing AndOr in ParseCommandTerm
---
Line 0 of '<unknown>'
  <no position info for token>
Error parsing AndOr in ParseCommandTerm
---
Line 0 of '<unknown>'
  <no position info for token>
Error parsing AndOr in ParseCommandTerm
---

        
Parsing heredoc.sh
        WARNING: unterminated here doc
Line 187 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/heredoc.sh'
  	: << EOF
  	^
Unexpected extra word (CompoundWord parts:[(LiteralPart token:(token id:Lit_Other val:":" span_id:1023))])
---
Line 130 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/heredoc.sh'
  if	[[ $( IFS=:;cat <<-!
    	^~
Error parsing [[
---
Line 0 of '<unknown>'
  <no position info for token>
Error parsing AndOr in ParseCommandTerm
---
Line 0 of '<unknown>'
  <no position info for token>
Error parsing AndOr in ParseCommandTerm
---

        
Translating heredoc.sh
        WARNING: unterminated here doc
Line 187 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/heredoc.sh'
  	: << EOF
  	^
Unexpected extra word (CompoundWord parts:[(LiteralPart token:(token id:Lit_Other val:":" span_id:1023))])
---
Line 130 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/heredoc.sh'
  if	[[ $( IFS=:;cat <<-!
    	^~
Error parsing [[
---
Line 0 of '<unknown>'
  <no position info for token>
Error parsing AndOr in ParseCommandTerm
---
Line 0 of '<unknown>'
  <no position info for token>
Error parsing AndOr in ParseCommandTerm
---

        
Parsing bracket.sh
        Line 43 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/bracket.sh'
  if	[[ -a $file ]]
    	      ^~~~~
Unexpected extra word (CompoundWord parts:[(SimpleVarSub token:(token id:VSub_Name val:"$file" span_id:226))])
---
Line 43 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/bracket.sh'
  if	[[ -a $file ]]
    	^~
Error parsing [[
---
Line 0 of '<unknown>'
  <no position info for token>
Error parsing AndOr in ParseCommandTerm
---
Line 0 of '<unknown>'
  <no position info for token>
Error parsing AndOr in ParseCommandTerm
---

        
Translating bracket.sh
        Line 43 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/bracket.sh'
  if	[[ -a $file ]]
    	      ^~~~~
Unexpected extra word (CompoundWord parts:[(SimpleVarSub token:(token id:VSub_Name val:"$file" span_id:226))])
---
Line 43 of '/home/andy/git/other/ast/src/cmd/ksh93/tests/bracket.sh'
  if	[[ -a $file ]]
    	^~
Error parsing [[
---
Line 0 of '<unknown>'
  <no position info for token>
Error parsing AndOr in ParseCommandTerm
---
Line 0 of '<unknown>'
  <no position info for token>
Error parsing AndOr in ParseCommandTerm
---

        
Translating case.sh
        Traceback (most recent call last):
  File "bin/osh", line 469, in <module>
    main(sys.argv)
  File "bin/osh", line 452, in main
    sys.exit(OilMain(argv))
  File "bin/osh", line 435, in OilMain
    status = OshMain(main_argv, login_shell)
  File "bin/osh", line 350, in OshMain
    osh2oil.PrintAsOil(arena, node, opts.debug_spans)
  File "/home/andy/git/oil/bin/../tools/osh2oil.py", line 69, in PrintAsOil
    fixer.DoCommand(node, None, at_top_level=True)  # no local symbols yet
  File "/home/andy/git/oil/bin/../tools/osh2oil.py", line 473, in DoCommand
    self.DoCommand(child, local_symbols)
  File "/home/andy/git/oil/bin/../tools/osh2oil.py", line 532, in DoCommand
    self.DoWordInCommand(w, local_symbols)
  File "/home/andy/git/oil/bin/../tools/osh2oil.py", line 989, in DoWordInCommand
    self.DoWordPart(part, local_symbols)
  File "/home/andy/git/oil/bin/../tools/osh2oil.py", line 1167, in DoWordPart
    self.DoArithExpr(node.anode, local_symbols)
  File "/home/andy/git/oil/bin/../tools/osh2oil.py", line 1196, in DoArithExpr
    raise AssertionError(node.__class__.__name__)
AssertionError: TernaryOp

        
Translating exit.sh
        Traceback (most recent call last):
  File "bin/osh", line 469, in <module>
    main(sys.argv)
  File "bin/osh", line 452, in main
    sys.exit(OilMain(argv))
  File "bin/osh", line 435, in OilMain
    status = OshMain(main_argv, login_shell)
  File "bin/osh", line 350, in OshMain
    osh2oil.PrintAsOil(arena, node, opts.debug_spans)
  File "/home/andy/git/oil/bin/../tools/osh2oil.py", line 69, in PrintAsOil
    fixer.DoCommand(node, None, at_top_level=True)  # no local symbols yet
  File "/home/andy/git/oil/bin/../tools/osh2oil.py", line 473, in DoCommand
    self.DoCommand(child, local_symbols)
  File "/home/andy/git/oil/bin/../tools/osh2oil.py", line 536, in DoCommand
    self.DoRedirect(r, local_symbols)
  File "/home/andy/git/oil/bin/../tools/osh2oil.py", line 270, in DoRedirect
    raise NotImplementedError(node.__class__.__name__)
NotImplementedError: HereDoc