diff options
| author | Andrew Kelley <superjoe30@gmail.com> | 2015-12-01 21:19:38 -0700 |
|---|---|---|
| committer | Andrew Kelley <superjoe30@gmail.com> | 2015-12-01 21:19:38 -0700 |
| commit | 08a2311efd8b388cd431feb6000741f4a62da613 (patch) | |
| tree | 528ba0056e9a54583c91b0787b9d5ffcdcc11de7 /README.md | |
| parent | 1ed926c3216016d73e83377a295869d8579e2fde (diff) | |
| download | zig-08a2311efd8b388cd431feb6000741f4a62da613.tar.gz zig-08a2311efd8b388cd431feb6000741f4a62da613.zip | |
support if conditionals
Diffstat (limited to 'README.md')
| -rw-r--r-- | README.md | 22 |
1 files changed, 19 insertions, 3 deletions
@@ -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) ``` |
