summaryrefslogtreecommitdiffhomepage
path: root/dev/libMsg
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@nekernel.org>2025-08-16 19:56:21 +0200
committerGitHub <noreply@github.com>2025-08-16 19:56:21 +0200
commit1a32b9307357ac0fc9095e853b2b6d94f9fe62bb (patch)
treef41f723659c8926e38182fbe062746d821ab487e /dev/libMsg
parenteb9df5eea339812513c25a8d3b2eeb03c633e7ac (diff)
parentb301047903b79560dce69085fc271a653a1eb4b6 (diff)
Merge pull request #55 from nekernel-org/dev
v0.0.4
Diffstat (limited to 'dev/libMsg')
-rw-r--r--dev/libMsg/.keep0
-rw-r--r--dev/libMsg/MsgKit/Network.h9
-rw-r--r--dev/libMsg/MsgKit/Server.h40
-rw-r--r--dev/libMsg/obj/.keep0
-rw-r--r--dev/libMsg/script/window_client.json7
-rw-r--r--dev/libMsg/src/.keep0
6 files changed, 56 insertions, 0 deletions
diff --git a/dev/libMsg/.keep b/dev/libMsg/.keep
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/dev/libMsg/.keep
diff --git a/dev/libMsg/MsgKit/Network.h b/dev/libMsg/MsgKit/Network.h
new file mode 100644
index 00000000..7dd56877
--- /dev/null
+++ b/dev/libMsg/MsgKit/Network.h
@@ -0,0 +1,9 @@
+/* -------------------------------------------
+
+ Copyright (C) 2025, Amlal El Mahrouss, all rights reserved.
+
+------------------------------------------- */
+
+#pragma once
+
+#include <libMsg/MsgKit/Server.h> \ No newline at end of file
diff --git a/dev/libMsg/MsgKit/Server.h b/dev/libMsg/MsgKit/Server.h
new file mode 100644
index 00000000..4fa73ccc
--- /dev/null
+++ b/dev/libMsg/MsgKit/Server.h
@@ -0,0 +1,40 @@
+/* -------------------------------------------
+
+ Copyright (C) 2025, Amlal El Mahrouss, all rights reserved.
+
+------------------------------------------- */
+
+#pragma once
+
+#ifdef __cplusplus
+#include <public/frameworks/CoreFoundation.fwrk/headers/String.h>
+#else
+#include <libSystem/SystemKit/System.h>
+#endif
+
+/// @author Amlal El Mahrouss
+/// @brief libMsg LISP system.
+
+struct LIBMSG_EXPR;
+
+/// @brief an expression chain of LibMSG.
+struct LIBMSG_EXPR final {
+#ifdef __cplusplus
+ CF::CFString* l_key{nullptr};
+ CF::CFString* l_value{nullptr};
+#else
+ VoidPtr l_key{nullptr};
+ VoidPtr l_value{nullptr};
+#endif
+
+ LIBMSG_EXPR* l_head{nullptr};
+ LIBMSG_EXPR* l_tail{nullptr};
+ LIBMSG_EXPR* l_child{nullptr};
+};
+
+/// @brief Function type for LibMSG lisp.
+typedef Void (*libmsg_func_t)(LIBMSG_EXPR* self, VoidPtr arg, SizeT arg_size);
+
+IMPORT_C Void libmsg_init_library(libmsg_func_t* funcs, SizeT cnt);
+IMPORT_C UInt32 libmsg_close_library(Void);
+IMPORT_C UInt32 libmsg_eval_expr(struct LIBMSG_EXPR* head);
diff --git a/dev/libMsg/obj/.keep b/dev/libMsg/obj/.keep
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/dev/libMsg/obj/.keep
diff --git a/dev/libMsg/script/window_client.json b/dev/libMsg/script/window_client.json
new file mode 100644
index 00000000..4c8a21ba
--- /dev/null
+++ b/dev/libMsg/script/window_client.json
@@ -0,0 +1,7 @@
+{
+ "id": 1,
+ "pos": { "x": 100, "y": 100 },
+ "size": { "w": 300, "h": 200 },
+ "title": "Window Client",
+ "on-click": "_OnClickCSymbol"
+} \ No newline at end of file
diff --git a/dev/libMsg/src/.keep b/dev/libMsg/src/.keep
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/dev/libMsg/src/.keep