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
- core:fmt println
- vendor:lua/5.4 close · L_dostring · L_newstate · open_base · pop · pushinteger · setglobal · tostring