==========================================================================
=  AND/TypeErr1.luc
==========================================================================
PROGRAM T293;
VAR X:INTEGER;
VAR T:INTEGER;
BEGIN
        IF X < 5 AND T THEN X:=4;
ENDIF;
END.
--------------------------------------------------------------------------
<SEMANTIC_ERROR pos="5" message="Boolean type expected"/>

==========================================================================
=  ARRAY/ArrayAssign.luc
==========================================================================
PROGRAM T491;
TYPE A = ARRAY 40 OF CHAR;
TYPE B = ARRAY 20 OF A;
VAR C:B;
BEGIN
	C:=C;
END.

--------------------------------------------------------------------------
<SEMANTIC_ERROR pos="6" message="Scalar type expected"/>

==========================================================================
=  ARRAY/ArrayRead.luc
==========================================================================
PROGRAM T494;
TYPE A = ARRAY 10 OF INTEGER;
VAR X:A;
BEGIN
	READ X;
END.
--------------------------------------------------------------------------
<SEMANTIC_ERROR pos="5" message="INTEGER, REAL, CHAR type expected"/>

==========================================================================
=  ARRAY/ArrayVarExp1.luc
==========================================================================
PROGRAM T45;
TYPE A = ARRAY 30 OF REAL;
VAR B:A;
BEGIN
	A[20] := 3;
END.

--------------------------------------------------------------------------
<SEMANTIC_ERROR pos="5" message="Variable expected" argument="A"/>

==========================================================================
=  ARRAY/ArrayVarUndecl1.luc
==========================================================================
PROGRAM T44;
BEGIN
	A[20] := 30;
END.

--------------------------------------------------------------------------
<SEMANTIC_ERROR pos="3" message="Identifier not declared" argument="A"/>

==========================================================================
=  ARRAY/ArrayWrite.luc
==========================================================================
PROGRAM T495;
TYPE A = ARRAY 30 OF REAL;
VAR R:A;
BEGIN
	WRITE R;
END.
--------------------------------------------------------------------------
<SEMANTIC_ERROR pos="5" message="INTEGER, REAL, CHAR, STRING type expected"/>

==========================================================================
=  ARRAY/IdxNotInt.luc
==========================================================================
PROGRAM T492;
TYPE A = ARRAY 20 OF INTEGER;
VAR B:A;
BEGIN
	B[4.5] := 4;
END.

--------------------------------------------------------------------------
<SEMANTIC_ERROR pos="5" message="Integer type expected"/>

==========================================================================
=  ARRAY/IndExp1.luc
==========================================================================
PROGRAM T43;
TYPE A = ARRAY 20 OF INTEGER;
VAR X: A;
BEGIN
	X:=5;
END.

--------------------------------------------------------------------------
<SEMANTIC_ERROR pos="5" message="Scalar type expected"/>

==========================================================================
=  ARRAY/OK1.luc
==========================================================================
PROGRAM T4OK;
TYPE A = ARRAY 20 OF INTEGER;
TYPE B = ARRAY 20 OF A;
TYPE C = ARRAY 20 OF B;
TYPE R = RECORD [a:CHAR;b:C];
TYPE S = ARRAY 20 OF R;
VAR D:C;
VAR E:B;
VAR F:A;
VAR G:R;
VAR H:S;
BEGIN
	D[1][3][5]:= TRUNC 7.8;
	E[1][2]:= (3+(4*F[1]));
	READ F[1];
	READ E[4][5];
	E[4][8] := 23;
	WRITE D[2][5][6];
	WRITE F[5];
   
        WRITE G.b[2][5][6];   
        WRITE H[5].b[2][5][6];   
END.

--------------------------------------------------------------------------

==========================================================================
=  ARRAY/Redecl1.luc
==========================================================================
PROGRAM T41;
TYPE A = ARRAY 20 OF INTEGER;
TYPE A = ARRAY 100 OF INTEGER;
BEGIN
END.

--------------------------------------------------------------------------
<SEMANTIC_ERROR pos="4" message="Multiple declaration" argument="A"/>

