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.

About

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

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published