public void BuildInTest416()
 {
     Assert.Equal(
         FuncFalse,
         FunctionBuilder.BuildIn((IEnumerable <KeyGuid>)null));
 }
 public void BuildInTest423()
 {
     Assert.Equal(FunctionBuilder.BuildEquals(Guid1), FunctionBuilder.BuildIn(new List <Guid> {
         Guid1
     }));                                                                                                 // eq
 }
 public void BuildInTest402()
 {
     Assert.Throws <ArgumentNullException>(() => FunctionBuilder.BuildIn(NullObjects));
 }
 public void BuildInTest409()
 {
     Assert.Equal(
         FunctionBuilder.BuildIn(SQLWhereLanguageDef.StormMainObjectKey, KeyGuid1, KeyGuid2),
         FunctionBuilder.BuildIn(KeyGuid1, KeyGuid2)); // in
 }
 public void BuildInTest411()
 {
     Assert.Equal(
         FunctionBuilder.BuildIn(SQLWhereLanguageDef.StormMainObjectKey, TestDataObject1, TestDataObject2),
         FunctionBuilder.BuildIn(TestDataObject1, TestDataObject2)); // in
 }
Exemple #6
0
        private Protobuf.Transaction CreateContractMethodCallTx <TInput>(TInput functionInput, out FunctionBuilder <TInput> functionBuilder)
        {
            functionBuilder = this.contractBuilder.GetFunctionBuilder <TInput>();
            CallInput callInput = functionBuilder.CreateCallInput(functionInput);

            return(this.CreateContractMethodCallTx(callInput.Data, Protobuf.VMType.Evm));
        }
 public void BuildInTest422()
 {
     Assert.Equal(
         FuncFalse,
         FunctionBuilder.BuildIn(Enumerable.Empty <int>()));
 }
Exemple #8
0
 /*
  * The building stops when the "end" token is reached.
  */
 internal InterpreterStep(Interpreter interp, string end)
 {
     this.interp = interp;
     this.end    = end;
     builder     = interp.CurrentBuilder;
 }
 public void BuildInTest502()
 {
     Assert.Throws <ArgumentNullException>(() => FunctionBuilder.BuildIn(GuidVarDef, NullFunction));
 }
Exemple #10
0
 public void BuildLessTest44()
 {
     Assert.Equal(
         LangDef.GetFunction(LangDef.funcL, DateGenVarDef, DateTime1),
         FunctionBuilder.BuildLess <TestDataObject>(x => x.BirthDate, DateTime1));
 }
