code: public PatternToken compile(AnalyzedTokenReadings token, Synthesizer synth) throws IOException {
      PatternToken compiledPatternToken;
      try {
        compiledPatternToken = (PatternToken) clone();
      } catch (CloneNotSupportedException e) {
        throw new IllegalStateException("Could not clone element", e);
      }
      compiledPatternToken.doCompile(token, synth);
      return compiledPatternToken;
    }
docs: Prepare PatternToken for matching by formatting its string token and POS (if the Element is supposed
  to refer to some other token).
  @param token the token specified as {@link AnalyzedTokenReadings}
  @param synth the language synthesizer ({@link Synthesizer})