diff options
-rw-r--r-- | index.md | 14 | ||||
-rw-r--r-- | syntax.md | 35 |
2 files changed, 49 insertions, 0 deletions
@@ -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` |