diff options
| -rw-r--r-- | examples/minilua.lua | 35 |
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 |
