← nimrepo

files

59fbcf94bc9d1c9bd898c89f28f71873a92bc526 · ovidiucs · Feb 13, 2019 22:27

+45 · 2 files changed

  • parsingutils.nim +5 −0
  • streamsofdata.nim +40 −0
diff --git a/parsingutils.nim b/parsingutils.nim
index dbf73b9..2b7cc02 100644
--- a/parsingutils.nim
+++ b/parsingutils.nim
@@ -1,4 +1,9 @@
 # Copyright 2019.
+# This module contains helpers for parsing tokens, numbers, integers, floats, identifiers, etc.
+
+# To unpack raw bytes look at the streams module.
+# parseutils, streams -> parsing
+
 import parseutils
 import terminal
 
diff --git a/streamsofdata.nim b/streamsofdata.nim
new file mode 100644
index 0000000..134d4ab
--- /dev/null
+++ b/streamsofdata.nim
@@ -0,0 +1,40 @@
+# Copyright 2019.
+import streams
+var
+  ss = newStringStream("""
+ns-route-server>show ip route
+Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
+       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
+       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
+       E1 - OSPF external type 1, E2 - OSPF external type 2
+       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
+       ia - IS-IS inter area, * - candidate default, U - per-user static route
+       o - ODR, P - periodic downloaded static route, H - NHRP
+       + - replicated route, % - next hop override
+
+Gateway of last resort is 24.222.79.161 to network 0.0.0.0
+
+O*E1  0.0.0.0/0 [110/111] via 24.222.79.161, 7w0d, GigabitEthernet0/0
+                [110/111] via 24.222.79.149, 7w0d, GigabitEthernet0/1
+      1.0.0.0/8 is variably subnetted, 2652 subnets, 14 masks
+B        1.0.0.0/24 [200/0] via 198.32.118.206, 1w3d
+B        1.0.4.0/22 [200/0] via 24.137.100.1, 4w5d
+B        1.0.4.0/24 [200/0] via 24.137.100.1, 4w5d
+B        1.0.5.0/24 [200/0] via 24.137.100.1, 4w5d
+B        1.0.6.0/24 [200/0] via 24.137.100.1, 4w5d
+B        1.0.7.0/24 [200/0] via 24.137.100.1, 4w5d
+  """)
+  line = ""
+
+while ss.readline(line):
+  echo line
+ss.close
+
+let
+  x = [0, 1, 2]
+  a = len([0, 1, 2]) # ok
+  b = len @[0, 1, 2]  # ok
+  c = len x # ok
+  d = len [0, 1, 2] # fails
+
+echo x,a,b,c,d