#!vsl

// $Id: flow,v 1.1.1.1 1995/05/01 15:48:49 zeller Exp $ 
// Testdatei fuer "flow.vsl"

// $Log: flow,v $
# Revision 1.1.1.1  1995/05/01  15:48:49  zeller
# DDD 0.9 distribution
#
// Revision 9.3  1993/06/25  12:03:19  zeller
// Fix: Kommentare Log-Datei angepasst
//
// Revision 9.2  1993/05/22  20:22:28  zeller
// %Q% added by apply-q-flag.sh 1.5
//
// Revision 9.1  1991/07/08  06:01:17  zeller
// Installierte Version
// 
// Revision 8.1  1991/07/06  15:04:18  zeller
// Installierte Version
// 
// Revision 4.2  1991/05/27  14:24:42  zeller
// Unbenutzte Variablen in '_' umbenannt
// 
// Revision 4.1  1991/05/25  12:53:05  zeller
// Neue Version mit folgenden Eigenschaften:
// Let- und Where-Konstrukten;
// Lokalen und globalen Funktionen, Overloading;
// Erweiterten Fehlermeldungen.
// 
// Revision 1.4  1991/05/06  10:24:32  zeller
// Anpassung an neue Version
// 
// Revision 1.3  1991/05/05  16:45:14  zeller
// Test erweitert: Verschachtelungen usw.
// 
// Revision 1.2  1991/05/05  16:34:42  zeller
// Geeignete Umbenennungen vorgenommen
// 
// Revision 1.1  1991/05/05  16:06:27  zeller
// Initial revision
// 

#include <flow.vsl>
#include <list.vsl>


stmtlist_test() = seqFlow(statFlow("a := b"), statFlow("c := d"), 
  callFlow("compute(e)"), printFlow("print(e)"));

while_test() = 
  positiveTopLoopFlow("not ready?", stmtlist_test());

until_test() = 
  negativeBottomLoopFlow("done?", stmtlist_test());

repeat_test() = positiveBottomLoopFlow("not done?", stmtlist_test());

if_test() = testFlow("a > b?", statFlow("c := a"));

if_else_test() = testFlow("a > b?", while_test(), until_test());

// all tests
all_flow_tests() = 
  " "
| head(stmtlist_test())	& vcenter(" // stmtlist_test()")
| " "
| head(while_test())	& vcenter(" // while_test()")
| " "
| head(until_test())	& vcenter(" // until_test()")
| " "
| head(repeat_test())	& vcenter(" // repeat_test()")
| " "
| head(if_test())		& vcenter(" // if_test()")
| " "
| head(if_else_test())	& vcenter(" // if_else_test()")
| " "
;

flow_explanation() =
  "This is 'flow $Revision: 1.1.1.1 $', based on 'flow.vsl " & flow_version() & "'.";

flow_main(_...) -> flow_explanation() | all_flow_tests();
