/**************************************************************************/ /* aethex_script.h */ /**************************************************************************/ /* This file is part of: */ /* AETHEX ENGINE */ /* https://aethex.foundation */ /**************************************************************************/ /* Copyright (c) 2026-present AeThex Labs. */ /* Based on Godot Engine, MIT License. */ /**************************************************************************/ #pragma once #include "core/io/resource_loader.h" #include "core/io/resource_saver.h" #include "core/object/script_language.h" #include "core/templates/rb_set.h" class AeThexScript; class AeThexScriptInstance; /** * AeThex Scripting Language * * A cross-platform scripting language that can: * - Run natively in the AeThex Engine * - Export to Roblox (Lua) * - Export to UEFN (Verse) * - Export to Unity (C#) * - Export to Web (JavaScript) * * Syntax example: * reality MyGame { * platforms: [roblox, uefn, web] * } * * journey OnPlayerJoin(player) { * notify "Welcome, " + player.name + "!" * sync player.data across [roblox, uefn] * } */ class AeThexScriptLanguage : public ScriptLanguage { static AeThexScriptLanguage *singleton; HashMap global_constants; public: static AeThexScriptLanguage *get_singleton() { return singleton; } // Language identification virtual String get_name() const override { return "AeThex"; } virtual String get_type() const override { return "AeThexScript"; } virtual String get_extension() const override { return "aethex"; } // Script management virtual void init() override; virtual void finish() override; virtual bool supports_builtin_mode() const override { return true; } virtual bool can_inherit_from_file() const override { return true; } // Execution virtual Vector get_reserved_words() const override; virtual bool is_control_flow_keyword(const String &p_keyword) const override; virtual Vector get_comment_delimiters() const override; virtual Vector get_doc_comment_delimiters() const override; virtual Vector get_string_delimiters() const override; // Template generation virtual Ref