==========================================================================
=  ARRAY/TooFewIdx.luc
==========================================================================
PROGRAM T48;
TYPE A=ARRAY 20 OF REAL;
TYPE B=ARRAY 30 OF A;
VAR C:B;
BEGIN
	C[4]:= 4.5;
END.
--------------------------------------------------------------------------
<SEMANTIC_ERROR pos="6" message="Scalar type expected"/>

==========================================================================
=  ARRAY/TooManyIdx.luc
==========================================================================
PROGRAM T47;
TYPE A = ARRAY 20 OF INTEGER;
VAR B:A;
BEGIN
	B[3]:=1+(2+(3+(4 + B[4][5][6])));
END.

--------------------------------------------------------------------------
<SEMANTIC_ERROR pos="5" message="Array variable expected"/>

==========================================================================
=  ARRAY/TypeErr1.luc
==========================================================================
PROGRAM T493;
TYPE A = ARRAY 50 OF INTEGER;
VAR B:A;
BEGIN
	B[4] := 4.5;
END.
--------------------------------------------------------------------------
<SEMANTIC_ERROR pos="5" message="Type missmatch in assignment statement"/>

==========================================================================
=  ARRAY/TypeErr2.luc
==========================================================================
PROGRAM T46;
TYPE A = ARRAY 20 OF CHAR;
VAR C:A;
BEGIN
	C[4] := 3;
END.

--------------------------------------------------------------------------
<SEMANTIC_ERROR pos="5" message="Type missmatch in assignment statement"/>

==========================================================================
=  ARRAY/UndeclElmtType1.luc
==========================================================================
PROGRAM T42;
TYPE A = ARRAY 100 OF B;
BEGIN
END.

--------------------------------------------------------------------------
<SEMANTIC_ERROR pos="2" message="Identifier not declared" argument="B"/>

==========================================================================
=  ARRAY/VectorAssign.luc
==========================================================================
PROGRAM T49;
TYPE A = ARRAY 40 OF REAL;
VAR X:A;
VAR Y:A;
BEGIN
	X:=Y;
END.

--------------------------------------------------------------------------
<SEMANTIC_ERROR pos="6" message="Scalar type expected"/>

==========================================================================
=  ASSIGN/TypeErr1.luc
==========================================================================
PROGRAM T13;
VAR I:INTEGER;
BEGIN
I:='X';
END.

--------------------------------------------------------------------------
<SEMANTIC_ERROR pos="4" message="Type missmatch in assignment statement"/>

==========================================================================
=  BOOL/AssignErr1.luc
==========================================================================
PROGRAM T25;
VAR I:INTEGER;
VAR J:INTEGER;
BEGIN
I:= J<5;
END.

--------------------------------------------------------------------------
<SEMANTIC_ERROR pos="5" message="Type missmatch in assignment statement"/>

==========================================================================
=  BOOL/Decl1.luc
==========================================================================
PROGRAM T24;
VAR B:BOOLEAN;
BEGIN 
END.

--------------------------------------------------------------------------

==========================================================================
=  CONST/C1.luc
==========================================================================
PROGRAM C1;
CONST C0 : INTEGER = 4.5;
BEGIN 
END.

--------------------------------------------------------------------------
<SEMANTIC_ERROR pos="2" message="Wrong expression type"/>

==========================================================================
=  CONST/C10.luc
==========================================================================
PROGRAM C10;
CONST C0 : BOOLEAN = TRUE AND FALSE;
BEGIN 
END.

--------------------------------------------------------------------------

==========================================================================
=  CONST/C11.luc
==========================================================================
PROGRAM C11;
CONST C0 : BOOLEAN = 5 < 10;
BEGIN 
END.

--------------------------------------------------------------------------

==========================================================================
=  CONST/C12.luc
==========================================================================
PROGRAM C12;
CONST C0 : BOOLEAN = '5' < '1';
BEGIN 
END.

--------------------------------------------------------------------------

