Installation
As you have read these words, you are to install HALK.
$ sudo make install
If you wish to remove all HALK-related items from your life, you can try
$ sudo make uninstall
test
and dbg
targets also exist.
HALK should build properly on unix-like systems with gcc installed.
Usage
One must simply
$ halk examples/simple.halk
. This will print out the token and AST representations of the given text. Running HALK without an argument allows one to pass in text through stdin. An example session is transcribed below:
$ halk
:int:n=42;
[==] HLKT: test passed: src/main.c/main/20
[==] source gotten
[==] source: :int:n=42;
[==] HLKT: test passed: src/main.c/main/26
[==] preprocessor created
[==] pre-processed source: :int:n=42;
[==] HLKT: test passed: src/main.c/main/36
[==] preprocessor ran
[==] HLKT: test passed: src/main.c/main/41
[==] HLKT: test passed: src/main.c/main/42
[==] lexer created
[==] token/t=9 /v=int
[==] token/t=9 /v=n
[==] token/t=4 /v==
[==] token/t=17 /v=42
[==] token/t=3 /v=;
[==] lexer ran
[block]
val:
[expression]
val:
[def]
tag:
[tag]
val:
int
nxt:
[tag]
val:
n
nxt:
NULL
arg:
NULL
val:
[expression]
val:
[lint]
val:
42
nxt:
NULL
About
HALK is a dubiously-typed, vaguely-functional, interpreted programming language, with syntax designed to be as minimal and consistent as possible. Note that all syntax described is liable to sudden and violent change.
Example programs can be found in the examples directory.
Progress
- [x] Preprocessor
- [x] Lexer
- [x] Abstract Syntax Tree
- [x] Parser
- [~] Doer
- [ ] ?? profit ??