(CommandList children: [ (FuncDef name: READ body: (BraceGroup children: [(C {(read)} {(-u)} {(0)} {(-e)} {(-p)} {(DQ ('user> '))} {(r)})] spids: [9] ) spids: [4 8] ) (FuncDef name: EVAL body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:r) op: Equal rhs: {(DQ (${ VSub_Number 1))} spids: [39] ) ] spids: [39] ) ] spids: [36] ) spids: [31 35] ) (FuncDef name: PRINT body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:r) op: Equal rhs: {(DQ (${ VSub_Number 1))} spids: [57] ) ] spids: [57] ) ] spids: [54] ) spids: [49 53] ) (While cond: [(Sentence child:(C {(true)}) terminator:<Op_Semi ';'>)] body: (DoGroup children: [ (C {(READ)}) (C {(EVAL)} {(DQ (${ VSub_Name r))}) (C {(PRINT)} {(DQ (${ VSub_Name r))}) (C {(echo)} {(DQ (${ VSub_Name r))}) ] spids: [72 104] ) ) ] )