public override IProgramPart VisitUnarySign(FSQLParser.UnarySignContext context)
        {
            var right = Visit(context.right) as IExpression;
            var op    = context.op;

            return(op.Type != FSQLLexer.MINUS
                ? right
                : OneTermExpression.Create(right, r => r * -1, "-"));
        }
        public override IProgramPart VisitInvertBoolean(FSQLParser.InvertBooleanContext context)
        {
            var right = Visit(context.boolExpr) as IExpression;

            return(OneTermExpression.Create(right, r => !r, "NOT "));
        }