From 4c89a86ee6b423d76b03b25ba1eae226b3245fd4 Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Sun, 22 Aug 2021 19:00:47 -0500 Subject: [PATCH] added 'typeof' --- bin/onyx | Bin 413944 -> 413944 bytes include/onyxastnodes.h | 11 +++++++ include/onyxlex.h | 1 + misc/onyx.sublime-syntax | 2 +- misc/onyx.vim | 2 +- src/onyxastnodes.c | 1 + src/onyxchecker.c | 62 ++++++++++++++++++++++++++++++++++----- src/onyxclone.c | 7 +++++ src/onyxlex.c | 4 ++- src/onyxparser.c | 23 +++++++++++++++ src/onyxsymres.c | 30 +++++++++++++++---- src/onyxtypes.c | 11 ++++++- 12 files changed, 138 insertions(+), 16 deletions(-) diff --git a/bin/onyx b/bin/onyx index 61209641ef06439b7698939dd0dce9c6b7fb936a..dcc66d87ec88b434b61b2127f01e166884245602 100755 GIT binary patch delta 122061 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

rVt1@W=3mmqSjYX`w4(d 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 CVgCsL delta 121130 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 diff --git a/include/onyxastnodes.h b/include/onyxastnodes.h index a632a022..aa27da73 100644 --- a/include/onyxastnodes.h +++ b/include/onyxastnodes.h @@ -66,6 +66,7 @@ NODE(TypeAlias) \ NODE(TypeRawAlias) \ NODE(CompoundType) \ + NODE(TypeOf) \ \ NODE(Binding) \ NODE(Alias) \ @@ -144,6 +145,7 @@ typedef enum AstKind { Ast_Kind_Type_Alias, Ast_Kind_Type_Raw_Alias, Ast_Kind_Type_Compound, + Ast_Kind_Typeof, Ast_Kind_Type_End, Ast_Kind_Struct_Member, @@ -252,6 +254,9 @@ typedef enum AstFlags { Ast_Flag_Has_Been_Checked = BH_BIT(27), Ast_Flag_Static_If_Resolved = BH_BIT(28), + + // :TEMPORARY + Ast_Flag_Params_Introduced = BH_BIT(29), } AstFlags; typedef enum UnaryOp { @@ -808,6 +813,12 @@ struct AstCompoundType { bh_arr(AstType *) types; }; +struct AstTypeOf { + AstType_base; + + AstTyped* expr; + Type* resolved_type; +}; // Top level nodes struct AstBinding { AstTyped_base; AstNode* node; }; diff --git a/include/onyxlex.h b/include/onyxlex.h index 7c4789ae..43fed670 100644 --- a/include/onyxlex.h +++ b/include/onyxlex.h @@ -32,6 +32,7 @@ typedef enum TokenType { Token_Type_Keyword_Continue, Token_Type_Keyword_Sizeof, Token_Type_Keyword_Alignof, + Token_Type_Keyword_Typeof, Token_Type_Keyword_Defer, Token_Type_Keyword_Do, Token_Type_Keyword_Case, diff --git a/misc/onyx.sublime-syntax b/misc/onyx.sublime-syntax index a5666d38..d07244e5 100644 --- a/misc/onyx.sublime-syntax +++ b/misc/onyx.sublime-syntax @@ -26,7 +26,7 @@ contexts: # strings in YAML. When using single quoted strings, only single quotes # need to be escaped: this is done by using two single quotes next to each # other. - - match: '\b(package|struct|use|global|enum|if|elseif|else|for|while|do|break|continue|fallthrough|return|as|cast|sizeof|alignof|defer|switch|case|macro)\b' + - match: '\b(package|struct|use|global|enum|if|elseif|else|for|while|do|break|continue|fallthrough|return|as|cast|sizeof|alignof|typeof|defer|switch|case|macro)\b' scope: keyword.control.onyx - match: '\b(bool|void|i8|u8|i16|u16|i32|u32|i64|u64|f32|f64|rawptr|str|cstr|range|type_expr|any)\b' diff --git a/misc/onyx.vim b/misc/onyx.vim index a6a79a51..7f750f83 100644 --- a/misc/onyx.vim +++ b/misc/onyx.vim @@ -15,7 +15,7 @@ syn keyword onyxKeyword if elseif else syn keyword onyxKeyword for while do syn keyword onyxKeyword switch case syn keyword onyxKeyword break continue return defer fallthrough -syn keyword onyxKeyword as cast sizeof alignof +syn keyword onyxKeyword as cast sizeof alignof typeof syn keyword onyxType bool void syn keyword onyxType i8 u8 syn keyword onyxType i16 u16 diff --git a/src/onyxastnodes.c b/src/onyxastnodes.c index 86c30aa8..409523f9 100644 --- a/src/onyxastnodes.c +++ b/src/onyxastnodes.c @@ -41,6 +41,7 @@ static const char* ast_node_names[] = { "TYPE_ALIAS", "TYPE RAW ALIAS", "COMPOUND TYPE", + "TYPE OF", "TYPE_END (BAD)", "STRUCT MEMBER", diff --git a/src/onyxchecker.c b/src/onyxchecker.c index a8947f42..f17d7354 100644 --- a/src/onyxchecker.c +++ b/src/onyxchecker.c @@ -1607,6 +1607,10 @@ CheckStatus check_expression(AstTyped** pexpr) { // This is to ensure that the type will exist when compiling. For example, a poly-call type // would have to wait for the entity to pass through, which the code generation does not know // about. + if (expr->kind == Ast_Kind_Typeof) { + CHECK(type, (AstType *) expr); + } + if (type_build_from_ast(context.ast_alloc, (AstType*) expr) == NULL) { return Check_Yield_Macro; } @@ -1646,7 +1650,7 @@ CheckStatus check_expression(AstTyped** pexpr) { case Ast_Kind_Param: if (expr->type == NULL) { - onyx_report_error(expr->token->pos, "Parameter with unknown type. You should hopefully never see this."); + onyx_report_error(expr->token->pos, "Parameter with bad type."); retval = Check_Error; } break; @@ -1848,6 +1852,8 @@ CheckStatus check_statement(AstNode** pstmt) { AstTyped* typed_stmt = (AstTyped *) stmt; fill_in_type(typed_stmt); if (typed_stmt->type_node != NULL && typed_stmt->type == NULL) { + CHECK(type, typed_stmt->type_node); + if (!node_is_type((AstNode *) typed_stmt->type_node)) { onyx_report_error(stmt->token->pos, "Local's type is not a type."); return Check_Error; @@ -2156,15 +2162,57 @@ CheckStatus check_type(AstType* type) { while (type->kind == Ast_Kind_Type_Alias) type = ((AstTypeAlias *) type)->to; - if (type->kind == Ast_Kind_Poly_Call_Type) { - AstPolyCallType* pc_node = (AstPolyCallType *) type; + switch (type->kind) { + case Ast_Kind_Poly_Call_Type: { + AstPolyCallType* pc_node = (AstPolyCallType *) type; - bh_arr_each(AstNode *, param, pc_node->params) { - if (!node_is_type(*param)) { - CHECK(expression, (AstTyped **) param); - resolve_expression_type((AstTyped *) *param); + bh_arr_each(AstNode *, param, pc_node->params) { + if (!node_is_type(*param)) { + CHECK(expression, (AstTyped **) param); + resolve_expression_type((AstTyped *) *param); + } } + + break; } + + case Ast_Kind_Typeof: { + AstTypeOf *type_of = (AstTypeOf *) type; + CHECK(expression, (AstTyped **) &type_of->expr); + resolve_expression_type(type_of->expr); + + if (type_of->expr->type == NULL) { + return Check_Yield_Macro; + } + + type_of->resolved_type = type_of->expr->type; + break; + } + + case Ast_Kind_Pointer_Type: CHECK(type, ((AstPointerType *) type)->elem); break; + case Ast_Kind_Slice_Type: CHECK(type, ((AstSliceType *) type)->elem); break; + case Ast_Kind_DynArr_Type: CHECK(type, ((AstDynArrType *) type)->elem); break; + case Ast_Kind_VarArg_Type: CHECK(type, ((AstVarArgType *) type)->elem); break; + + case Ast_Kind_Function_Type: { + AstFunctionType* ftype = (AstFunctionType *) type; + + CHECK(type, ftype->return_type); + + if (ftype->param_count > 0) { + fori (i, 0, (i64) ftype->param_count) { + CHECK(type, ftype->params[i]); + } + } + break; + } + + case Ast_Kind_Type_Compound: { + AstCompoundType* ctype = (AstCompoundType *) type; + + bh_arr_each(AstType *, type, ctype->types) CHECK(type, *type); + break; + } } return Check_Success; diff --git a/src/onyxclone.c b/src/onyxclone.c index 12ad5373..4c08c4ba 100644 --- a/src/onyxclone.c +++ b/src/onyxclone.c @@ -57,6 +57,7 @@ static inline i32 ast_kind_to_size(AstNode* node) { case Ast_Kind_Type_Alias: return sizeof(AstTypeAlias); case Ast_Kind_Type_Raw_Alias: return sizeof(AstTypeRawAlias); case Ast_Kind_Type_Compound: return sizeof(AstCompoundType); + case Ast_Kind_Typeof: return sizeof(AstTypeOf); case Ast_Kind_Type_End: return 0; case Ast_Kind_Struct_Member: return sizeof(AstStructMember); case Ast_Kind_Enum_Value: return sizeof(AstEnumValue); @@ -449,6 +450,12 @@ AstNode* ast_clone(bh_allocator a, void* n) { ((AstDirectiveInsert *) nn)->code_expr = (AstTyped *) ast_clone(a, ((AstDirectiveInsert *) node)->code_expr); break; } + + case Ast_Kind_Typeof: { + ((AstTypeOf *) nn)->expr = (AstTyped *) ast_clone(a, ((AstTypeOf *) node)->expr); + ((AstTypeOf *) nn)->resolved_type = NULL; + break; + } } clone_depth--; diff --git a/src/onyxlex.c b/src/onyxlex.c index 433c3b9d..eefcdd16 100644 --- a/src/onyxlex.c +++ b/src/onyxlex.c @@ -30,6 +30,7 @@ static const char* token_type_names[] = { "continue", "sizeof", "alignof", + "typeof", "defer", "do", "switch", @@ -346,12 +347,13 @@ whitespace_skipped: LITERAL_TOKEN("return", 1, Token_Type_Keyword_Return); break; case 's': - LITERAL_TOKEN("sizeof", 1, Token_Type_Keyword_Sizeof); LITERAL_TOKEN("struct", 1, Token_Type_Keyword_Struct); + LITERAL_TOKEN("sizeof", 1, Token_Type_Keyword_Sizeof); LITERAL_TOKEN("switch", 1, Token_Type_Keyword_Switch); break; case 't': LITERAL_TOKEN("true", 1, Token_Type_Literal_True); + LITERAL_TOKEN("typeof", 1, Token_Type_Keyword_Typeof); break; case 'u': LITERAL_TOKEN("use", 1, Token_Type_Keyword_Use); diff --git a/src/onyxparser.c b/src/onyxparser.c index de862194..fd52bb48 100644 --- a/src/onyxparser.c +++ b/src/onyxparser.c @@ -57,6 +57,7 @@ static AstNode* parse_use_stmt(OnyxParser* parser); static AstBlock* parse_block(OnyxParser* parser, b32 make_a_new_scope); static AstNode* parse_statement(OnyxParser* parser); static AstType* parse_type(OnyxParser* parser); +static AstTypeOf* parse_typeof(OnyxParser* parser); static AstStructType* parse_struct(OnyxParser* parser); static void parse_function_params(OnyxParser* parser, AstFunction* func); static b32 parse_possible_directive(OnyxParser* parser, const char* dir); @@ -421,6 +422,11 @@ static AstTyped* parse_factor(OnyxParser* parser) { break; } + case Token_Type_Keyword_Typeof: { + retval = (AstTyped *) parse_typeof(parser); + break; + } + case Token_Type_Symbol: { OnyxToken* sym_token = expect_token(parser, Token_Type_Symbol); AstTyped* sym_node = make_node(AstTyped, Ast_Kind_Symbol); @@ -1734,6 +1740,12 @@ static AstType* parse_type(OnyxParser* parser) { break; } + case Token_Type_Keyword_Typeof: { + *next_insertion = (AstType *) parse_typeof(parser); + next_insertion = NULL; + break; + } + default: onyx_report_error(parser->curr->pos, "unexpected token '%b'.", parser->curr->text, parser->curr->length); consume_token(parser); @@ -1746,6 +1758,17 @@ static AstType* parse_type(OnyxParser* parser) { return root; } +static AstTypeOf* parse_typeof(OnyxParser* parser) { + OnyxToken* token = expect_token(parser, Token_Type_Keyword_Typeof); + + AstTypeOf* type_of = make_node(AstTypeOf, Ast_Kind_Typeof); + type_of->token = token; + type_of->expr = parse_expression(parser, 0); + type_of->resolved_type = NULL; + + return type_of; +} + static AstStructType* parse_struct(OnyxParser* parser) { OnyxToken *s_token = expect_token(parser, Token_Type_Keyword_Struct); diff --git a/src/onyxsymres.c b/src/onyxsymres.c index c571d28a..27a28f71 100644 --- a/src/onyxsymres.c +++ b/src/onyxsymres.c @@ -229,6 +229,12 @@ static SymresStatus symres_type(AstType** type) { SYMRES(type, (AstType **) &alias->alias); break; } + + case Ast_Kind_Typeof: { + AstTypeOf* type_of = (AstTypeOf *) *type; + SYMRES(expression, &type_of->expr); + break; + } } return Symres_Success; @@ -842,6 +848,11 @@ static SymresStatus symres_block(AstBlock* block) { SymresStatus symres_function_header(AstFunction* func) { func->flags |= Ast_Flag_Comptime; + if (func->scope == NULL) + func->scope = scope_create(context.ast_alloc, curr_scope, func->token->pos); + + scope_enter(func->scope); + bh_arr_each(AstParam, param, func->params) { if (param->default_value != NULL) { SYMRES(expression, ¶m->default_value); @@ -849,9 +860,12 @@ SymresStatus symres_function_header(AstFunction* func) { } } - SYMRES(type, &func->return_type); - if (!node_is_type((AstNode *) func->return_type)) { - onyx_report_error(func->token->pos, "Return type is not a type."); + if ((func->flags & Ast_Flag_Params_Introduced) == 0) { + bh_arr_each(AstParam, param, func->params) { + symbol_introduce(curr_scope, param->local->token, (AstNode *) param->local); + } + + func->flags |= Ast_Flag_Params_Introduced; } bh_arr_each(AstParam, param, func->params) { @@ -859,6 +873,14 @@ SymresStatus symres_function_header(AstFunction* func) { SYMRES(type, ¶m->local->type_node); } } + + SYMRES(type, &func->return_type); + if (!node_is_type((AstNode *) func->return_type)) { + onyx_report_error(func->token->pos, "Return type is not a type."); + } + + scope_leave(); + return Symres_Success; } @@ -871,8 +893,6 @@ SymresStatus symres_function(AstFunction* func) { if ((func->flags & Ast_Flag_Has_Been_Symres) == 0) { bh_arr_each(AstParam, param, func->params) { - symbol_introduce(curr_scope, param->local->token, (AstNode *) param->local); - // CLEANUP: Currently, in order to 'use' parameters, the type must be completely // resolved and built. This is excessive because all that should need to be known // is the names of the members, since all that happens is implicit field accesses diff --git a/src/onyxtypes.c b/src/onyxtypes.c index 125461ab..eaa931fa 100644 --- a/src/onyxtypes.c +++ b/src/onyxtypes.c @@ -359,7 +359,7 @@ Type* type_build_from_ast(bh_allocator alloc, AstType* type_node) { mem_alignment = type_alignment_of((*member)->type); if (mem_alignment <= 0) { - onyx_report_error((*member)->token->pos, "Invalid member type: %s", type_get_name((*member)->type)); + onyx_report_error((*member)->token->pos, "Invalid member type: %s. Has alignment %d", type_get_name((*member)->type), mem_alignment); return NULL; } @@ -576,6 +576,15 @@ Type* type_build_from_ast(bh_allocator alloc, AstType* type_node) { AstAlias* alias = (AstAlias *) type_node; return type_build_from_ast(alloc, (AstType *) alias->alias); } + + case Ast_Kind_Typeof: { + AstTypeOf* type_of = (AstTypeOf *) type_node; + if (type_of->resolved_type != NULL) { + return type_of->resolved_type; + } + + return NULL; + } } return NULL; -- 2.25.1