parser: adjust location info for variable_decl
This commit is contained in:
parent
7c286f2261
commit
828b84e1cc
1 changed files with 2 additions and 2 deletions
|
@ -255,10 +255,10 @@ variable_decl(ParserState *ps, enum LexTokenId decl_kind)
|
||||||
};
|
};
|
||||||
Assert(decl_kind == T_LET || decl_kind == T_VAR || decl_kind == T_CONST);
|
Assert(decl_kind == T_LET || decl_kind == T_VAR || decl_kind == T_CONST);
|
||||||
|
|
||||||
|
Ast *decl = make_tree(AST_VARDECL, ps->lexer->cur_loc);
|
||||||
LexToken token = lex_scan(ps->lexer);
|
LexToken token = lex_scan(ps->lexer);
|
||||||
lex_match(ps->lexer, &token, T_IDENT);
|
lex_match(ps->lexer, &token, T_IDENT);
|
||||||
|
|
||||||
Ast *decl = make_tree(AST_VARDECL, ps->lexer->cur_loc);
|
|
||||||
decl->var = (AstVarDecl) {
|
decl->var = (AstVarDecl) {
|
||||||
.name = token.ident,
|
.name = token.ident,
|
||||||
.kind = Token2SemaVarKind[decl_kind],
|
.kind = Token2SemaVarKind[decl_kind],
|
||||||
|
@ -271,7 +271,7 @@ variable_decl(ParserState *ps, enum LexTokenId decl_kind)
|
||||||
parse_error(ps, "expected a type, got %s instead", TokenIdStr[token.id]);
|
parse_error(ps, "expected a type, got %s instead", TokenIdStr[token.id]);
|
||||||
return nil;
|
return nil;
|
||||||
}
|
}
|
||||||
decl->var.datatype = make_ident_node(token.ident, ps->lexer->cur_loc);
|
decl->var.datatype = make_ident_node(token.ident, token.loc);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* assignment expression */
|
/* assignment expression */
|
||||||
|
|
Loading…
Add table
Reference in a new issue