#!vsl

// $Id: errors,v 1.1.1.1 1995/05/01 15:48:49 zeller Exp $ -- Testdatei fuer Fehlererkennung

// $Log: errors,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:35  zeller
// Fix: Kommentare Log-Datei angepasst
//
// Revision 9.2  1993/05/22  20:22:25  zeller
// %Q% added by apply-q-flag.sh 1.5
//
// Revision 9.1  1991/07/08  06:01:14  zeller
// Installierte Version
// 
// Revision 8.1  1991/07/06  15:04:15  zeller
// Installierte Version
// 
// Revision 4.1  1991/05/25  12:52:30  zeller
// Neue Version mit folgenden Eigenschaften:
// Let- und Where-Konstrukten;
// Lokalen und globalen Funktionen, Overloading;
// Erweiterten Fehlermeldungen.
// 
// Revision 3.3  1991/04/27  18:46:05  zeller
// Pruefungen ueberarbeitet;
// Pruefungen auf ungueltige Pattern hinzugefuegt
// 
// Revision 3.2  1991/04/27  14:46:31  zeller
// Operatoren umgestellt: '|' -> ':', '!' -> '|' (wie gehabt)
// 
// Revision 3.1  1991/02/27  02:10:31  zeller
// Umstellung auf neue Syntax (fast ganz wieder die alte)
// 
// Revision 2.2  1991/02/26  11:51:44  zeller
// Umstellung von 'dispVSL' auf 'vsl'
// 
// Revision 2.1  1991/02/26  11:46:08  zeller
// Anpassung auf neue Syntax (vorerst ungetestet)
// 
// Revision 1.6  1991/02/10  18:25:01  zeller
// Letzte Definition muss global sein, um nicht geloescht zu werden
// 
// Revision 1.5  1991/01/23  19:01:31  zeller
// Testfunktionen Pattern-Matching eingefuegt
// 
// Revision 1.4  1990/08/29  12:27:36  zeller
// syntax_error_test() eingefuehrt
// 
// Revision 1.3  1990/08/28  19:24:44  zeller
// main() entfernt
// 
// Revision 1.2  1990/08/26  13:46:03  zeller
// ID's korrigiert
// 
// Revision 1.1  1990/08/26  13:44:05  zeller
// Initial revision
// 

#include <std.vsl>

// infinite_test (should generate a warning when optimizing)
infinite_test() = "Hallo" & infinite_test();

// syntax_error_test (should generate an error)
syntax_error_test() = "a" & @;

// undefined_test (should generate an error)
undefined_test() = __never__defined();

// arg_test (should generate an error)
arg_test(a) = b;

// multiple_arg_test (should generate an error)
multiple_arg_test(a, a) = 0;

// multiple_definition_test (should generate an error)
multiple_definition_test(a, b) = 0;
multiple_definition_test(c, d) = 1;

// shadow_test (should generate a warning)
shadow_test(...) = 0;
shadow_test(a) = a;

// bad pattern test (should generate an error)
nmt(a) = a * a;
no_match_test(nmt(a)) = a;

// bad pattern test (should generate an error)
mmt(a) = a & a;
multiple_match_test(mmt(a)) = a;

// recursive match test (should generate an error)
f(a) = 1;
recursive_match_test(f(a)) = 0;
recursive_match_test(recursive_match_test(a)) = 0;

errors_explanation() = 
  "This is '$RCSfile: errors,v $ $Revision: 1.1.1.1 $'."
| "You should have seen various errors while loading.";

errors_main() = errors_explanation();
errors_main(...) -> errors_main();
