Мне был назначен странный проект в колледже. Меня попросили извлечь определения переменных и ссылки из заданной входной программы "C".
Каждая строка во входной программе содержит соответствующий номер строки в начале, за которым следует пробел, а затем начинается фактический код.
Рассмотрим следующую программу.
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 }
И вход для программы, которую я разрабатываю, - это программа 'C', в которой одна строка состоит из одного оператора.
то есть мы знаем, что всю программу можно записать в одну строку. Но не в моем случае, то есть, когда есть окончание (точка с запятой), строки, следующие за точкой с запятой, сдвигаются к следующей строке.
В любом случае, моя работа заключается в извлечении определений / объявлений переменных и использования / ссылок на переменные в заданной программе ввода C ..
Рассмотрите вышеупомянутую программу,
В строке № 3 объявляются переменные a, b и c, следовательно, они должны быть напечатаны в столбце «Definition» выходных данных.
Аналогично в операторе 5 значения a и b инициализируются с помощью оператора scanf, поэтому переменные a и b должны быть напечатаны в столбце определения выходных данных.
Теперь рассмотрим утверждение 6. Значение переменной c инициализируется / определяется, следовательно, c должно быть напечатано под столбцом определения. В то же время значения a и b используются для определения значения c, следовательно, переменные a и b должны быть напечатаны в столбце «reference» выходных данных.
И, наконец, значение переменной c указывается / используется в операторе 7, поэтому переменная c должна быть напечатана в столбце, на который имеется ссылка.
Пример вывода программы показан ниже ..
Line Number Defined Variable Referenced Variable
_____________________________________________________________________
1 -- --
2 -- --
3 a,b,c --
4 -- --
5 a,b --
6 c a,b
7 -- c
8 -- --
Может кто-нибудь сказать мне, как решить проблему ????
Помните, мне нужно написать программу на C / C ++ или даже сценарий оболочки разрешен для проекта.
Мне нужно учитывать математические выражения, логические выражения, вызовы встроенных функций, вызовы пользовательских функций и определения функций ..
Заранее спасибо ..