topt_cursor.nim 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. discard """
  2. output: '''("string here", 80)'''
  3. cmd: '''nim c --gc:arc --expandArc:main --expandArc:sio --hint:Performance:off $file'''
  4. nimout: '''--expandArc: main
  5. var
  6. x_cursor
  7. :tmpD
  8. try:
  9. x_cursor = ("hi", 5)
  10. if cond:
  11. x_cursor = ("different", 54)
  12. else:
  13. x_cursor = ("string here", 80)
  14. echo [
  15. :tmpD = `$$`(x_cursor)
  16. :tmpD]
  17. finally:
  18. `=destroy`(:tmpD)
  19. -- end of expandArc ------------------------
  20. --expandArc: sio
  21. block :tmp:
  22. var x_cursor
  23. var f = open("debug.txt", fmRead, 8000)
  24. try:
  25. var res
  26. try:
  27. res = newStringOfCap(80)
  28. block :tmp_1:
  29. while readLine(f, res):
  30. x_cursor = res
  31. echo [x_cursor]
  32. finally:
  33. `=destroy`(res)
  34. finally:
  35. close(f)
  36. -- end of expandArc ------------------------'''
  37. """
  38. proc main(cond: bool) =
  39. var x = ("hi", 5) # goal: computed as cursor
  40. x = if cond:
  41. ("different", 54)
  42. else:
  43. ("string here", 80)
  44. echo x
  45. main(false)
  46. proc sio =
  47. for x in lines("debug.txt"):
  48. echo x
  49. if false:
  50. sio()