mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-06 07:38:48 +00:00
Fix ast_end_token
This commit is contained in:
+11
-2
@@ -125,6 +125,8 @@ Token ast_end_token(Ast *node) {
|
|||||||
GB_ASSERT(node != nullptr);
|
GB_ASSERT(node != nullptr);
|
||||||
|
|
||||||
switch (node->kind) {
|
switch (node->kind) {
|
||||||
|
case Ast_Invalid:
|
||||||
|
return empty_token;
|
||||||
case Ast_Ident: return node->Ident.token;
|
case Ast_Ident: return node->Ident.token;
|
||||||
case Ast_Implicit: return node->Implicit;
|
case Ast_Implicit: return node->Implicit;
|
||||||
case Ast_Undef: return node->Undef;
|
case Ast_Undef: return node->Undef;
|
||||||
@@ -140,7 +142,11 @@ Token ast_end_token(Ast *node) {
|
|||||||
return node->CompoundLit.close;
|
return node->CompoundLit.close;
|
||||||
|
|
||||||
case Ast_BadExpr: return node->BadExpr.end;
|
case Ast_BadExpr: return node->BadExpr.end;
|
||||||
case Ast_TagExpr: return ast_end_token(node->TagExpr.expr);
|
case Ast_TagExpr:
|
||||||
|
if (node->TagExpr.expr) {
|
||||||
|
return ast_end_token(node->TagExpr.expr);
|
||||||
|
}
|
||||||
|
return node->TagExpr.name;
|
||||||
case Ast_UnaryExpr: return ast_end_token(node->UnaryExpr.expr);
|
case Ast_UnaryExpr: return ast_end_token(node->UnaryExpr.expr);
|
||||||
case Ast_BinaryExpr: return ast_end_token(node->BinaryExpr.right);
|
case Ast_BinaryExpr: return ast_end_token(node->BinaryExpr.right);
|
||||||
case Ast_ParenExpr: return node->ParenExpr.close;
|
case Ast_ParenExpr: return node->ParenExpr.close;
|
||||||
@@ -150,7 +156,10 @@ Token ast_end_token(Ast *node) {
|
|||||||
case Ast_SelectorCallExpr:
|
case Ast_SelectorCallExpr:
|
||||||
return ast_end_token(node->SelectorCallExpr.call);
|
return ast_end_token(node->SelectorCallExpr.call);
|
||||||
case Ast_ImplicitSelectorExpr:
|
case Ast_ImplicitSelectorExpr:
|
||||||
return ast_end_token(node->SelectorExpr.selector);
|
if (node->ImplicitSelectorExpr.selector) {
|
||||||
|
return ast_end_token(node->ImplicitSelectorExpr.selector);
|
||||||
|
}
|
||||||
|
return node->ImplicitSelectorExpr.token;
|
||||||
case Ast_IndexExpr: return node->IndexExpr.close;
|
case Ast_IndexExpr: return node->IndexExpr.close;
|
||||||
case Ast_SliceExpr: return node->SliceExpr.close;
|
case Ast_SliceExpr: return node->SliceExpr.close;
|
||||||
case Ast_Ellipsis:
|
case Ast_Ellipsis:
|
||||||
|
|||||||
Reference in New Issue
Block a user