length_of align_of size_of are no longer operators but function calls

This commit is contained in:
Krzosa Karol
2022-09-27 13:50:30 +02:00
parent 60f794580c
commit dda2252ca2
4 changed files with 146 additions and 134 deletions

View File

@@ -566,25 +566,7 @@ parse_expr(S64 min_bp){
left = ast_bool(token, 1);
else if(token->intern_val == keyword_false)
left = ast_bool(token, 0);
else if(token->intern_val == keyword_sizeof){
token_expect(TK_OpenParen);
Ast_Expr *expr = parse_expr();
token_expect(TK_CloseParen);
left = ast_sizeof(token, expr);
}
else if(token->intern_val == keyword_alignof){
token_expect(TK_OpenParen);
Ast_Expr *expr = parse_expr();
token_expect(TK_CloseParen);
left = ast_alignof(token, expr);
}
else if(token->intern_val == keyword_lengthof){
token_expect(TK_OpenParen);
Ast_Expr *expr = parse_expr();
token_expect(TK_CloseParen);
left = ast_len(token, expr);
}
else compiler_error(token, "Unexpected keyword: [%s], expected keyword [cast]", token->intern_val.str);
else compiler_error(token, "Unexpected keyword: [%s]", token->intern_val.str);
}break;
case TK_OpenParen: {