/**
  * @see parser.IDLParserVisitor#visit(ASTunary_expr, Object)
  */
 public Object visit(ASTunary_expr node, Object data) {          
     // evaluate the primary-expr
     Literal result = (Literal)node.jjtGetChild(0).jjtAccept(this, data);
     switch (node.GetUnaryOperation()) {
         case UnaryOps.UnaryNegate:
             result.Negate();
             break;
         case UnaryOps.UnaryMinus:
             result.InvertSign();
             break;
         default:
             // for UnaryOps.Plus and UnaryOps.None: nothing to do
             break;
     }        
     return result;
 }