- }
-
- static final Map<String,String> it_indicativePronouns = new LinkedHashMap<String, String>();
- static {
- it_indicativePronouns.put("1s", "io");
- it_indicativePronouns.put("2s", "tu");
- it_indicativePronouns.put("3s", "lui/lei");
- it_indicativePronouns.put("1p", "noi");
- it_indicativePronouns.put("2p", "voi");
- it_indicativePronouns.put("3p", "essi/esse");
- }
-
- static final Map<String,String> it_subjunctivePronouns = new LinkedHashMap<String, String>();
- static {
- it_subjunctivePronouns.put("1s", "che io");
- it_subjunctivePronouns.put("2s", "che tu");
- it_subjunctivePronouns.put("3s", "che lui/lei");
- it_subjunctivePronouns.put("1p", "che noi");
- it_subjunctivePronouns.put("2p", "che voi");
- it_subjunctivePronouns.put("3p", "che essi/esse");
- }
-
- static final Map<String,String> it_imperativePronouns = new LinkedHashMap<String, String>();
- static {
- it_imperativePronouns.put("1s", "-");
- it_imperativePronouns.put("2s", "tu");
- it_imperativePronouns.put("3s", "lui/lei");
- it_imperativePronouns.put("1p", "noi");
- it_imperativePronouns.put("2p", "voi");
- it_imperativePronouns.put("3p", "essi/esse");
- }
-
-
- static final class it_conj<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 StringBuilder builder = appendAndIndexWikiCallback.builder;
-
- final String inf = namedArgs.get("inf");
-
- // TODO: center everything horizontally.
- builder.append("<table style=\"background:#F0F0F0\">");
-
- builder.append("<tr>");
- builder.append("<th colspan=\"1\" style=\"background:#e2e4c0\">infinito</th>");
- builder.append("<td colspan=\"1\">");
- appendAndIndexWikiCallback.dispatch(MapUtil.safeRemove(namedArgs, "inf", "-"), null);
- builder.append("</td>");
- builder.append("</tr>\n");
-
- builder.append("<tr>");
- builder.append("<th colspan=\"1\" style=\"background:#e2e4c0\">verbo ausiliare</th>");
- builder.append("<td colspan=\"1\">");
- appendAndIndexWikiCallback.dispatch(MapUtil.safeRemove(namedArgs, "aux", "-"), null);
- builder.append("</td>");
- builder.append("<th colspan=\"1\" style=\"background:#e2e4c0\">gerundio</th>");
- builder.append("<td colspan=\"1\">");
- outputKeyVariations(appendAndIndexWikiCallback, builder, "ger", namedArgs, true);
- builder.append("</td>");
- builder.append("</tr>\n");
-
- builder.append("<tr>");
- builder.append("<th colspan=\"1\" style=\"background:#e2e4c0\">participio presente</th>");
- builder.append("<td colspan=\"1\">");
- outputKeyVariations(appendAndIndexWikiCallback, builder, "presp", namedArgs, true);
- builder.append("</td>");
- builder.append("<th colspan=\"1\" style=\"background:#e2e4c0\">participio passato</th>");
- builder.append("<td colspan=\"1\">");
- outputKeyVariations(appendAndIndexWikiCallback, builder, "pastp", namedArgs, true);
- builder.append("</td>");
- builder.append("</tr>\n");
-
- final List<String> prefixes = (inf != null && inf.endsWith("si")) ? it_reflexive_pronouns : it_empty;
-
- String style = " style=\"background:#c0cfe4\"";
- outputDataRow(appendAndIndexWikiCallback, style, "indicativo", style, "th", "", new LinkedHashMap<String, String>(it_indicativePronouns), it_empty, false);
- outputDataRow(appendAndIndexWikiCallback, style, "presente", "", "td", "pres", namedArgs, prefixes, true);
- outputDataRow(appendAndIndexWikiCallback, style, "imperfetto", "", "td", "imperf", namedArgs, prefixes, true);
- outputDataRow(appendAndIndexWikiCallback, style, "passato remoto", "", "td", "prem", namedArgs, prefixes, true);
- outputDataRow(appendAndIndexWikiCallback, style, "futuro", "", "td", "fut", namedArgs, prefixes, true);
-
- style = " style=\"background:#c0d8e4\"";
- outputDataRow(appendAndIndexWikiCallback, style, "condizionale", style, "th", "", new LinkedHashMap<String, String>(it_indicativePronouns), it_empty, false);
- outputDataRow(appendAndIndexWikiCallback, style, "presente", "", "td", "cond", namedArgs, prefixes, true);
-
- style = " style=\"background:#c0e4c0\"";
- outputDataRow(appendAndIndexWikiCallback, style, "congiuntivo", style, "th", "", new LinkedHashMap<String, String>(it_subjunctivePronouns), it_empty, false);
- namedArgs.put("sub3s2", namedArgs.remove("sub3s"));
- namedArgs.put("sub1s", namedArgs.get("sub123s"));
- namedArgs.put("sub2s", namedArgs.get("sub123s"));
- namedArgs.put("sub3s", namedArgs.remove("sub123s"));
- namedArgs.put("sub1s2", namedArgs.get("sub123s2"));
- namedArgs.put("sub2s2", namedArgs.get("sub123s2"));
- namedArgs.put("sub3s2", namedArgs.remove("sub123s2"));
- outputDataRow(appendAndIndexWikiCallback, style, "presente", "", "td", "sub", namedArgs, prefixes, true);
- namedArgs.put("impsub1s", namedArgs.get("impsub12s"));
- namedArgs.put("impsub2s", namedArgs.remove("impsub12s"));
- namedArgs.put("impsub1s2", namedArgs.get("impsub12s2"));
- namedArgs.put("impsub2s2", namedArgs.remove("impsub12s2"));
- outputDataRow(appendAndIndexWikiCallback, style, "imperfetto", "", "td", "impsub", namedArgs, prefixes, true);
-
- style = " style=\"background:#e4d4c0\"";
- outputDataRow(appendAndIndexWikiCallback, style, "imperativo", style, "th", "", new LinkedHashMap<String, String>(it_imperativePronouns), it_empty, false);
- outputDataRow(appendAndIndexWikiCallback, style, "", "", "td", "imp", namedArgs, it_empty, false); // these are attached to the stem.
-
- builder.append("</table>\n");
-
- if (!namedArgs.isEmpty()) {
- System.err.println("NON-EMPTY namedArgs: " + namedArgs);
- if ("muovesse".equals(namedArgs.get("impsib3s2"))) {
- return false;
- }
- if ("percuotesse".equals(namedArgs.get("impsib3s2"))) {
+ }
+
+ static final Map<String,String> it_indicativePronouns = new LinkedHashMap<String, String>();
+ static {
+ it_indicativePronouns.put("1s", "io");
+ it_indicativePronouns.put("2s", "tu");
+ it_indicativePronouns.put("3s", "lui/lei");
+ it_indicativePronouns.put("1p", "noi");
+ it_indicativePronouns.put("2p", "voi");
+ it_indicativePronouns.put("3p", "essi/esse");
+ }
+
+ static final Map<String,String> it_subjunctivePronouns = new LinkedHashMap<String, String>();
+ static {
+ it_subjunctivePronouns.put("1s", "che io");
+ it_subjunctivePronouns.put("2s", "che tu");
+ it_subjunctivePronouns.put("3s", "che lui/lei");
+ it_subjunctivePronouns.put("1p", "che noi");
+ it_subjunctivePronouns.put("2p", "che voi");
+ it_subjunctivePronouns.put("3p", "che essi/esse");
+ }
+
+ static final Map<String,String> it_imperativePronouns = new LinkedHashMap<String, String>();
+ static {
+ it_imperativePronouns.put("1s", "-");
+ it_imperativePronouns.put("2s", "tu");
+ it_imperativePronouns.put("3s", "lui/lei");
+ it_imperativePronouns.put("1p", "noi");
+ it_imperativePronouns.put("2p", "voi");
+ it_imperativePronouns.put("3p", "essi/esse");
+ }
+
+
+ static final class it_conj<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 StringBuilder builder = appendAndIndexWikiCallback.builder;
+
+ final String inf = namedArgs.get("inf");
+
+ // TODO: center everything horizontally.
+ builder.append("<table style=\"background:#F0F0F0\">");
+
+ builder.append("<tr>");
+ builder.append("<th colspan=\"1\" style=\"background:#e2e4c0\">infinito</th>");
+ builder.append("<td colspan=\"1\">");
+ appendAndIndexWikiCallback.dispatch(MapUtil.safeRemove(namedArgs, "inf", "-"), null);
+ builder.append("</td>");
+ builder.append("</tr>\n");
+
+ builder.append("<tr>");
+ builder.append("<th colspan=\"1\" style=\"background:#e2e4c0\">verbo ausiliare</th>");
+ builder.append("<td colspan=\"1\">");
+ appendAndIndexWikiCallback.dispatch(MapUtil.safeRemove(namedArgs, "aux", "-"), null);
+ builder.append("</td>");
+ builder.append("<th colspan=\"1\" style=\"background:#e2e4c0\">gerundio</th>");
+ builder.append("<td colspan=\"1\">");
+ outputKeyVariations(appendAndIndexWikiCallback, builder, "ger", namedArgs, true);
+ builder.append("</td>");
+ builder.append("</tr>\n");
+
+ builder.append("<tr>");
+ builder.append("<th colspan=\"1\" style=\"background:#e2e4c0\">participio presente</th>");
+ builder.append("<td colspan=\"1\">");
+ outputKeyVariations(appendAndIndexWikiCallback, builder, "presp", namedArgs, true);
+ builder.append("</td>");
+ builder.append("<th colspan=\"1\" style=\"background:#e2e4c0\">participio passato</th>");
+ builder.append("<td colspan=\"1\">");
+ outputKeyVariations(appendAndIndexWikiCallback, builder, "pastp", namedArgs, true);
+ builder.append("</td>");
+ builder.append("</tr>\n");
+
+ final List<String> prefixes = (inf != null && inf.endsWith("si")) ? it_reflexive_pronouns : it_empty;
+
+ String style = " style=\"background:#c0cfe4\"";
+ outputDataRow(appendAndIndexWikiCallback, style, "indicativo", style, "th", "", new LinkedHashMap<String, String>(it_indicativePronouns), it_empty, false);
+ outputDataRow(appendAndIndexWikiCallback, style, "presente", "", "td", "pres", namedArgs, prefixes, true);
+ outputDataRow(appendAndIndexWikiCallback, style, "imperfetto", "", "td", "imperf", namedArgs, prefixes, true);
+ outputDataRow(appendAndIndexWikiCallback, style, "passato remoto", "", "td", "prem", namedArgs, prefixes, true);
+ outputDataRow(appendAndIndexWikiCallback, style, "futuro", "", "td", "fut", namedArgs, prefixes, true);
+
+ style = " style=\"background:#c0d8e4\"";
+ outputDataRow(appendAndIndexWikiCallback, style, "condizionale", style, "th", "", new LinkedHashMap<String, String>(it_indicativePronouns), it_empty, false);
+ outputDataRow(appendAndIndexWikiCallback, style, "presente", "", "td", "cond", namedArgs, prefixes, true);
+
+ style = " style=\"background:#c0e4c0\"";
+ outputDataRow(appendAndIndexWikiCallback, style, "congiuntivo", style, "th", "", new LinkedHashMap<String, String>(it_subjunctivePronouns), it_empty, false);
+ namedArgs.put("sub3s2", namedArgs.remove("sub3s"));
+ namedArgs.put("sub1s", namedArgs.get("sub123s"));
+ namedArgs.put("sub2s", namedArgs.get("sub123s"));
+ namedArgs.put("sub3s", namedArgs.remove("sub123s"));
+ namedArgs.put("sub1s2", namedArgs.get("sub123s2"));
+ namedArgs.put("sub2s2", namedArgs.get("sub123s2"));
+ namedArgs.put("sub3s2", namedArgs.remove("sub123s2"));
+ outputDataRow(appendAndIndexWikiCallback, style, "presente", "", "td", "sub", namedArgs, prefixes, true);
+ namedArgs.put("impsub1s", namedArgs.get("impsub12s"));
+ namedArgs.put("impsub2s", namedArgs.remove("impsub12s"));
+ namedArgs.put("impsub1s2", namedArgs.get("impsub12s2"));
+ namedArgs.put("impsub2s2", namedArgs.remove("impsub12s2"));
+ outputDataRow(appendAndIndexWikiCallback, style, "imperfetto", "", "td", "impsub", namedArgs, prefixes, true);
+
+ style = " style=\"background:#e4d4c0\"";
+ outputDataRow(appendAndIndexWikiCallback, style, "imperativo", style, "th", "", new LinkedHashMap<String, String>(it_imperativePronouns), it_empty, false);
+ outputDataRow(appendAndIndexWikiCallback, style, "", "", "td", "imp", namedArgs, it_empty, false); // these are attached to the stem.
+
+ builder.append("</table>\n");
+
+ if (!namedArgs.isEmpty()) {
+ System.err.println("NON-EMPTY namedArgs: " + namedArgs);
+ if ("muovesse".equals(namedArgs.get("impsib3s2"))) {
+ return false;
+ }
+ if ("percuotesse".equals(namedArgs.get("impsib3s2"))) {
+ return false;
+ }
+ // Too many to deal with:
+ //assert false;