tvariantstack.nim 784 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. discard """
  2. file: "tvariantstack.nim"
  3. output: "came here"
  4. """
  5. #BUG
  6. type
  7. TAnyKind = enum
  8. nkInt,
  9. nkFloat,
  10. nkString
  11. PAny = ref TAny
  12. TAny = object
  13. case kind: TAnyKind
  14. of nkInt: intVal: int
  15. of nkFloat: floatVal: float
  16. of nkString: strVal: string
  17. TStack* = object
  18. list*: seq[TAny]
  19. proc newStack(): TStack =
  20. result.list = @[]
  21. proc push(Stack: var TStack, item: TAny) =
  22. var nSeq: seq[TAny] = @[item]
  23. for i in items(Stack.list):
  24. nSeq.add(i)
  25. Stack.list = nSeq
  26. proc pop(Stack: var TStack): TAny =
  27. result = Stack.list[0]
  28. Stack.list.delete(0)
  29. var stack = newStack()
  30. var s: TAny
  31. s.kind = nkString
  32. s.strVal = "test"
  33. stack.push(s)
  34. var nr: TAny
  35. nr.kind = nkint
  36. nr.intVal = 78
  37. stack.push(nr)
  38. var t = stack.pop()
  39. echo "came here"