aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--index.md14
-rw-r--r--syntax.md35
2 files changed, 49 insertions, 0 deletions
diff --git a/index.md b/index.md
index fa5dc0b..9fc8512 100644
--- a/index.md
+++ b/index.md
@@ -3,3 +3,17 @@ title: Crowbar Spec
---
This is entirely a work-in-progress, and should not be relied upon to be stable in any way.
+
+# Context
+
+- [Rust is not a good C replacement](https://drewdevault.com/2019/03/25/Rust-is-not-a-good-C-replacement.html)
+
+# cactus's Blog Posts
+
+- [Crowbar: Defining a good C replacement](https://www.boringcactus.com/2020/09/28/crowbar-1-defining-a-c-replacement.html)
+
+# Syntax
+
+[Read the Syntax chapter of the spec.](syntax.md)
+
+# Semantics
diff --git a/syntax.md b/syntax.md
new file mode 100644
index 0000000..d7f2379
--- /dev/null
+++ b/syntax.md
@@ -0,0 +1,35 @@
+# Source Files
+
+A Crowbar source file is UTF-8.
+Crowbar source files can come in two varieties, an *implementation file* and a *header file*.
+An implementation file conventionally has a `.crowbar` extension, and a header file conventionally has a `.hrowbar` extension.
+
+# Keywords
+
+Crowbar has 26 keywords:
+- `break`
+- `case`
+- `char`
+- `const`
+- `continue`
+- `default`
+- `do`
+- `double`
+- `else`
+- `enum`
+- `extern`
+- `float`
+- `for`
+- `if`
+- `int`
+- `long`
+- `return`
+- `short`
+- `signed`
+- `sizeof`
+- `struct`
+- `switch`
+- `typedef`
+- `unsigned`
+- `void`
+- `while`