/tutorial/iterator/example3.e

http://github.com/tybor/Liberty · Specman e · 41 lines · 32 code · 5 blank · 4 comment · 0 complexity · 3f5de4dab857748a9a9734aad69d616f MD5 · raw file

  1. class EXAMPLE3
  2. --
  3. -- To add a loop variant for any kind of ITERATOR (for loop variant
  4. -- fans only ;-).
  5. --
  6. create {ANY}
  7. make
  8. feature {}
  9. iterator: ITERATOR_WITH_VARIANT[INTEGER]
  10. make
  11. local
  12. simple_iterator: ITERATOR[INTEGER]
  13. do
  14. create {ITERATOR_ON_RANDOM_GENERATOR} simple_iterator.make(10)
  15. create iterator.make(simple_iterator)
  16. io.put_string("First traversal :%N")
  17. traverse
  18. io.put_string("Second traversal :%N")
  19. traverse
  20. end
  21. traverse
  22. do
  23. from
  24. iterator.start
  25. variant
  26. iterator.variant_value
  27. until
  28. iterator.is_off
  29. loop
  30. io.put_integer(iterator.item)
  31. io.put_character(' ')
  32. iterator.next
  33. end
  34. io.put_new_line
  35. end
  36. end -- class EXAMPLE3