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