Реализация функции TinyPG

В последнее время я очень заинтересовался генераторами парсеров и компиляторами. Чтобы поиграть, я скачал TinyPG и теперь у меня есть простой язык для разбора строк и операций с плавающей точкой. Теперь мне интересно реализовать простые функции с параметрами. Мне удалось создать беспараметрические функции, оценив тело с одним выражением и сохранив его в таблице, а затем получить значение при вызове функции. Как мне реализовать простые функции с одним выражением и параметрами в TinyPG (или любом другом генераторе парсера)?

1 ответ

Решение

Хорошо, я действительно нашел ответ на этот вопрос случайно. Я наткнулся на Tiny Expression Evaluator, который был написан с TinyPG. Чтобы проверить возможности функции, я положил в последовательности Фибоначчи, fib(x) := x=0 ? 0 : (x=1 ? 1 : fib(x - 2) + fib(x - 1))и это сработало, как и ожидалось. Теперь я должен выяснить, как они это сделали.

Другие вопросы по тегам