#include <perms.h>
int _imp_mainep(int _imp_argc, char **_imp_argv) {
  _imp_enter();
  static int LABELNO = 0;
  const int MAXLABELS = 10;

  typedef struct F {
    _imp_string LAB;
    char B;

  } F;
  static _imp_string LBLNAME[MAXLABELS - 0 + 1];
  static F LBL[MAXLABELS - 0 + 1];
  auto F *LABEL(_imp_string L) {
    _imp_enter();
    int I;
    if (LABELNO > 0) {
      for (I = 1; I != LABELNO + 1; I += 1) {
        if (LBLNAME[I] == L) return (&LBL[I]);
      }
    }
    LABELNO = LABELNO + 1;
    if (LABELNO > MAXLABELS) {
      PRINTSTRING(_imp_join(L, _imp_str_literal(" MAKES TOO MANY LABELS.")));
      NEWLINE();
      for (I = 1; I != MAXLABELS + 1; I += 1) {
        PRINTSTRING(LBLNAME[I]);
        NEWLINE();
      }
      _imp_monitor(0);
      exit(0);
    }
    LBLNAME[LABELNO] = L;
    LBL[LABELNO].LAB = _imp_str_literal("");
    return (&LBL[LABELNO]);
    _imp_leave();
  }
  /*FN_MAP*/ LABEL(_imp_str_literal("T"))->LAB =
      _imp_str_literal("TESTING USE OF LABEL");
  PRINTSTRING(/*FN_MAP*/ LABEL(_imp_str_literal("T"))->LAB);
  NEWLINE(); /*FN_MAP*/
  LABEL(_imp_str_literal("T"))->LAB =
      _imp_join(_imp_str_literal("THIS SHOULD MODIFY "),
                _imp_join(/*FN_MAP*/ LABEL(_imp_str_literal("T"))->LAB,
                          _imp_str_literal(" AS I TRIED TO DO YESTERDAY")));
  PRINTSTRING(/*FN_MAP*/ LABEL(_imp_str_literal("T"))->LAB);
  NEWLINE();
  _imp_leave();
  exit(0);
  return (0);
}
