--- /dev/null
+/*\r
+ * errsupport.c -- error support code for SORCERER output\r
+ *\r
+ * Define your own or compile and link this in.\r
+ *\r
+ * Terence Parr\r
+ * U of MN, AHPCRC\r
+ * February 1994\r
+ */\r
+#include "sorcerer.h"\r
+\r
+void\r
+#ifdef __USE_PROTOS\r
+mismatched_range( STreeParser *_parser, int looking_for, int upper_token, SORAST *found )\r
+#else\r
+mismatched_range( _parser, looking_for, upper_token, found )\r
+int looking_for;\r
+int upper_token;\r
+SORAST *found;\r
+STreeParser *_parser;\r
+#endif\r
+{\r
+ if ( found!=NULL ) {\r
+ fprintf(stderr,\r
+ "parse error: expected token range %d..%d found token %d\n",\r
+ looking_for, upper_token,\r
+ found->token);\r
+ }\r
+ else {\r
+ fprintf(stderr,\r
+ "parse error: expected token range %d..%d found NULL tree\n",\r
+ looking_for, upper_token);\r
+ }\r
+}\r
+\r
+void\r
+#ifdef __USE_PROTOS\r
+missing_wildcard(STreeParser *_parser)\r
+#else\r
+missing_wildcard(_parser)\r
+STreeParser *_parser;\r
+#endif\r
+{\r
+ fprintf(stderr, "parse error: expected any token/tree found found NULL tree\n");\r
+}\r
+\r
+void\r
+#ifdef __USE_PROTOS\r
+mismatched_token( STreeParser *_parser, int looking_for, SORAST *found )\r
+#else\r
+mismatched_token( _parser, looking_for, found )\r
+int looking_for;\r
+SORAST *found;\r
+STreeParser *_parser;\r
+#endif\r
+{\r
+ if ( found!=NULL ) {\r
+ fprintf(stderr,\r
+ "parse error: expected token %d found token %d\n",\r
+ looking_for,\r
+ found->token);\r
+ }\r
+ else {\r
+ fprintf(stderr,\r
+ "parse error: expected token %d found NULL tree\n",\r
+ looking_for);\r
+ }\r
+}\r
+\r
+void\r
+#ifdef __USE_PROTOS\r
+no_viable_alt( STreeParser *_parser, char *rulename, SORAST *root )\r
+#else\r
+no_viable_alt( _parser, rulename, root )\r
+char *rulename;\r
+SORAST *root;\r
+STreeParser *_parser;\r
+#endif\r
+{\r
+ if ( root==NULL )\r
+ fprintf(stderr,\r
+ "parse error: in rule %s, no viable alternative for NULL tree\n",\r
+ rulename);\r
+ else\r
+ fprintf(stderr,\r
+ "parse error: in rule %s, no viable alternative for tree\n",\r
+ rulename);\r
+}\r
+\r
+void\r
+#ifdef __USE_PROTOS\r
+sorcerer_panic(char *err)\r
+#else\r
+sorcerer_panic(err)\r
+char *err;\r
+#endif\r
+{\r
+ fprintf(stderr, "panic: %s\n", err);\r
+ exit(-1);\r
+}\r