summaryrefslogtreecommitdiffstats
path: root/llvm/utils/Burg/string.c
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2003-10-05 19:27:59 +0000
committerChris Lattner <sabre@nondot.org>2003-10-05 19:27:59 +0000
commitf5bd1b7a8e141df5bfebdd9749c1e11bc4607766 (patch)
tree79b60f4661c49df6b0576c9d064c90f31ae575ba /llvm/utils/Burg/string.c
parent5f0c08e9cfe2d8a1233c0e92ac2dea62b4dc40b0 (diff)
downloadbcm5719-llvm-f5bd1b7a8e141df5bfebdd9749c1e11bc4607766.tar.gz
bcm5719-llvm-f5bd1b7a8e141df5bfebdd9749c1e11bc4607766.zip
Move support/tools/* back into utils
llvm-svn: 8875
Diffstat (limited to 'llvm/utils/Burg/string.c')
-rw-r--r--llvm/utils/Burg/string.c65
1 files changed, 65 insertions, 0 deletions
diff --git a/llvm/utils/Burg/string.c b/llvm/utils/Burg/string.c
new file mode 100644
index 00000000000..9b69c3045ff
--- /dev/null
+++ b/llvm/utils/Burg/string.c
@@ -0,0 +1,65 @@
+char rcsid_string[] = "$Id$";
+
+#include <stdio.h>
+#include <string.h>
+#include "b.h"
+#include "fe.h"
+
+static StrTableElement newStrTableElement ARGS((void));
+
+StrTable
+newStrTable()
+{
+ return (StrTable) zalloc(sizeof(struct strTable));
+}
+
+static StrTableElement
+newStrTableElement()
+{
+ return (StrTableElement) zalloc(sizeof(struct strTableElement));
+}
+
+void
+dumpStrTable(t) StrTable t;
+{
+ List e;
+ IntList r;
+
+ printf("Begin StrTable\n");
+ for (e = t->elems; e; e = e->next) {
+ StrTableElement el = (StrTableElement) e->x;
+ printf("%s: ", el->str);
+ for (r = el->erulenos; r; r = r->next) {
+ int i = r->x;
+ printf("(%d)", i);
+ }
+ printf("\n");
+ }
+ printf("End StrTable\n");
+}
+
+StrTableElement
+addString(t, s, eruleno, new) StrTable t; char *s; int eruleno; int *new;
+{
+ List l;
+ StrTableElement ste;
+
+ assert(t);
+ for (l = t->elems; l; l = l->next) {
+ StrTableElement e = (StrTableElement) l->x;
+
+ assert(e);
+ if (!strcmp(s, e->str)) {
+ e->erulenos = newIntList(eruleno, e->erulenos);
+ *new = 0;
+ return e;
+ }
+ }
+ ste = newStrTableElement();
+ ste->erulenos = newIntList(eruleno, 0);
+ ste->str = (char *) zalloc(strlen(s) + 1);
+ strcpy(ste->str, s);
+ t->elems = newList(ste, t->elems);
+ *new = 1;
+ return ste;
+}
OpenPOWER on IntegriCloud