Exemple #11
0
        public void Run()
        {
            var builder = new FunctionBuilder();
            builder.fileName = Path.GetFileName(filePath);

            var lines = File.ReadAllLines(filePath);
            for (uint lineNum = 0; lineNum < lines.Length; lineNum++)
            {
                var line = lines[lineNum].Trim();
                if (line.Length == 0 || line.StartsWith(";"))
                    continue;

                // make sure the builder knows what line we're on, woo.
                builder.currentLineNumber = lineNum + 1;

                var command = (line.Contains(" ") ? line.Substring(0, line.IndexOf(' ')) : line).ToLower();
                var rest = line.Substring(command.Length).Trim();

                if (command.StartsWith("."))
                {
                    switch (command.Substring(1))
                    {
                        case "fn":
                            var paramNames = rest.Split(' ');
                            builder = new FunctionBuilder(builder);
                            builder.currentLineNumber = lineNum + 1;
                            for (int i = 0; i < paramNames.Length; i++)
                                builder.AddParameter(paramNames[i]);
                            continue;
                        case "endfn":
                            var proto = builder.Build();
                            builder = builder.parent;
                            builder.OpClosure(proto);
                            continue;
                        default: Console.WriteLine(command); throw new ArgumentException();
                    }
                }
                else
                {
                    switch (command)
                    {
                        case "nop": CheckEmpty(rest); builder.OpNop(); continue;
                        case "pop": CheckEmpty(rest); builder.OpPop(); continue;
                        case "dup": CheckEmpty(rest); builder.OpDup(); continue;

                        case "jump": builder.OpJump((uint)(builder.InsnCount + int.Parse(rest) + 1)); continue;
                        case "jumpeq": builder.OpJumpEq((uint)(builder.InsnCount + int.Parse(rest) + 1)); continue;
                        case "jumpneq": builder.OpJumpNeq((uint)(builder.InsnCount + int.Parse(rest) + 1)); continue;
                        case "jumpt": builder.OpJumpT((uint)(builder.InsnCount + int.Parse(rest) + 1)); continue;
                        case "jumpf": builder.OpJumpF((uint)(builder.InsnCount + int.Parse(rest) + 1)); continue;

                        case "lload":
                        {
                            CheckSymbol(rest);
                            uint location;
                            if (builder.GetLocalLocation(rest, out location))
                                builder.OpLLoad(location);
                            else throw new ArgumentException();
                        } continue;
                        case "lstore":
                        {
                            CheckSymbol(rest);
                            uint location;
                            if (builder.GetLocalLocation(rest, out location))
                                builder.OpLStore(location);
                            else throw new ArgumentException();
                        } continue;
                        case "oload":
                        {
                            CheckSymbol(rest);
                            uint location;
                            if (builder.GetOuterLocation(rest, out location))
                                builder.OpOLoad(location);
                            else throw new ArgumentException();
                        } continue;
                        case "ostore":
                        {
                            CheckSymbol(rest);
                            uint location;
                            if (builder.GetOuterLocation(rest, out location))
                                builder.OpOStore(location);
                            else throw new ArgumentException();
                        } continue;
                        case "kload": CheckSymbol(rest); builder.OpKLoad(rest); continue;
                        case "kstore": CheckSymbol(rest); builder.OpKStore(rest); continue;
                        case "gload": CheckSymbol(rest); builder.OpGLoad(rest); continue;
                        case "gstore": CheckSymbol(rest); builder.OpGStore(rest); continue;
                        case "iload": CheckEmpty(rest); builder.OpILoad(uint.Parse(rest)); continue;
                        case "istore": CheckEmpty(rest); builder.OpIStore(uint.Parse(rest)); continue;
                        case "fload": CheckSymbol(rest); builder.OpFLoad(rest); continue;
                        case "fstore": CheckSymbol(rest); builder.OpFStore(rest); continue;
                        case "load": CheckSymbol(rest); builder.OpLoad(rest); continue;
                        case "store": CheckSymbol(rest); builder.OpStore(rest); continue;

                        case "null": CheckEmpty(rest); builder.OpNull(); continue;
                        case "bconst": builder.OpBConst(bool.Parse(rest)); continue;

                        case "iconst": builder.OpIConst(Laye.ConvertToInt(rest)); continue;
                        case "fconst": builder.OpFConst(Laye.ConvertToFloat(rest)); continue;

                        case "invoke": builder.OpInvoke(uint.Parse(rest)); continue;

                        case "prefix": CheckOperator(rest); builder.OpPrefix(rest); continue;
                        case "infix": CheckOperator(rest); builder.OpInfix(rest); continue;

                        case "compis": CheckEmpty(rest); builder.OpCompIs(); continue;
                        case "compnotis": CheckEmpty(rest); builder.OpCompNotIs(); continue;
                        case "comptypeof": CheckEmpty(rest); builder.OpCompTypeOf(); continue;
                        case "compnottypeof": CheckEmpty(rest); builder.OpCompNotTypeOf(); continue;
                        case "typeof": CheckEmpty(rest); builder.OpTypeOf(); continue;

                        default: Console.WriteLine(command); throw new ArgumentException();
                    }
                }
            }

            var kit = new LayeKit();
            var closure = new LayeClosure(kit, builder.Build());
            var lstate = new LayeState();
            /*
            lstate["println"] = (LayeCallback)((state, args) =>
            {
                var sbuilder = new StringBuilder();
                for (int i = 0; i < args.Length; i++)
                {
                    if (i > 0)
                        sbuilder.Append(" ");
                    sbuilder.Append(args[i].ToString());
                }
                Console.WriteLine(sbuilder);
                return LayeObject.NULL;
            }); */
            closure.Invoke(lstate);
        }
Exemple #12
0
 public void BuildLessTest43()
 {
     Assert.Equal(
         LangDef.GetFunction(LangDef.funcL, IntGenVarDef, Int1),
         FunctionBuilder.BuildLess <TestDataObject>(x => x.Height, Int1));
 }
