package akin.lang; /** Language runtime. Mostly helper methods for retrieving global values. */ public class AkinRuntime { static AkinClass objectClass; static AkinObject mainObject; static AkinObject nilObject; static AkinObject trueObject; static AkinObject falseObject; public static AkinClass getObjectClass() { return objectClass; } public static AkinObject getMainObject() { return mainObject; } public static AkinClass getRootClass(String name) { // objectClass is null when boostrapping return objectClass == null ? null : (AkinClass) objectClass.getConstant(name); } public static AkinClass getExceptionClass() { return getRootClass("Exception"); } public static AkinObject getNil() { return nilObject; } public static AkinObject getTrue() { return trueObject; } public static AkinObject getFalse() { return falseObject; } public static AkinObject toBoolean(boolean value) { return value ? AkinRuntime.getTrue() : AkinRuntime.getFalse(); } }