mirror of
https://github.com/c3lang/c3c.git
synced 2026-02-27 12:01:16 +00:00
Re-add () to ct constructs.
This commit is contained in:
@@ -16,65 +16,71 @@ $assert (C_SHORT_SIZE <= C_INT_SIZE);
|
||||
$assert (C_INT_SIZE <= C_LONG_SIZE);
|
||||
$assert (C_LONG_SIZE <= C_LONG_LONG_SIZE);
|
||||
|
||||
$if C_INT_SIZE == 64:
|
||||
$switch ($$C_INT_SIZE):
|
||||
$case 64:
|
||||
define CInt = long;
|
||||
define CUInt = ulong;
|
||||
$elif C_INT_SIZE == 32:
|
||||
$case 32:
|
||||
define CInt = int;
|
||||
define CUInt = uint;
|
||||
$elif C_INT_SIZE == 16:
|
||||
$case 16:
|
||||
define CInt = short;
|
||||
define CUInt = ushort;
|
||||
$else:
|
||||
$default:
|
||||
$assert(false, "Invalid C int size");
|
||||
$endif;
|
||||
$endswitch;
|
||||
|
||||
$if C_LONG_SIZE == 64:
|
||||
$switch ($$C_LONG_SIZE):
|
||||
$case 64:
|
||||
define CLong = long;
|
||||
define CULong = ulong;
|
||||
$elif C_LONG_SIZE == 32:
|
||||
$case 32:
|
||||
define CLong = int;
|
||||
define CULong = uint;
|
||||
$elif C_LONG_SIZE == 16:
|
||||
$case 16:
|
||||
define CLong = short;
|
||||
define CULong = ushort;
|
||||
$else:
|
||||
$default:
|
||||
$assert(false, "Invalid C long size");
|
||||
$endif;
|
||||
$endswitch;
|
||||
|
||||
$if C_SHORT_SIZE == 32:
|
||||
$switch ($$C_SHORT_SIZE):
|
||||
$case 32:
|
||||
define CShort = int;
|
||||
define CUShort = uint;
|
||||
$elif C_SHORT_SIZE == 16:
|
||||
$case 16:
|
||||
define CShort = short;
|
||||
define CUShort = ushort;
|
||||
$elif C_SHORT_SIZE == 8:
|
||||
$case 8:
|
||||
define CShort = ichar;
|
||||
define CUShort = char;
|
||||
$else:
|
||||
$default:
|
||||
$assert(false, "Invalid C short size");
|
||||
$endif;
|
||||
$endswitch;
|
||||
|
||||
$if C_LONG_LONG_SIZE == 128:
|
||||
$switch ($$C_LONG_LONG_SIZE):
|
||||
$case 128:
|
||||
define CLongLong = int128;
|
||||
define CULongLong = uint128;
|
||||
$elif C_LONG_LONG_SIZE == 64:
|
||||
$case 64:
|
||||
define CLongLong = long;
|
||||
define CULongLong = ulong;
|
||||
$elif C_LONG_LONG_SIZE == 32:
|
||||
$case 32:
|
||||
define CLongLong = int;
|
||||
define CULongLong = uint;
|
||||
$elif C_LONG_LONG_SIZE == 16:
|
||||
$case 16:
|
||||
define CLongLong = short;
|
||||
define CULongLong = ushort;
|
||||
$else:
|
||||
$default:
|
||||
$assert(false, "Invalid C long long size");
|
||||
$endif;
|
||||
$endswitch;
|
||||
|
||||
|
||||
|
||||
define CSChar = ichar;
|
||||
define CUChar = char;
|
||||
|
||||
$if $$C_CHAR_IS_SIGNED:
|
||||
$if ($$C_CHAR_IS_SIGNED):
|
||||
define CChar = ichar;
|
||||
$else:
|
||||
define CChar = char;
|
||||
|
||||
@@ -5,29 +5,23 @@ $assert(Enum.min < Enum.max, "Only strictly increasing enums may be used with en
|
||||
$assert(Enum.max < 64, "Maximum value of an enum used as enum set is 63");
|
||||
$assert(Enum.min >= 0, "Minimum value of an enum used as enum set is 0");
|
||||
|
||||
$switch $$C_INT_SIZE:
|
||||
|
||||
$switch ($$C_INT_SIZE):
|
||||
$case 64:
|
||||
private define EnumSetType = ulong;
|
||||
|
||||
private define EnumSetType = ulong;
|
||||
$case 32:
|
||||
|
||||
$if Enum.max < 32:
|
||||
private define EnumSetType = uint;
|
||||
$if (Enum.max < 32):
|
||||
private define EnumSetType = uint;
|
||||
$else:
|
||||
private define EnumSetType = ulong;
|
||||
private define EnumSetType = ulong;
|
||||
$endif;
|
||||
|
||||
$default:
|
||||
|
||||
$if Enum.max < 16:
|
||||
private define EnumSetType = ushort;
|
||||
$elif Enum.max < 31:
|
||||
private define EnumSetType = uint;
|
||||
$if (Enum.max < 16):
|
||||
private define EnumSetType = ushort;
|
||||
$elif (Enum.max < 31):
|
||||
private define EnumSetType = uint;
|
||||
$else:
|
||||
private define EnumSetType = ulong;
|
||||
private define EnumSetType = ulong;
|
||||
$endif;
|
||||
|
||||
$endswitch;
|
||||
|
||||
define EnumSet = distinct EnumSetType;
|
||||
|
||||
@@ -248,19 +248,8 @@ const int EOF = -1;
|
||||
const int FOPEN_MAX = 20;
|
||||
const int FILENAME_MAX = 1024;
|
||||
|
||||
$if $$C_INT_SIZE == 64:
|
||||
define ErrnoType = long;
|
||||
$elif $$C_INT_SIZE == 32:
|
||||
define ErrnoType = int;
|
||||
$else:
|
||||
define ErrnoType = short;
|
||||
$endif;
|
||||
|
||||
$if $$C_LONG_SIZE == 64:
|
||||
define SeekIndex = long;
|
||||
$else:
|
||||
define SeekIndex = int;
|
||||
$endif;
|
||||
define ErrnoType = CInt;
|
||||
define SeekIndex = CLong;
|
||||
|
||||
extern fn int fclose(CFile stream);
|
||||
extern fn void clearerr(CFile stream);
|
||||
@@ -302,11 +291,7 @@ extern fn void perror(char* str);
|
||||
|
||||
// time.h
|
||||
|
||||
$if $$C_LONG_SIZE == 64:
|
||||
define TimeOffset = long;
|
||||
$else:
|
||||
define TimeOffset = int;
|
||||
$endif;
|
||||
define TimeOffset = CLong;
|
||||
|
||||
struct Tm
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user