Gentee
  • Скриптовый язык программирования Gentee
  • Синтаксис языка
    • Лексические элементы
    • Типы
    • Описания
    • Конструкции языка
    • Обработка ошибок
    • Выражения
    • Запуск программ
    • Многопоточность
    • Включение и импорт файлов
  • Стандартная библиотека
    • Архивация
    • Ассоциативные массивы
    • Буфер
    • Время
    • Конвертация
    • Консоль
    • Константы
    • Контекст
    • Криптография
    • Логический тип
    • Массивы
    • Многопоточность
    • Множества
    • Объекты
    • Процесс
    • Путь
    • Рантайм
    • Регулярные выражения
    • Сеть
    • Символьный тип
    • Система
    • Строки
    • Файлы
    • Целые числа
    • Числа с плавающей точкой
  • Интеграция с Go
    • Документация
    • Компиляция и выполнение
    • Дополнительные возможности
    • Песочница
  • Сменить язык
    • English
Powered by GitBook
On this page
  • Компиляция
  • Выполнение байт-кода

Was this helpful?

  1. Интеграция с Go

Компиляция и выполнение

Рассмотрим как использовать компилятор и виртуальную машину Gentee в проектах на языке программирования Go.

Компиляция

Для начала, нужно создать структуру Gentee с помощью функции New. Эта структура будет хранить всю информацию о скомпилированных скриптах. Вам достаточно создать один экземпляр и компилировать любое количество скриптов.

Для компиляции скриптов нужно использовать методы Compile, CompileFile, CompileAndRun. Методы Compile, CompileFile, в случае успешной компиляции, возвращают структуру Exec, которая содержит байт-код. Вы можете сохранять или передавать эту структуру для дальнейшего выполнения с помощью метода Run. Метод CompileAndRun сразу после компиляции выполняет скрипт и возвращает его результат.

package main
import (
    "fmt"
    "log"

    "github.com/gentee/gentee"
)

func main() {
    g := gentee.New()

    exec,_, err := g.Compile("run : Print(`Hello, world!`)", "")
    if err != nil {
        log.Fatal(err)
    }
    exec.Run(gentee.Settings{})
    exec,_, err = g.CompileFile("/home/ak/scripts/myscript.g")
    if err != nil {
        log.Fatal(err)
    }
    exec.Run(gentee.Settings{})

    var result interface{}
    result, err = g.CompileAndRun("../torun.g")
    fmt.Println(`Error:`, err, `Result:`, result)
}

Выполнение байт-кода

package main
import (
    "fmt"
    "log"

    "github.com/gentee/gentee"
)

func main() {
    g := gentee.New()

    exec,_, err := g.CompileFile("myscript.g")
    if err != nil {
        log.Fatal(err)
    }
    var result interface{}
    result, err = exec.Run(gentee.Settings{
        CmdLine: []string{
            "-par1",
            "-o",
            "/home/ak/tmp",
        },
    })
    fmt.Println(`Error:`, err, `Result:`, result)
}
PreviousДокументацияNextДополнительные возможности

Last updated 4 years ago

Was this helpful?

Готовый байт-код скрипта хранится в структуре типа Exec. Для его выполнения необходимо вызвать метод Run. Параметр типа позволяет передать параметры командной строки и указать дополнительные настройки виртуальной машины.

Settings