This is the regression tests.
Our test file names are:

GCD.c /* are the example programs as provided on SE Assignment 2 webpage. */
Factorial.c /* are the example programs as provided on SE Assignment 2 webpage. */
Scope.c /* are the example programs as provided on SE Assignment 2 webpage. */

undeInt.c
stress2.c
while1000.c
string.c
input.c
nestedblock.c
ternary.c
stressWhile.c
parameters.c
difficult.c
notEq.c 
infinite.c
stress.c


undeInt.c
The first test, assigns variable z and y a initial value. There is also a
undefined variable called res. The function does not use any of the
initialised variables.  The uninitialized variable is returned, and as in 
c it will return garbage, however in our case uninitiliazed vars are set
to NULL. ie zero.
Expected Output:
0.

stress2.c
This test is stress testing the program to see what happens when a large
number of variables is used. The first of variables are declared from a to z
are assigned
to 1. Then the program is told to add all the variables together.
Expected output:
Since there are 26 letters in the alphabet it should return 26.

The second block is also similar to the above test, however instead of
adding the variables together, we are dividing them by each other.
Expected output:
Since 1 / 1 = 1, then the ouput should still be 1 no matter how many times
we divide it by itself.

So the final output will be 26+1 = 27.

while1000.c
This test is stress testing a while loop. The while loop is told not to stop
until it reaches 1000. The variable x is incremented each time to allow x to
reach 1000.
Expected output:
if the while loop successfully increments to 1000, then the ouput should be
1000.

string.c
This file checks whether an error is found when an implicit declaration is
made. A variable y is assigned to "hi" and x is returned.
Expected ouput:
since this is an error the output is "Bad character at position 16 on line
3".

input.c
This file checks if the parameters are read by the function correctly. The
function takes in 2 parameters x and y, with value 1 for both
variables. The return statement simply adds x and y.
Expected output:
since x and y both have a value of 1. then the output is 2.

nestedblock.c
This file checks if nested blocks work. The variable res has a value of
0 (default). 
Expected ouput:
99.

ternary.c
This file checks the ternary expression. The function is given parameters
of type int and a value of 1. if a is equal to 0, then return 9 but if a is
anything else but 0, return 6.
Expected ouput:
since the input is 1, the expected output is 6.

stressWhile.c
This file tests whether a if statement inside a while loop works. The
function takes in a parameter. The while loop is told to loop when x is
less than 500. Each time it loops its increments x by 1. The if statements
says to break if x reaches 250.
Expected ouput:
x should have incremented until it reaches 250. so the output is 250.

parameters.c
This file checks whether the given parameters is the same as what the
function takes. This function takes in 5 parameters, if 5 parameters are
given it will proced to execute the function. if more or less than 5
parameters are given, it will show an error.
Expected ouput:
since we only gave it 4 parameters for the purpose of this test. the output
is " Unable to run program. Expected 5 parameters, found 4 parameters".

notEq.c
Since in our grammar there is not a "not equal to" operator. Then since this 
function uses a "not equal" operator. The result should be a error statement.
Expected ouput:
Error.

infinite.c
This function is a infinite loop. The purpose of this function is to test if 
our program will crash when a infinite loop is encountered.
Expected output:
doesnt do anything.. infinite loop. (it does not segmentation fault)

stress.c
This file just tests if we give the interpreter a large file. This file contains
158 lines of code. Just to make sure the program doesnt segmentation fault with 
large files.
Expected output: