summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortomsmeding <tom.smeding@gmail.com>2017-02-05 21:45:02 +0100
committertomsmeding <tom.smeding@gmail.com>2017-02-05 21:45:02 +0100
commit1f0e7223abf65c599e6e63d77965570cd7ab7312 (patch)
tree68a9137189d9f01a68cba4b21a4810a1a2b5b754
parent76500bc57fa7d27c73905739a12520706f817534 (diff)
Fix if parsing
-rw-r--r--parser.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/parser.cpp b/parser.cpp
index 54b0c0c..e2d157c 100644
--- a/parser.cpp
+++ b/parser.cpp
@@ -385,12 +385,14 @@ static Expression parseAtom(Tokeniser &tokeniser){
if(tok2.type!=Token::Type::word||tok2.str!="then"){
throw ParseError(tok2.site,"Expected 'then' but got '"+tok2.str+"'");
}
+ tokeniser.advance();
Expression ex1=parseExpression(tokeniser);
if(tokeniser.eof())throw ParseError(tokeniser.site(),"Expected 'else' but found EOF");
tok2=tokeniser.get();
if(tok2.type!=Token::Type::word||tok2.str!="else"){
throw ParseError(tok2.site,"Expected 'else' but got '"+tok2.str+"'");
}
+ tokeniser.advance();
Expression ex2=parseExpression(tokeniser);
return Expression(Expression::Type::cond,{cond,ex1,ex2});