aboutsummaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'README.md')
-rw-r--r--README.md72
1 files changed, 50 insertions, 22 deletions
diff --git a/README.md b/README.md
index dcc96c1..700e06c 100644
--- a/README.md
+++ b/README.md
@@ -1,17 +1,19 @@
# Installation
-As you have read these words, you are to install *HALK*.
+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
+If you wish to remove all HALK-related items from your life, you can try
```
$ sudo make uninstall
```
+As of 82e7599, HALK has been tested on both Linux and MacOS.
+
# Usage
One must simply
@@ -20,44 +22,70 @@ One must simply
$ halk examples/simple.halk
```
-. Running *HALK* without an argument allows one to lex(?) arbitrary text through stdin. An
-example session is displayed below:
+. 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:
-```text
+```
$ halk
-:str:var = "Hello, World";
-[==] HLKT: test passed: src/main.c/main/18
+:int:n=42;
+[==] HLKT: test passed: src/main.c/main/20
[==] source gotten
-[==] source: :str:var = "Hello, World";
-
-[==] HLKT: test passed: src/main.c/main/24
+[==] source: :int:n=42;
+[==] HLKT: test passed: src/main.c/main/26
[==] preprocessor created
-[==] pre-processed source: :str:var="Hello, World";
-[==] HLKT: test passed: src/main.c/main/34
+[==] pre-processed source: :int:n=42;
+[==] HLKT: test passed: src/main.c/main/36
[==] preprocessor ran
-[==] HLKT: test passed: src/main.c/main/39
-[==] HLKT: test passed: src/main.c/main/40
+[==] HLKT: test passed: src/main.c/main/41
+[==] HLKT: test passed: src/main.c/main/42
[==] lexer created
-[==] token/t=9 /v=str
-[==] token/t=9 /v=var
+[==] token/t=9 /v=int
+[==] token/t=9 /v=n
[==] token/t=4 /v==
-[==] token/t=2 /v=Hello, World
+[==] token/t=17 /v=42
[==] token/t=3 /v=;
[==] lexer ran
-[==] HLKT: all 5 tests passed
+[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
```
-# Syntax
+# About
-*HALK* is a **dubiously-typed**, **vaguely-functional**, **interpreted** programming language,
+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 [here](../tree/examples).
+Example programs can be found in the examples directory.
+
+# Progress
- [x] Preprocessor
- [x] Lexer
- [x] Abstract Syntax Tree
-- [ ] Parser
+- [~] Parser
- [ ] Doer
- [ ] ?? profit ??