summaryrefslogtreecommitdiff
path: root/parser.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'parser.cpp')
-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});