From 7e2f6580ecb14ebe876e48c5ebaa57d350e43301 Mon Sep 17 00:00:00 2001 From: Melody Horn Date: Tue, 29 Sep 2020 01:53:47 -0600 Subject: add tentative keyword list --- index.md | 14 ++++++++++++++ syntax.md | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 49 insertions(+) create mode 100644 syntax.md 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` -- cgit v1.2.3