@@ -12,6 +12,8 @@ static ExpressionParser()
1212 {
1313 registerPrefixParselet ( TokenType . Identifier , new VariableParselet ( ) ) ;
1414 registerPrefixParselet ( TokenType . Numeric , new NumberParselet ( ) ) ;
15+ registerPrefixParselet ( TokenType . False , new FixValueParselet ( Value . Boolean ( false ) ) ) ;
16+ registerPrefixParselet ( TokenType . True , new FixValueParselet ( Value . Boolean ( true ) ) ) ;
1517 registerPrefixParselet ( TokenType . LeftParenthesis , new GroupParselet ( ) ) ;
1618 registerPrefixParselet ( TokenType . Minus , new PrefixOperatorParselet ( PrefixExpressionType . Negation , Precedences . PREFIX ) ) ;
1719 registerPrefixParselet ( TokenType . Plus , new PrefixOperatorParselet ( PrefixExpressionType . Positive , Precedences . PREFIX ) ) ;
@@ -21,11 +23,13 @@ static ExpressionParser()
2123 registerInfixParselet ( TokenType . Greater , new ComparisonParselet ( ComparisonExpressionType . Bigger , Precedences . COMPARISON , Associativity . Left ) ) ;
2224 registerInfixParselet ( TokenType . QuestionMark , new TernaryParselet ( ) ) ;
2325 registerInfixParselet ( TokenType . LeftParenthesis , new CallParselet ( ) ) ;
24- registerInfixParselet ( TokenType . Plus , new BinaryOperatorParselet ( BinaryExpressionType . Add , Precedences . SUM , Associativity . Left ) ) ;
25- registerInfixParselet ( TokenType . Minus , new BinaryOperatorParselet ( BinaryExpressionType . Sub , Precedences . SUM , Associativity . Left ) ) ;
26- registerInfixParselet ( TokenType . Star , new BinaryOperatorParselet ( BinaryExpressionType . Mul , Precedences . PRODUCT , Associativity . Left ) ) ;
27- registerInfixParselet ( TokenType . Slash , new BinaryOperatorParselet ( BinaryExpressionType . Div , Precedences . PRODUCT , Associativity . Left ) ) ;
28- registerInfixParselet ( TokenType . Pow , new BinaryOperatorParselet ( BinaryExpressionType . Pow , Precedences . EXPONENT , Associativity . Right ) ) ;
26+ registerInfixParselet ( TokenType . Plus , new BinaryOperatorParselet ( BinaryExpressionType . Addition , Precedences . SUM , Associativity . Left ) ) ;
27+ registerInfixParselet ( TokenType . Minus , new BinaryOperatorParselet ( BinaryExpressionType . Substraction , Precedences . SUM , Associativity . Left ) ) ;
28+ registerInfixParselet ( TokenType . Star , new BinaryOperatorParselet ( BinaryExpressionType . Multiplication , Precedences . PRODUCT , Associativity . Left ) ) ;
29+ registerInfixParselet ( TokenType . Identifier , new BinaryOperatorParselet ( BinaryExpressionType . Multiplication , Precedences . PRODUCT , Associativity . Left ) ) ;
30+ registerInfixParselet ( TokenType . Slash , new BinaryOperatorParselet ( BinaryExpressionType . Division , Precedences . PRODUCT , Associativity . Left ) ) ;
31+ registerInfixParselet ( TokenType . Pow , new BinaryOperatorParselet ( BinaryExpressionType . Power , Precedences . EXPONENT , Associativity . Right ) ) ;
32+ registerInfixParselet ( TokenType . Percent , new BinaryOperatorParselet ( BinaryExpressionType . Modulo , Precedences . PRODUCT , Associativity . Left ) ) ;
2933 }
3034
3135 static void registerPrefixParselet ( TokenType tokenType , IPrefixParselet prefixParselet )
0 commit comments