cgen: #else
parent
2738a0c776
commit
ce73ced932
|
@ -391,6 +391,7 @@ pub:
|
|||
stmts []Stmt
|
||||
pos token.Position
|
||||
mut:
|
||||
has_else bool
|
||||
else_stmts []Stmt
|
||||
}
|
||||
|
||||
|
|
|
@ -270,10 +270,12 @@ fn (g mut Gen) stmt(node ast.Stmt) {
|
|||
ast.CompIf {
|
||||
g.writeln('\n#ifdef ' + comp_if_to_ifdef(it.val))
|
||||
g.writeln('// #if $it.val')
|
||||
// g.expr(it.cond)
|
||||
// println('comp if stmts $g.file.path:$it.pos.line_nr')
|
||||
g.stmts(it.stmts)
|
||||
// println('done')
|
||||
if it.has_else {
|
||||
g.writeln('#else')
|
||||
g.stmts(it.else_stmts)
|
||||
}
|
||||
g.writeln('#endif')
|
||||
}
|
||||
ast.DeferStmt {
|
||||
|
@ -1728,8 +1730,7 @@ fn (g mut Gen) write_types(types []table.TypeSymbol) {
|
|||
g.definitions.writeln('};\n')
|
||||
}
|
||||
// table.Alias, table.SumType { TODO
|
||||
table.Alias {
|
||||
}
|
||||
table.Alias {}
|
||||
table.Enum {
|
||||
g.definitions.writeln('typedef enum {')
|
||||
for j, val in it.vals {
|
||||
|
@ -2021,6 +2022,9 @@ fn comp_if_to_ifdef(name string) string {
|
|||
'linux_or_macos' {
|
||||
return ''
|
||||
}
|
||||
'mingw' {
|
||||
return '__MINGW32__'
|
||||
}
|
||||
'no_bounds_checking' {
|
||||
return 'NO_BOUNDS_CHECK'
|
||||
}
|
||||
|
|
|
@ -23,6 +23,7 @@ pub fn (p mut Parser) comp_if() ast.CompIf {
|
|||
if p.tok.kind == .dollar && p.peek_tok.kind == .key_else {
|
||||
p.next()
|
||||
p.check(.key_else)
|
||||
node.has_else = true
|
||||
node.else_stmts = p.parse_block()
|
||||
}
|
||||
return node
|
||||
|
|
Loading…
Reference in New Issue