==========================================================================
=  CONST/C13.luc
==========================================================================
PROGRAM C13;
CONST C0 : BOOLEAN = 5.1 # 5.3;
BEGIN 
END.

--------------------------------------------------------------------------

==========================================================================
=  CONST/C14.luc
==========================================================================
PROGRAM C14;
CONST C0 : BOOLEAN = 5.1 # 5;
BEGIN 
END.

--------------------------------------------------------------------------
<SEMANTIC_ERROR pos="2" message="Type missmatch"/>

==========================================================================
=  CONST/C15.luc
==========================================================================
PROGRAM C15;
CONST C0 : BOOLEAN = TRUE;
CONST C1 : INTEGER = C0;
BEGIN 
END.

--------------------------------------------------------------------------
<SEMANTIC_ERROR pos="3" message="Wrong expression type"/>

==========================================================================
=  CONST/C16.luc
==========================================================================
PROGRAM C16;
CONST C0 : REAL = 4.5;
CONST C1 : INTEGER = TRUNC C0;
CONST C2 : REAL = FLOAT C1;
BEGIN 
END.

--------------------------------------------------------------------------

==========================================================================
=  CONST/C17.luc
==========================================================================
PROGRAM C17;
CONST C1 : INTEGER = FLOAT 3.4;
CONST C2 : REAL = TRUNC 1;
BEGIN 
END.

--------------------------------------------------------------------------
<SEMANTIC_ERROR pos="2" message="Integer type expected"/>
<SEMANTIC_ERROR pos="3" message="Real type expected"/>

==========================================================================
=  CONST/C18.luc
==========================================================================
PROGRAM C18;
CONST C1 : INTEGER = 4;
BEGIN 
   C1 := 5;
   READ C1;
END.

--------------------------------------------------------------------------
<SEMANTIC_ERROR pos="4" message="Can't assign to a constant"/>
<SEMANTIC_ERROR pos="5" message="Can't read to a constant"/>

==========================================================================
=  CONST/C19.luc
==========================================================================
PROGRAM C19;
CONST C1 : INTEGER = 4;
VAR X : INTEGER;
BEGIN 
   X := C1;
END.

--------------------------------------------------------------------------

==========================================================================
=  CONST/C2.luc
==========================================================================
PROGRAM C2;
CONST C0 : INTEGER = C1;
BEGIN 
END.

--------------------------------------------------------------------------
<SEMANTIC_ERROR pos="2" message="Identifier not declared" argument="C1"/>

==========================================================================
=  CONST/C3.luc
==========================================================================
PROGRAM C3;
CONST C0 : INTEGER = 5;
CONST C1 : INTEGER = C0;
BEGIN 
END.

--------------------------------------------------------------------------

==========================================================================
=  CONST/C4.luc
==========================================================================
PROGRAM C4;
CONST C0 : INTEGER = 5;
CONST C0 : INTEGER = 6;
BEGIN 
END.

--------------------------------------------------------------------------
<SEMANTIC_ERROR pos="4" message="Multiple declaration" argument="C0"/>

==========================================================================
=  CONST/C5.luc
==========================================================================
PROGRAM C5;
CONST C0 : INTEGER = 5 * 4.5;
BEGIN 
END.

--------------------------------------------------------------------------
<SEMANTIC_ERROR pos="2" message="Type missmatch"/>

==========================================================================
=  CONST/C6.luc
==========================================================================
PROGRAM C6;
CONST C0 : INTEGER = 5 / (4 - (2 + 2));
BEGIN 
END.

--------------------------------------------------------------------------
<SEMANTIC_ERROR pos="2" message="Division by zero"/>

==========================================================================
=  CONST/C7.luc
==========================================================================
PROGRAM C7;
VAR X : INTEGER;
CONST C0 : INTEGER = 5 * X;
BEGIN 
END.

--------------------------------------------------------------------------
<SEMANTIC_ERROR pos="3" message="Constant expression expected"/>

==========================================================================
=  CONST/C8.luc
==========================================================================
PROGRAM C8;
VAR X : INTEGER;
CONST C0 : X = 5;
BEGIN 
END.

