aboutsummaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
authorAndrew Kelley <superjoe30@gmail.com>2015-12-01 21:19:38 -0700
committerAndrew Kelley <superjoe30@gmail.com>2015-12-01 21:19:38 -0700
commit08a2311efd8b388cd431feb6000741f4a62da613 (patch)
tree528ba0056e9a54583c91b0787b9d5ffcdcc11de7 /README.md
parent1ed926c3216016d73e83377a295869d8579e2fde (diff)
downloadzig-08a2311efd8b388cd431feb6000741f4a62da613.tar.gz
zig-08a2311efd8b388cd431feb6000741f4a62da613.zip
support if conditionals
Diffstat (limited to 'README.md')
-rw-r--r--README.md22
1 files changed, 19 insertions, 3 deletions
diff --git a/README.md b/README.md
index 25d9ec10d6..7cfc9e7e41 100644
--- a/README.md
+++ b/README.md
@@ -44,7 +44,11 @@ make
* variable declarations and assignment expressions
* Type checking
+ * loops
+ * labels and goto
* inline assembly and syscalls
+ * conditional compilation and ability to check target platform and architecture
+ * main function with command line arguments
* running code at compile time
* print! macro that takes var args
* panic! macro that prints a stack trace to stderr in debug mode and calls
@@ -104,14 +108,26 @@ Type : token(Symbol) | PointerType | token(Unreachable)
PointerType : token(Star) token(Const) Type | token(Star) token(Mut) Type
-Block : token(LBrace) list(option(Expression), token(Semicolon)) token(RBrace)
+Block : token(LBrace) list(option(Statement), token(Semicolon)) token(RBrace)
-Expression : BoolOrExpression | ReturnExpression
+Statement : NonBlockExpression token(Semicolon) | BlockExpression
+
+Expression : BlockExpression | NonBlockExpression
+
+NonBlockExpression : BoolOrExpression | ReturnExpression
+
+BlockExpression : IfExpression | Block
BoolOrExpression : BoolAndExpression token(BoolOr) BoolAndExpression | BoolAndExpression
ReturnExpression : token(Return) option(Expression)
+IfExpression : token(If) Expression Block option(Else | ElseIf)
+
+ElseIf : token(Else) IfExpression
+
+Else : token(Else) Block
+
BoolAndExpression : ComparisonExpression token(BoolAnd) ComparisonExpression | ComparisonExpression
ComparisonExpression : BinaryOrExpression ComparisonOperator BinaryOrExpression | BinaryOrExpression
@@ -144,7 +160,7 @@ FnCallExpression : PrimaryExpression token(LParen) list(Expression, token(Comma)
PrefixOp : token(Not) | token(Dash) | token(Tilde)
-PrimaryExpression : token(Number) | token(String) | token(Unreachable) | GroupedExpression | Block | token(Symbol)
+PrimaryExpression : token(Number) | token(String) | token(Unreachable) | GroupedExpression | token(Symbol)
GroupedExpression : token(LParen) Expression token(RParen)
```