Mercurial > repos > icfp2013
comparison src/requests.tp @ 24:e1109e33b796
some work that probably needs to be trashed on requests.tp
author | Mike Pavone <pavone@retrodev.com> |
---|---|
date | Sat, 10 Aug 2013 11:53:21 -0700 |
parents | fcd7ae66a9ee |
children | bb80f86c5048 |
comparison
equal
deleted
inserted
replaced
23:fcd7ae66a9ee | 24:e1109e33b796 |
---|---|
12 acc | 12 acc |
13 //arr fold: "" with: :acc el {acc . el} | 13 //arr fold: "" with: :acc el {acc . el} |
14 } | 14 } |
15 | 15 |
16 quote <- :str { | 16 quote <- :str { |
17 "\"" . str . "\"" | 17 "\"" . str . "\"" |
18 } | 18 } |
19 | 19 |
20 println: str { | 20 println <- :str { |
21 print: str . "\n" | 21 print: str . "\n" |
22 } | 22 } |
23 | 23 |
24 | 24 |
25 | 25 |
48 | 48 |
49 | 49 |
50 | 50 |
51 expect:in:else <- :target src doElse { | 51 expect:in:else <- :target src doElse { |
52 src find: target else: { | 52 src find: target else: { |
53 print: "parse error: expected " . target . "!\n" | 53 print: "parse error: expected " . target . "!\n" |
54 doElse: | 54 doElse: |
55 } | 55 } |
56 } | 56 } |
57 | 57 |
58 getStrForKey:from:else <- :key :src :doElse { | 58 getStrForKey:from:else <- :key :src :doElse { |
59 firstKeyQuote <- expect: "\"" in: src else: doElse | 59 firstKeyQuote <- expect: "\"" in: src else: doElse |
60 secondQuote <- idx + (key length): | 60 secondQuote <- firstKeyQuote + 1 + (key length) |
61 | 61 |
62 #{ | 62 #{ |
63 value <- | 63 value <- "" |
64 rest <- src from: (value length) | 64 rest <- src from: (value length) |
65 } | 65 } |
66 } | 66 } |
67 | 67 |
68 getOutputs:else <- :str :fail { | 68 getOutputs:else <- :str :fail { |
69 | 69 |
70 } | 70 } |
71 | 71 |
72 getEval:else <- :str :fail { | 72 getEval:else <- :str :fail { |
73 statusRest <- getStrForKey: "status" from: str else: fail | 73 statusRest <- getStrForKey: "status" from: str else: fail |
74 if (statusRest value) = "ok" { // string equality? revisit. | 74 if: (statusRest value) = "ok" { // string equality? revisit. |
75 outputsRest <- getOutputs: (statusRest rest) else: fail | 75 outputsRest <- getOutputs: (statusRest rest) else: fail |
76 #{ | 76 #{ |
77 value <- #{ | 77 value <- #{ |
78 status <- statusRest.value | 78 status <- statusRest value |
79 outputs <- outputsRest.value | 79 outputs <- outputsRest value |
80 } | 80 } |
81 rest <- outputsRest.rest | 81 rest <- outputsRest rest |
82 } | 82 } |
83 } else { | 83 } else: { |
84 message <- "" | |
84 print: "Status was error, message: " . message | 85 print: "Status was error, message: " . message |
86 messageRest <- getStrForKey: "message" from: (statusRest rest) else: fail | |
85 #{ | 87 #{ |
86 messageRest <- getStrForKey: "message" from: (statusRest rest) else: fail | |
87 value <- #{ | 88 value <- #{ |
88 status <- statusRest.value | 89 status <- statusRest value |
89 message <- messageRest.value | 90 message <- messageRest value |
90 } | 91 } |
91 rest <- messageRest.rest | 92 rest <- messageRest rest |
92 } | 93 } |
93 } | 94 } |
94 } | 95 } |
95 | 96 |
96 | 97 |