From 1b44c9fe41e065721ab01b666bc6db8eaa5140ec Mon Sep 17 00:00:00 2001 From: Leo Tenenbaum Date: Mon, 30 Mar 2020 14:50:02 -0400 Subject: double => long double --- main.c | 4 ++++ types.h | 3 +-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/main.c b/main.c index cfc757d..67d6b61 100644 --- a/main.c +++ b/main.c @@ -24,6 +24,10 @@ switch to / add as an alternative: libffi X ::= newtype(int); or something any odd number of "s for a string --- +make sure that floating point literals are exact as possible + have some way of doing Infinity and s/qNaN (you can + have them be in std/math.toc) +once you have a bunch of test code, try making more Expression members pointers error on x ::= {return; 3} #returns_code (struct body is a block, to be evaluated at compile time, which returns the actual statements) - struct varargs diff --git a/types.h b/types.h index 97c68d2..8b17619 100644 --- a/types.h +++ b/types.h @@ -25,7 +25,7 @@ For more information, please refer to */ /* NOTE: make sure you edit copy.c and cgen_recurse_subexprs/types when you make a change to expression-related types or type-related types in this file! */ -typedef long double Floating; /* OPTIM: Switch to double, but make sure floating-point literals are right */ +typedef double Floating; #if __STDC_VERSION__ >= 199901 || defined _MSC_VER @@ -366,7 +366,6 @@ typedef struct { U32 end; /* exclusive */ } SourcePos; -/* NOTE: Location is typedef'd in util/err.c */ typedef struct Token { TokenKind kind; SourcePos pos; -- cgit v1.2.3