summary refs log tree commit diff stats
path: root/tests/macros
diff options
context:
space:
mode:
authorAraq <rumpf_a@web.de>2015-04-19 14:25:16 +0200
committerAraq <rumpf_a@web.de>2015-04-19 14:25:16 +0200
commit9abfc60db441e6d21edbc99f0ef38075fba85f36 (patch)
treea61779753e60e219516ca74578f603e1b538d9f1 /tests/macros
parent89cbf092b23b901cd6a485ab670b1e374c31559d (diff)
downloadNim-9abfc60db441e6d21edbc99f0ef38075fba85f36.tar.gz
parse 'of' branches for macros properly
Diffstat (limited to 'tests/macros')
-rw-r--r--tests/macros/tlexerex.nim16
1 files changed, 16 insertions, 0 deletions
diff --git a/tests/macros/tlexerex.nim b/tests/macros/tlexerex.nim
new file mode 100644
index 000000000..d348a4bcc
--- /dev/null
+++ b/tests/macros/tlexerex.nim
@@ -0,0 +1,16 @@
+
+import macros
+
+macro match*(s: cstring|string; pos: int; sections: untyped): untyped =
+  for sec in sections.children:
+    expectKind sec, nnkOfBranch
+    expectLen sec, 2
+  result = newStmtList()
+
+when isMainModule:
+  var input = "the input"
+  var pos = 0
+  match input, pos:
+  of r"[a-zA-Z_]\w+": echo "an identifier"
+  of r"\d+": echo "an integer"
+  of r".": echo "something else"