コード例 #1
0
        public static Lambda Id()
        {
            var builder = new CodeBuilder();

            builder.Parameter("$0");
            builder.Variable("$0");
            return(builder.Lambda());
        }
コード例 #2
0
        public static Lambda FPut()
        {
            var builder = new CodeBuilder();

            builder.Parameter("$0");
            builder.Variable("$0");
            builder.Operator("|>");
            builder.Variable("put");
            return(builder.Lambda());
        }
コード例 #3
0
        public static Lambda AddOne()
        {
            var builder = new CodeBuilder();

            builder.Parameter("$0");
            builder.Variable("$0");
            builder.Operator("+");
            builder.Value(1);
            return(builder.Lambda());
        }
コード例 #4
0
        protected override void setValue(string name, Value value, VisibilityType visibility, bool overriding, bool allowNil, int index)
        {
            base.setValue(name, value, visibility, overriding, allowNil, index);
            if (value is InvokableReference)
            {
                return;
            }

            var builder = new CodeBuilder();

            builder.Parameter("$0");
            builder.AssignToField(name, new Variable("$0"), index);
            var lambda        = builder.Lambda();
            var setterName    = SetterName(name);
            var invokableName = InvokableName(setterName);

            State.SetInvokable(invokableName, lambda);
            base.setValue(setterName, new InvokableReference(invokableName), VisibilityType.Public, false, false, index);
            removeAbstracts(name);
        }
コード例 #5
0
 public void Parameter(string name, Value defaultValue  = null,
                       Object.VisibilityType visibility = Object.VisibilityType.Public, bool readOnly = false, bool lazy = false)
 {
     builder.Parameter(name, defaultValue, visibility, readOnly, lazy);
 }