(CommandList children: [ (AndOr children: [ (C {(Lit_Other "[")} { (BracedVarSub token: <VSub_Name LOGGER_SH> suffix_op: (StringUnary op_id:VTest_Plus arg_word:{(true)}) spids: [10 14] ) } {(Lit_Other "]")} ) (ControlFlow token:<ControlFlow_Return return>) ] op_id: Op_DAmp ) (Assignment keyword: Assign_Declare flags: ["'-g'"] pairs: [(assign_pair lhs:(LhsName name:LOGGER_SH) op:Equal rhs:{(true)} spids:[26])] spids: [22] ) (C {(.)} { (BracedVarSub token: <VSub_Name BASH_SOURCE> suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{(Lit_Slash /) ("*")}) spids: [32 37] ) (/common.sh) } ) (Assignment keyword: Assign_Declare flags: ["'-g'"] pairs: [ (assign_pair lhs: (LhsName name:LOGGER_FILE) op: Equal rhs: {(DQ (logfile.txt))} spids: [45] ) ] spids: [41] ) (SimpleCommand words: [{(echo)}] redirects: [ (Redir op_id:Redir_Great fd:-1 arg_word:{(DQ (${ VSub_Name LOGGER_FILE))} spids:[52]) ] ) (FuncDef name: log body: (BraceGroup children: [ (SimpleCommand words: [{(echo)} {(DQ (${ VSub_At "@"))}] redirects: [ (Redir op_id: Redir_DGreat fd: -1 arg_word: {(DQ (${ VSub_Name LOGGER_FILE))} spids: [78] ) ] ) ] spids: [67] ) spids: [61 66] ) ] )