Search in sources :

Example 1 with ZenNativeMember

use of stanhebben.zenscript.type.natives.ZenNativeMember in project ZenScript by CraftTweaker.

the class ParsedZenClass method addMethod.

private void addMethod(ParsedZenClassMethod parsedMethod) {
    ParsedFunction method = parsedMethod.method;
    methods.add(parsedMethod);
    if (!members.containsKey(method.getName())) {
        members.put(method.getName(), new ZenNativeMember());
        classEnvironment.putValue(method.getName(), position1 -> new ExpressionThis(position1, type).getMember(position1, classEnvironment, method.getName()), position);
    }
    parsedMethod.addToMember(members.get(method.getName()));
    for (int i = 0; i < method.getArguments().size(); i++) {
        ParsedFunctionArgument argument = method.getArguments().get(i);
        if (argument.getDefaultExpression() != null) {
            addField(new ParsedZenClassField(true, argument.getType(), argument.getDefaultExpression(), method.getDefaultParameterFieldName(i), className));
        }
    }
}
Also used : ParsedFunction(stanhebben.zenscript.definitions.ParsedFunction) ExpressionThis(stanhebben.zenscript.expression.ExpressionThis) ZenNativeMember(stanhebben.zenscript.type.natives.ZenNativeMember) ParsedFunctionArgument(stanhebben.zenscript.definitions.ParsedFunctionArgument)

Aggregations

ParsedFunction (stanhebben.zenscript.definitions.ParsedFunction)1 ParsedFunctionArgument (stanhebben.zenscript.definitions.ParsedFunctionArgument)1 ExpressionThis (stanhebben.zenscript.expression.ExpressionThis)1 ZenNativeMember (stanhebben.zenscript.type.natives.ZenNativeMember)1