sbool hygienicParse1_debug, hygienicParse1_unquote;
static Lisp hygienicParse1(S s) {
if (hygienicParse1_debug)
print("Parsing: " + s);
// Simple case first
S id = englishToConceptLanguage_simple(s);
if (id != null) ret lisp(id);
// Now the pattern matching
L<Lisp> parses = englishToLisp_multi(s);
if (hygienicParse1_debug) {
int i = 0;
for (Lisp l : sortByArgumentHygiene(parses))
printIndent((++i) + ". " + l + " [" + lisp_roundBracketHygieneScore(l) + "]");
}
Lisp l = chooseBestArgumentHygiene(parses);
ret l == null ? lispFromJavaTok(s) : hygienicParse1_sub(l);
}
// parse the arguments which are original strings
static Lisp hygienicParse1_sub(Lisp l) {
if (l == null || l.isLeaf()) ret l;
Lisp x = lisp(l.head);
for (Lisp a : l.args) {
if (hygienicParse1_unquote) a = lisp(unquote(a.raw()));
x.add(or(hygienicParse1(a.raw()), a));
}
ret x;
}
download show line numbers debug dex old transpilations
Travelled to 13 computer(s): aoiabmzegqzx, bhatertpkbcr, cbybwowwnfue, cfunsshuasjs, gwrvuhgaqvyk, ishqpsrjomds, lpdgvwnxivlt, mqqgnosmbjvj, pyentgdyhuwx, pzhvpgtvlbxg, tslmcundralx, tvejysmllsmz, vouqrxazstgt
No comments. add comment
| Snippet ID: | #1007984 |
| Snippet name: | hygienicParse1 - parser that prefers round-bracket-hygienic arguments |
| Eternal ID of this version: | #1007984/10 |
| Text MD5: | e1c2cd0bf9f10415ef89b1b51fd82f69 |
| Author: | stefan |
| Category: | javax / a.i. |
| Type: | JavaX fragment (include) |
| Public (visible to everyone): | Yes |
| Archived (hidden from active list): | No |
| Created/modified: | 2017-04-25 01:41:48 |
| Source code size: | 948 bytes / 31 lines |
| Pitched / IR pitched: | No / No |
| Views / Downloads: | 1028 / 945 |
| Version history: | 9 change(s) |
| Referenced in: | [show references] |