more float stuff

This commit is contained in:
pommicket 2022-01-11 22:43:52 -05:00
parent 06ebaf043b
commit 0779a0fab5
3 changed files with 40 additions and 0 deletions

View file

@ -2,3 +2,4 @@
char * = "How are you"" d""o""i""ng today?\n";
hi
_TEST _ING _1
4.2

View file

@ -310,6 +310,13 @@ function tokenize
data = significand
exponent += 1023 ; float format
data |= exponent < 52
*1out = TOKEN_CONSTANT_FLOAT
out += 1
; suffix
*1out = read_number_suffix(file, line_number, &in)
out += 1
goto token_output
:float_no_integer
byte 0xcc
:float_zero
@ -500,6 +507,7 @@ function print_tokens
if *1p > 20 goto print_token_keyword
if *1p == TOKEN_CONSTANT_INT goto print_token_int
if *1p == TOKEN_CONSTANT_CHAR goto print_token_char
if *1p == TOKEN_CONSTANT_FLOAT goto print_token_float
if *1p == TOKEN_STRING_LITERAL goto print_token_string_literal
if *1p == TOKEN_IDENTIFIER goto print_token_identifier
fputs(2, .str_print_bad_token)
@ -521,6 +529,12 @@ function print_tokens
s = p + 8
puts(*8s)
goto print_token_data
:print_token_float
p += 8
puts(.str_constant_float)
putx(*8p)
p += 8
goto print_tokens_loop
:print_token_info
p += 1
putc('~)
@ -545,6 +559,9 @@ function print_tokens
:str_constant_int
string integer
byte 0
:str_constant_float
string float
byte 0
:str_constant_char
string character
byte 0

View file

@ -308,6 +308,28 @@ function fputn_signed
fputn(fd, n)
return
function fputx
argument fd
argument n
local m
local x
m = 60
:fputx_loop
x = n > m
x &= 0xf
x += .hex_digits
fputc(fd, *1x)
m -= 4
if m >= 0 goto fputx_loop
return
:hex_digits
string 0123456789abcdef
function putx
argument n
fputx(1, n)
return
function putn
argument n
fputn(1, n)