aboutsummaryrefslogtreecommitdiff
path: root/src/parser.cpp
diff options
context:
space:
mode:
authorAndrew Kelley <superjoe30@gmail.com>2016-01-25 15:45:05 -0700
committerAndrew Kelley <superjoe30@gmail.com>2016-01-25 15:45:05 -0700
commitdeb35868841fc3eb99228fe102a5b8ed1991d51f (patch)
treee84077cf298eec6f95cd3a75f1f05cd4cb0b501f /src/parser.cpp
parentc0dc0ca6c90649f157dfcb43c7ec69fa4b5f6b09 (diff)
downloadzig-deb35868841fc3eb99228fe102a5b8ed1991d51f.tar.gz
zig-deb35868841fc3eb99228fe102a5b8ed1991d51f.zip
implement %% prefix operator
See #23 also make undefined constants use llvm undef value
Diffstat (limited to 'src/parser.cpp')
-rw-r--r--src/parser.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/parser.cpp b/src/parser.cpp
index 425651a4a2..b34d76aba3 100644
--- a/src/parser.cpp
+++ b/src/parser.cpp
@@ -64,6 +64,7 @@ static const char *prefix_op_str(PrefixOp prefix_op) {
case PrefixOpDereference: return "*";
case PrefixOpMaybe: return "?";
case PrefixOpError: return "%";
+ case PrefixOpUnwrapError: return "%%";
}
zig_unreachable();
}
@@ -1664,6 +1665,7 @@ static PrefixOp tok_to_prefix_op(Token *token) {
case TokenIdStar: return PrefixOpDereference;
case TokenIdMaybe: return PrefixOpMaybe;
case TokenIdPercent: return PrefixOpError;
+ case TokenIdPercentPercent: return PrefixOpUnwrapError;
case TokenIdBoolAnd: return PrefixOpAddressOf;
default: return PrefixOpInvalid;
}