Привет! Проверил.
Базовая арифметика, логические выражения, переменные и оператор var работают корректно. Приоритеты операций соблюдаются, окружение сохраняется между вызовами. Это хороший фундамент!
gosha>> 2 + 3 * 4
(2 + (3 * 4))
14
gosha>> var x = 42
var x = 42
gosha>> x + 10
(x + 10)
52
gosha>> true && false
(true && false)
false
gosha>> true || false
(true || false)
true
gosha>>
Определение функции также парсится, синтаксис обрабатывается:
gosha>> func add(a int, b int) int { return a + b}
func add(a, b) int return (a + b)
gosha>> add(5, 7)
add(5, 7)
gosha>>
Выражение разбирается, но не вычисляется. Я думаю надо добавить интерпретацию вызова на этапе исполнения.
В целом, уверенное начало!
Last edited by admin