lua/global_variables

Code

global_variables.odin ¶
33 linesSource

1package global_variables
2
3import lua "vendor:lua/5.4"
4import "core:fmt"
5
6// The code the Lua VM will run
7CODE :: "print(Answer)"
8
9main :: proc() {
10	// Create new Lua state
11	state := lua.L_newstate()
12
13	// Open the base libraries (print, etc...)
14	lua.open_base(state)
15
16	// Set a new global integer (a Lua 5.3+ feature!) called "Answer" to 42
17	// First push the integer to the stack, essentially a "postboard" to talk with the Lua VM
18	lua.pushinteger(state, 42)
19	// Pops the top value on the stack and creates a global with it's value
20	lua.setglobal(state, "Answer")
21
22	// Run code and check if it succeeded
23	if lua.L_dostring(state, CODE) != 0 {
24		// Get the error string from the top of the stack and print it
25		error := lua.tostring(state, -1)
26		fmt.println(error)
27		// Pop the error off of the stack
28		lua.pop(state, 1)
29	}
30
31	// Closes the Lua VM, deallocating all memory
32	lua.close(state)
33}

Declarations Used 9