Lua is an open source programming language created in 1993 by Roberto Ierusalimschy.
#23on PLDB | 31Years Old | 244kRepos |
Lua ( LOO-ə, from Portuguese: lua [ˈlu.(w)ɐ] meaning moon) is a lightweight, multi-paradigm programming language designed primarily for embedded systems and clients. Lua is cross-platform, since the interpreter is written in ANSI C, and has a relatively simple C API. Lua was originally designed in 1993 as a language for extending software applications to meet the increasing demand for customization at the time. Read more on Wikipedia...
print("Hello, world!")
print("Hello World")
# Hello World in Lua
print "Hello world"
-- A simple counting object that increments an internal counter whenever it receives a bang at its first inlet, or changes to whatever number it receives at its second inlet.
local HelloCounter = pd.Class:new():register("h-counter")
function HelloCounter:initialize(sel, atoms)
self.inlets = 2
self.outlets = 1
self.num = 0
return true
end
function HelloCounter:in_1_bang()
self:outlet(1, "float", {self.num})
self.num = self.num + 1
end
function HelloCounter:in_2_float(f)
self.num = f
end
$ cc -o example example.c -llua
$ ./example
Result: 8
and break do else elseif end false for function goto if in local nil not or repeat return then true until while
Feature | Supported | Example | Token |
---|---|---|---|
Standard Library | ✓ | print("Hello, World!") | |
Constants | ✓ |
pi |
|
Lists | ✓ | myList = {1, 2, 3} | |
Bitwise Operators | ✓ | & | ~ << >> ~ | |
Hexadecimals | ✓ | -- 0[xX][0-9a-fA-F]+ (integer) -- 0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+)? (float) 0x5F3759DF 0x0.1D 0xA23p-4 0X1.921FB54442D18P+1 | |
Integers | ✓ | 80766866 | |
Floats | ✓ | -- [0-9]*\.[0-9]+([eE][+-]?[0-9]+)? -- (decimal float) -- 0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+)? -- (hex float) | |
Scientific Notation | ✓ | 1E2 .12345E+6 1.e+0 0x15e-2 0x2.p10 0X.8p-0 0x1.Fp+0 0x1fffp-16 0x1p-2 | |
Conditionals | ✓ | if true then print("true") end | |
Functions | ✓ | function myFunction() print("hello") end | |
While Loops | ✓ | while true do print("hello") end | |
Booleans | ✓ | true false | true false |
Strings | ✓ | "Hello world" | " |
Print() Debugging | ✓ | print("hello world") | |
Maps | ✓ | myMap = { key = "value", [35] = 35, } | |
Line Comments | ✓ | -- A comment | -- |
Operator Overloading | ✓ | ||
Assignment | ✓ | ||
MultiLine Comments | ✓ | --[[ A comment. --]] | --[[ --]] |
Comments | ✓ | ||
Case Insensitive Identifiers | X | ||
Semantic Indentation | X | ||
Octals | X |