code: private void parseUnaryExpr() throws TTXPathException {
  
          boolean isUnaryMinus = false;
  
          // the plus can be ignored since it does not modify the result
          while (is(TokenType.PLUS, true) || mToken.getType() == TokenType.MINUS) {
  
              if (is(TokenType.MINUS, true)) {
                  // two following minuses is a plus and therefore can be ignored,
                  // thus only in case of an odd number of minus signs, the unary
                  // operation
                  // has to be processed
                  isUnaryMinus = !isUnaryMinus;
              }
          }
  
          if (isUnaryMinus) {
              // unary minus has to be processed
  
              mPipeBuilder.addExpressionSingle();
  
              parseValueExpr();
              mPipeBuilder.addOperatorExpression(getTransaction(), "unary");
  
          } else {
  
              parseValueExpr();
          }
      }
docs: Parses the the rule UnaryExpr according to the following production rule:
  <p>
  [20] UnaryExpr ::= ("-" | "+")* ValueExpr .
  </p>
  
  @throws TTXPathException