diff options
Diffstat (limited to 'Data/Libraries/Penlight/examples/sipscan.lua')
-rw-r--r-- | Data/Libraries/Penlight/examples/sipscan.lua | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/Data/Libraries/Penlight/examples/sipscan.lua b/Data/Libraries/Penlight/examples/sipscan.lua new file mode 100644 index 0000000..78ac75b --- /dev/null +++ b/Data/Libraries/Penlight/examples/sipscan.lua @@ -0,0 +1,34 @@ +-- another SIP example, shows how an awkward log file format +-- can be parsed. It also prints out the actual Lua string +-- pattern generated: +-- SYNC%s*%[([+%-%d]%d*)%]%s*([+%-%d]%d*)%s*([+%-%d]%d*) + +local sip = require 'pl.sip' +local stringx = require 'pl.stringx' + +local s = [[ +SYNC [1] 0 547 (14679 sec) +SYNC [2] 0 555 (14679 sec) +SYNC [3] 0 563 (14679 sec) +SYNC [4] 0 571 (14679 sec) +SYNC [5] -1 580 (14679 sec) +SYNC [6] 0 587 (14679 sec) +]] + + +local first = true +local expected +local res = {} +local pat = 'SYNC [$i{seq}] $i{diff} $i{val}' +print(sip.create_pattern(pat)) +local match = sip.compile(pat) +for line in stringx.lines(s) do + if match(line,res) then + if first then + expected = res.val + first = false + end + print(res.val,expected - res.val) + expected = expected + 8 + end +end |