Class grammar

This commit is contained in:
2026-05-05 18:25:20 +02:00
parent 05b408c96b
commit e7bfd23eb5
2 changed files with 19 additions and 6 deletions
+15 -2
View File
@@ -19,8 +19,23 @@ var = { "var" }
var_decl = { (var | type_expr) ~ mutable? ~ identifier }
semicolon = _{ ";" }
// ================= CLASS =================
class_constructor = {
export? ~ "constructor" ~ "(" ~ param_list? ~ ")" ~ block
}
class_fields = { var_decl_statement* }
class_methods = { function_decl* }
class_decl = {
"class" ~ identifier ~ "{" ~ class_fields ~ class_constructor ~ class_methods ~ "}"
}
// ================= TOP LEVEL =================
top_level = { (attributes ~ (import | function_decl | struct_decl)) | mod_attribute | class_decl }
attribute = {
"#" ~ "[" ~ meta ~ "]"
}
@@ -39,8 +54,6 @@ meta_list = {
attributes = { attribute* }
top_level = { (attributes ~ (import | function_decl | struct_decl)) | mod_attribute }
import = { sharp ~ "include" ~ "<" ~ static_path ~ ">" }
field_list = { field ~ ("," ~ field)* ~ ","? }
+4 -4
View File
@@ -1,7 +1,7 @@
void main() {
var iter = vec!(1, 2, 3, 4, 5);
class MyClass {
String my_item;
for (i in iter) {
println!("{i}");
constructor() {
}
}