onelang
Version:
OneLang transpiler framework core
28 lines (27 loc) • 1.07 kB
YAML
implements:
- interface: { name: One.Reflect, minver: 0.1, maxver: 0.1 }
language: python
implementation:
classes:
OneReflect:
includes: ["one"]
template: "one.Reflect"
templates:
endClass:
args: [class]
template: |-
{{if class.attributes["reflect"]}}
one.Reflect.setup_class(one.Class({{class.name}}, [
{{for field in class.fields|sep=\n}}
one.Field("{{field.name}}", {{if field.static}}True{{else}}False{{/if}}, "{{field.type}}"),
{{/for}}
], [
{{for method in class.methods|sep=\n}}
one.Method("{{method.name}}", {{if method.static}}True{{else}}False{{/if}}, "{{method.returnType}}", [
{{for param in method.parameters|sep=\n}}
one.MethodArgument("{{param.name}}", "{{param.type}}"),
{{/for}}
]),
{{/for}}
]));
{{/if}}