new tester; all tests categorized
This commit is contained in:
parent
51ee524109
commit
20b5f31c03
481 changed files with 794 additions and 2506 deletions
|
|
@ -1,60 +0,0 @@
|
|||
discard """
|
||||
errormsg: "cannot prove that field 'x.s' is accessible"
|
||||
line:51
|
||||
"""
|
||||
|
||||
import strutils
|
||||
|
||||
{.warning[ProveField]: on.}
|
||||
|
||||
type
|
||||
TNodeKind = enum
|
||||
nkBinary, nkTernary, nkStr
|
||||
PNode = ref TNode not nil
|
||||
TNode = object
|
||||
case k: TNodeKind
|
||||
of nkBinary, nkTernary: a, b: PNode
|
||||
of nkStr: s: string
|
||||
|
||||
PList = ref object
|
||||
data: string
|
||||
next: PList
|
||||
|
||||
proc getData(x: PList not nil) =
|
||||
echo x.data
|
||||
|
||||
var head: PList
|
||||
|
||||
proc processList() =
|
||||
var it = head
|
||||
while it != nil:
|
||||
getData(it)
|
||||
it = it.next
|
||||
|
||||
proc toString2(x: PNode): string =
|
||||
if x.k < nkStr:
|
||||
toString2(x.a) & " " & toString2(x.b)
|
||||
else:
|
||||
x.s
|
||||
|
||||
proc toString(x: PNode): string =
|
||||
case x.k
|
||||
of nkTernary, nkBinary:
|
||||
toString(x.a) & " " & toString(x.b)
|
||||
of nkStr:
|
||||
x.s
|
||||
|
||||
proc toString3(x: PNode): string =
|
||||
if x.k <= nkBinary:
|
||||
toString3(x.a) & " " & toString3(x.b)
|
||||
else:
|
||||
x.s # x.k in {nkStr} --> fact: not (x.k <= nkBinary)
|
||||
|
||||
proc p() =
|
||||
var x: PNode = PNode(k: nkStr, s: "abc")
|
||||
|
||||
let y = x
|
||||
if not y.isNil:
|
||||
echo toString(y), " ", toString2(y)
|
||||
|
||||
p()
|
||||
Loading…
Add table
Add a link
Reference in a new issue