Slightly more concise generated code for ints
This commit is contained in:
parent
b3f61e16ce
commit
1f2b288b32
@ -34,7 +34,7 @@ CORD compile(env_t *env, ast_t *ast)
|
||||
case Nil: return CORD_asprintf("(%r)NULL", compile_type(env, Match(ast, Nil)->type));
|
||||
case Bool: return Match(ast, Bool)->b ? "yes" : "no";
|
||||
case Var: return Match(ast, Var)->name;
|
||||
case Int: return CORD_asprintf("((Int%ld_t)%ld)", Match(ast, Int)->precision, Match(ast, Int)->i);
|
||||
case Int: return CORD_asprintf("I%ld(%ld)", Match(ast, Int)->precision, Match(ast, Int)->i);
|
||||
case Num: return CORD_asprintf(Match(ast, Num)->precision == 64 ? "%g" : "%gf", Match(ast, Num)->n);
|
||||
case UnaryOp: {
|
||||
auto unop = Match(ast, UnaryOp);
|
||||
|
@ -18,6 +18,10 @@
|
||||
#define Int16_t int16_t
|
||||
#define Int8_t int8_t
|
||||
#define Int_t int64_t
|
||||
#define I64(x) ((int64_t)x)
|
||||
#define I32(x) ((int32_t)x)
|
||||
#define I16(x) ((int16_t)x)
|
||||
#define I8(x) ((int8_t)x)
|
||||
|
||||
#define Num64_t double
|
||||
#define Num32_t float
|
||||
|
Loading…
Reference in New Issue
Block a user