--------------------------------------------------------------------------
<SEMANTIC_ERROR pos="3" message="Type identifier expected" argument="X"/>

==========================================================================
=  CONST/C9.luc
==========================================================================
PROGRAM C9;
TYPE T = RECORD[];
CONST C0 : T = TRUE;
BEGIN 
END.

--------------------------------------------------------------------------
<SEMANTIC_ERROR pos="3" message="Scalar type expected"/>

==========================================================================
=  DECL/MultDecl1.luc
==========================================================================
PROGRAM T11;
VAR A:INTEGER;
VAR A:CHAR;
BEGIN 
END.

--------------------------------------------------------------------------
<SEMANTIC_ERROR pos="4" message="Multiple declaration" argument="A"/>

==========================================================================
=  DECL/RedeclVar1.luc
==========================================================================
PROGRAM T27;
VAR P:INTEGER;
PROCEDURE P();
BEGIN 
END; 
BEGIN 
END.

--------------------------------------------------------------------------
<SEMANTIC_ERROR pos="6" message="Multiple declaration" argument="P"/>

==========================================================================
=  DECL/TypeExp1.luc
==========================================================================
PROGRAM T15;
VAR A:INTEGER;
VAR B:A;
BEGIN
A:=3;
END.

--------------------------------------------------------------------------
<SEMANTIC_ERROR pos="3" message="Type identifier expected" argument="A"/>

==========================================================================
=  DECL/UndeclType1.luc
==========================================================================
PROGRAM T12;
VAR I:INTEGER;
VAR J:INTGER;
BEGIN
I:=3;
END.

--------------------------------------------------------------------------
<SEMANTIC_ERROR pos="3" message="Identifier not declared" argument="INTGER"/>

==========================================================================
=  DECL/UndeclVar1.luc
==========================================================================
PROGRAM T14;
BEGIN
C:= 3;
END.

--------------------------------------------------------------------------
<SEMANTIC_ERROR pos="3" message="Identifier not declared" argument="C"/>

==========================================================================
=  IF/BoolExp1.luc
==========================================================================
PROGRAM T23;
VAR X:INTEGER;
VAR T:INTEGER;
BEGIN
        IF X THEN X:=4;
ENDIF;
END.
--------------------------------------------------------------------------
<SEMANTIC_ERROR pos="5" message="Boolean type expected"/>

==========================================================================
=  IF/BoolExp2.luc
==========================================================================
PROGRAM T293;
VAR X:INTEGER;
VAR T:INTEGER;
BEGIN
        IF NOT T THEN X:=4;
ENDIF;
END.
--------------------------------------------------------------------------
<SEMANTIC_ERROR pos="5" message="Boolean type expected"/>

==========================================================================
=  IF/TypeErr1.luc
==========================================================================
PROGRAM T22;
VAR X:INTEGER;
TYPE T = RECORD [a:CHAR];
VAR v : T;
BEGIN
	IF X # '3' THEN 
		X:=2;
	ENDIF;
	IF v = v THEN 
		X:=2;
	ENDIF;
END.

--------------------------------------------------------------------------
<SEMANTIC_ERROR pos="6" message="Type missmatch"/>
<SEMANTIC_ERROR pos="9" message="Scalar or reference type expected"/>
<SEMANTIC_ERROR pos="9" message="Scalar or reference type expected"/>

==========================================================================
=  INT/NumExp1.luc
==========================================================================
PROGRAM T16;
VAR C:CHAR;
BEGIN
C := 'X' * 'Y';
END.

--------------------------------------------------------------------------
<SEMANTIC_ERROR pos="4" message="Numeric type expected"/>
<SEMANTIC_ERROR pos="4" message="Numeric type expected"/>

==========================================================================
=  INT/NumExp2.luc
==========================================================================
PROGRAM T17;
VAR I:INTEGER;
BEGIN
I := 3*(5+4)*'x';
END.

--------------------------------------------------------------------------
<SEMANTIC_ERROR pos="4" message="Numeric type expected"/>

