/// <summary>
 /// Registers a postfix unary operator.
 /// </summary>
 /// <param name="operatorTokenKind">Operator token kind.</param>
 /// <param name="precedence">Precedence. The bigger the number the more priority in the expression the operator has.</param>
 /// <param name="unaryNodeBuilder">Unary node builder function.</param>
 public void Postfix(TokenKind operatorTokenKind, int precedence, UnaryNodeBuilder <TValue> unaryNodeBuilder)
 {
     Extend(operatorTokenKind, precedence, left => from symbol in operatorTokenKind.Lexeme() select unaryNodeBuilder(symbol, left));
 }
Example #2
0
 public void Postfix(TokenKind operation, int precedence, UnaryNodeBuilder <T> createUnaryNode)
 {
     Extend(operation, precedence, left => from symbol in Token(operation)
            select createUnaryNode(symbol, left));
 }
 /// <summary>
 /// Registers a prefix unary operator.
 /// </summary>
 /// <param name="operatorTokenKind">Operator token kind.</param>
 /// <param name="precedence">Precedence. The bigger the number the more priority in the expression the operator has.</param>
 /// <param name="unaryNodeBuilder">Unary node builder function.</param>
 public void Prefix(TokenKind operatorTokenKind, int precedence, UnaryNodeBuilder <TValue> unaryNodeBuilder)
 {
     Unit(operatorTokenKind, from symbol in operatorTokenKind.Lexeme() from operand in OperandAtPrecedenceLevel(precedence) select unaryNodeBuilder(symbol, operand));
 }
Example #4
0
 public void Prefix(TokenKind operation, int precedence, UnaryNodeBuilder <T> createUnaryNode)
 {
     Unit(operation, from symbol in Token(operation)
          from operand in OperandAtPrecedenceLevel(precedence)
          select createUnaryNode(symbol, operand));
 }