aboutsummaryrefslogtreecommitdiff
path: root/examples/minilua.lua
diff options
context:
space:
mode:
Diffstat (limited to 'examples/minilua.lua')
-rw-r--r--examples/minilua.lua35
1 files changed, 35 insertions, 0 deletions
diff --git a/examples/minilua.lua b/examples/minilua.lua
new file mode 100644
index 0000000..c31e606
--- /dev/null
+++ b/examples/minilua.lua
@@ -0,0 +1,35 @@
+local patok = require 'patok'
+
+local lexer = patok {
+ keyword = {
+ 'local',
+ 'function',
+ 'return',
+ 'end',
+ },
+ equal = '=',
+ left_paren = '%(',
+ right_paren = '%)',
+}{
+ identifier = '[%w_][%w%d_]*',
+ whitespace = { '%s+', drop = true },
+ number = '%d+',
+ op = '[+%-*/]',
+}()
+
+local source = [[
+local function getSalary(hour)
+ return hour * 60 + 12
+end
+
+local bills = 40
+local savings = getSalary(4) - bills
+]]
+
+lexer:reset(source)
+local token = lexer:next()
+
+while token ~= nil do
+ print(token.value)
+ token = lexer:next()
+end