diff options
author | c | 2023-11-27 12:43:58 -0500 |
---|---|---|
committer | c | 2023-11-27 12:43:58 -0500 |
commit | 50eeecbd61d07bda3fee1c2180de6668023e0231 (patch) | |
tree | b0d64395e7ff7aa1a1ea800c21a5cf88434406df | |
parent | 82e759959cda6cee81486a1f3f5fef0713587223 (diff) |
Not sure. README, I think.
-rw-r--r-- | README.md | 72 |
1 files changed, 50 insertions, 22 deletions
@@ -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 ?? |