Go: gomacro

gomacro — это почти полноценный интерпретатор языка Go, написанный на Go (на данный момент есть некоторые ограничения). По принципу работы он напоминает PERL в интерактивном режиме. Интерпретатор почти не использует внешних зависимостей, кроме библиотек github.com/peterh/liner и golang.org/x/sys.

Установка gomacro выполняется стандартным способом


go get -u github.com/cosmos72/gomacro

Для работы требуется Go 1.9 и выше. Пример работы интерпретатора


$ gomacro
[greeting message...]

gomacro> import "fmt"
gomacro> fmt.Println("hello, world!")
hello, world!
14      // int
<nil>   // error
gomacro>

Более того gomacro предоставляет пользователю библиотеку с Eval методом, который позволяет интегрировать макросы на Golang в свою программу. Пример ниже


package main
import (
 "fmt"
 "reflect"
 "github.com/cosmos72/gomacro/fast"
)

func RunGomacro(toeval string) reflect.Value {
 interp := fast.New()
 val, _ := interp.Eval(toeval)
 return val
}
 
func main() {
 fmt.Println(RunGomacro("1+1"))
}

К основным ограничениям интерпретатора стоит отнести следующие:

  • Импорт сторонних библиотек работает только в системах Linux и Mac OS X
  • goto может выполнить переход только назад по коду, но не вперед
  • ограничения на декларацию нескольких переменных в одной строке

 

Тэги: go golang gomacro it интерпретатор программирование


 


 
архив

подписка