Hi everyone! I've been assigned a strange project at college. I've been asked to extract variable definitions and references from a given input 'C' program.

Each line in the input program contains respective line number at the beginning and followed by a space, and then the actual code begins.

Consider the following program..

Code:

1 int main()
2 {
3 int a,b,c;
4 printf("Enter the values of a and b\n");
5 scanf("%d%d",&a,&b);
6 c=a+b;
7 printf("The sum of two numbers is %d",c);
8 }

And the input for the program which I'm developing is a 'C' program, in which single line consists of a single statement..

ie, we know that a whole program can be written in a single line. But not in my case, that is once there is a termination(semicolon), the lines following the semi colon is shifted to next line..

Anyways my job is to extract the variable definitions/declarations and variable use/reference in the given input C program..

Consider the above program,

In line number 3, variables a,b and c are declared, hence it has to be printed under the "definition" column of the output..

Similarly in the statement 5, values of a and b are being initialized using a scanf statement, hence variables a and b should be printed under the definition column of the output..

Now consider the statement 6, The value of variable c is being initialized/defined hence c must be printed under the definition column.. At the same time, values of a and b are being used to determine the value of c, hence variables a and b must be printed under the "reference" column of the output..

And lastly, the value of variable c is being referenced/used in the statement 7, hence the variable c has to be printed under the referenced column..

The sample output of the program is as shown below..

Code:

Line Number Defined Variable Referenced Variable
_____________________________________________________________________
1 -- --
2 -- --
3 a,b,c --
4 -- --
5 a,b --
6 c a,b
7 -- c
8 -- --

Can anyone tell me how to solve the problem????

Remember, I need to write a C/C++ program for the project..

I need to consider the mathematical expressions, logical expressions, built in function calls, user defined function calls and function definitions as well..

Thanks in advance..