How should I bind? I's completely unclear to me.
import std/[streams, pegs]
let stream = newStringStream("""
0-0:96.13.0()
1-3:0.2.8(50)
0-0:1.0.0(221019115846S)
1-0:32.32.0(00000)
0-0:96.1.1(4530303737307730373236383936353232)
1-0:1.8.1(000865.964*kWh)
1-0:31.7.0(002*A)
0-0:96.14.0(0002)
1-0:99.97.0(1)(0-0:96.7.19)(220120193901W)(0000000000*s)
0-1:24.2.1(221019115500S)(00112.177*m3)
"""
)
#this works fine
#let p = peg"""
# {\d+ '-' \d+ ':' \d+ '.' \d+ '.' \d+}
# {'(' [0-9a-zA-Z:.*\-]* ')'}+
#"""
let p = peg"""
{orbi} {data}+
orbi <- \d+ '-' \d+ ':' \d+ '.' \d+ '.' \d+
data <- '(' [0-9a-zA-Z:.*\-]* ')'
"""
var line: string
while stream.readline(line):
if line =~ p:
for i, val in matches:
if val != "":
echo i," ", val
echo "\n"
Run