#include <perms.h>
int _imp_mainep(int _imp_argc, char **_imp_argv) {
  _imp_enter();
  int J = 23 + 77 - 50;
  int K = J - 40;
  int M;
  int N;
  int R;
  int P;
  int NL;
  int SPACES;
  char B = 'F';
  short S;
  short T;
  long int L = 2147483600 * 2;
  const char CB1 = 255;
  const char CB2 = 0;
  const int CINT1 = CB1 + 3 * 4;
  const int CINT2 = CINT1 + CB2 + 321;
  const int CINT4 = 3;
  const int MINT1 = 'X';
  const int MINT2 = 'IMP';
  static int FAILURES = 0;
  auto void PASS(void) {
    _imp_enter();
    PRINTSTRING(_imp_str_literal("Pass: "));
    _imp_leave();
  }
  auto void FAIL(void) {
    _imp_enter();
    PRINTSTRING(_imp_str_literal("FAIL: "));
    FAILURES = FAILURES + 1;
    _imp_leave();
  }
  auto int F(void) {
    _imp_enter();
    return (3);
    _imp_leave();
  }
  NEWLINES(2);
  PRINTSTRING(_imp_str_literal("INTEGER Arithmetic Validation"));
  NEWLINE();
  PRINTSTRING(_imp_str_literal("============================="));
  NEWLINES(2);
  PRINTSTRING(_imp_str_literal("Entities:"));
  NEWLINE();
  PRINTSTRING(_imp_str_literal("-------- "));
  NEWLINES(2);
  PRINTSTRING(_imp_str_literal("Constants:                      "));
  NEWLINE();
  PRINTSTRING(_imp_str_literal("---------                       "));
  NEWLINE();
  PRINTSTRING(_imp_str_literal("%Byte %Integer  CB1 = 255       "));
  NEWLINE();
  PRINTSTRING(_imp_str_literal("%Byte %Integer  CB2 = 0         "));
  NEWLINES(2);
  PRINTSTRING(_imp_str_literal("%Integer  CInt1 = CB1 + 3 * 4      "));
  NEWLINE();
  PRINTSTRING(_imp_str_literal("%Integer  CInt2 = CInt1 + CB2 + 321"));
  NEWLINE();
  PRINTSTRING(_imp_str_literal("%Integer  CInt4 = 3                "));
  NEWLINES(2);
  PRINTSTRING(_imp_str_literal("%Integer  MInt1 = M'X'             "));
  NEWLINE();
  PRINTSTRING(_imp_str_literal("%Integer  MInt2 = M'IMP'           "));
  NEWLINES(2);
  NEWLINES(3);
  PRINTSTRING(_imp_str_literal("Variables:               "));
  NEWLINE();
  PRINTSTRING(_imp_str_literal("---------                "));
  NEWLINE();
  PRINTSTRING(_imp_str_literal("%Integer J = 23 + 77 - 50"));
  NEWLINE();
  PRINTSTRING(_imp_str_literal("%Integer K = J - 40      "));
  NEWLINE();
  PRINTSTRING(_imp_str_literal("%Integer M               "));
  NEWLINE();
  PRINTSTRING(_imp_str_literal("%Integer N               "));
  NEWLINE();
  PRINTSTRING(_imp_str_literal("%Integer R               "));
  NEWLINE();
  PRINTSTRING(_imp_str_literal("%Integer P               "));
  NEWLINES(2);
  PRINTSTRING(_imp_str_literal("%Integer NL              "));
  NEWLINE();
  PRINTSTRING(_imp_str_literal("%Integer Spaces          "));
  NEWLINES(2);
  PRINTSTRING(_imp_str_literal("%Byte  %Integer B = 'F'  "));
  NEWLINES(2);
  PRINTSTRING(_imp_str_literal("%Short %Integer S        "));
  NEWLINE();
  PRINTSTRING(_imp_str_literal("%Short %Integer T        "));
  NEWLINES(2);
  PRINTSTRING(_imp_str_literal("%Long  %Integer L = 2147483600 * 2"));
  NEWLINES(2);
  NEWLINES(5);
  PRINTSTRING(_imp_str_literal("Test Simple Assignment of Integer Values"));
  NEWLINE();
  PRINTSTRING(_imp_str_literal("----------------------------------------"));
  NEWLINES(2);
  if (J == 50)
    PASS();
  else
    FAIL();
  PRINTSTRING(_imp_str_literal("Initialisation of J = 50"));
  NEWLINE();
  if (K == 10)
    PASS();
  else
    FAIL();
  PRINTSTRING(_imp_str_literal("Initialisation of K = J - 40"));
  NEWLINE();
  if (CINT1 == 267)
    PASS();
  else
    FAIL();
  PRINTSTRING(_imp_str_literal("Value of constant CInt1"));
  NEWLINE();
  if (MINT1 == 'X')
    PASS();
  else
    FAIL();
  PRINTSTRING(_imp_str_literal("Value of constant MInt1"));
  NEWLINE();
  if (MINT2 == ((('I' << 8) + 'M') << 8) + 'P')
    PASS();
  else
    FAIL();
  PRINTSTRING(_imp_str_literal("Value of constant MInt2   (for Offset = 8)."));
  NEWLINE();
  if (CINT2 == 588)
    PASS();
  else
    FAIL();
  PRINTSTRING(_imp_str_literal("Value of constant CInt2"));
  NEWLINES(3);
  PRINTSTRING(_imp_str_literal("Test the  SIZE OF  Function."));
  NEWLINE();
  PRINTSTRING(_imp_str_literal("----------------------------"));
  NEWLINES(2);
  PRINTSTRING(_imp_str_literal("Size of %LONG    ="));
  WRITE(SIZEOF(L), 1);
  NEWLINE();
  PRINTSTRING(_imp_str_literal("Size of %INTEGER ="));
  WRITE(SIZEOF(J), 1);
  NEWLINE();
  PRINTSTRING(_imp_str_literal("Size of %SHORT   ="));
  WRITE(SIZEOF(S), 1);
  NEWLINE();
  PRINTSTRING(_imp_str_literal("Size of %BYTE    ="));
  WRITE(SIZEOF(B), 1);
  NEWLINE();
  NEWLINE();