public MethodEmitter CreateMethod(String name, MethodAttributes attributes) { MethodEmitter member = new MethodEmitter(this, name, attributes); methods.Add(member); return(member); }
public MethodEmitter CreateMethod(string name, MethodAttributes attrs, Type returnType, params Type[] argumentTypes) { var member = new MethodEmitter(this, name, attrs, returnType, argumentTypes ?? Type.EmptyTypes); methods.Add(member); return(member); }
/// <summary> /// Initializes a new instance of the MslScriptEngine class. /// </summary> public MslScriptEngine() { language = new LanguageDefinition("MSL", new string[] { "mrc", "ini" }, LanguageFeatures.Procedural | LanguageFeatures.TypeSave); publishedMethods = new MethodCollection(); Type scriptTextMethods = typeof(MslStringMethods); MethodInfo info = scriptTextMethods.GetMethod("Left"); publishedMethods.Add("+", new MultiParamIdentifierDelegate(MslStringMethods.Concat)); publishedMethods.Add("left", new MslStringMethods.LeftDelegate(MslStringMethods.Left)); publishedMethods.Add("me", new SimpleStringIdentifier(MslDummyMethods.Me)); publishedMethods.Add("true", new SimpleStringIdentifier(MslDummyMethods.True)); publishedMethods.Add("false", new SimpleStringIdentifier(MslDummyMethods.False)); }
internal ClassDefinition(JavaClassImage classImage) : base(classImage, (ClassInfo)classImage.ClassFile.ConstantPool.ResolveConstant(classImage.ClassFile.ThisClass)) { Image = classImage; // Super class _superClass = new LazyValue <ClassReference>(() => classImage.ClassFile.SuperClass != 0 ? new ClassReference(classImage, (ClassInfo)classImage.ClassFile.ConstantPool.ResolveConstant(classImage.ClassFile.SuperClass)) : null); // Flags AccessFlags = classImage.ClassFile.AccessFlags; // Fields Fields = new FieldCollection(this); foreach (var field in classImage.ClassFile.Fields) { Fields.Add(new FieldDefinition(classImage, field)); } // Methods Methods = new MethodCollection(this); foreach (var method in classImage.ClassFile.Methods) { Methods.Add(new MethodDefinition(classImage, method)); } }
public Pipeline <Request> Call <Handler>(Action <Handler, Request> action) { Action <object, Request> typedHandler = (h, r) => action((Handler)h, (Request)r); var method = new Method <Action <object, Request>, Request>(typeof(Handler), typedHandler); _methods.Add(method); return(this); }
public AsyncPipeline <Request> Call <Handler>(Func <Handler, Request, Task> action) { Func <object, Request, Task> typedHandler = async(h, r) => await action((Handler)h, (Request)r); var method = new Method <Func <object, Request, Task>, Request>(typeof(Handler), typedHandler); _methods.Add(method); return(this); }
internal ClassDefinition(JavaClassImage classImage) : base(classImage, (ClassInfo)classImage.ClassFile.ConstantPool.ResolveConstant(classImage.ClassFile.ThisClass)) { Image = classImage; // Super class _superClass = new LazyValue <ClassReference>(() => classImage.ClassFile.SuperClass != 0 ? new ClassReference(classImage, (ClassInfo)classImage.ClassFile.ConstantPool.ResolveConstant(classImage.ClassFile.SuperClass)) : null); // Flags AccessFlags = classImage.ClassFile.AccessFlags; // Fields Fields = new FieldCollection(this); foreach (var field in classImage.ClassFile.Fields) { Fields.Add(new FieldDefinition(classImage, field)); } // Methods Methods = new MethodCollection(this); foreach (var method in classImage.ClassFile.Methods) { Methods.Add(new MethodDefinition(classImage, method)); } // Attributes foreach (var attr in classImage.ClassFile.Attributes) { string name = classImage.ClassFile.ConstantPool.ResolveString(attr.NameIndex); switch (name) { // Source file case SingleIndexAttribute.SourceFileAttribute: _sourceFile = new LazyValue <string>(() => { var sourceFile = SingleIndexAttribute.FromReader(name, new MemoryBigEndianReader(attr.Contents)); return(classImage.ClassFile.ConstantPool.ResolveString(sourceFile.ConstantPoolIndex)); }); break; default: ExtraAttributes.Add(name, attr.Clone()); break; } } }