objects[i] = null;
}
}
+ System.err.println("input tree: " + t);
return plant(objects, map);
}
}
System.err.println("setting a " + argTypes[i].getName() + " to " + Reflection.show(tgt));
args[i] = tgt;
}
+ System.err.println("invoking " + _method + " with " + Reflection.show(args));
return _method.invoke(null, args);
} catch (Exception e) {
throw new RuntimeException(e);
}
public static class MG {
- public static @tag Grammar grammar(Grammar g) { return g; }
- public static @nonterminal class Grammar {
+ //public static @tag Grammar grammar(Grammar g) { return g; }
+ public static @tag("grammar") class Grammar {
public @arg("NonTerminal") NonTerminal[] nonterminals;
public String toString() {
String ret = "[ ";
public static @tag("^") void caret(String s) { }
public static @tag("~") void tilde(El e) { }
public static @tag("^^") void doublecaret(El e) { }
- public static @tag("(") void subexpression(/*Seq[][]*/Object rhs) { }
+ public static @tag("(") void subexpression(Seq[][] rhs) { }
public static @nonterminal("Word") String word(String s) { return null; }
public static @nonterminal("Quoted") String quoted(String s) { return null; }
- public static @nonterminal("escaped") String c(char c) { return null; }
- public static @tag("\"\"") String emptystring() { return null; }
- public static @tag("\r") String lf() { return null; }
- public static @tag("\n") String cr() { return null; }
+ public static @nonterminal("escaped") String c(char c) { return c+""; }
+ public static @tag("\"\"") String emptystring() { return ""; }
+ public static @tag("\n") String retur() { return "\n"; }
+ public static @tag("\r") String lf() { return "\r"; }
}
}
else if (unwrap) ret = Sequence.unwrap(els, repeatTag(), drops);
else if (tag!=null) {
ret = resolveTag(tag, bc.currentNonTerminal==null ? null : bc.currentNonTerminal.name, els, labels, drops);
+ System.err.println("resolvetag " + tag + " => " + ret);
} else {
int idx = -1;
for(int i=0; i<els.length; i++)
Object[] arr = (Object[])o;
StringBuffer ret = new StringBuffer();
ret.append(o.getClass().getComponentType().getName());
- ret.append("[]:\n");
+ ret.append("["+arr.length+"]:\n");
for(int i=0; i<arr.length; i++)
ret.append(indent(show(arr[i]), 4) + "\n");
return ret.toString();