Change the way types are declared
parent
6e4e13d56d
commit
ef07ffd2d9
@ -1,40 +1,40 @@
|
||||
|
||||
type Food = #[
|
||||
type Food = enum {
|
||||
Apple Num
|
||||
Banana Num
|
||||
Cereal Num
|
||||
Milk #(String Num)
|
||||
]
|
||||
}
|
||||
|
||||
type Utils = #[
|
||||
type Utils = enum {
|
||||
Paper Num
|
||||
Detergent Num
|
||||
Pencils Num
|
||||
]
|
||||
}
|
||||
|
||||
type Packaging = #[
|
||||
type Packaging = enum {
|
||||
Bag
|
||||
PlasticBag
|
||||
]
|
||||
}
|
||||
|
||||
type ShoppingList = #{
|
||||
type ShoppingList = rec {
|
||||
food: Food
|
||||
utils: Utils
|
||||
packaging: Packaging
|
||||
}
|
||||
|
||||
type NestedHell = #[
|
||||
type NestedHell = enum {
|
||||
NoNesting Num
|
||||
Nesting #[
|
||||
FirstLevel #[
|
||||
SecondLevel #[
|
||||
Nesting enum {
|
||||
FirstLevel enum {
|
||||
SecondLevel enum {
|
||||
Third Lvl<a>
|
||||
]
|
||||
Second #{
|
||||
}
|
||||
Second rec {
|
||||
first: Num
|
||||
second: Num
|
||||
}
|
||||
]
|
||||
}
|
||||
StillFirst Num<a>
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,41 @@
|
||||
Enums Test
|
||||
|
||||
======
|
||||
|
||||
type MyEnum = enum {
|
||||
First Num
|
||||
Second Str
|
||||
}
|
||||
|
||||
======
|
||||
|
||||
(file
|
||||
(statement
|
||||
(type_decl
|
||||
(type_ident
|
||||
(ident: "MyEnum")
|
||||
)
|
||||
(type_expr
|
||||
(enum
|
||||
(enum_vrt
|
||||
(ident: "First")
|
||||
(type_expr
|
||||
(type_ident
|
||||
(ident: "Num")
|
||||
)
|
||||
)
|
||||
)
|
||||
(enum_vrt
|
||||
(ident: "Second")
|
||||
(type_expr
|
||||
(type_ident
|
||||
(ident: "Str")
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(EOI: "")
|
||||
)
|
@ -0,0 +1,33 @@
|
||||
Generics Test
|
||||
|
||||
======
|
||||
|
||||
type MyNum<a> = Num<a>
|
||||
|
||||
======
|
||||
|
||||
(file
|
||||
(statement
|
||||
(type_decl
|
||||
(type_ident
|
||||
(ident: "MyNum")
|
||||
(type_args
|
||||
(type_ident
|
||||
(ident: "a")
|
||||
)
|
||||
)
|
||||
)
|
||||
(type_expr
|
||||
(type_ident
|
||||
(ident: "Num")
|
||||
(type_args
|
||||
(type_ident
|
||||
(ident: "a")
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(EOI: "")
|
||||
)
|
@ -0,0 +1,41 @@
|
||||
Recs Test
|
||||
|
||||
======
|
||||
|
||||
type MyRec = rec {
|
||||
first: Num
|
||||
second: Str
|
||||
}
|
||||
|
||||
======
|
||||
|
||||
(file
|
||||
(statement
|
||||
(type_decl
|
||||
(type_ident
|
||||
(ident: "MyRec")
|
||||
)
|
||||
(type_expr
|
||||
(rec
|
||||
(rec_field
|
||||
(ident: "first")
|
||||
(type_expr
|
||||
(type_ident
|
||||
(ident: "Num")
|
||||
)
|
||||
)
|
||||
)
|
||||
(rec_field
|
||||
(ident: "second")
|
||||
(type_expr
|
||||
(type_ident
|
||||
(ident: "Str")
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(EOI: "")
|
||||
)
|
Loading…
Reference in New Issue