From aa6a2caecb759522914ba82cc506e60270ad1ab0 Mon Sep 17 00:00:00 2001 From: gingerBill Date: Tue, 12 Jul 2016 23:53:34 +0100 Subject: Random Order File Scope Declaration --- src/parser.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'src/parser.cpp') diff --git a/src/parser.cpp b/src/parser.cpp index d9f4928f1..050a69894 100644 --- a/src/parser.cpp +++ b/src/parser.cpp @@ -310,8 +310,12 @@ Token ast_node_token(AstNode *node) { return node->procedure_declaration.name->identifier.token; case AstNode_TypeDeclaration: return node->type_declaration.token; - case AstNode_Field: - return ast_node_token(node->field.name_list); + case AstNode_Field: { + if (node->field.name_list) + return ast_node_token(node->field.name_list); + else + return ast_node_token(node->field.type_expression); + } case AstNode_ProcedureType: return node->procedure_type.token; case AstNode_PointerType: @@ -1330,9 +1334,9 @@ AstNode *parse_results(Parser *p, AstScope *scope, isize *result_count) { return list; } - AstNode *field = make_field(p, NULL, 0, parse_type(p)); + AstNode *result = parse_type(p); if (result_count) *result_count = 1; - return field; + return result; } if (result_count) *result_count = 0; return NULL; -- cgit v1.2.3