v2: fix more ast positions
parent
bc11419ff9
commit
082acfad49
|
@ -71,6 +71,7 @@ fn (m mut map) set(key string, value voidptr) {
|
||||||
mut child_index := 0
|
mut child_index := 0
|
||||||
mut parent := &mapnode(0)
|
mut parent := &mapnode(0)
|
||||||
for {
|
for {
|
||||||
|
|
||||||
if node.size == max_size {
|
if node.size == max_size {
|
||||||
if isnil(parent) {
|
if isnil(parent) {
|
||||||
parent = new_node()
|
parent = new_node()
|
||||||
|
|
|
@ -850,6 +850,7 @@ fn (p mut Parser) infix_expr(left ast.Expr) (ast.Expr,table.Type) {
|
||||||
// mut typ := p.
|
// mut typ := p.
|
||||||
// println('infix op=$op.str()')
|
// println('infix op=$op.str()')
|
||||||
precedence := p.tok.precedence()
|
precedence := p.tok.precedence()
|
||||||
|
pos := p.tok.position()
|
||||||
p.next()
|
p.next()
|
||||||
mut typ := table.Type{}
|
mut typ := table.Type{}
|
||||||
mut right := ast.Expr{}
|
mut right := ast.Expr{}
|
||||||
|
@ -863,7 +864,7 @@ fn (p mut Parser) infix_expr(left ast.Expr) (ast.Expr,table.Type) {
|
||||||
right: right
|
right: right
|
||||||
right_type: typ
|
right_type: typ
|
||||||
op: op
|
op: op
|
||||||
pos: p.tok.position()
|
pos: pos
|
||||||
}
|
}
|
||||||
return expr,typ
|
return expr,typ
|
||||||
}
|
}
|
||||||
|
@ -1019,6 +1020,7 @@ fn (p mut Parser) if_expr() ast.Expr {
|
||||||
// }
|
// }
|
||||||
mut node := ast.Expr{}
|
mut node := ast.Expr{}
|
||||||
p.check(.key_if)
|
p.check(.key_if)
|
||||||
|
pos := p.tok.position()
|
||||||
// `if x := opt() {`
|
// `if x := opt() {`
|
||||||
mut cond := ast.Expr{}
|
mut cond := ast.Expr{}
|
||||||
if p.peek_tok.kind == .decl_assign {
|
if p.peek_tok.kind == .decl_assign {
|
||||||
|
@ -1065,7 +1067,7 @@ fn (p mut Parser) if_expr() ast.Expr {
|
||||||
else_stmts: else_stmts
|
else_stmts: else_stmts
|
||||||
// typ: typ
|
// typ: typ
|
||||||
|
|
||||||
pos: p.tok.position()
|
pos: pos
|
||||||
// left: left
|
// left: left
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1539,7 +1541,7 @@ fn (p mut Parser) match_expr() ast.Expr {
|
||||||
p.check(.comma)
|
p.check(.comma)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
p.warn('match block')
|
// p.warn('match block')
|
||||||
stmts := p.parse_block()
|
stmts := p.parse_block()
|
||||||
blocks << ast.StmtBlock{
|
blocks << ast.StmtBlock{
|
||||||
stmts: stmts
|
stmts: stmts
|
||||||
|
@ -1593,7 +1595,7 @@ fn (p mut Parser) enum_decl() ast.EnumDecl {
|
||||||
for p.tok.kind != .eof && p.tok.kind != .rcbr {
|
for p.tok.kind != .eof && p.tok.kind != .rcbr {
|
||||||
val := p.check_name()
|
val := p.check_name()
|
||||||
vals << val
|
vals << val
|
||||||
p.warn('enum val $val')
|
// p.warn('enum val $val')
|
||||||
if p.tok.kind == .assign {
|
if p.tok.kind == .assign {
|
||||||
p.next()
|
p.next()
|
||||||
p.expr(0)
|
p.expr(0)
|
||||||
|
|
Loading…
Reference in New Issue