diff options
Diffstat (limited to 'tests/generics/tgenericmatcher.nim')
-rw-r--r-- | tests/generics/tgenericmatcher.nim | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/tests/generics/tgenericmatcher.nim b/tests/generics/tgenericmatcher.nim new file mode 100644 index 000000000..ca4dc2a4d --- /dev/null +++ b/tests/generics/tgenericmatcher.nim @@ -0,0 +1,40 @@ +discard """ + output: ''' +''' +""" + + +block tmatcher1: + type + TMatcherKind = enum + mkTerminal, mkSequence, mkAlternation, mkRepeat + TMatcher[T] = object + case kind: TMatcherKind + of mkTerminal: + value: T + of mkSequence, mkAlternation: + matchers: seq[TMatcher[T]] + of mkRepeat: + matcher: PMatcher[T] + min, max: int + PMatcher[T] = ref TMatcher[T] + + var m: PMatcher[int] + + +block tmatcher2: + type + TMatcherKind = enum + mkTerminal, mkSequence, mkAlternation, mkRepeat + TMatcher[T] = object + case kind: TMatcherKind + of mkTerminal: + value: T + of mkSequence, mkAlternation: + matchers: seq[TMatcher[T]] + of mkRepeat: + matcher: ref TMatcher[T] + min, max: int + + var m: ref TMatcher[int] + |