From 4bd16214f0c6d2b4079b01d68b7e36ad408406d4 Mon Sep 17 00:00:00 2001 From: Mike Buland Date: Tue, 23 Apr 2013 13:15:06 -0600 Subject: Now supports modulus (strange for fractions). --- src/parser.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'src/parser.cpp') diff --git a/src/parser.cpp b/src/parser.cpp index 5bb0aa6..df9e869 100644 --- a/src/parser.cpp +++ b/src/parser.cpp @@ -239,6 +239,18 @@ void Parser::unwind() ); } break; + + case Token::tModulus: + { + Token b = tsTerminal.peekPop(); + Token a = tsTerminal.peekPop(); + tsTerminal.push( + Token( Token::tNumber, + new Number( deref(a) % deref(b) ) + ) + ); + } + break; case Token::tOpenParen: tsNonTerminal.push( t ); @@ -296,6 +308,7 @@ int Parser::reqTokens( Token::Type eType ) case Token::tMinus: case Token::tDivide: case Token::tMultiply: + case Token::tModulus: case Token::tEquals: return 2; @@ -326,6 +339,7 @@ int Parser::getPriority( Token::Type eType ) case Token::tDivide: case Token::tMultiply: + case Token::tModulus: return 2; case Token::tOpenParen: -- cgit v1.2.3