Beispiel #1
0
        private IAppliable GetUnaryFunction(UnaryOperator.Opcode op)
        {
            UnaryOperator function = null;

            try
            {
                function = UnaryOperatorCache[op];
            }
            catch (KeyNotFoundException)
            {
                function = new UnaryOperator(Token.NoToken, op);
                UnaryOperatorCache[op] = function;
            }
            return(function);
        }
Beispiel #2
0
        private static NAryExpr GetUnaryOperator(Expr e, UnaryOperator.Opcode opcode)
        {
            var nary = e as NAryExpr;

            if (nary == null)
            {
                return(null);
            }

            var fun = nary.Fun;

            if (fun is UnaryOperator)
            {
                var unary = fun as UnaryOperator;
                if (unary.Op == opcode)
                {
                    return(nary);
                }
            }
            return(null);
        }
        public static Term Unop(UnaryOperator.Opcode opcode, Term arg)
        {
            string uopIsa;

            switch (opcode)
            {
            case UnaryOperator.Opcode.Not:
                uopIsa = "Not";
                break;

            case UnaryOperator.Opcode.Neg:
                uopIsa = "UMinus";
                break;

            default:
                throw new NotImplementedException();
            }

            var list = new List <Term> {
                IsaCommonTerms.TermIdentFromName(uopIsa), arg
            };

            return(new TermApp(IsaCommonTerms.TermIdentFromName("UnOp"), list));
        }