Добрый день!
Помогите написать синтаксический анализатор для языка функционального программирования ( Например (F1,(G1,x,y),(G2,a,b,c)) ) на основе восходящего анализа. Поиск в интернете не дал никаких примеров. Может кто то делал подобные задачи?
Здравствуйте, serber, Вы писали:
S>Добрый день! S>Помогите написать синтаксический анализатор для языка функционального программирования ( Например (F1,(G1,x,y),(G2,a,b,c)) ) на основе восходящего анализа. Поиск в интернете не дал никаких примеров. Может кто то делал подобные задачи?
Восходящий анализ подходит для лексического анализа. Синтаксический анализ лучше делать сверху.
Здравствуйте, serber, Вы писали:
S>Поиск в интернете не дал никаких примеров.
Интернет разный, что ли Bottom-up parsing
Да и по-русски неплохо гуглится по запросу "восходящий синтаксический анализ"
D.K. << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Все на свете должно происходить медленно и неправильно...
Здравствуйте, serber, Вы писали:
S>Добрый день! S>Помогите написать синтаксический анализатор для языка функционального программирования ( Например (F1,(G1,x,y),(G2,a,b,c)) ) на основе восходящего анализа. Поиск в интернете не дал никаких примеров. Может кто то делал подобные задачи?
Если у тебя скобочная структуру, то используй магазинную память для запоминания текущего контекста скобки. Надо добавить структурку типа (имя функции, списко параметров) и при встрече скобки "(" добавлять ее в магазин. Магазин проверит корректность скобок и позволит сформировать дерево программы. Это наверное будет восходящий анализ, т.к. узлы верхнего уровня дерева не будут построены до тех пор, пока не распарсятся скобки внутри.