]> git.proxmox.com Git - mirror_edk2.git/blobdiff - EdkCompatibilityPkg/Other/Maintained/Tools/Pccts/sorcerer/lib/errsupport.c
Add in the 1st version of ECP.
[mirror_edk2.git] / EdkCompatibilityPkg / Other / Maintained / Tools / Pccts / sorcerer / lib / errsupport.c
diff --git a/EdkCompatibilityPkg/Other/Maintained/Tools/Pccts/sorcerer/lib/errsupport.c b/EdkCompatibilityPkg/Other/Maintained/Tools/Pccts/sorcerer/lib/errsupport.c
new file mode 100644 (file)
index 0000000..4048ba5
--- /dev/null
@@ -0,0 +1,100 @@
+/*\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