-
- static final Map<String,FunctionCallback<EnParser>> DEFAULT = new LinkedHashMap<String, FunctionCallback<EnParser>>();
-
- static <T extends AbstractWiktionaryParser> void addGenericCallbacks(Map<String, FunctionCallback<T>> callbacks) {
- FunctionCallback<T> callback = new Gender<T>();
- callbacks.put("m", callback);
- callbacks.put("f", callback);
- callbacks.put("n", callback);
- callbacks.put("p", callback);
- callbacks.put("g", callback);
-
- callbacks.put("etyl", new etyl<T>());
- callbacks.put("term", new term<T>());
-
- callback = new EncodingCallback<T>();
- Set<String> encodings = new LinkedHashSet<String>(Arrays.asList(
- "IPA", "IPAchar", // Not really encodings, but it works.
- "zh-ts", "zh-tsp",
- "sd-Arab", "ku-Arab", "Arab", "unicode", "Laoo", "ur-Arab", "Thai",
- "fa-Arab", "Khmr", "Cyrl", "ug-Arab", "ko-inline",
- "Jpan", "Kore", "Hebr", "rfscript", "Beng", "Mong", "Knda", "Cyrs",
- "yue-tsj", "Mlym", "Tfng", "Grek", "yue-yue-j"));
- for (final String encoding : encodings) {
- callbacks.put(encoding, callback);
- }
-
- callback = new Ignore<T>();
- callbacks.put("trreq", callback);
- callbacks.put("t-image", callback);
- callbacks.put("defn", callback);
- callbacks.put("rfdef", callback);
- callbacks.put("rfdate", callback);
- callbacks.put("rfex", callback);
- callbacks.put("rfquote", callback);
- callbacks.put("attention", callback);
- callbacks.put("zh-attention", callback);
- callbacks.put("top2", callback);
- callbacks.put("mid2", callback);
- callbacks.put("top3", callback);
- callbacks.put("mid3", callback);
- callbacks.put("bottom", callback);
- callbacks.put("rel-mid", callback);
- callbacks.put("rel-mid3", callback);
- callbacks.put("rel-mid4", callback);
- callbacks.put("rel-bottom", callback);
- callbacks.put("der-top", callback);
- callbacks.put("der-mid", callback);
- callbacks.put("der-mid3", callback);
- callbacks.put("der-bottom", callback);
-
- callback = new AppendName<T>();
- callbacks.put("...", callback);
-
- callbacks.put("qualifier", new QualifierCallback<T>());
- callbacks.put("italbrac", new italbrac<T>());
- callbacks.put("gloss", new gloss<T>());
- callbacks.put("not used", new not_used<T>());
- callbacks.put("wikipedia", new wikipedia<T>());
-
- final it_conj<T> it_conj_cb = new it_conj<T>();
- callbacks.put("it-conj", it_conj_cb);
- callbacks.put("it-conj-are", new it_conj_are<T>(it_conj_cb));
- callbacks.put("it-conj-arsi", new it_conj_are<T>(it_conj_cb));
- callbacks.put("it-conj-care", new it_conj_are<T>(it_conj_cb));
- callbacks.put("it-conj-carsi", new it_conj_are<T>(it_conj_cb));
- callbacks.put("it-conj-ciare", new it_conj_are<T>(it_conj_cb));
- callbacks.put("it-conj-ciarsi", new it_conj_are<T>(it_conj_cb));
- callbacks.put("it-conj-iare", new it_conj_are<T>(it_conj_cb));
- callbacks.put("it-conj-iarsi", new it_conj_are<T>(it_conj_cb));
- callbacks.put("it-conj-iare-b", new it_conj_are<T>(it_conj_cb));
- callbacks.put("it-conj-iarsi-b", new it_conj_are<T>(it_conj_cb));
- callbacks.put("it-conj-ire", new it_conj_ire<T>(it_conj_cb));
- callbacks.put("it-conj-irsi", new it_conj_ire<T>(it_conj_cb));
- callbacks.put("it-conj-ire-b", new it_conj_ire<T>(it_conj_cb));
- callbacks.put("it-conj-irsi-b", new it_conj_ire<T>(it_conj_cb));
- callbacks.put("it-conj-cire", new it_conj_ire<T>(it_conj_cb));
- callbacks.put("it-conj-cirsi", new it_conj_ire<T>(it_conj_cb));
- callbacks.put("it-conj-ire", new it_conj_ire<T>(it_conj_cb));
- callbacks.put("it-conj-ere", new it_conj_ere<T>(it_conj_cb));
- callbacks.put("it-conj-ersi", new it_conj_ere<T>(it_conj_cb));
- callbacks.put("it-conj-urre", new it_conj_urre<T>(it_conj_cb));
- callbacks.put("it-conj-ursi", new it_conj_urre<T>(it_conj_cb));
- callbacks.put("it-conj-fare", new it_conj_fare<T>(it_conj_cb));
-
-
- //"{{it-conj-fare|putre|avere}}\n" +
-
-
- }
-
- static {
- addGenericCallbacks(DEFAULT);
-
- FunctionCallback<EnParser> callback = new TranslationCallback<EnParser>();
- DEFAULT.put("t", callback);
- DEFAULT.put("t+", callback);
- DEFAULT.put("t-", callback);
- DEFAULT.put("tø", callback);
- DEFAULT.put("apdx-t", callback);
-
- callback = new l_term();
- DEFAULT.put("l", callback);
- DEFAULT.put("term", callback);
-
- //callback = new AppendArg0();
-
- callback = new FormOf();
- DEFAULT.put("form of", callback);
- DEFAULT.put("conjugation of", callback);
- DEFAULT.put("participle of", callback);
- DEFAULT.put("present participle of", callback);
- DEFAULT.put("past participle of", callback);
- DEFAULT.put("feminine past participle of", callback);
- DEFAULT.put("gerund of", callback);
- DEFAULT.put("feminine of", callback);
- DEFAULT.put("plural of", callback);
- DEFAULT.put("feminine plural of", callback);
- DEFAULT.put("inflected form of", callback);
- DEFAULT.put("alternative form of", callback);
- DEFAULT.put("dated form of", callback);
- DEFAULT.put("apocopic form of", callback);
-
- callback = new InflOrHead();
- DEFAULT.put("infl", callback);
- DEFAULT.put("head", callback);
- }
-
- static final NameAndArgs<EnParser> NAME_AND_ARGS = new NameAndArgs<EnParser>();
-
- // ------------------------------------------------------------------
-
- static final class TranslationCallback<T extends AbstractWiktionaryParser> implements FunctionCallback<T> {
- @Override
- public boolean onWikiFunction(final WikiTokenizer wikiTokenizer, final String name, final List<String> args,
- final Map<String, String> namedArgs, final T parser,
- final AppendAndIndexWikiCallback<T> appendAndIndexWikiCallback) {
-
- final String transliteration = namedArgs.remove("tr");
- final String alt = namedArgs.remove("alt");
- namedArgs.keySet().removeAll(EnParser.USELESS_WIKI_ARGS);
- if (args.size() < 2) {
- if (!name.equals("ttbc")) {
- EnParser.LOG.warning("{{t...}} with wrong args: title=" + parser.title + ", " + wikiTokenizer.token());
- }
- return false;
- }
- final String langCode = ListUtil.get(args, 0);
- if (!appendAndIndexWikiCallback.langCodeToTCount.containsKey(langCode)) {
- appendAndIndexWikiCallback.langCodeToTCount.put(langCode, new AtomicInteger());
- }
- appendAndIndexWikiCallback.langCodeToTCount.get(langCode).incrementAndGet();
- final String word = ListUtil.get(args, 1);
- appendAndIndexWikiCallback.dispatch(alt != null ? alt : word, EntryTypeName.WIKTIONARY_TITLE_MULTI);
-
- // Genders...
- if (args.size() > 2) {
- appendAndIndexWikiCallback.builder.append(" {");
- for (int i = 2; i < args.size(); ++i) {
- if (i > 2) {
- appendAndIndexWikiCallback.builder.append("|");
- }
- appendAndIndexWikiCallback.builder.append(args.get(i));
+
+ static final Map<String,FunctionCallback<EnParser>> DEFAULT = new LinkedHashMap<>();
+
+ static <T extends AbstractWiktionaryParser> void addGenericCallbacks(Map<String, FunctionCallback<T>> callbacks) {
+ FunctionCallback<T> callback = new Gender<>();
+ callbacks.put("m", callback);
+ callbacks.put("f", callback);
+ callbacks.put("n", callback);
+ callbacks.put("p", callback);
+ callbacks.put("g", callback);
+
+ callbacks.put("etyl", new etyl<>());
+ callbacks.put("term", new term<>());
+
+ callback = new EncodingCallback<>();
+ Set<String> encodings = new LinkedHashSet<>(Arrays.asList(
+ "IPA", "IPAchar", // Not really encodings, but it works.
+ "zh-ts", "zh-tsp",
+ "sd-Arab", "ku-Arab", "Arab", "unicode", "Laoo", "ur-Arab", "Thai",
+ "fa-Arab", "Khmr", "Cyrl", "ug-Arab", "ko-inline",
+ "Jpan", "Kore", "Hebr", "rfscript", "Beng", "Mong", "Knda", "Cyrs",
+ "yue-tsj", "Mlym", "Tfng", "Grek", "yue-yue-j"));
+ for (final String encoding : encodings) {
+ callbacks.put(encoding, callback);