GoHAL
is a new interpreter for tape driven Esoteric programming languages.
Currently, GoHAL
supports:
2001: An Esolang Odyssey
- An Esoteric programming language based off of the book and film2001: A Space Odyssey
. The programming language was created by PythonshellDebugwindow.GoHAL
was originally written for this language.brainfuck
- A well known and influencial esoteric programming language created by Urban Müllermorsefuck
- An Esoteric programming language based off of the Morse Code Encoding Scheme, created by Thoga31brainalpha
- Abrainfuck
derivitive based off of Capital Letters (Ascii 65-90). Created by None1
This is a toy project and was built for fun. If you run this and find bugs, please drop an issue, although be aware I might not be able to fix them in a timely mannar.
If you have any feedback or improvements or want to contribute, feel free to write up an issue for them or submit a PR. I'm learning here, so any thoughts are appreicated.
Caution
This project provides NO WARRANTY for usage. USE AT YOUR OWN RISK.
This project is written in Google's GoLang. To build this project you'll need to install Go.
- Download and Install GoLang for your operating system: https://go.dev/doc/install
- From the current working directory:
go run main.go run ./examples/lang_2001/hello_world.hal
$ go run main.go --help
Usage:
gohal -v
gohal [--debug,--language] run [inputFilename]
gohal [--debug,--language,--outputLanguage] transpile [inputFilename] [outputFilename]
Arguments:
filename The script file you want HAL to execute.
Flags:
-d Global flag to enable debug mode.
-debug
Global flag to enable debug mode.
-l string
specify which language to parse the input with. (default "2001")
-language string
specify which language to parse the input with. (default "2001")
-o string
specify which language to try to parse and run. (default "brainfuck")
-outputLanguage string
specify which language to try to parse and run. (default "brainfuck")
-v display the current version and exit.
-version
display the current version and exit.
This table is to be used with the flags: -l/--language
and -o/--outputLanguage
Language String | Language | Examples Directory | Compatiable With Others |
---|---|---|---|
2001 |
2001: An Esolang Odyssey | examples/2001 |
Yes |
brainfuck |
brainfuck | examples/brianfuck |
Yes |
morsefuck |
morsefuck | examples/morsefuck |
Yes |
brainalpha |
brainalpha | examples/brainalpha |
No |
- Ensure GoLang is installed for your operating system: https://go.dev/doc/install
go test ./internal ./languages/lang_2001 ./languages/lang_brainfuck
- PythonshellDebugwindow for creating
2001: An Esolang Odyssey
and implementing the "Hello World!" example. - Urban Müller for creating
brainfuck
. - Thoga31 for creating
morsefuck
. - None1 for creatig
brainalpha