UNPKG

onelang

Version:

OneLang transpiler framework core

28 lines (27 loc) 1.06 kB
implements: - interface: { name: One.Reflect, minver: 0.1, maxver: 0.1 } language: perl implementation: classes: OneReflect: includes: [one] template: "OneReflect" templates: endClass: args: [class] template: |- {{if class.attributes["reflect"]}} OneReflect::setup_class(new OneClass("{{class.name}}", [ {{for field in class.fields|sep=\n}} new OneField("{{field.name}}", {{if field.static}}1{{else}}0{{/if}}, "{{field.type}}"), {{/for}} ], [ {{for method in class.methods|sep=\n}} new OneMethod("{{method.name}}", {{if method.static}}1{{else}}0{{/if}}, "{{method.returnType}}", [ {{for param in method.parameters|sep=\n}} new OneMethodArgument("{{param.name}}", "{{param.type}}"), {{/for}} ]), {{/for}} ])); {{/if}}