AjTalk.Compiler.VmCompiler.CompileInstanceMethod C# (CSharp) Метод

CompileInstanceMethod() публичный Метод

public CompileInstanceMethod ( string text, IBehavior cls ) : Method
text string
cls IBehavior
Результат AjTalk.Language.Method
        public Method CompileInstanceMethod(string text, IBehavior cls)
        {
            ModelParser parser = new ModelParser(text);
            var methodmodel = parser.ParseMethod();
            Method method = new Method(cls, methodmodel.Selector, text);
            BytecodeCompiler compiler = new BytecodeCompiler(method);
            compiler.CompileMethod(methodmodel);
            return method;
        }

Usage Example

Пример #1
0
        public void SendMessage()
        {
            Machine machine = new Machine();
            IClass cls = machine.CreateClass("MyClass", null, "x", string.Empty);
            VmCompiler compiler = new VmCompiler();
            var method = compiler.CompileInstanceMethod("x: value x := value", cls);
            cls.DefineInstanceMethod(method);
            BaseObject obj = new BaseObject(cls, new object[1]);
            RemoteObject ro = new RemoteObject(obj, null);

            machine.SendMessage(ro, "x:", new object[] { 10 }, null);

            Assert.AreEqual(10, obj[0]);
        }
All Usage Examples Of AjTalk.Compiler.VmCompiler::CompileInstanceMethod