https://github.com/glaukiol1/gago
Interpreted Programming Language built in Go. Lexer, Parser, AST, VM.
https://github.com/glaukiol1/gago
ast gago interpreter lexer parser programming programming-language
Last synced: 8 months ago
JSON representation
Interpreted Programming Language built in Go. Lexer, Parser, AST, VM.
- Host: GitHub
- URL: https://github.com/glaukiol1/gago
- Owner: glaukiol1
- License: mit
- Created: 2022-04-08T14:59:57.000Z (almost 4 years ago)
- Default Branch: master
- Last Pushed: 2022-04-15T14:37:06.000Z (almost 4 years ago)
- Last Synced: 2025-02-18T01:23:52.215Z (11 months ago)
- Topics: ast, gago, interpreter, lexer, parser, programming, programming-language
- Language: Go
- Homepage:
- Size: 4.45 MB
- Stars: 4
- Watchers: 1
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Gago | Programming Language Built in Go
_if you are looking for the docs, go [here](docs/doc.md)_
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](https://github.com/glaukiol1/Gago/projects/1)
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](https://github.com/glaukiol1/gago/releases)
## 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.