protected boolean parseUnaryExpression(PsiBuilder builder) {
    if (builder.getTokenType() == XPathTokenTypes.MINUS) {
      final PsiBuilder.Marker expr = builder.mark();
      builder.advanceLexer();
      if (!parseUnionExpression(builder)) {
        builder.error(XPathBundle.message("parsing.error.expression.expected"));
      }
      expr.done(XPathElementTypes.PREFIX_EXPRESSION);
      return true;
    } else {
      return parseUnionExpression(builder);
    }
  }
protected boolean parseUnaryExpression(PsiBuilder builder)