!include #1003413 // LooseBot v5 sclass DateAdapter extends WordAdapter2 { static L<S> months = splitAtSpace("___ January February March April May June July August September October November December"); S lookupToken(S s) { int i = indexOf(months, s); if (i >= 0) pcall { S j = lookupToken(str(i)); print("Month found! " + s + " => " + i + " => " + j); if (nempty(j)) ret months.get(parseInt(j)); } ret super.lookupToken(s); } S get(S s) { S o = countFixer(super.get(s)); print("count fixed: " + o); ret o; } } static O makeBot = func { LooseBot bot = new LooseBot(botTree, func { new DateAdapter }) { bool isCommand(E e) { ret !isInput(e); } // see Dialog Optimizer bool isInput(E e) { ret e.q() || e.state() && matchStart("result is ", e.text()); } }; bot.debug = true; ret bot; }; svoid expandDialogs(L<Dialog> dialogs) { for (Dialog d : dialogs) for (int i = 0; i < l(d.poem); i++) { E e = d.poem.get(i); if (!e.state()) continue; int idx = e.text().indexOf('='); if (idx < 0) continue; d.poem.set(i, E.state("get " + e.text().substring(0, idx))); d.poem.add(i+1, E.state("result is " + e.text().substring(idx+1))); } }
download show line numbers debug dex old transpilations
Travelled to 14 computer(s): aoiabmzegqzx, bhatertpkbcr, cbybwowwnfue, cfunsshuasjs, gwrvuhgaqvyk, ishqpsrjomds, lpdgvwnxivlt, mqqgnosmbjvj, onxytkatvevr, pyentgdyhuwx, pzhvpgtvlbxg, tslmcundralx, tvejysmllsmz, vouqrxazstgt
No comments. add comment
Snippet ID: | #1003501 |
Snippet name: | Engine / What's the date |
Eternal ID of this version: | #1003501/1 |
Text MD5: | df11783d6bb99e52dab004131b59b180 |
Author: | stefan |
Category: | javax / talking robots |
Type: | JavaX fragment (include) |
Public (visible to everyone): | Yes |
Archived (hidden from active list): | No |
Created/modified: | 2016-07-10 01:03:10 |
Source code size: | 1348 bytes / 50 lines |
Pitched / IR pitched: | No / No |
Views / Downloads: | 495 / 1103 |
Referenced in: | [show references] |