================================================================================ booleans and nil ================================================================================ print(nil) print(false) print(true) -------------------------------------------------------------------------------- (chunk (call function: (variable name: (identifier)) arguments: (argument_list (expression_list (nil)))) (call function: (variable name: (identifier)) arguments: (argument_list (expression_list (false)))) (call function: (variable name: (identifier)) arguments: (argument_list (expression_list (true))))) ================================================================================ integer decimal numbers ================================================================================ print(0) print(99) print(-7) print(-105) -------------------------------------------------------------------------------- (chunk (call function: (variable name: (identifier)) arguments: (argument_list (expression_list (number)))) (call function: (variable name: (identifier)) arguments: (argument_list (expression_list (number)))) (call function: (variable name: (identifier)) arguments: (argument_list (expression_list (number)))) (call function: (variable name: (identifier)) arguments: (argument_list (expression_list (number))))) ================================================================================ integer hexadecimal numbers ================================================================================ print(0x0) print(0xff) print(-0xf) print(-0xfab) -------------------------------------------------------------------------------- (chunk (call function: (variable name: (identifier)) arguments: (argument_list (expression_list (number)))) (call function: (variable name: (identifier)) arguments: (argument_list (expression_list (number)))) (call function: (variable name: (identifier)) arguments: (argument_list (expression_list (number)))) (call function: (variable name: (identifier)) arguments: (argument_list (expression_list (number))))) ================================================================================ float decimal numbers ================================================================================ print(3.1416) print(314.16e-2) print(31416.e-4) print(.31416E1) -------------------------------------------------------------------------------- (chunk (call function: (variable name: (identifier)) arguments: (argument_list (expression_list (number)))) (call function: (variable name: (identifier)) arguments: (argument_list (expression_list (number)))) (call function: (variable name: (identifier)) arguments: (argument_list (expression_list (number)))) (call function: (variable name: (identifier)) arguments: (argument_list (expression_list (number))))) ================================================================================ float hexadecimal numbers ================================================================================ print(0x0.1E) print(0xBEBADA.) print(0xA23p-4) print(0X1.921FB54442D18P+1) -------------------------------------------------------------------------------- (chunk (call function: (variable name: (identifier)) arguments: (argument_list (expression_list (number)))) (call function: (variable name: (identifier)) arguments: (argument_list (expression_list (number)))) (call function: (variable name: (identifier)) arguments: (argument_list (expression_list (number)))) (call function: (variable name: (identifier)) arguments: (argument_list (expression_list (number))))) ================================================================================ short strings ================================================================================ print('') print("") print('"You\'re a wizard, Harry!"') print("\"I'm a what?\"") print('"Did you put your name into the Goblet of Fire, Harry?" -- Dumbledore asked calmly.') -------------------------------------------------------------------------------- (chunk (call function: (variable name: (identifier)) arguments: (argument_list (expression_list (string)))) (call function: (variable name: (identifier)) arguments: (argument_list (expression_list (string)))) (call function: (variable name: (identifier)) arguments: (argument_list (expression_list (string)))) (call function: (variable name: (identifier)) arguments: (argument_list (expression_list (string)))) (call function: (variable name: (identifier)) arguments: (argument_list (expression_list (string))))) ================================================================================ long strings ================================================================================ print([[ Does a thing. USAGE: thing [FLAGS] FLAGS: -h, --help Prints help information -V, --version Prints version information ]]) print([=[ Write-Information [-MessageData] [[-Tags] ] [] ]=]) -------------------------------------------------------------------------------- (chunk (call function: (variable name: (identifier)) arguments: (argument_list (expression_list (string)))) (call function: (variable name: (identifier)) arguments: (argument_list (expression_list (string))))) ================================================================================ function definitions ================================================================================ print(function() end) print(function(x) return x % 2 == 0 end) print(function(a, b) return a + b end) print(function(...) return {...} end) print(function(func, ...) return func(...) end) -------------------------------------------------------------------------------- (chunk (call function: (variable name: (identifier)) arguments: (argument_list (expression_list (function_definition)))) (call function: (variable name: (identifier)) arguments: (argument_list (expression_list (function_definition parameters: (parameter_list name: (identifier)) body: (block (return_statement (expression_list (binary_expression left: (binary_expression left: (variable name: (identifier)) right: (number)) right: (number))))))))) (call function: (variable name: (identifier)) arguments: (argument_list (expression_list (function_definition parameters: (parameter_list name: (identifier) name: (identifier)) body: (block (return_statement (expression_list (binary_expression left: (variable name: (identifier)) right: (variable name: (identifier)))))))))) (call function: (variable name: (identifier)) arguments: (argument_list (expression_list (function_definition parameters: (parameter_list (vararg_expression)) body: (block (return_statement (expression_list (table (field_list (field value: (vararg_expression))))))))))) (call function: (variable name: (identifier)) arguments: (argument_list (expression_list (function_definition parameters: (parameter_list name: (identifier) (vararg_expression)) body: (block (return_statement (expression_list (call function: (variable name: (identifier)) arguments: (argument_list (expression_list (vararg_expression)))))))))))) ================================================================================ variable accesses ================================================================================ print(_VERSION) print(_G._VERSION) print(_G["_VERSION"]) print(_G._G._G._VERSION) print(_G["_G"]["_G"]["_VERSION"]) -------------------------------------------------------------------------------- (chunk (call function: (variable name: (identifier)) arguments: (argument_list (expression_list (variable name: (identifier))))) (call function: (variable name: (identifier)) arguments: (argument_list (expression_list (variable table: (identifier) field: (identifier))))) (call function: (variable name: (identifier)) arguments: (argument_list (expression_list (variable table: (identifier) field: (string))))) (call function: (variable name: (identifier)) arguments: (argument_list (expression_list (variable table: (variable table: (variable table: (identifier) field: (identifier)) field: (identifier)) field: (identifier))))) (call function: (variable name: (identifier)) arguments: (argument_list (expression_list (variable table: (variable table: (variable table: (identifier) field: (string)) field: (string)) field: (string)))))) ================================================================================ function calls ================================================================================ print(type(_G)) print(type'') print(type"") print(type[[]]) print(type{}) print(io.output()) print(io.output():read()) -------------------------------------------------------------------------------- (chunk (call function: (variable name: (identifier)) arguments: (argument_list (expression_list (call function: (variable name: (identifier)) arguments: (argument_list (expression_list (variable name: (identifier)))))))) (call function: (variable name: (identifier)) arguments: (argument_list (expression_list (call function: (variable name: (identifier)) arguments: (argument_list (string)))))) (call function: (variable name: (identifier)) arguments: (argument_list (expression_list (call function: (variable name: (identifier)) arguments: (argument_list (string)))))) (call function: (variable name: (identifier)) arguments: (argument_list (expression_list (call function: (variable name: (identifier)) arguments: (argument_list (string)))))) (call function: (variable name: (identifier)) arguments: (argument_list (expression_list (call function: (variable name: (identifier)) arguments: (argument_list (table)))))) (call function: (variable name: (identifier)) arguments: (argument_list (expression_list (call function: (variable table: (identifier) field: (identifier)) arguments: (argument_list))))) (call function: (variable name: (identifier)) arguments: (argument_list (expression_list (call function: (variable table: (call function: (variable table: (identifier) field: (identifier)) arguments: (argument_list)) method: (identifier)) arguments: (argument_list)))))) ================================================================================ tables ================================================================================ print({ "x", "y"; {}, rawlen"four" }) print({ [54] = _VERSION, ["version"] = _VERSION, [_VERSION] = 54, _VERSION = 54, }) -------------------------------------------------------------------------------- (chunk (call function: (variable name: (identifier)) arguments: (argument_list (expression_list (table (field_list (field value: (string)) (field value: (string)) (field value: (table)) (field value: (call function: (variable name: (identifier)) arguments: (argument_list (string))))))))) (call function: (variable name: (identifier)) arguments: (argument_list (expression_list (table (field_list (field key: (number) value: (variable name: (identifier))) (field key: (string) value: (variable name: (identifier))) (field key: (variable name: (identifier)) value: (number)) (field key: (identifier) value: (number)))))))) ================================================================================ unary expressions ================================================================================ print(not true) print(#"four") print(-#"-five") print(~0) -------------------------------------------------------------------------------- (chunk (call function: (variable name: (identifier)) arguments: (argument_list (expression_list (unary_expression argument: (true))))) (call function: (variable name: (identifier)) arguments: (argument_list (expression_list (unary_expression argument: (string))))) (call function: (variable name: (identifier)) arguments: (argument_list (expression_list (unary_expression argument: (unary_expression argument: (string)))))) (call function: (variable name: (identifier)) arguments: (argument_list (expression_list (unary_expression argument: (number)))))) ================================================================================ binary expressions ================================================================================ print(1*2 + 4/2) print(5^2 % 5) print(5 - -5 == 0 and 1 or 0) -------------------------------------------------------------------------------- (chunk (call function: (variable name: (identifier)) arguments: (argument_list (expression_list (binary_expression left: (binary_expression left: (number) right: (number)) right: (binary_expression left: (number) right: (number)))))) (call function: (variable name: (identifier)) arguments: (argument_list (expression_list (binary_expression left: (binary_expression left: (number) right: (number)) right: (number))))) (call function: (variable name: (identifier)) arguments: (argument_list (expression_list (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (number) right: (number)) right: (number)) right: (number)) right: (number))))))