==========================================================================
=  INT/NumExp3.luc
==========================================================================
PROGRAM T18;
VAR I:INTEGER;
BEGIN
I := - 'x';
END.

--------------------------------------------------------------------------
<SEMANTIC_ERROR pos="4" message="Numeric type expected"/>

==========================================================================
=  INT/OK1.luc
==========================================================================
PROGRAM T1OK;
VAR I:INTEGER;
VAR J:INTEGER;
VAR C:CHAR;
BEGIN
	I:=1;
	J:=5*I+6;
	I:=J;
	I:=(3*5)+4*(I/3*(J*4));
	C:='X';
END.

--------------------------------------------------------------------------

==========================================================================
=  LOOP/ExitErr1.luc
==========================================================================
PROGRAM T295;
BEGIN
   WHILE 5 < 10 DO
     IF 1 < 3 THEN EXIT; ENDIF;
   ENDDO;
END.

--------------------------------------------------------------------------
<SEMANTIC_ERROR pos="4" message="EXIT only within LOOP"/>

==========================================================================
=  LOOP/OK1.luc
==========================================================================
PROGRAM T295;
BEGIN
   LOOP
     IF 1 < 3 THEN EXIT; ENDIF;
   ENDLOOP;
END.

--------------------------------------------------------------------------

==========================================================================
=  MISC/OK1.luc
==========================================================================
PROGRAM OTHER2;
VAR I:INTEGER;
VAR J:INTEGER;
BEGIN
	IF I > 0 THEN
		READ I;
	ENDIF;
	IF J = 3 THEN
		WRITE J;
	ENDIF;
	IF I <= 2 THEN 
		WRITE I; 
	ENDIF;
	IF I < J THEN 
		WRITE 'X';
	ENDIF;
	IF J >= I THEN
		WRITE (3 * 4 + 2);
	ENDIF;
	IF I # 2 THEN
		WRITE I + 3 * (( 4 + I));
	ELSE
		WRITELN;
		READ J;
	ENDIF;
	IF J = I THEN
		WHILE I < 10 DO
			I := I - 1;
			J := J * 2;
		ENDDO;
	ENDIF;
END.

--------------------------------------------------------------------------

==========================================================================
=  MISC/OK2.luc
==========================================================================
PROGRAM T3OK;
PROCEDURE P(I:INTEGER; R:REAL; C:CHAR);
VAR X:INTEGER;
BEGIN
	I:= TRUNC 6.7 * I/3 + TRUNC R;
	R:= 4.5 + FLOAT 5 * 4.8 + (FLOAT 23 / R);
END;
VAR C:CHAR;
BEGIN
	P(TRUNC 3.2,FLOAT 6, C);
END. 

--------------------------------------------------------------------------

==========================================================================
=  NESTING/OK1.luc
==========================================================================
PROGRAM T51OK;
	VAR X:INTEGER;
	PROCEDURE P();
		VAR X:REAL;
		PROCEDURE Q(X:CHAR);
			VAR Y:CHAR;
		BEGIN
			Y:=X;
		END;
	BEGIN
		X:=3.0;
	END;
BEGIN
	X:=1;
END.
--------------------------------------------------------------------------

==========================================================================
=  NESTING/TypeErr1.luc
==========================================================================
PROGRAM T52;
PROCEDURE P();
	VAR X:REAL;
	PROCEDURE Q();
		PROCEDURE R();
			VAR Y:INTEGER;
			VAR X:INTEGER;
		BEGIN
			X:=3.0;
		END;
	BEGIN
	END;
BEGIN
END;
BEGIN 
END.	
--------------------------------------------------------------------------
<SEMANTIC_ERROR pos="9" message="Type missmatch in assignment statement"/>

==========================================================================
=  PROC/ActualTypeErr1.luc
==========================================================================
PROGRAM T34;
PROCEDURE P(
   I:INTEGER; 
   C:CHAR);
