chore: remove trailing whitespace from README.md formatting

This commit is contained in:
2025-12-02 20:12:50 +00:00
parent 0216064cf1
commit c09a0a41be
11 changed files with 2435 additions and 71 deletions
+20 -4
View File
@@ -125,11 +125,13 @@ static bool _rava_semantic_analyze_method(RavaSemanticAnalyzer_t *analyzer, Rava
static bool _rava_semantic_analyze_field(RavaSemanticAnalyzer_t *analyzer, RavaASTNode_t *field_node) {
if (field_node->type != RAVA_AST_FIELD_DECL) return false;
char *field_name = field_node->data.var_decl.name;
RavaType_t *field_type = _rava_semantic_resolve_type(analyzer, field_node->data.var_decl.type);
char *field_name = field_node->data.field_decl.name;
RavaType_t *field_type = _rava_semantic_resolve_type(analyzer, field_node->data.field_decl.type);
RavaSymbol_t *field_symbol = rava_symbol_create(RAVA_SYMBOL_FIELD, field_name, field_type);
field_symbol->declaration = field_node;
field_symbol->modifiers = field_node->data.field_decl.modifiers;
field_symbol->modifiers_count = field_node->data.field_decl.modifiers_count;
if (!rava_symbol_table_define(analyzer->symbol_table, field_symbol)) {
char error_msg[256];
@@ -139,8 +141,8 @@ static bool _rava_semantic_analyze_field(RavaSemanticAnalyzer_t *analyzer, RavaA
return false;
}
if (field_node->data.var_decl.initializer) {
RavaType_t *init_type = _rava_semantic_check_expression(analyzer, field_node->data.var_decl.initializer);
if (field_node->data.field_decl.initializer) {
RavaType_t *init_type = _rava_semantic_check_expression(analyzer, field_node->data.field_decl.initializer);
if (init_type && !rava_type_is_assignable_to(init_type, field_type)) {
char error_msg[256];
snprintf(error_msg, sizeof(error_msg),
@@ -299,6 +301,20 @@ static RavaType_t* _rava_semantic_check_expression(RavaSemanticAnalyzer_t *analy
return rava_type_create_primitive(RAVA_TYPE_LONG);
}
}
if (member->data.member_access.object->type == RAVA_AST_IDENTIFIER_EXPR &&
strcmp(member->data.member_access.object->data.identifier.name, "Math") == 0) {
if (strcmp(method, "abs") == 0 || strcmp(method, "min") == 0 || strcmp(method, "max") == 0) {
return rava_type_create_primitive(RAVA_TYPE_INT);
} else if (strcmp(method, "round") == 0) {
return rava_type_create_primitive(RAVA_TYPE_LONG);
} else if (strcmp(method, "sqrt") == 0 || strcmp(method, "pow") == 0 ||
strcmp(method, "floor") == 0 || strcmp(method, "ceil") == 0 ||
strcmp(method, "sin") == 0 || strcmp(method, "cos") == 0 ||
strcmp(method, "tan") == 0 || strcmp(method, "log") == 0 ||
strcmp(method, "exp") == 0 || strcmp(method, "random") == 0) {
return rava_type_create_primitive(RAVA_TYPE_DOUBLE);
}
}
if (strcmp(method, "length") == 0) {
return rava_type_create_primitive(RAVA_TYPE_INT);
} else if (strcmp(method, "charAt") == 0) {