(*Copyright (C) 2017, 2018, 2019 Karl Landstrom <karl@miasap.se>

This file is part of OBNC.

OBNC is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

OBNC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with OBNC.  If not, see <http://www.gnu.org/licenses/>.*)

MODULE T7Modules;

	IMPORT
		A,
		B1 := B,
		B := C,
		D := D,
		E,
		T7Modules := libE,
		lib1M,
		OBNC;

	TYPE
		ListExt = POINTER TO RECORD (A.List) END;

	VAR
		intVar: INTEGER;
		w: B.T;
		x: B1.T;
		y: A.Nested;
		list: A.List;
		matrix: ARRAY 2, 3 OF INTEGER;
		x0: B.P0;
		x1: B1.P1;
		t: B1.T;
		p: B1.P1;
		p1: ListExt;

BEGIN
	ASSERT(A.boolConst);
	ASSERT(A.charConst = CHR(22H));
	ASSERT(A.intConst = 1);
	ASSERT(A.realConst = 2.3);
	ASSERT(A.strConst = "hello there");
	ASSERT(A.nul = 0X);
	ASSERT(A.lf = 0AX);
	ASSERT(A.charMax = 0FFX);
	ASSERT(A.setConst = {0, 2, 3, 5});

	ASSERT(A.boolVar = A.boolConst);
	ASSERT(A.charVar = A.charConst);
	ASSERT(A.intVar = A.intConst);
	ASSERT(ABS(A.realVar - A.realConst) < 1.0E-6);
	ASSERT(A.strVar = A.strConst);
	ASSERT(A.setVar = A.setConst);
	ASSERT(A.recVar.f = 1);

	intVar := A.intVar;
	A.procVar(A.strVar);
	NEW(y.f);
	y.f.f := 1;
	w := x;
	A.Q(x);
	NEW(list);
	A.R(matrix);
	x0 := x1;
	A.S(t);
	A.S1(p);
	
	ASSERT(D.b);
	ASSERT(E.b);
	ASSERT(T7Modules.b);
	ASSERT(lib1M.b);
	ASSERT(OBNC.b);
	p1 := NIL
END T7Modules.

All text after a module should be ignored
