parser: fix programs without fn main
parent
1292163637
commit
bf21108fdb
|
@ -403,21 +403,18 @@ fn (p mut Parser) parse(pass Pass) {
|
||||||
if p.is_script && !p.pref.is_test {
|
if p.is_script && !p.pref.is_test {
|
||||||
// cur_fn is empty since there was no fn main declared
|
// cur_fn is empty since there was no fn main declared
|
||||||
// we need to set it to save and find variables
|
// we need to set it to save and find variables
|
||||||
if p.first_pass() {
|
|
||||||
if p.cur_fn.name == '' {
|
|
||||||
p.set_current_fn( MainFn )
|
|
||||||
}
|
|
||||||
return
|
|
||||||
}
|
|
||||||
if p.cur_fn.name == '' {
|
if p.cur_fn.name == '' {
|
||||||
p.set_current_fn( MainFn )
|
p.set_current_fn( MainFn )
|
||||||
if p.pref.is_repl {
|
if p.pref.is_repl {
|
||||||
|
if p.first_pass() {
|
||||||
|
return
|
||||||
|
}
|
||||||
p.clear_vars()
|
p.clear_vars()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
mut start := p.cgen.lines.len
|
mut start := p.cgen.lines.len
|
||||||
p.statement(true)
|
p.statement(true)
|
||||||
if p.cgen.lines[start - 1] != '' && p.cgen.fn_main != '' {
|
if start > 0 && p.cgen.lines[start - 1] != '' && p.cgen.fn_main != '' {
|
||||||
start--
|
start--
|
||||||
}
|
}
|
||||||
p.genln('')
|
p.genln('')
|
||||||
|
|
Loading…
Reference in New Issue