From 038ea2d0a34fb362f577e6c9884c710ebaf4042e Mon Sep 17 00:00:00 2001 From: Nicholas Noll Date: Fri, 29 May 2020 17:18:16 -0700 Subject: feat: cc parser prototype finished --- sys/cmd/cc/bits.c | 45 +++++++++++++++++++++++---------------------- 1 file changed, 23 insertions(+), 22 deletions(-) (limited to 'sys/cmd/cc/bits.c') diff --git a/sys/cmd/cc/bits.c b/sys/cmd/cc/bits.c index a13938c..2fe7295 100644 --- a/sys/cmd/cc/bits.c +++ b/sys/cmd/cc/bits.c @@ -16,34 +16,34 @@ enum * enumerated type specifers * see https://en.wikipedia.org/wiki/C_data_types */ -#define VOID X(Tvoid, 0) +#define VOID X(Tvoid, 1) -#define BOOL X(Tbool, 1) -#define CHAR X(Tchar, 2) -#define SCHAR X(Tsign|Tchar, 3) -#define UCHAR X(Tunsign|Tchar, 4) +#define BOOL X(Tbool, 2) +#define CHAR X(Tchar, 3) +#define SCHAR X(Tsign|Tchar, 4) +#define UCHAR X(Tunsign|Tchar, 5) -#define SHORT X(Tshort, 5), X(Tshort|Tint, 5) -#define SSHORT X(Tsign|Tshort, 6), X(Tsign|Tshort|Tint, 6) -#define USHORT X(Tunsign|Tshort, 7), X(Tunsign|Tshort|Tint, 7) +#define SHORT X(Tshort, 6), X(Tshort|Tint, 6) +#define SSHORT X(Tsign|Tshort, 7), X(Tsign|Tshort|Tint, 7) +#define USHORT X(Tunsign|Tshort, 8), X(Tunsign|Tshort|Tint, 8) -#define INT X(0, 8), X(Tint, 8) -#define SINT X(Tsign, 9), X(Tsign|Tint, 9) -#define UINT X(Tunsign, 10), X(Tunsign|Tint, 10) +#define INT X(0, 9), X(Tint, 9) +#define SINT X(Tsign, 10), X(Tsign|Tint, 10) +#define UINT X(Tunsign, 11), X(Tunsign|Tint, 11) -#define LONG X(Tlong, 11), X(Tlong|Tint, 11) -#define SLONG X(Tsign|Tlong, 12), X(Tsign|Tlong|Tint, 12) -#define ULONG X(Tunsign|Tlong, 13), X(Tunsign|Tlong|Tint, 13) +#define LONG X(Tlong, 12), X(Tlong|Tint, 12) +#define SLONG X(Tsign|Tlong, 13), X(Tsign|Tlong|Tint, 13) +#define ULONG X(Tunsign|Tlong, 14), X(Tunsign|Tlong|Tint, 14) -#define VLONG X(Tvlong, 14), X(Tvlong|Tint, 14) -#define SVLONG X(Tsign|Tvlong, 15), X(Tsign|Tvlong|Tint, 15) -#define UVLONG X(Tunsign|Tvlong, 16), X(Tunsign|Tvlong|Tint, 16) +#define VLONG X(Tvlong, 15), X(Tvlong|Tint, 15) +#define SVLONG X(Tsign|Tvlong, 16), X(Tsign|Tvlong|Tint, 16) +#define UVLONG X(Tunsign|Tvlong, 16), X(Tunsign|Tvlong|Tint, 17) -#define FLOAT X(Tfloat, 17) -#define DOUBLE X(Tdouble, 18) -#define LONGDB X(Tlong|Tdouble, 19) -#define COMPLEX X(Tcmplx, 20) -#define IMAGINARY X(Timag, 21) +#define FLOAT X(Tfloat, 18) +#define DOUBLE X(Tdouble, 19) +#define LONGDB X(Tlong|Tdouble, 20) +#define COMPLEX X(Tcmplx, 21) +#define IMAGINARY X(Timag, 22) /* fixed width definitions */ #define DEF(sz, aln, mx, sgn) {.size=sz, .align=aln, .max=mx, .sign=sgn } @@ -91,6 +91,7 @@ Type pointer = {.size=8, .align=8, .max=0xffffffffffffffff, .sign=0}; /* pack architecture specific definitions into exported arrays */ #define TYPE(a, ...) a, Type basetypes[] = { + { 0 }, /* sentinel value for bad types */ TYPES }; #undef TYPE -- cgit v1.2.1