#!vsl

// $Id: lets,v 1.1.1.1 1995/05/01 15:48:49 zeller Exp $ 
// Tester LET und WHERE

// $Log: lets,v $
# Revision 1.1.1.1  1995/05/01  15:48:49  zeller
# DDD 0.9 distribution
#
// Revision 9.3  1993/06/25  12:02:14  zeller
// *** empty log message ***
//
// Revision 9.2  1993/05/22  20:22:35  zeller
// %Q% added by apply-q-flag.sh 1.5
//
// Revision 9.1  1991/07/08  06:01:39  zeller
// Installierte Version
// 
// Revision 8.1  1991/07/06  15:04:43  zeller
// Installierte Version
// 
// Revision 4.2  1991/06/07  15:42:44  zeller
// Tester let def1, def2 und where def1, def2 eingefuehrt
// 
// Revision 4.1  1991/05/25  12:53:45  zeller
// Neue Version mit folgenden Eigenschaften:
// Let- und Where-Konstrukten;
// Lokalen und globalen Funktionen, Overloading;
// Erweiterten Fehlermeldungen.
// 
// Revision 1.3  1991/05/23  19:04:50  zeller
// Weitere (kryptische) Tests eingefuehrt
// 
// Revision 1.2  1991/05/23  18:54:57  zeller
// Header verkuerzt
// 
// Revision 1.1  1991/05/23  10:43:06  zeller
// Initial revision
// 

#include <builtin.vsl>

l1 -> let hi = "hello, you" in hi;

l2() -> let hi = "hello, you" in hi;

l3() -> let hi = "hello" in hi & ", you";

l4(you) -> let hi = "hello" in hi & you;

l5(you) -> let him = you, hi = "hello" in hi & him;

l6(you) -> let hi = "hello" in let him = you in hi & him;

l7(you) -> let hi = "hello" in let ho = hi in ho & you;

l8(you) -> let you = "hello" & you in you;

w1 -> hi where hi = "hello, you";

w2() -> hi where hi = "hello, you";

w3() -> hi & ", you" where hi = "hello";

w4(you) -> hi & you where hi = "hello";

w5(you) -> hi & him where him = you, hi = "hello";

w6(you) -> hi & him where hi = "hello" where him = you;

w7(you) -> ho & you where ho = hi where hi = "hello";

w8(you) -> you where you = "hello" & you;

lw1 -> let hi = "hello" in hi & you where you = ", you";

all() -> 
  l1 
| l2() 
| l3() 
| l4(", you") 
| l5(", you") 
| l6(", you") 
| l7(", you")
| l8(", you")
| w1 
| w2() 
| w3() 
| w4(", you") 
| w5(", you") 
| w6(", you") 
| w7(", you")
| w8(", you")
| lw1;
