From: <sk...@us...> - 2006-11-25 03:00:03
|
Revision: 1183 http://svn.sourceforge.net/felix/?rev=1183&view=rev Author: skaller Date: 2006-11-24 19:00:01 -0800 (Fri, 24 Nov 2006) Log Message: ----------- Testing STL and typeclasses. Modified Paths: -------------- felix/trunk/lpsrc/flx_stl.pak Modified: felix/trunk/lpsrc/flx_stl.pak =================================================================== --- felix/trunk/lpsrc/flx_stl.pak 2006-11-24 15:10:05 UTC (rev 1182) +++ felix/trunk/lpsrc/flx_stl.pak 2006-11-25 03:00:01 UTC (rev 1183) @@ -347,8 +347,8 @@ rit = n+'_reverse_iterator[v]' tangle(' instance[v] Reversible_Sequence['+c+','+it+','+rit+',v] {') - tangle(' fun rbegin : '+c+'-> '+rit+'= "$1.begin()";') - tangle(' fun rend : '+c+'-> '+rit+'= "$1.end()";') + tangle(' fun rbegin : '+c+'-> '+rit+'= "$1.rbegin()";') + tangle(' fun rend : '+c+'-> '+rit+'= "$1.rend()";') tangle(' }') @@ -430,15 +430,16 @@ @select(t) @kat("STL::vector") #import <flx.flxh> - include "stl"; -open Sequence[ +open Reversible_Sequence[ Stl::Vector::stl_vector[int], Stl::Vector::stl_vector_iterator[int], + Stl::Vector::stl_vector_reverse_iterator[int], int ]; + var x: Stl::Vector::stl_vector[int]; print$ empty x; endl; @@ -455,12 +456,43 @@ print$ empty x; endl; -var i = begin x; -whilst i != end x do - print$ *i; endl; - i++; -done; +proc check[c,it,rit with Reversible_Sequence[c,it,rit,int]] +{ + // forward iterator: forwards + var i = begin x; + whilst i != end x do + print$ *i; endl; + i++; + done; + // forward iterator: backwards + i = end x; + whilst i != begin x do + i--; + print$ *i; endl; + done; + + // reverse iterator: forwards + var j = rbegin x; + whilst j != rend x do + print$ *j; endl; + j++; + done; + + // reverse iterator: backwards + j = rend x; + whilst j != rbegin x do + j--; + print$ *j; endl; + done; +} + +check [ + Stl::Vector::stl_vector[int], + Stl::Vector::stl_vector_iterator[int], + Stl::Vector::stl_vector_reverse_iterator[int], + int +](); @doc() @t = env.expect() @@ -474,6 +506,27 @@ 5 6 7 +7 +6 +5 +4 +3 +2 +1 +7 +6 +5 +4 +3 +2 +1 +1 +2 +3 +4 +5 +6 +7 @doc() @env.head(3) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |