aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--man.md66
1 files changed, 42 insertions, 24 deletions
diff --git a/man.md b/man.md
index 3c31517..6c51501 100644
--- a/man.md
+++ b/man.md
@@ -1,38 +1,56 @@
-The HALK Programming Language
-====================================================================================================
+# The HALK Programming Language
*version 0.0.1*
+
*2023-05-22*
-Syntax
-====================================================================================================
+# Syntax
+
+## Definitions
+
+HALK has no special definition keyword. When a keyword that has not been defined is called, the
+interpreter will assume the user is defining a new variable. Definitions have 3 major components:
+
+1. The **Definition Tags**
+2. The **Definition Args**
+3. The **Definition Value**
+
+### Definition Tags
+
+Tags help describe the variable before it is given a value. This ensures it will be handled properly
+in the future. A variable definition can have any number of tags, but the most important one by far
+is the type.
+
+```halk
+int:n = 5;
+```
+
+The type is always the first tag, and is terminated by a colon `:` character. Following the type,
+the second most important tag is the name, in this case `n`. The name tag is always the last. In
+between these, there can be any number of tags.
+
+```halk
+int:mut:var = 4;
+int:imut:var2 = 4;
+```
-Definitions
-----------------------------------------------------------------------------------------------------
+In this case, `var` has the `mut` tag while `var2` has the `imut` tag. These indicate the
+mutabillity of a variable. When not specified, the interpreter will assume `imut`.
-Calls
-----------------------------------------------------------------------------------------------------
+## Calls
-Data Structures
-====================================================================================================
+# Data Structures
-Namespaces
-----------------------------------------------------------------------------------------------------
+## Namespaces
-Structs
-----------------------------------------------------------------------------------------------------
+## Structs
-Logic & Program Flow
-====================================================================================================
+# Logic & Program Flow
-If / Else
-----------------------------------------------------------------------------------------------------
+## If / Else
-For / While
-----------------------------------------------------------------------------------------------------
+## For / While
-Cond
-----------------------------------------------------------------------------------------------------
+## Cond
-Style
-====================================================================================================
+# Style