/b/ - Random

Свободное общение


New Reply
Name
×
Sage
Subject
Message
Files Max 5 files20MB total
Tegaki
Password
[New Reply]


gopher-icon.png
[Hide] (126.9KB, 1280x640)
Сап, коллеги!

Сидел я как-то, отдыхал и в один прекрасный момент пришла забавная идея, что если можно было бы писать bash скрипты, но с синтаксисом и прихватами из Golang? Так вот я решил попробовать написать интерпретатор такого монстра и прямо сейчас занимаюсь его разработкой. 
Интепретатор уже умеет делать арифметические/логические вычисления, сохранять переменные в окружение и поддерживает оператор ветвления. Дальше - больше!)
https://github.com/k0ch3gar/gosha
Привет! Проверил.

Базовая арифметика, логические выражения, переменные и оператор 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
Replies: >>5
>>4
Спасибо!)
Вижу я забыл убрать результат после парсинга значений, поэтому сначала повторение выражения, а потом вычисление. А над вызовом функций я как раз сейчас и работаю!
[New Reply]
2 replies | 1 file
Connecting...
- news - rules -