## test1.txt

// Function with Arithmetic Expression

function main returns integer;

begin

7 + 2 * (5 + 4);

end;

## test2.txt

// Function with a lexical error

function main returns integer;

begin

7 * 2 $ (2 + 4);

end;

## test3.txt

// Punctuation symbols

,;() =>

// Identifier

name name123

// Literals

123 ‘a’

// Logical operator

&

// Relational operator

<

// Arithmetic operators

+ *

// Reserved words

begin case character end endswitch function is integer list of returns switch when

## test4.txt

// Function with All Reserved Words

function main returns character;

number: real is when 2 < 3, 0 : 1;

values: list of integer is (4, 5, 6);

begin

if number < 6.3 then

fold left + (1, 2, 3) endfold;

elsif 6 < 7 then

fold right + values endfold;

else

switch a is

case 1 => number + 2;

case 2 => number * 3;

others => number;

endswitch;

endif;

end;

## test5.txt

// Program Containing the New Operators

function main b: integer, c: integer returns integer;

a: integer is 3;

begin

if (a < 2) | (a > 0) & (~b <> 0) then

7 – 2 / (9 % 4);

else

if b >= 2 | b <= 6 & !(c = 1) then

7 + 2 * (2 + 4);

else

a ^ 2;

endif;

endif;

end;

## test6.txt

// Program Containing the New Comment, Modified Identifier

// and Real Literal and Hex and Character Literals

— This is the new style comment

function main b: integer, c: integer returns integer;

a: real is .3;

d: real is 5.7;

a__1: real is .4e2;

ab_c_d: real is 4.3E+1;

ab1_cd2: real is 4.5e-1;

hex: integer is #2aF;

char1: character is ‘C’;

char2: character is ‘\n’;

begin

hex + 2;

end;

## test7.txt

// Function with Two Lexical Errors

function main returns integer;

begin

7 $ 2 ? (2 + 4);

end;

## test8.txt

— Punctuation symbols

,:;() =>

// Valid identifiers

name_1

name_1__a2_ab3

// Invalid identifiers

name___2

_name3

name4_

// Integer Literals

23 #3aD

// Real Literals

123.45 .123 1.2E2 .1e+2 1.2E-2

// Character Literals

‘A’ ‘\n’

// Logical operators

& | !

// Relational operators

= <> > >= < <=

// Arithmetic operators

+ – * / % ^ ~

// Reserved words

begin case character else elsif end endcase endfold endif endswitch

fold function if integer is left list of others real returns right

switch then when