Gentee - script programming language for automation. It uses VM and compiler written in Go (Golang).

Overview

Gentee script programming language

Build Status Go Report Card GoDoc

Gentee is a free open source script programming language. The Gentee programming language is designed to create scripts to automate repetitive actions and processes on your computer. If you use or plan to use .bat files, bash, PowerShell or special programs to automate actions, then try doing the same thing with Gentee.

Want to see a sample application that successfully uses the Gentee programming language? Take a look at Eonza, a free cross-platform program for easy creation and management of scripts.

Documentation

All documentation is available on GitHub.

Download

You can download other binary distributions for Linux, macOS, Windows here.

Go integration

You can use the Gentee compiler and virtual machine in golang projects without any restrictions.
Documentation is available here.

How to run Gentee scripts

$ go get -u github.com/gentee/gentee
$ cd gentee/gentee/cli
$ go build
  • Specify the script file when running gentee. The script file can have any extension.
Linux: ./gentee myscript.g 
Wndows: gentee.exe myscript.g
  • Also, you can associate the gentee program with script files in your operating system.

Gentee compiler/interpreter

gentee [-ver] [-t] <scriptname> [command-line parameters for script]

By default, the program prints the output of the script to the console and returns 0 if successful.

Command line parameters

  • scriptname - full or relative path to the script file. You can specify the command line parameters for the script after the script file name.
  • -ver - show the current version of Gentee language.
  • -t - test the script. When using this parameter, the script must have the result parameter in the header with the expected value (example). In this mode, the program does not output the result of the script execution to the console. If the result does not match, an error message is displayed and an error code 4 is returned.

Error code

Code Description
1 The script file was not found.
2 Compilation error.
3 Runtime Error.
4 The result is erroneous at start with the -t parameter.

Support

If you have any questions and suggestions or would like to help in the development, add your issue here.

License

MIT

Copyright (c) 2018-present, Alexey Krivonogov

You might also like...
A compiler for the ReCT programming language written in Golang

ReCT-Go-Compiler A compiler for the ReCT programming language written in Golang

T# Programming Language. Something like Porth, Forth but written in Go. Stack-oriented programming language.

The T# Programming Language WARNING! THIS LANGUAGE IS A WORK IN PROGRESS! ANYTHING CAN CHANGE AT ANY MOMENT WITHOUT ANY NOTICE! Something like Forth a

Go compiler made from scratch, which can compile itself. It's going to be the smallest and simplest go compiler in the world.

Babygo, a go compiler made from scratch Babygo is a small and simple go compiler. (Smallest and simplest in the world, I believe.) It is made from scr

Compiler as a Service is a compiler that is available over http/https and gRPC

BlakBoks(CaaS) Elasticsearch but for compiling untrusted code Compiler as a Service is a compiler that is available over http/2 and gRPC. Setup First

Monkey programming language project from 'Writing An Interpreter In Go'and 'Writing A Compiler In Go' Books
Monkey programming language project from 'Writing An Interpreter In Go'and 'Writing A Compiler In Go' Books

Monkey Monkey programming language 🐒 project from "Writing An Interpreter In Go

Floppa programming language inspired by the brainf*ck programming language. Created just for fun and you can convert your brainf*ck code to floppa code.

Floppa Programming Language Created just for fun. But if you want to contribute, why not? Floppa p.l. inspired by the brainf*ck programming language.

Yayx programming language is begginer friendly programming language.
Yayx programming language is begginer friendly programming language.

Yayx Yayx programming language is begginer friendly programming language. What have yayx: Easy syntax Dynamic types Can be compiled to outhers program

Yayx programming language is begginer friendly programming language.

Yayx Yayx programming language is begginer friendly programming language. What have yayx: Easy syntax Dynamic types Can be compiled to outhers program

RBTI Golang Server uses PostgreSQL and for its main database and uses Elasticsearch

RBTI Golang Server This server is used for my thesis project, it uses PostgreSQL and for its main database and uses Elasticsearch for faster query spe

xlsxlang is a tiny toy script programming language. xlsxlang is heavily inspired by Lisp
xlsxlang is a tiny toy script programming language. xlsxlang is heavily inspired by Lisp

xlsxlang Table of Contents 1. Usage 1.1. Examples 2. Installation 3. Supported functions 4. LICENSE xlsxlang is a tiny toy script programming language

Q Language : A script language for Go
Q Language : A script language for Go

Q Language - A script language for Go 语言特色 与 Go 语言有最好的互操作性。可不进行任何包装即可直接使用 Go 语言的函数、类及其成员变量和方法。 有赖于 Go 语言的互操作性,这门语言直接拥有了一套非常完整且您十分熟悉的标准库,无额外学习成本。 与 Go

Advent of Code is an Advent calendar of small programming puzzles for a variety of skill sets and skill levels that can be solved in any programming language you like.

Advent of Code 2021 Advent of Code is an Advent calendar of small programming puzzles for a variety of skill sets and skill levels that can be solved

YANG parser and compiler to produce Go language objects

Current support for goyang is for the latest 3 Go releases. goyang YANG parser and compiler for Go programs. The yang package (pkg/yang) is used to co

