Libraryless. Click here for Pure Java version (1314L/10K/29K).
1 | !752 |
2 | |
3 | p {
|
4 | // load Python, JavaX example code |
5 | S text1 = loadSnippet("#1002004");
|
6 | S lang1 = "python"; |
7 | S text2 = loadSnippet("#1001747");
|
8 | S lang2 = "javax"; |
9 | |
10 | // select a few lines each (or all lines) & make in/out examples |
11 | L<S[]> examples = concatLists( |
12 | makeExamples(text1, lang1), |
13 | makeExamples(text2, lang2)); |
14 | |
15 | // optionally: remove lines appearing in both languages |
16 | |
17 | print("Got " + l(examples) + " example lines.");
|
18 | |
19 | // run solver :) |
20 | |
21 | O solver = hotwire("#738"); // the master solver!
|
22 | |
23 | // Usually, the solver looks for exact (100%) solutions. |
24 | // This time, instead we try to find the solutions that work in |
25 | // as many cases as possible. |
26 | |
27 | L learners = cast call(solver, "makeLearners"); |
28 | print("Got " + l(learners) + " learners.");
|
29 | |
30 | O _case = call(solver, "produceCase", unrollExamples(examples)); |
31 | print("Full examples: " + structure(get(_case, "fullExamples")));
|
32 | |
33 | // it's not split yet - call split() |
34 | print("Split point: " + l((L) get(_case, "examples1")));
|
35 | } |
36 | |
37 | static S[] unrollExamples(L<S[]> examples) {
|
38 | S[] x = new S[l(examples)*2]; |
39 | for (int i = 0; i < l(examples); i++) {
|
40 | x[i*2] = examples.get(i)[0]; |
41 | x[i*2+1] = examples.get(i)[1]; |
42 | } |
43 | ret x; |
44 | } |
45 | |
46 | // two-element string arrays (source line, language name) |
47 | static L<S[]> makeExamples(S text, S lang) {
|
48 | new L<S[]> l; |
49 | for (S line : toLinesFullTrim(text)) |
50 | l.add(new S[] {line, lang});
|
51 | ret l; |
52 | } |
download show line numbers debug dex old transpilations
Travelled to 15 computer(s): aoiabmzegqzx, bhatertpkbcr, cbybwowwnfue, cfunsshuasjs, gwrvuhgaqvyk, ishqpsrjomds, lpdgvwnxivlt, mqqgnosmbjvj, onxytkatvevr, pyentgdyhuwx, pzhvpgtvlbxg, teubizvjbppd, tslmcundralx, tvejysmllsmz, vouqrxazstgt
No comments. add comment
| Snippet ID: | #1002005 |
| Snippet name: | Language detector frame work |
| Eternal ID of this version: | #1002005/1 |
| Text MD5: | cd1f2a470aefe605a38cc17945190f85 |
| Transpilation MD5: | 6436dce5034454b9bd770d13d682af4a |
| Author: | stefan |
| Category: | python/javax |
| Type: | JavaX source code |
| Public (visible to everyone): | Yes |
| Archived (hidden from active list): | No |
| Created/modified: | 2015-12-13 17:43:43 |
| Source code size: | 1479 bytes / 52 lines |
| Pitched / IR pitched: | No / Yes |
| Views / Downloads: | 818 / 886 |
| Referenced in: | [show references] |