(List (Com {[LIT_CHARS .]} {[LIT_CHARS wwwoosh.sh]} ) (= scope= flags=0 words=[] bindings=[('martin_response', {[DQ [LIT_CHARS /tmp/martin_response]]})]) (= scope= flags=0 words=[] bindings=[('routes_method', {[Array ]})]) (= scope= flags=0 words=[] bindings=[('routes_path', {[Array ]})]) (= scope= flags=0 words=[] bindings=[('routes_action', {[Array ]})]) (FunctionDef route [] (List (= scope= flags=0 words=[] bindings=[('routes_method', {[Array {[VarSub routes_method bracket_op=(Index {A Atom NODE_ARITH_WORD {AS_OP_AT "@"}})]} {[DQ [VarSub 1]]}]})]) (= scope= flags=0 words=[] bindings=[('routes_path', {[Array {[VarSub routes_path bracket_op=(Index {A Atom NODE_ARITH_WORD {AS_OP_AT "@"}})]} {[DQ [VarSub 2]]}]})]) (= scope= flags=0 words=[] bindings=[('routes_action', {[Array {[VarSub routes_action bracket_op=(Index {A Atom NODE_ARITH_WORD {AS_OP_AT "@"}})]} {[DQ [VarSub 3]]}]})]) ) ) (FunctionDef get [] (Com {[LIT_CHARS route]} {[DQ [LIT_CHARS GET]]} {[VarSub @]} ) ) (FunctionDef post [] (Com {[LIT_CHARS route]} {[DQ [LIT_CHARS POST]]} {[VarSub @]} ) ) (FunctionDef delete [] (Com {[LIT_CHARS route]} {[DQ [LIT_CHARS DELETE]]} {[VarSub @]} ) ) (FunctionDef status [] (= scope= flags=0 words=[] bindings=[('response_status', {[DQ [VarSub 1]]})]) ) (FunctionDef header [] (List (= scope= flags=0 words=[] bindings=[('head', {[DQ [VarSub 1][LIT_CHARS ": "][VarSub 2]]})]) (If (Com {[LIT_DBRACKET_LIKE "["]} {[DQ [VarSub response_headers]]} {[LIT_DBRACKET_LIKE "]"]} ) (= scope= flags=0 words=[] bindings=[('response_headers', {[DQ [VarSub response_headers][\ LIT_ESCAPED_CHAR "\\n"][VarSub head]]})]) (ElseTrue) (= scope= flags=0 words=[] bindings=[('response_headers', {[DQ [VarSub head]]})]) ) ) ) (FunctionDef not_found [] (List (Com {[LIT_CHARS status]} {[DQ [LIT_CHARS 404]]} ) (Com {[LIT_CHARS header]} {[DQ [LIT_CHARS Content-type]]} {[DQ [LIT_CHARS text/plain]]} ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[VarSub #]} {[LIT_CHARS -gt]} {[LIT_CHARS 0]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_CHARS echo]} {[DQ [VarSub @]]} ) (ElseTrue) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Not Found: "][VarSub PATH_INFO]]} ) ) ) ) (FunctionDef martin_dispatch [] (List (= scope= flags=0 words=[] bindings=[('action', {[DQ ]})]) (ForExpr {A2 AS_OP_EQUAL {A Atom NODE_ARITH_WORD {[VarSub i]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 0]}}} {A2 AS_OP_LESS {A Atom NODE_ARITH_WORD {[VarSub i]}} {A Atom NODE_ARITH_WORD {[VarSub routes_method bracket_op=(Index {A Atom NODE_ARITH_WORD {AS_OP_AT "@"}}) transform_ops=[(#len)]]}}} {A1 AS_OP_DPLUS {A Atom NODE_ARITH_WORD {[VarSub i]}} } (List (= scope= flags=0 words=[] bindings=[('method', {[VarSub routes_method bracket_op=(Index {A Atom NODE_ARITH_WORD {[VarSub i]}})]})]) (= scope= flags=0 words=[] bindings=[('path', {[VarSub routes_path bracket_op=(Index {A Atom NODE_ARITH_WORD {[VarSub i]}})]})]) (= scope= flags=0 words=[] bindings=[('act', {[VarSub routes_action bracket_op=(Index {A Atom NODE_ARITH_WORD {[VarSub i]}})]})]) (If (Com {[LIT_DBRACKET_LIKE "["]} {[DQ [VarSub REQUEST_METHOD]]} {[LIT_DBRACKET_LIKE "="]} {[DQ [VarSub method]]} {[LIT_DBRACKET_LIKE "]"]} ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[DQ [VarSub PATH_INFO]]} {[LIT_DBRACKET_LIKE "="]} {[DQ [VarSub path]]} {[LIT_DBRACKET_LIKE "]"]} ) (List (= scope= flags=0 words=[] bindings=[('action', {[DQ [VarSub act]]})]) (Com {[LIT_CHARS break]} ) ) ) ) ) ) (AndOr OP_AND_IF (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_OTHER "!"]} {[DQ [VarSub action]]} {[LIT_DBRACKET_LIKE "]"]} ) (= scope= flags=0 words=[] bindings=[('action', {[DQ [LIT_CHARS not_found]]})]) ) (Com {[LIT_CHARS reset_response]} ) (Com {[DQ [VarSub action]]} < (FilenameRedirectNode filename={[DQ [VarSub martin_response]]} "> 1), > ) (Com {[LIT_CHARS header]} {[DQ [LIT_CHARS Status]]} {[DQ [VarSub response_status]]} ) (Com {[LIT_CHARS echo]} {[DQ [VarSub response_headers]]} ) (Com {[LIT_CHARS echo]} {[DQ ]} ) (Com {[LIT_CHARS cat]} {[DQ [VarSub martin_response]]} ) ) ) (FunctionDef reset_response [] (List (= scope= flags=0 words=[] bindings=[('response_status', {[DQ [LIT_CHARS "200 OK"]]})]) (= scope= flags=0 words=[] bindings=[('response_headers', {[DQ ]})]) ) ) )