A repository for showcasing my knowledge of the Google Go (2009) programming language, and continuing to learn the language.

Learning Google Golang (programming language) Not to be confused with the Go! programming language by Francis McCabe I don't know very much about the

A repository for showcasing my knowledge of the Go! (2003) programming language, and continuing to learn the language.
A repository for showcasing my knowledge of the Go! (2003) programming language, and continuing to learn the language.

Learning Go! (programming language) Not to be confused with Google Golang (2009) I don't know too much about the Go! programming language, but I know

Compiler for a small language into x86-64 Assembly

Compiler This project is a small compiler, that compiles my own little language into X86-64 Assembly. It then uses yasm and ld to assemble and link in

Compiler for a small language into x86-64 Assembly

Compiler This project is a small compiler, that compiles my own little language into X86-64 Assembly. It then uses yasm and ld to assemble and link in

A simple virtual machine - compiler & interpreter - written in golang

go.vm Installation Build without Go Modules (Go before 1.11) Build with Go Modules (Go 1.11 or higher) Usage Opcodes Notes The compiler The interprete

Comments
  • Conversion between Gentee types and Golang types

    Conversion between Gentee types and Golang types

    Is there any example, or already included easy way to convert between Golang and Gentee types?

    For example to convert between a Golang Map to a Gentee Map, i made the following function:

    func GoMap2GenteeMap(goMap map[string]interface{}) *core.Map {
    	ret := core.NewMap()
    	for key, _ := range goMap {
    		ret.Keys = append(ret.Keys, key)
    	}
    	ret.Data = goMap
    	return ret
    }
    

    But i have the feeling as if i am missing something.

    Sorry if it is obvious, but i am still relatively new to Golang.

    opened by lsascha 10
  • Ctrl+Esc to stop running scripts does not work on W10 PC

    Ctrl+Esc to stop running scripts does not work on W10 PC

    In Windows 10 pressing Ctrl+Esc in "Perfect Automation" project's executable (hidden) causes the Start Menu to activate, so I am unable to cancel execution of a macro. Is there a way to alter the "Stop Execution"Key combination?

    opened by raisinc 2
  • Add examples

    Add examples

    Hey Alexey

    great project :) by change you can add a few examples in the documentation? that anyone just can run easy like ./gentee example1.g and see a full script with gentee?

    I'm wrong or this is not related to this project? https://www.gentee.com/programming/samples/

    opened by John3 2
  • -v   IS IN FACT   -ver

    -v IS IN FACT -ver

    " -v - show the current version of Gentee language. " -ver

    Very nice product to discover & follow, it is playfull. Now API, libs,... Go compiles Gentee in 3.69M, RED makes ~1M ... what a competition in sight.

    opened by fr001 0
Releases(v1.22.0)
Owner
Alexey Krivonogov
Alexey Krivonogov
GopherLua: VM and compiler for Lua in Go

GopherLua: VM and compiler for Lua in Go. GopherLua is a Lua5.1 VM and compiler written in Go. GopherLua has a same goal with Lua: Be a scripting lang

Yusuke Inuzuka 5k Sep 24, 2022
PHP bindings for the Go programming language (Golang)

PHP bindings for Go This package implements support for executing PHP scripts, exporting Go variables for use in PHP contexts, attaching Go method rec

Alex Palaistras 871 Sep 29, 2022
Source code for the Container-lang programming language

Container-lang Container-lang is a lightweight, interpreted, esoteric scripting language based on the idea of "code containers", aiming to make it eas

null 11 Jan 21, 2022
Scriptable interpreter written in golang

Anko Anko is a scriptable interpreter written in Go. (Picture licensed under CC BY-SA 3.0, photo by Ocdp) Usage Example - Embedded package main impor

mattn 1.3k Sep 25, 2022
Esprima-Go: A high performance JavaScript parser written in Go

Esprima-Go is a JavaScript parser written in Go. Esprima is a JavaScript parser written in TypeScript, it's widely used in javascript-realt

CHEN Yuan 0 Jan 9, 2022
Expression evaluation in golang

Gval Gval (Go eVALuate) provides support for evaluating arbitrary expressions, in particular Go-like expressions. Evaluate Gval can evaluate expressio

null 530 Sep 21, 2022
🦁 A Super fast and lightweight runtime for JavaScript Scripts

Kimera.js - A super fast and lightweight JavaScript Runtime for Scripts.

Eliaz Bobadilla 22 Aug 14, 2022
Gentee - script programming language for automation. It uses VM and compiler written in Go (Golang).

Gentee script programming language Gentee is a free open source script programming language. The Gentee programming language is designed to create scr

Alexey Krivonogov 99 Sep 26, 2022
ReCT-Go-Compiler - A compiler for the ReCT programming language written in Golang

ReCT-Go-Compiler A compiler for the ReCT programming language written in Golang

RedCubeDev 6 Aug 20, 2022
ReCT-Go-Compiler - A compiler for the ReCT programming language written in Golang

ReCT-Go-Compiler A compiler for the ReCT programming language written in Golang

null 6 Aug 20, 2022