Skip to content
/ Gago Public

Interpreted Programming Language built in Go. Lexer, Parser, AST, VM.

License

Notifications You must be signed in to change notification settings

glaukiol1/Gago

Repository files navigation

Gago | Programming Language Built in Go

if you are looking for the docs, go here

Gago is a interpreted programming language. It is fully written in Go.

Gago includes:

  • Lexer
  • Parser
  • VM
  • Module implementation
  • Easy embedding into your Go application
  • Standard library

View the projects timeline and progress here

The gago builtins module: (as of v0.7-alpha)

  • print(args...) type: function. Doc: prints the specified values seperated by a space
  • input type: function. Doc gets input from stdin until newline
  • teststring type: global variable. Use: testing purposes
  • sleep type: function. Doc: sleeps for the specified ms experimental
  • exit type: function. Doc: exits from the process experimental

Install

Download from the releases page

Objectives

Gago started as an experiment to find out how hard it would be to build a programming language in Go. With all the standard library written in Go, it would be faster than many programming languages, such as Python.

It can also be used as a wrapper around Go, since any Gago expression can be written in Go.

Status

gago currently:

  • Lexes all tokens correctly
  • Parses some expressions to AST
  • Is able to run the AST available right now (in the VM)
  • Has a builtin module and module system.
  • Is able to run defined Go functions inside the Gago script.

Taking the project further is the main goal. Making a simple language which can run just like any programming language would be a end goal. Once Gago is ready to run some of the more basic code, running benchmarks will be added.

Gago is currently in a pre-release or beta state.

License

This project is licensed under the MIT licence.