| 
<?
 require("logo.php");
 
 /*
 A eimple helper function:
 function sft (string from template) (simplified)
 input:  - one array with substitute values
 - a template file
 output: - a (html) stream
 */
 function sft($pairs, $template)
 {
 $str = implode(file($template), "");
 $res = preg_replace("/\\{\\{(\\w+)\\}\\}/Ue", "\$pairs['\\1']", $str);
 return $res;
 }
 
 /*
 To get started, we include a simple logo program.
 This function returns a simple logo program that serves as an example.
 */
 function get_program()
 {
 $res = <<<EOH
 to triangle :sides
 make "angle 120
 repeat 360 / :angle [forward :sides left :angle]
 end
 
 to house
 forward 50
 Right 90
 forward 50
 left 135
 forward 35
 left 90
 forward 35
 right 270
 forward 70
 left 135
 forward 50
 left 135
 forward 70
 left 135
 fd 50
 end
 
 house
 penup
 lt 90
 backward 50
 pendown
 triangle 20
 EOH;
 return $res;
 }
 
 /*
 We are going to store the program that one is typing in the current
 session, so the student does not have to do a lot of re-typing.
 */
 session_start();
 session_register("theprogram");
 
 switch ($cmd) {
 case "swf":
 /*
 The template calls this example with cmd=swf.
 We output the results of the program here.
 */
 $logo = new logoclass($theprogram);
 $logo->output();
 break;
 default:
 if (empty($program)) {
 $program = get_program();
 }
 $program = stripslashes($program);
 $theprogram = $program;
 $arr = compact("program");
 echo sft($arr, "logo.tem.html");
 }
 ?>
 
 |