remove #ifdef, #ifndef, etc
parent
0026b228c3
commit
56608dfd2b
|
@ -62,6 +62,8 @@ pub fn malloc(n int) byteptr {
|
||||||
if n < 0 {
|
if n < 0 {
|
||||||
panic('malloc(<0)')
|
panic('malloc(<0)')
|
||||||
}
|
}
|
||||||
|
/*
|
||||||
|
TODO
|
||||||
#ifdef VPLAY
|
#ifdef VPLAY
|
||||||
if n > 10000 {
|
if n > 10000 {
|
||||||
panic('allocating more than 10 KB is not allowed in the playground')
|
panic('allocating more than 10 KB is not allowed in the playground')
|
||||||
|
@ -72,6 +74,7 @@ pub fn malloc(n int) byteptr {
|
||||||
println('\n\n\nmalloc($n) total=$total_m')
|
println('\n\n\nmalloc($n) total=$total_m')
|
||||||
print_backtrace()
|
print_backtrace()
|
||||||
#endif
|
#endif
|
||||||
|
*/
|
||||||
ptr := C.malloc(n)
|
ptr := C.malloc(n)
|
||||||
if isnil(ptr) {
|
if isnil(ptr) {
|
||||||
panic('malloc($n) failed')
|
panic('malloc($n) failed')
|
||||||
|
|
|
@ -2627,48 +2627,18 @@ fn (p mut Parser) chash() {
|
||||||
p.genln('#include $file')
|
p.genln('#include $file')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if is_c_pre(hash) {
|
else if hash.contains('define') {
|
||||||
// Skip not current OS hack
|
// Move defines on top
|
||||||
if hash.starts_with('ifdef') {
|
p.cgen.includes << '#$hash'
|
||||||
os := hash.right(6).trim_space()
|
|
||||||
// println('ifdef "$os" $p.scanner.line_nr')
|
|
||||||
if os == 'linux' && p.os != LINUX {
|
|
||||||
// println('linux ifdef skip')
|
|
||||||
for p.tok != EOF {
|
|
||||||
if p.tok == HASH && p.lit.contains('else') || p.lit.contains('endif') {
|
|
||||||
break
|
|
||||||
}
|
|
||||||
// println('skipping')
|
|
||||||
p.next()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Move defines on top (like old gdefine)
|
|
||||||
if hash.contains('define') {
|
|
||||||
p.cgen.includes << '#$hash'
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
p.genln('#$hash')
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if !p.can_chash {
|
if !p.can_chash {
|
||||||
p.error('bad token `#` (embedding C code is no longer supported)')
|
p.error('bad token `#` (embedding C code is no longer supported)')
|
||||||
}
|
}
|
||||||
//println('HASH!!! $p.file_name $p.scanner.line_nr')
|
|
||||||
if p.cur_fn.name == '' {
|
|
||||||
// p.error('# outside of fn')
|
|
||||||
}
|
|
||||||
p.genln(hash)
|
p.genln(hash)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn is_c_pre(hash string) bool {
|
|
||||||
return hash.contains('ifdef') || hash.contains('define') ||
|
|
||||||
hash.contains('endif') || hash.contains('elif') ||
|
|
||||||
hash.contains('ifndef') || (hash.contains('else') && !hash.contains('{'))
|
|
||||||
}
|
|
||||||
|
|
||||||
fn (p mut Parser) if_st(is_expr bool) string {
|
fn (p mut Parser) if_st(is_expr bool) string {
|
||||||
if is_expr {
|
if is_expr {
|
||||||
if p.fileis('if_expr') {
|
if p.fileis('if_expr') {
|
||||||
|
|
Loading…
Reference in New Issue