summaryrefslogtreecommitdiff
path: root/Data/Libraries/Penlight/examples/sipscan.lua
diff options
context:
space:
mode:
Diffstat (limited to 'Data/Libraries/Penlight/examples/sipscan.lua')
-rw-r--r--Data/Libraries/Penlight/examples/sipscan.lua34
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