@Nullable
  private static Operation convertToOperation(@NotNull String name, @NotNull PsiType type, PsiExpression @NotNull [] args) {
    Operation operation = IntermediateOperation.create(name, args);
    if (operation != null) return operation;
    operation = TerminalOperation.create(name, args);
    if (operation != null) return operation;
    return SourceOperation.create(name, type, args);
  }
@Nullable
  private static Operation convertToOperation(@NotNull String name, @NotNull PsiType type, PsiExpression @NotNull [] args)