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: | 593 / 613 |
Referenced in: | [show references] |