(List (AndOr OP_AND_IF (DBracket {B1 UNARY_STRING_z {[DQ [VarSub BALLS_LIB]]}}) (= scope= flags=0 words=[] bindings=[('BALLS_LIB', {[LIT_CHARS .]})]) ) (AndOr OP_AND_IF (DBracket {B1 UNARY_STRING_z {[DQ [VarSub BALLS_CONF]]}}) (= scope= flags=0 words=[] bindings=[('BALLS_CONF', {[LIT_CHARS ./config.sh]})]) ) (AndOr OP_AND_IF (DBracket {B1 UNARY_STRING_z {[DQ [VarSub BALLS_ROOT]]}}) (= scope= flags=0 words=[] bindings=[('BALLS_ROOT', {[ComSub (Com {[LIT_CHARS readlink]} {[LIT_CHARS -f]} {[DQ [ComSub (Com {[LIT_CHARS dirname]} {[VarSub BALLS_CONF]})][LIT_CHARS /../]]})]})]) ) (AndOr OP_AND_IF (DBracket {B1 UNARY_STRING_z {[DQ [VarSub BALLS_LIB]]}}) (= scope= flags=0 words=[] bindings=[('BALLS_LIB', {[ComSub (Com {[LIT_CHARS dirname]} {[VarSub 0]})]})]) ) (AndOr OP_AND_IF (DBracket {B1 UNARY_STRING_z {[DQ [VarSub BALLS_TMP]]}}) (= scope= flags=0 words=[] bindings=[('BALLS_TMP', {[LIT_CHARS /tmp/balls]})]) ) (AndOr OP_OR_IF (DBracket {B1 UNARY_FILE_d {[DQ [VarSub BALLS_TMP]]}}) (Com {[LIT_CHARS mkdir]} {[DQ [VarSub BALLS_TMP]]}) ) (AndOr OP_AND_IF (DBracket {B1 UNARY_STRING_z {[DQ [VarSub BALLS_PORT]]}}) (= scope= flags=0 words=[] bindings=[('BALLS_PORT', {[LIT_CHARS 3000]})]) ) (AndOr OP_AND_IF (DBracket {B1 UNARY_STRING_z {[DQ [VarSub BALLS_VIEWS]]}}) (= scope= flags=0 words=[] bindings=[('BALLS_VIEWS', {[VarSub BALLS_ROOT] [LIT_CHARS /views]})]) ) (AndOr OP_AND_IF (DBracket {B1 UNARY_STRING_z {[DQ [VarSub BALLS_ACTIONS]]}}) (= scope= flags=0 words=[] bindings=[('BALLS_ACTIONS', {[VarSub BALLS_ROOT] [LIT_CHARS /actions]})]) ) (Com {[LIT_CHARS .]} {[VarSub BALLS_LIB] [LIT_CHARS /util.sh]}) (Com {[LIT_CHARS .]} {[VarSub BALLS_LIB] [LIT_CHARS /http.sh]}) (Com {[LIT_CHARS .]} {[VarSub BALLS_LIB] [LIT_CHARS /router.sh]}) (Com {[LIT_CHARS .]} {[VarSub BALLS_LIB] [LIT_CHARS /server.sh]}) (Com {[LIT_CHARS .]} {[VarSub BALLS_LIB] [LIT_CHARS /view.sh]}) (Com {[LIT_CHARS .]} {[VarSub BALLS_LIB] [LIT_CHARS /model.sh]}) )