From 7a95dbd5ec3cf15a1fca7ea75ae9a51a9efce26a 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 f783c02..d7f5063 100644 --- a/main.c +++ b/main.c @@ -25,6 +25,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 0fffc54..9960599 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