Updated grammar
This commit is contained in:
+10
-5
@@ -11,19 +11,24 @@ boolean = { "true" | "false" }
|
|||||||
string_lit = { "\"" ~ inner_str ~ "\"" }
|
string_lit = { "\"" ~ inner_str ~ "\"" }
|
||||||
inner_str = @{ (!"\"" ~ ANY)* }
|
inner_str = @{ (!"\"" ~ ANY)* }
|
||||||
|
|
||||||
|
// ================= PREREQUISITES =================
|
||||||
|
export = { "public" }
|
||||||
|
mutable = { "mut" }
|
||||||
|
var_decl_1 = { type_expr ~ mutable? ~ identifier }
|
||||||
|
|
||||||
// ================= TOP LEVEL =================
|
// ================= TOP LEVEL =================
|
||||||
|
|
||||||
top_level = _{ import | function_decl | struct_decl }
|
top_level = _{ import | function_decl | struct_decl }
|
||||||
|
|
||||||
export = { "public" }
|
|
||||||
|
|
||||||
import = { "import" ~ string_lit ~ ";" }
|
import = { "import" ~ string_lit ~ ";" }
|
||||||
|
|
||||||
param_list = { param ~ ("," ~ param)* ~ ","? }
|
field_list = { field ~ ("," ~ field)* ~ ","? }
|
||||||
param = { export? ~ type_expr ~ identifier }
|
field = { export? ~ type_expr ~ identifier }
|
||||||
|
|
||||||
|
param_list = { var_decl_1 ~ ("," ~ var_decl_1)* ~ ","? }
|
||||||
|
|
||||||
struct_decl = {
|
struct_decl = {
|
||||||
export? ~ "struct" ~ identifier ~ "{" ~ param_list? ~ "}"
|
export? ~ "struct" ~ identifier ~ "{" ~ field_list? ~ "}"
|
||||||
}
|
}
|
||||||
|
|
||||||
function_decl = {
|
function_decl = {
|
||||||
|
|||||||
+1
-1
@@ -3,7 +3,7 @@ public struct Idk {
|
|||||||
int b,
|
int b,
|
||||||
}
|
}
|
||||||
|
|
||||||
int test(int a, int b) {
|
int test(int mut a, int b) {
|
||||||
Idk bro = Idk { a: 10, b: 10 };
|
Idk bro = Idk { a: 10, b: 10 };
|
||||||
return a + b + bro.a;
|
return a + b + bro.a;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user