summaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorsanine <sanine.not@pm.me>2021-09-04 12:24:57 -0500
committersanine <sanine.not@pm.me>2021-09-04 12:24:57 -0500
commit0b55e12f7f9fc98d22b2bead44d064af8c3f92c4 (patch)
treea3d9529f974da21544ecb55137f3219045b4ab63 /examples
parentfc8f1758d7c6a21851c5c475254b07da891a7592 (diff)
remove va_nargs.h and begin adding examples
Diffstat (limited to 'examples')
-rw-r--r--examples/argument_parsing/#argument_parsing.c#28
-rw-r--r--examples/argument_parsing/argument_parsing.c23
-rwxr-xr-xexamples/table_creation/a.outbin0 -> 26712 bytes
-rw-r--r--examples/table_creation/table_creation.c28
4 files changed, 79 insertions, 0 deletions
diff --git a/examples/argument_parsing/#argument_parsing.c# b/examples/argument_parsing/#argument_parsing.c#
new file mode 100644
index 0000000..38309db
--- /dev/null
+++ b/examples/argument_parsing/#argument_parsing.c#
@@ -0,0 +1,28 @@
+#include <honeysuckle.h>
+
+int demo(lua_State *L)
+{
+ lua_Integer i;
+ lua_Number n;
+ char *string;
+ hs_parse_args(L, hs_int(i), hs_num(n), hs_str(string));
+ printf("received %d, %f, and %s\n", i, n, string);
+ return 0;
+}
+
+int main()
+{
+ lua_State *L = luaL_newstate();
+ luaL_openlibs(L);
+
+ lua_pushcfunction(L, demo);
+ lua_setglobal(L, "demo");
+
+ luaL_dostring("demo(12, 34.4, 'hi there!')");
+ return 0;
+}
+
+grindr
+hinge
+bumble
+lex
diff --git a/examples/argument_parsing/argument_parsing.c b/examples/argument_parsing/argument_parsing.c
new file mode 100644
index 0000000..11a48f4
--- /dev/null
+++ b/examples/argument_parsing/argument_parsing.c
@@ -0,0 +1,23 @@
+#include <honeysuckle.h>
+
+int demo(lua_State *L)
+{
+ lua_Integer i;
+ lua_Number n;
+ char *string;
+ hs_parse_args(L, hs_int(i), hs_num(n), hs_str(string));
+ printf("received %ld, %f, and %s\n", i, n, string);
+ return 0;
+}
+
+int main()
+{
+ lua_State *L = luaL_newstate();
+ luaL_openlibs(L);
+
+ lua_pushcfunction(L, demo);
+ lua_setglobal(L, "demo");
+
+ luaL_dostring(L, "demo(12, 34.4, 'hi there!')");
+ return 0;
+}
diff --git a/examples/table_creation/a.out b/examples/table_creation/a.out
new file mode 100755
index 0000000..0e506e3
--- /dev/null
+++ b/examples/table_creation/a.out
Binary files differ
diff --git a/examples/table_creation/table_creation.c b/examples/table_creation/table_creation.c
new file mode 100644
index 0000000..42088c6
--- /dev/null
+++ b/examples/table_creation/table_creation.c
@@ -0,0 +1,28 @@
+#include <honeysuckle.h>
+
+int main()
+{
+ lua_State *L = luaL_newstate();
+ luaL_openlibs(L);
+
+ /* create the table
+ * { "one"=1, "two"=2, "half"=0.5, "runme"=[some function] }
+ */
+ luaL_dostring(L,
+ "return function(self) \n" \
+ "print(self.one)\n" \
+ "print(self.two)\n" \
+ "print(self.half)\n" \
+ "end");
+ int func_index = lua_gettop(L);
+
+ hs_create_table(L,
+ hs_str_int("one", 1),
+ hs_str_int("two", 2),
+ hs_str_num("half", 0.5f),
+ hs_str_func("runme", func_index));
+ lua_setglobal(L, "runnable");
+
+ luaL_dostring(L, "runnable:runme()");
+ return 0;
+}