aboutsummaryrefslogtreecommitdiff
path: root/backendC/CleanCompilerSources/sizes.h
diff options
context:
space:
mode:
Diffstat (limited to 'backendC/CleanCompilerSources/sizes.h')
-rw-r--r--backendC/CleanCompilerSources/sizes.h89
1 files changed, 89 insertions, 0 deletions
diff --git a/backendC/CleanCompilerSources/sizes.h b/backendC/CleanCompilerSources/sizes.h
new file mode 100644
index 0000000..ae644e5
--- /dev/null
+++ b/backendC/CleanCompilerSources/sizes.h
@@ -0,0 +1,89 @@
+
+#define kCopyStringLength 512
+#define MaxUnsigned 65535
+
+/* The maximum arity of tuples is defined by MaxTupleArity */
+
+#define MaxNodeArity 32
+#define MaxGeneratedIdentSize 512
+
+/* The scanner maintains a buffer for holding identifiers and literals whereof the
+ size is indicated by ScanBuffSize
+*/
+
+#define ScanBuffSize (KBYTE*32)
+
+/* Identifiers may cantain upto IdLength characters */
+
+#define IdLength 256
+
+/* The actual size of the id-buffer is greater than the IdLength.
+ This allows us to add extensions of length 4 to identifiers
+ (used in module names) */
+
+#define MaxIdLength ((SizeT) (IdLength + 4))
+#define MaxStrLength 256 /* maximum number of characters in a string */
+#define MaxCharLength 6 /* maximum number of chararcters in a character denotation */
+#define MaxNrOfDigits 80 /* maximum number of digits in a real */
+#define MaxNumLength (MaxNrOfDigits + 4) /* maximum number of characters in a real
+ or integer denotation */
+
+#define MaxInstrLength 256 /* maximum number of characters in an instruction */
+
+/* Identifiers and literals are stored in different tables. The size of these tables
+ are given below */
+
+#define SymbTabSize ((SizeT) KBYTE)
+#define NodeTabSize ((SizeT) KBYTE)
+#define ModTabSize ((SizeT) 32)
+#define LitTabSize ((SizeT) KBYTE)
+
+/*
+ Compsupport
+*/
+
+/* The compiler uses its own storage administration. When some storage is required
+ it is checked whether or not this storage is available. If not, a new memory
+ block of size MemBlockSize is allocated. Keeping the size large will slightly
+ increase the performance of the memory allocator.
+*/
+
+#ifdef __MWERKS__
+# define MemBlockSize ((SizeT) (16*KBYTE))
+#else
+# define MemBlockSize ((SizeT) (32*KBYTE))
+#endif
+#define TH_BlockSize ((SizeT) (16*KBYTE))
+
+/* TypeChecker */
+
+/* For efficient internal garbage collection the type checker uses its own storage
+ administration. The constant TCWorkSpaceSize has the same function as MemBlockSize
+ in comsupport.
+*/
+
+#define TCWorkSpaceSize ((SizeT) (16*KBYTE))
+
+/* Code Generator */
+
+/* The size of objects expressed in amounts of stack entries are given below */
+
+#define SizeOfInt 1
+#define SizeOfBool 1
+#define SizeOfChar 1
+#define SizeOfReal REALSIZE
+#define SizeOfFile FILESIZE
+#define SizeOfVoid 1
+#define SizeOfProcId 1
+#define SizeOfAStackElem 1
+
+#define NrOfGlobalSelectors 6
+
+/* Inline instruction administration (part of the code generator) */
+
+#define LineLength 300 /* maximum number of charcters on one line */
+#define MaxInlineInstr 60 /* maximum number of instructions that may be
+ substituted for one system call */
+
+#define InlineBuffSize ((SizeT) KBYTE * 32) /* the size of the buffer
+ containing all the inline instructions */