diff options
author | ronny | 2002-07-02 17:54:49 +0000 |
---|---|---|
committer | ronny | 2002-07-02 17:54:49 +0000 |
commit | 110279dd7b798bb76561e77addd70c95937cd4dd (patch) | |
tree | c217cacaa9e400aa1d071274e01bd81861ada774 /main | |
parent | Make all object files in the Unix directory. (diff) |
Added Clean.h.
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1135 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
Diffstat (limited to 'main')
-rw-r--r-- | main/Unix/Clean.h | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/main/Unix/Clean.h b/main/Unix/Clean.h new file mode 100644 index 0000000..1508c1b --- /dev/null +++ b/main/Unix/Clean.h @@ -0,0 +1,28 @@ + +#define Clean(a) + +typedef struct clean_string *CleanString; + +/* a string in Clean is: + struct clean_string { + int clean_string_length; + char clean_string_characters[clean_string_length]; + }; + The string does not end with a '\0' ! +*/ + +/* CleanStringLength(clean_string) returns length of the clean_string in characters */ +#define CleanStringLength(clean_string) (*(unsigned int *)(clean_string)) + +/* CleanStringCharacters(clean_string) returns a pointer to the characters of the clean_string */ +#define CleanStringCharacters(clean_string) ((char*)(1+(unsigned int *)(clean_string))) + +/* CleanStringSizeInts(string_length) return size of CleanString in integers */ +#define CleanStringSizeInts(string_length) (1+(((unsigned int)(string_length)+3)>>2)) + +/* CleanStringVariable(clean_string,string_length) defines variable clean_string with length string_length, + before using the clean_string variable, cast to CleanString, except for the macros above */ +#define CleanStringVariable(clean_string,string_length) unsigned int clean_string[CleanStringSizeInts(string_length)] + +/* CleanStringSizeBytes(string_length) return size of CleanString in bytes */ +#define CleanStringSizeBytes(string_length) (4+(((unsigned int)(string_length)+3) & -4)) |