@Contract("!null->!null")
  public static Lexer getRootLexer(@Nullable Lexer lexer) {
    while (lexer instanceof DelegateLexer) {
      lexer = ((DelegateLexer)lexer).getDelegate();
    }
    return lexer;
  }
@Contract("!null->!null")
  public static Lexer getRootLexer(@Nullable Lexer lexer)