All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.prezi.spaghetti.haxe.impl.HaxeModuleInitializerGeneratorVisitor.groovy Maven / Gradle / Ivy

package com.prezi.spaghetti.haxe.impl

import com.prezi.spaghetti.ast.ModuleNode
import com.prezi.spaghetti.ast.StringModuleVisitorBase

import static com.prezi.spaghetti.haxe.HaxeGenerator.HAXE_MODULE_VAR

class HaxeModuleInitializerGeneratorVisitor extends StringModuleVisitorBase {

	@Override
	String visitModuleNode(ModuleNode node) {
		def initializerName = "__" + node.alias + "Init"

		def initializerContents =
"""@:keep class ${initializerName} {
	public static var delayedInitFinished = delayedInit();
	static function delayedInit():Bool {
		untyped ${HAXE_MODULE_VAR} = new ${node.name}.__${node.alias}Proxy();
		return true;
	}
}
"""
		return initializerContents
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy