Реалізуйте обчислювач для дуже простої підмножини Forth.
Forth належить до стекових мов програмування. Реалізуйте дуже простий обчислювач для невеликої підмножини Forth.
Обчислювач має підтримувати такі слова:
+, -, *, / (арифметика з цілими числами)DUP, DROP, SWAP, OVER (операції зі стеком)Обчислювач також має підтримувати визначення нових слів за допомогою звичного синтаксису: : word-name definition ;.
Задля простоти потрібно підтримувати лише один тип даних: знакові цілі числа розміром щонайменше 16 біт.
Для синтаксису діють такі правила: число - послідовність з однієї або більше (ASCII) цифр, а слово - послідовність з однієї або більше літер, цифр, символів або розділових знаків, яка не є числом. (Forth, імовірно, використовує дещо інші правила, але це досить близько.)
Слова не чутливі до регістру.
Зверніть увагу на додатковий тестовий випадок у tests/alloc-attack.rs. Він перевіряє алгоритмічно неефективні реалізації. Через це він зазвичай завершується за тайм-аутом у режимі онлайн, а не явно провалюється, що призводить до менш корисного повідомлення про помилку.