INTERCAL 0.13 release.
[intercal:intercal.git] / src / lose.h
1 /* lose.h --- error message strings */
2
3 /*
4  * Note: these error message texts, with one exception, are direct from 
5  * the Princeton compiler (INTERCAL-72) sources (transmitted by Don Woods).
6  * The one exception is E632, which in INTERCAL-72 had the error message
7  *      PROGRAM ATTEMPTED TO EXIT WITHOUT ERROR MESSAGE
8  * ESR's "THE NEXT STACK HAS RUPTURED!..." has been retained on the grounds
9  * that it is more obscure and much funnier.  For context, find a copy of
10  * Joe Haldeman's SF short story "A !Tangled Web", first published in 
11  * Analog magazine sometime in 1983 and later anthologized in the author's
12  * "Infinite Dreams" (Ace 1985).
13  */
14 /* An undecodable statement has been encountered in the course of execution."*/
15 #define E000 "000 %s\n\
16         ON THE WAY TO %d\n"
17 /* An expression contains a syntax error. */
18 #define E017 "017 DO YOU EXPECT ME TO FIGURE THIS OUT?\n\
19         ON THE WAY TO %d\n"
20 /* Improper use has been made of statement identifiers. */
21 #define E079 "079 PROGRAMMER IS INSUFFICIENTLY POLITE\n\
22         ON THE WAY TO %d\n"
23 /* Improper use has been made of statement identifiers. */
24 #define E099 "099 PROGRAMMER IS OVERLY POLITE\n\
25         ON THE WAY TO %d\n"
26 /* Program has attempted 80 levels of NEXTing */
27 #define E123 "123 PROGRAM HAS DISAPPEARED INTO THE BLACK LAGOON\n\
28         ON THE WAY TO %d\n"
29 /* Program has attempted to transfer to a non-existent line label */
30 #define E129 "129 PROGRAM HAS GOTTEN LOST\n\
31         ON THE WAY TO WHO KNOWS WHERE\n"
32 /* An ABSTAIN or REINSTATE statement references a non-existent line label */
33 #define E139 "139 I WASN'T PLANNING TO GO THERE ANYWAY\n\
34         ON THE WAY TO %d\n"
35 /* A line label has been multiply defined. */
36 #define E182 "182 YOU MUST LIKE THIS LABEL A LOT!\n\
37         ON THE WAY TO %d\n"
38 /* An invalid line label has been encountered. */
39 #define E197 "197 SO!  65535 LABELS AREN'T ENOUGH FOR YOU?\n\
40         ON THE WAY TO %d\n"
41 /* An expression involves an unidentified variable. */
42 #define E200 "200 NOTHING VENTURED, NOTHING GAINED\n\
43         ON THE WAY TO %d\n"
44 /* An attempt has been made to give an array a dimension of zero. */
45 #define E240 "240 ERROR HANDLER PRINTED SNIDE REMARK\n\
46         ON THE WAY TO %d\n"
47 /* Invalid dimensioning information was supplied
48  * in defining or using an array. */
49 #define E241 "241 VARIABLES MAY NOT BE STORED IN WEST HYPERSPACE\n\
50         ON THE WAY TO %d\n"
51 /* A 32-bit value has been assigned to a 16-bit variable. */
52 #define E275 "275 DON'T BYTE OFF MORE THAN YOU CAN CHEW\n\
53         ON THE WAY TO %d\n"
54 /* A retrieval has been attempted for an unSTASHed value. */
55 #define E436 "436 THROW STICK BEFORE RETRIEVING!\n\
56         ON THE WAY TO %d\n"
57 /* A WRITE IN statement or interleave ($) operation
58  * has produced value requiring over 32 bits to represent. */
59 #define E533 "533 YOU WANT MAYBE WE SHOULD IMPLEMENT 64-BIT VARIABLES?\n\
60         ON THE WAY TO %d\n"
61 /* Insufficient data. (raised by reading past EOF) */
62 #define E562 "562 I DO NOT COMPUTE\n\
63         ON THE WAY TO %d\n"
64 /* Input data is invalid. */
65 #define E579 "579 WHAT BASE AND/OR LANGUAGE INCLUDES %s?\n\
66         ON THE WAY TO %d\n"
67 /* The expression of a RESUME statement evaluated to #0. */
68 #define E621 "621 ERROR TYPE 621 ENCOUNTERED\n\
69         ON THE WAY TO %d\n"
70 /* Program execution terminated via a RESUME statement instead of GIVE UP. */
71 #define E632 "632 THE NEXT STACK RUPTURES.  ALL DIE.  OH, THE EMBARRASSMENT!\n\
72         ON THE WAY TO %d\n"
73 /* Execution has passed beyond the last statement of the program. */
74 #define E633 "633 PROGRAM FELL OFF THE EDGE\n\n\
75         ON THE WAY TO THE NEW WORLD\n"
76 /* A compiler error has occurred (see section 8.1). */
77 #define E774 "774 RANDOM COMPILER BUG\n\
78         ON THE WAY TO %d\n"
79 /* An unexplainable compiler error has occurred (see J. Lyon or D. Woods). */
80 #define E778 "778 UNEXPLAINED COMPILER BUG\n\
81         ON THE WAY TO %d\n"
82
83 /*
84  * These errors are unique to C-INTERCAL.  They ought to be documented in
85  * the revised manual.
86  */
87 /* You tried to use a C-INTERCAL extension with the `traditional' flag on */
88 #define E111 "111 COMMUNIST PLOT DETECTED, COMPILER IS SUICIDING\n\
89         ON THE WAY TO %d\n"
90 /* Cannot find the magically included system library */
91 #define E127 "127 SAYING 'ABRACADABRA' WITHOUT A MAGIC WAND WON'T DO YOU ANY GOOD\n\
92         ON THE WAY TO THE CLOSET\n"
93 /* Out of stash space */
94 #define E222 "222 BUMMER, DUDE!\n\
95         ON THE WAY TO %d\n"
96 /* Too many variables. */
97 #define E333 "333 YOU CAN'T HAVE EVERYTHING, WHERE WOULD YOU PUT IT?\n\
98         ON THE WAY TO %d\n"
99 /* A COME FROM statement references a non-existent line label. */
100 #define E444 "444 IT CAME FROM BEYOND SPACE\n\
101         ON THE WAY TO %d\n"
102 /* More than one COME FROM references the same label. */
103 #define E555 "555 FLOW DIAGRAM IS EXCESSIVELY CONNECTED\n\
104         ON THE WAY TO %d\n"
105 /* Too many source lines. */
106 #define E666 "666 COMPILER HAS INDIGESTION\n\
107         ON THE WAY TO %d\n"
108 /* No such source file. */
109 #define E777 "777 A SOURCE IS A SOURCE, OF COURSE, OF COURSE\n\
110         ON THE WAY TO %d\n"
111 /* Can't open C output file */
112 #define E888 "888 I HAVE NO FILE AND I MUST SCREAM\n\
113         ON THE WAY TO %d\n"
114 /* Can't open C skeleton file. */
115 #define E999 "999 NO SKELETON IN MY CLOSET, WOE IS ME!\n\
116         ON THE WAY TO %d\n"
117 /* Source file name with invalid extension (use .i or .[3-7]i). */
118 #define E998 "998 EXCUSE ME,\n\
119         YOU MUST HAVE ME CONFUSED WITH SOME OTHER COMPILER\n"
120 /* Illegal possession of a controlled unary operator. */
121 #define E997 "997 ILLEGAL POSSESSION OF A CONTROLLED UNARY OPERATOR.\n\
122         ON THE WAY TO %d\n"
123
124 extern int lineno;
125
126 extern void lose(char *m, int n, char *s);
127
128 /* lose.h ends here */