diff options
| author | gingerBill <ginger.bill.22@gmail.com> | 2016-07-12 23:53:34 +0100 |
|---|---|---|
| committer | gingerBill <ginger.bill.22@gmail.com> | 2016-07-12 23:53:34 +0100 |
| commit | aa6a2caecb759522914ba82cc506e60270ad1ab0 (patch) | |
| tree | 68a5cf5479606bc1b10deb4cf63af01e7e513136 /src/parser.cpp | |
| parent | 9f90ff50cf4f93e6c6bb622bc2098dc7cea7f240 (diff) | |
Random Order File Scope Declaration
Diffstat (limited to 'src/parser.cpp')
| -rw-r--r-- | src/parser.cpp | 12 |
1 files changed, 8 insertions, 4 deletions
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; |