]> git.saurik.com Git - bison.git/blobdiff - src/state.h
* src/state.h (CORE_ALLOC, SHIFTS_ALLOC, ERRS_ALLOC)
[bison.git] / src / state.h
index f42425556490fcec2abe7f20a580e8a07a01fa65..4c60a271268689937b0a60b0b254926d128552cf 100644 (file)
@@ -99,7 +99,9 @@ typedef struct core
 }
 core;
 
-
+#define CORE_ALLOC(Nitems)                                             \
+  (core *) xcalloc ((unsigned) (sizeof (core)                          \
+                                + (Nitems - 1) * sizeof (short)), 1)
 
 typedef struct shifts
 {
@@ -110,6 +112,9 @@ typedef struct shifts
 }
 shifts;
 
+#define SHIFTS_ALLOC(Nshifts)                                          \
+  (shifts *) xcalloc ((unsigned) (sizeof (shifts)                      \
+                                  + (Nshifts - 1) * sizeof (short)), 1)
 
 
 typedef struct errs
@@ -119,6 +124,10 @@ typedef struct errs
 }
 errs;
 
+#define ERRS_ALLOC(Nerrs)                                              \
+  (errs *) xcalloc ((unsigned) (sizeof (errs)                          \
+                                  + (Nerrs - 1) * sizeof (short)), 1)
+
 
 
 typedef struct reductions
@@ -130,4 +139,8 @@ typedef struct reductions
 }
 reductions;
 
+#define REDUCTIONS_ALLOC(Nreductions)                                  \
+  (reductions *) xcalloc ((unsigned) (sizeof (reductions)              \
+                                  + (Nreductions - 1) * sizeof (short)), 1)
+
 #endif /* !STATE_H_ */