BEGIN
END;
BEGIN
P('x',3);
END.
--------------------------------------------------------------------------
<SEMANTIC_ERROR pos="8" message="Actual/formal parameter type missmatch"/>
<SEMANTIC_ERROR pos="8" message="Actual/formal parameter type missmatch"/>

==========================================================================
=  PROC/ActualTypeErr2.luc
==========================================================================
PROGRAM T392;
PROCEDURE P(I:INTEGER; R:REAL);
BEGIN
END;
BEGIN
	P(2.0 * FLOAT 6, 6.0);
END.


--------------------------------------------------------------------------
<SEMANTIC_ERROR pos="6" message="Actual/formal parameter type missmatch"/>

==========================================================================
=  PROC/FormalTypeErr1.luc
==========================================================================
PROGRAM T393;
	PROCEDURE P(A:INTGER);
	BEGIN
	END;
BEGIN
END.
--------------------------------------------------------------------------
<SEMANTIC_ERROR pos="2" message="Identifier not declared" argument="INTGER"/>

==========================================================================
=  PROC/ModeErr1.luc
==========================================================================
PROGRAM P1;

PROCEDURE P(VAR I:INTEGER);
BEGIN
END;

BEGIN
   P(5);
END.

--------------------------------------------------------------------------
<SEMANTIC_ERROR pos="8" message="VAR formal parameter requires variable actual"/>

==========================================================================
=  PROC/OK1.luc
==========================================================================
PROGRAM SCOPES2;
VAR Z:INTEGER;
VAR X:INTEGER;
PROCEDURE P();
	VAR Y:INTEGER;
	VAR X:CHAR;
	BEGIN
	 	X:='c';
		Y:=Z;
	END;
BEGIN
	X:=4;
	Z:=X;
	P();
END.

--------------------------------------------------------------------------

==========================================================================
=  PROC/Redecl1.luc
==========================================================================
PROGRAM T21;
PROCEDURE P();
VAR P:INTEGER;
BEGIN
END;
BEGIN
END.

--------------------------------------------------------------------------

==========================================================================
=  PROC/Redecl2.luc
==========================================================================
PROGRAM T291;
PROCEDURE P();
BEGIN
END;
PROCEDURE P();
BEGIN
END;
BEGIN
	P();
END.

--------------------------------------------------------------------------
<SEMANTIC_ERROR pos="8" message="Multiple declaration" argument="P"/>

==========================================================================
=  PROC/RedeclLocal1.luc
==========================================================================
PROGRAM T31;
PROCEDURE P(I:INTEGER);
VAR I:INTEGER;
BEGIN
END;
BEGIN
END.

--------------------------------------------------------------------------
<SEMANTIC_ERROR pos="4" message="Multiple declaration" argument="I"/>

==========================================================================
=  PROC/TooFewActuals.luc
==========================================================================
PROGRAM T32;
PROCEDURE P(I:INTEGER; C:CHAR);
BEGIN
END;
BEGIN
P(3);
END.
--------------------------------------------------------------------------
<SEMANTIC_ERROR pos="6" message="Too few actual parameters"/>

==========================================================================
=  PROC/TooManyActuals.luc
==========================================================================
PROGRAM T33;
PROCEDURE P(I:INTEGER; C:CHAR);
BEGIN
END;
BEGIN
P(3,'x',4);
END.
--------------------------------------------------------------------------
<SEMANTIC_ERROR pos="6" message="Too many actual parameters"/>

==========================================================================
=  PROC/Undecl1.luc
==========================================================================
PROGRAM T26;
PROCEDURE Q();
BEGIN
END;
BEGIN 
P();
END.

--------------------------------------------------------------------------
<SEMANTIC_ERROR pos="6" message="Identifier not declared" argument="P"/>

==========================================================================
=  PROC/UndeclVar1.luc
==========================================================================
PROGRAM T28;
   PROCEDURE P();
   VAR J:INTEGER;
   BEGIN
   END;
BEGIN
   J:=3;
END.

--------------------------------------------------------------------------
<SEMANTIC_ERROR pos="7" message="Identifier not declared" argument="J"/>

