forked from nim-lang/Nim
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtopt_cursor.nim
60 lines (52 loc) · 1.06 KB
/
topt_cursor.nim
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
discard """
output: '''("string here", 80)'''
cmd: '''nim c --gc:arc --expandArc:main --expandArc:sio --hint:Performance:off $file'''
nimout: '''--expandArc: main
var
:tmpD
:tmpD_1
:tmpD_2
try:
var x_cursor = ("hi", 5)
x_cursor = if cond:
:tmpD = ("different", 54)
:tmpD else:
:tmpD_1 = ("string here", 80)
:tmpD_1
echo [
:tmpD_2 = `$`(x_cursor)
:tmpD_2]
finally:
`=destroy`(:tmpD_2)
-- end of expandArc ------------------------
--expandArc: sio
block :tmp:
var x_cursor
var f = open("debug.txt", fmRead, 8000)
try:
var res
try:
res = newStringOfCap(80)
block :tmp_1:
while readLine(f, res):
x_cursor = res
echo [x_cursor]
finally:
`=destroy`(res)
finally:
close(f)
-- end of expandArc ------------------------'''
"""
proc main(cond: bool) =
var x = ("hi", 5) # goal: computed as cursor
x = if cond:
("different", 54)
else:
("string here", 80)
echo x
main(false)
proc sio =
for x in lines("debug.txt"):
echo x
if false:
sio()