parent
4ce6e663bf
commit
c07ce3ff15
|
@ -645,6 +645,9 @@ pub fn (mut g Gen) init() {
|
||||||
g.cheaders.writeln(get_guarded_include_text('<stddef.h>', 'The C compiler can not find <stddef.h>. Please install build-essentials')) // size_t, ptrdiff_t
|
g.cheaders.writeln(get_guarded_include_text('<stddef.h>', 'The C compiler can not find <stddef.h>. Please install build-essentials')) // size_t, ptrdiff_t
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if g.pref.nofloat {
|
||||||
|
g.cheaders.writeln('#define VNOFLOAT 1')
|
||||||
|
}
|
||||||
g.cheaders.writeln(c_builtin_types)
|
g.cheaders.writeln(c_builtin_types)
|
||||||
if g.pref.is_bare {
|
if g.pref.is_bare {
|
||||||
g.cheaders.writeln(c_bare_headers)
|
g.cheaders.writeln(c_bare_headers)
|
||||||
|
|
|
@ -656,10 +656,19 @@ typedef uint8_t byte;
|
||||||
typedef uint32_t rune;
|
typedef uint32_t rune;
|
||||||
typedef size_t usize;
|
typedef size_t usize;
|
||||||
typedef ptrdiff_t isize;
|
typedef ptrdiff_t isize;
|
||||||
|
#ifndef VNOFLOAT
|
||||||
typedef float f32;
|
typedef float f32;
|
||||||
typedef double f64;
|
typedef double f64;
|
||||||
|
#else
|
||||||
|
typedef int32_t f32;
|
||||||
|
typedef int64_t f64;
|
||||||
|
#endif
|
||||||
typedef int64_t int_literal;
|
typedef int64_t int_literal;
|
||||||
|
#ifndef VNOFLOAT
|
||||||
typedef double float_literal;
|
typedef double float_literal;
|
||||||
|
#else
|
||||||
|
typedef int64_t float_literal;
|
||||||
|
#endif
|
||||||
typedef unsigned char* byteptr;
|
typedef unsigned char* byteptr;
|
||||||
typedef void* voidptr;
|
typedef void* voidptr;
|
||||||
typedef char* charptr;
|
typedef char* charptr;
|
||||||
|
|
|
@ -106,8 +106,10 @@ fn (mut p Parser) decode_value() ?Any {
|
||||||
kind := p.tok.kind
|
kind := p.tok.kind
|
||||||
p.next_with_err() ?
|
p.next_with_err() ?
|
||||||
if p.convert_type {
|
if p.convert_type {
|
||||||
if kind == .float {
|
$if !nofloat ? {
|
||||||
return Any(tl.f64())
|
if kind == .float {
|
||||||
|
return Any(tl.f64())
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return Any(tl.i64())
|
return Any(tl.i64())
|
||||||
}
|
}
|
||||||
|
|
|
@ -73,18 +73,25 @@ pub fn (f Any) json_str() string {
|
||||||
return f.str()
|
return f.str()
|
||||||
}
|
}
|
||||||
f32 {
|
f32 {
|
||||||
str_f32 := f.str()
|
$if !nofloat ? {
|
||||||
if str_f32.ends_with('.') {
|
str_f32 := f.str()
|
||||||
return '${str_f32}0'
|
if str_f32.ends_with('.') {
|
||||||
|
return '${str_f32}0'
|
||||||
|
}
|
||||||
|
return str_f32
|
||||||
}
|
}
|
||||||
return str_f32
|
|
||||||
|
return '0'
|
||||||
}
|
}
|
||||||
f64 {
|
f64 {
|
||||||
str_f64 := f.str()
|
$if !nofloat ? {
|
||||||
if str_f64.ends_with('.') {
|
str_f64 := f.str()
|
||||||
return '${str_f64}0'
|
if str_f64.ends_with('.') {
|
||||||
|
return '${str_f64}0'
|
||||||
|
}
|
||||||
|
return str_f64
|
||||||
}
|
}
|
||||||
return str_f64
|
return '0'
|
||||||
}
|
}
|
||||||
map[string]Any {
|
map[string]Any {
|
||||||
return f.str()
|
return f.str()
|
||||||
|
|
Loading…
Reference in New Issue