Exemple #13
0
 public void BuildLessTest42()
 {
     Assert.Throws <FormatException>(() => FunctionBuilder.BuildLess <TestDataObject>(x => x.Height, "asd"));
 }
Exemple #14
0
 public void BuildLessTest41()
 {
     Assert.Throws <ArgumentNullException>(() => FunctionBuilder.BuildLess <TestDataObject>(x => x.Height, NullObject));
 }
Exemple #15
0
 public void BuildLessTest33()
 {
     FunctionBuilder.BuildLess(NumericVarDef, Int1);
 }
 public void BuildInTest503()
 {
     Assert.Throws <ArgumentNullException>(() => FunctionBuilder.BuildIn(NullLambda, NullFunction));
 }
Exemple #17
0
        private Protobuf.Transaction CreateContractMethodCallTx(string method, object[] functionInput, out FunctionBuilder functionBuilder)
        {
            functionBuilder = this.contractBuilder.GetFunctionBuilder(method);
            CallInput callInput = functionBuilder.CreateCallInput(functionInput);

            return(this.CreateContractMethodCallTx(callInput.Data, Protobuf.VMType.Evm));
        }
 public void BuildInTest504()
 {
     Assert.Throws <ArgumentNullException>(() => FunctionBuilder.BuildIn <TestDataObject>(x => x.Height, NullFunction));
 }
 public void BuildInTest421()
 {
     Assert.Equal(
         FuncFalse,
         FunctionBuilder.BuildIn(Enumerable.Empty <TestDataObject>()));
 }
 public void BuildInTest510()
 {
     Assert.Equal(
         LangDef.GetFunction(LangDef.funcIN, PrimaryKeyVarDef, FuncSQL),
         FunctionBuilder.BuildIn(FuncSQL));
 }
 public void BuildInTest408()
 {
     Assert.Equal(FunctionBuilder.BuildEquals(Guid1), FunctionBuilder.BuildIn(Guid1, Guid1)); // eq
 }
 public void BuildInTest511()
 {
     Assert.Equal(
         LangDef.GetFunction(LangDef.funcIN, GuidVarDef, FuncSQL),
         FunctionBuilder.BuildIn(GuidVarDef, FuncSQL));
 }
 public void BuildInTest410()
 {
     Assert.Equal(FunctionBuilder.BuildEquals(KeyGuid1), FunctionBuilder.BuildIn(KeyGuid1, KeyGuid1)); // eq
 }
 public void BuildInTest512()
 {
     Assert.Equal(
         LangDef.GetFunction(LangDef.funcIN, IntGenVarDef, FuncSQL),
         FunctionBuilder.BuildIn <TestDataObject>(x => x.Height, FuncSQL));
 }
 public void BuildInTest412()
 {
     Assert.Equal(
         FunctionBuilder.BuildEquals(TestDataObject1),
         FunctionBuilder.BuildIn(TestDataObject1, TestDataObject1)); // eq
 }
Exemple #26
0
        public Body(string code)
        {
            FunctionBuilder fb = new FunctionBuilder();

            fb.BuildTree(code, this);
        }
 public void BuildInTest401()
 {
     Assert.Equal(
         FuncFalse,
         FunctionBuilder.BuildIn(NullObject));
 }
Exemple #28
0
        public void Constructor_NullCache_ArgumentNullExceptionThrown()
        {
            IFunctionBuilder functionBuilder = new FunctionBuilder();

            Assert.Throws <ArgumentNullException>(() => new DtoMapper(functionBuilder, null));
        }
 public void BuildInTest414()
 {
     Assert.Equal(
         FuncFalse,
         FunctionBuilder.BuildIn(1, 1));
 }
Exemple #30
0
        private string CreateContractMethodCallInput(string method, object[] functionInput, out FunctionBuilder functionBuilder)
        {
            functionBuilder = this.contractBuilder.GetFunctionBuilder(method);
            CallInput callInput = functionBuilder.CreateCallInput(functionInput);

            return(callInput.Data);
        }
Exemple #31
0
 internal FunctionCompiler(DetailLogger log, FunctionBuilder parent = null, string fileName = null)
 {
     this.log = log;
     builder = new FunctionBuilder(parent, fileName);
 }
Exemple #32
0
 public void BuildLessTest32()
 {
     Assert.Throws <ArgumentNullException>(() => FunctionBuilder.BuildLess(NumericVarDef, NullObject));
 }