12345678910111213141516171819202122232425262728293031 |
- discard """
- targets: "c cpp"
- matrix: "--gc:refc; --gc:arc"
- """
- type
- GlobNodeKind = enum
- LiteralIdent,
- Group
- GlobNode = object
- case kind: GlobNodeKind
- of LiteralIdent:
- value: string
- of Group:
- values: seq[string]
- PathSegment = object
- children: seq[GlobNode]
- GlobPattern = seq[PathSegment]
- proc parseImpl(): GlobPattern =
- if result.len == 0:
- result.add PathSegment()
- result[^1].children.add GlobNode(kind: LiteralIdent)
- block:
- const pattern = parseImpl()
- doAssert $pattern == """@[(children: @[(kind: LiteralIdent, value: "")])]"""
|