(CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:DIRECTORY_INDEXER) op: Equal rhs: {(DQ ($ VSub_Name '$PWD') (/kythe/go/storage/tools/directory_indexer/directory_indexer))} spids: [48] ) ] spids: [48] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:CONFIG) op: Equal rhs: {(DQ ($ VSub_Name '$PWD') (/kythe/data/vnames.json))} spids: [54] ) ] spids: [54] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:OUT) op: Equal rhs: {(DQ ($ VSub_Name '$TEST_TMPDIR') (/file_entries))} spids: [60] ) ] spids: [60] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:DIR) op: Equal rhs: {(DQ ($ VSub_Name '$PWD') (/kythe/data))} spids: [70] ) ] spids: [70] ) (C {(mkdir)} {(-p)} { (DQ (CommandSubPart command_list: (CommandList children:[(C {(dirname)} {(DQ ($ VSub_Name '$OUT'))})]) left_token: <Left_CommandSub '$('> spids: [82 88] ) ) } ) (C {(cd)} {(DQ ($ VSub_Name '$DIR'))}) (SimpleCommand words: [ {(DQ ($ VSub_Name '$DIRECTORY_INDEXER'))} {(--emit_irregular)} {(--vnames)} {(DQ ($ VSub_Name '$CONFIG'))} ] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {(DQ ($ VSub_Name '$OUT'))} spids: [109] ) ] ) (AndOr ops: [Op_DPipe] children: [ (C {(test)} {(-s)} {(DQ ($ VSub_Name '$OUT'))}) (BraceGroup children: [ (SimpleCommand words: [{(echo)} {(DQ ($ VSub_Name '$OUT') (' is empty'))}] redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(2)} spids:[135])] ) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] spids: [125] ) ] ) ] )