==========================================================================
=  REAL/ModErr1.luc
==========================================================================
PROGRAM T394;
VAR x : REAL;
VAR y : REAL;
VAR z : REAL;
BEGIN
   x := y % z;
END.
--------------------------------------------------------------------------
<SEMANTIC_ERROR pos="6" message="Integer type expected"/>
<SEMANTIC_ERROR pos="6" message="Integer type expected"/>

==========================================================================
=  REAL/TypeErr1.luc
==========================================================================
PROGRAM T35;
VAR I:INTEGER;
VAR J:REAL;
BEGIN
	I:= I + J;
END.

--------------------------------------------------------------------------
<SEMANTIC_ERROR pos="5" message="Type missmatch"/>

==========================================================================
=  RECORD/FieldErr1.luc
==========================================================================
PROGRAM T496;
TYPE R = RECORD [a:INTEGER];
VAR  x : R;
BEGIN
   x.a := 'c';
END.
--------------------------------------------------------------------------
<SEMANTIC_ERROR pos="5" message="Type missmatch in assignment statement"/>

==========================================================================
=  RECORD/FieldRedecl1.luc
==========================================================================
PROGRAM T497;
TYPE R = RECORD [a:INTEGER;x:CHAR;a:CHAR];
BEGIN
END.
--------------------------------------------------------------------------
<SEMANTIC_ERROR pos="2" message="Multiple declaration" argument="a"/>

==========================================================================
=  RECORD/FieldUndecl1.luc
==========================================================================
PROGRAM T498;
TYPE R = RECORD [a:INTEGER];
VAR x : R;
BEGIN
   x.b := 5;
END.
--------------------------------------------------------------------------
<SEMANTIC_ERROR pos="5" message="Field identifier not declared" argument="b"/>

==========================================================================
=  STANDARD/FLOATErr1.luc
==========================================================================
PROGRAM T37;
VAR X:REAL;
BEGIN 
	X:=FLOAT 6.2;
END.

--------------------------------------------------------------------------
<SEMANTIC_ERROR pos="4" message="Integer type expected"/>

==========================================================================
=  STANDARD/FLOATErr2.luc
==========================================================================
PROGRAM T39;
VAR I:INTEGER;
BEGIN
	I:=FLOAT 6;
END.


--------------------------------------------------------------------------
<SEMANTIC_ERROR pos="4" message="Type missmatch in assignment statement"/>

==========================================================================
=  STANDARD/TRUNCErr1.luc
==========================================================================
PROGRAM T36;
VAR X:INTEGER;
BEGIN 
	X:=TRUNC 6;
END.

--------------------------------------------------------------------------
<SEMANTIC_ERROR pos="4" message="Real type expected"/>

==========================================================================
=  STANDARD/TRUNCErr2.luc
==========================================================================
PROGRAM T38;
VAR X:REAL;
BEGIN
	X:=TRUNC 6.8;
END.

--------------------------------------------------------------------------
<SEMANTIC_ERROR pos="4" message="Type missmatch in assignment statement"/>

==========================================================================
=  STANDARD/TRUNC_FLOATErr1.luc
==========================================================================
PROGRAM T391;
VAR X:REAL;
BEGIN
	X:= FLOAT 5 * TRUNC 23;
END.
--------------------------------------------------------------------------
<SEMANTIC_ERROR pos="4" message="Real type expected"/>

==========================================================================
=  WHILE/BoolExp1.luc
==========================================================================
PROGRAM T29;
VAR I:INTEGER;
VAR J:INTEGER;
BEGIN
WHILE I DO 
	I:=I+J*3;
ENDDO;
END.

--------------------------------------------------------------------------
<SEMANTIC_ERROR pos="5" message="Boolean type expected"/>

==========================================================================
=  WRITE/TypeErr1.luc
==========================================================================
PROGRAM T292;
VAR A:INTEGER;
VAR C:CHAR;
BEGIN
   WRITE A + C;
END.

--------------------------------------------------------------------------
<SEMANTIC_ERROR pos="5" message="Numeric type expected"/>

