@Override
  public @Nullable IElementType getTokenType() {
    IElementType cached = myCachedTokenType;
    if (cached == null) {
      myCachedTokenType = cached = calcTokenType();
    }
    return cached;
  }
@Override
  public @Nullable IElementType getTokenType()