--- loncom/homework/structuretags.pm 2000/08/16 18:32:58 1.3 +++ loncom/homework/structuretags.pm 2000/08/22 16:19:26 1.4 @@ -8,7 +8,7 @@ use strict; use Apache::lonnet; sub BEGIN { - &Apache::lonxml::register('Apache::structuretags',('block')); + &Apache::lonxml::register('Apache::structuretags',('block','while')); } sub start_block { @@ -30,5 +30,32 @@ sub start_block { sub end_block { } +sub start_while { + my ($target,$token,$parstack,$parser,$safeeval)=@_; + + my $code = @$parstack[$#$parstack]; + $code =~ s/\"//g; + $code .=';return $condition;'; + + print "

WHILE CONDITION = [$code]

"; + my $result = &Apache::run::run($code,$safeeval); + my $bodytext=$$parser[$#$parser]->get_text("/while"); + if ( $result ) { # condition is TRUE, bodytext is evaluated +# push the bodytext into parser stack + my $tempparser=HTML::TokeParser->new(\$bodytext); + push (@$parser,$tempparser); + } else { # condition is FALSE initially, skip bodytext + } + return ""; +} + +sub end_while { +# pop parser from parser stack +# check if condition is TRUE, +# TRUE then push content into parser stack +# FALSE then continue + +} + 1; __END__