command
module
Version:
v0.0.0-...-43a95db
Opens a new window with list of versions in this module.
Published: Oct 29, 2021
License: MIT
Opens a new window with license information.
Imports: 2
Opens a new window with list of imports.
Imported by: 0
Opens a new window with list of known importers.
README
¶
Amoeba Interpreter
An interpreter for the Amoeba programming language. Written from scratch in Go with no dependencies 🎉

Features
- C-like syntax
- variables (integers, booleans, strings, arrays, objects)
- arithmetic expressions
- first-class and higher-order functions
- closures
- builtin functions:
- amoeba(): prints out awesome ascii art
- len(ARRAY or STRING): returns length of string or array
- push(ARRAY, ANY): adds new item to array (does not mutate)
- first(ARRAY): returns first item in array
- rest(ARRAY): returns all but first item in array
- last(ARRAY): returns last item in array
- print(ANY, ANY, ...): prints out to the console
Give it a try!
Clone
git clone https://github.com/ASteinheiser/amoeba-interpreter.git
cd amoeba-interpreter
Then pass a file path as an argument
./amoeba-interpreter -file=amoeba-test-program.txt
OR use the REPL
./amoeba-interpreter

Local Dev
- Install Go
git clone https://github.com/ASteinheiser/amoeba-interpreter.git
cd amoeba-interpreter
go run main.go
Run the test suite
You can run the tests for a sub-module individually as long as it has a *_test.go file:
go test ./ast/
go test ./lexer/
go test ./parser/
go test ./evaluator/
OR you can run all the tests at once:
./run-tests.sh

Roadmap
- add <= and >= operators
- add postfix operators (such as
++)
- prettier printing of function, array, and hash values
- enhance error messages with line number and file name
Documentation
¶
There is no documentation for this package.
Source Files
¶
Directories
¶
Package ast is an Abstract Syntax Tree, which will be used to represent Amoeba programs as data that we can later evaluate
|
Package ast is an Abstract Syntax Tree, which will be used to represent Amoeba programs as data that we can later evaluate |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Click to show internal directories.
Click to hide internal directories.