public String name() { if (parent == null) { return ""; } else { return parent.name()+root.toString(); } } /**
@Override public void implement() throws IOException { if (!Typ.isSameType(tokenType, getReturnType())) { throw new IllegalArgumentException(tokenType+" is not expected return type "+getReturnType()+" of method"); } if (dfa.initialSize() > MAXSTATES) { SubClass subClass = getSubClass(); DFADistributor<T> dd = new DFADistributor<>(dfa, MAXSTATES); dd.distribute(); for (DFA<T> ddfa : dd.getDistributedDFAs()) { String subName = jav.makeJavaIdentifier(getMethodDescription()+ddfa.name()); ExecutableElement distributedMethod = getDistributedMethod(subName); DFACompiler<T> sc = copy(ddfa); sc.setSubCompiler(true); subClass.defineMethod(sc, distributedMethod); } } try { compile(); } catch (NoSuchMethodException ex) { throw new IOException(ex); } }