parser: fix `v test-parser examples/cli.v` (#7243)
parent
1c56ff7faf
commit
aedd1d17b8
|
@ -609,3 +609,4 @@ jobs:
|
||||||
./v test-parser examples/hello_world.v
|
./v test-parser examples/hello_world.v
|
||||||
./v test-parser examples/hanoi.v
|
./v test-parser examples/hanoi.v
|
||||||
./v test-parser examples/fibonacci.v
|
./v test-parser examples/fibonacci.v
|
||||||
|
./v test-parser examples/cli.v
|
||||||
|
|
|
@ -140,13 +140,6 @@ fn yellow(msg string) string {
|
||||||
return term.yellow(msg)
|
return term.yellow(msg)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn italic(msg string) string {
|
|
||||||
if !support_color {
|
|
||||||
return msg
|
|
||||||
}
|
|
||||||
return term.italic(msg)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn (mut context Context) log(msg string) {
|
fn (mut context Context) log(msg string) {
|
||||||
if context.is_verbose {
|
if context.is_verbose {
|
||||||
label := yellow('info')
|
label := yellow('info')
|
||||||
|
@ -219,7 +212,7 @@ fn (mut context Context) process_whole_file_in_worker(path string) (int, int) {
|
||||||
col := last_line.len
|
col := last_line.len
|
||||||
err := if is_panic { red('parser failure: panic') } else { red('parser failure: crash, ${ecode_details[res.exit_code.str()]}') }
|
err := if is_panic { red('parser failure: panic') } else { red('parser failure: crash, ${ecode_details[res.exit_code.str()]}') }
|
||||||
path_to_line := bold('$path:$line:$col:')
|
path_to_line := bold('$path:$line:$col:')
|
||||||
err_line := italic(last_line.trim_left('\t'))
|
err_line := last_line.trim_left('\t')
|
||||||
println('$path_to_line $err')
|
println('$path_to_line $err')
|
||||||
println('\t$line | $err_line')
|
println('\t$line | $err_line')
|
||||||
println('')
|
println('')
|
||||||
|
|
|
@ -162,7 +162,7 @@ fn (mut p Parser) match_expr() ast.MatchExpr {
|
||||||
p.check(.lcbr)
|
p.check(.lcbr)
|
||||||
}
|
}
|
||||||
mut branches := []ast.MatchBranch{}
|
mut branches := []ast.MatchBranch{}
|
||||||
for {
|
for p.tok.kind != .eof {
|
||||||
branch_first_pos := p.tok.position()
|
branch_first_pos := p.tok.position()
|
||||||
comments := p.eat_comments() // comments before {}
|
comments := p.eat_comments() // comments before {}
|
||||||
mut exprs := []ast.Expr{}
|
mut exprs := []ast.Expr{}
|
||||||
|
|
|
@ -352,12 +352,8 @@ pub fn (mut p Parser) parse_block_no_scope(is_top_level bool) []ast.Stmt {
|
||||||
mut stmts := []ast.Stmt{}
|
mut stmts := []ast.Stmt{}
|
||||||
if p.tok.kind != .rcbr {
|
if p.tok.kind != .rcbr {
|
||||||
mut c := 0
|
mut c := 0
|
||||||
for {
|
for p.tok.kind !in [.eof, .rcbr] {
|
||||||
stmts << p.stmt(is_top_level)
|
stmts << p.stmt(is_top_level)
|
||||||
// p.warn('after stmt(): tok=$p.tok.str()')
|
|
||||||
if p.tok.kind in [.eof, .rcbr] {
|
|
||||||
break
|
|
||||||
}
|
|
||||||
c++
|
c++
|
||||||
if c % 100000 == 0 {
|
if c % 100000 == 0 {
|
||||||
eprintln('parsed $c statements so far from fn $p.cur_fn_name ...')
|
eprintln('parsed $c statements so far from fn $p.cur_fn_name ...')
|
||||||
|
|
|
@ -319,7 +319,7 @@ fn (mut p Parser) struct_init(short_syntax bool) ast.StructInit {
|
||||||
// p.warn(is_short_syntax.str())
|
// p.warn(is_short_syntax.str())
|
||||||
saved_is_amp := p.is_amp
|
saved_is_amp := p.is_amp
|
||||||
p.is_amp = false
|
p.is_amp = false
|
||||||
for p.tok.kind != .rcbr && p.tok.kind != .rpar {
|
for p.tok.kind !in [.rcbr, .rpar, .eof] {
|
||||||
mut field_name := ''
|
mut field_name := ''
|
||||||
mut expr := ast.Expr{}
|
mut expr := ast.Expr{}
|
||||||
mut field_pos := token.Position{}
|
mut field_pos := token.Position{}
|
||||||
|
|
Loading…
Reference in New Issue