]> git.proxmox.com Git - mirror_edk2.git/blobdiff - EdkCompatibilityPkg/Other/Maintained/Tools/Pccts/sorcerer/h/astlib.h
Add in the 1st version of ECP.
[mirror_edk2.git] / EdkCompatibilityPkg / Other / Maintained / Tools / Pccts / sorcerer / h / astlib.h
diff --git a/EdkCompatibilityPkg/Other/Maintained/Tools/Pccts/sorcerer/h/astlib.h b/EdkCompatibilityPkg/Other/Maintained/Tools/Pccts/sorcerer/h/astlib.h
new file mode 100644 (file)
index 0000000..9c7fd69
--- /dev/null
@@ -0,0 +1,72 @@
+#ifndef astlib_h\r
+#define astlib_h\r
+\r
+/*\r
+ * astlib.h -- C ast_* library header\r
+ *\r
+ * SOFTWARE RIGHTS\r
+ *\r
+ * We reserve no LEGAL rights to SORCERER -- SORCERER is in the public\r
+ * domain.  An individual or company may do whatever they wish with\r
+ * source code distributed with SORCERER or the code generated by\r
+ * SORCERER, including the incorporation of SORCERER, or its output, into\r
+ * commerical software.\r
+ *\r
+ * We encourage users to develop software with SORCERER.  However, we do\r
+ * ask that credit is given to us for developing SORCERER.  By "credit",\r
+ * we mean that if you incorporate our source code into one of your\r
+ * programs (commercial product, research project, or otherwise) that you\r
+ * acknowledge this fact somewhere in the documentation, research report,\r
+ * etc...  If you like SORCERER and have developed a nice tool with the\r
+ * output, please mention that you developed it using SORCERER.  In\r
+ * addition, we ask that this header remain intact in our source code.\r
+ * As long as these guidelines are kept, we expect to continue enhancing\r
+ * this system and expect to make other tools available as they are\r
+ * completed.\r
+ *\r
+ * SORCERER 1.00B\r
+ * Terence Parr\r
+ * AHPCRC, University of Minnesota\r
+ * 1992-1994\r
+ */\r
+#include <setjmp.h>\r
+#include "sorcerer.h"\r
+#include "sorlist.h"\r
+\r
+#define MaxTreeStackDepth  400\r
+\r
+#ifdef __USE_PROTOS\r
+extern SORAST *ast_make(SORAST *rt, ...);\r
+extern SORAST *ast_find_all(SORAST *t, SORAST *u, SORAST **cursor);\r
+extern int ast_match(SORAST *t, SORAST *u);\r
+extern void ast_insert_after(SORAST *a, SORAST *b);\r
+extern void ast_append(SORAST *a, SORAST *b);\r
+extern SORAST *ast_tail(SORAST *a);\r
+extern SORAST *ast_bottom(SORAST *a);\r
+extern SORAST *ast_cut_between(SORAST *a, SORAST *b);\r
+extern SList *ast_to_slist(SORAST *t);\r
+extern SORAST *slist_to_ast(SList *list);\r
+extern void ast_free(SORAST *t);\r
+extern int ast_scan(char *template, SORAST *tree, ...);\r
+extern int ast_nsiblings(SORAST *t);\r
+extern SORAST *ast_sibling_index(SORAST *t, int i);\r
+extern int ast_match_partial(SORAST *t, SORAST *u);\r
+#else\r
+extern SORAST *ast_make();\r
+extern SORAST *ast_find_all();\r
+extern int ast_match();\r
+extern void ast_insert_after();\r
+extern void ast_append();\r
+extern SORAST *ast_tail();\r
+extern SORAST *ast_bottom();\r
+extern SORAST *ast_cut_between();\r
+extern SList *ast_to_slist();\r
+extern SORAST *slist_to_ast();\r
+extern void ast_free();\r
+extern int ast_scan();\r
+extern int ast_nsiblings();\r
+extern SORAST *ast_sibling_index();\r
+extern int ast_match_partial();\r
+#endif\r
+\r
+#endif\r