diff --git a/src/parser_pos.cpp b/src/parser_pos.cpp index 8d164caf9..99b3686ba 100644 --- a/src/parser_pos.cpp +++ b/src/parser_pos.cpp @@ -271,8 +271,13 @@ Token ast_end_token(Ast *node) { if (node->Attribute.close.kind != Token_Invalid) { return node->Attribute.close; } - return ast_end_token(node->Attribute.elems[node->Attribute.elems.count-1]); - + if (node->Attribute.elems.count > 0) { + return ast_end_token(node->Attribute.elems[node->Attribute.elems.count-1]); + } + if (node->Attribute.open.kind != Token_Invalid) { + return node->Attribute.open; + } + return node->Attribute.token; case Ast_Field: if (node->Field.tag.kind != Token_Invalid) { return node->Field.tag;