Change the way types are declared
parent
6e4e13d56d
commit
ef07ffd2d9
@ -1,40 +1,40 @@
|
|||||||
|
|
||||||
type Food = #[
|
type Food = enum {
|
||||||
Apple Num
|
Apple Num
|
||||||
Banana Num
|
Banana Num
|
||||||
Cereal Num
|
Cereal Num
|
||||||
Milk #(String Num)
|
Milk #(String Num)
|
||||||
]
|
}
|
||||||
|
|
||||||
type Utils = #[
|
type Utils = enum {
|
||||||
Paper Num
|
Paper Num
|
||||||
Detergent Num
|
Detergent Num
|
||||||
Pencils Num
|
Pencils Num
|
||||||
]
|
}
|
||||||
|
|
||||||
type Packaging = #[
|
type Packaging = enum {
|
||||||
Bag
|
Bag
|
||||||
PlasticBag
|
PlasticBag
|
||||||
]
|
}
|
||||||
|
|
||||||
type ShoppingList = #{
|
type ShoppingList = rec {
|
||||||
food: Food
|
food: Food
|
||||||
utils: Utils
|
utils: Utils
|
||||||
packaging: Packaging
|
packaging: Packaging
|
||||||
}
|
}
|
||||||
|
|
||||||
type NestedHell = #[
|
type NestedHell = enum {
|
||||||
NoNesting Num
|
NoNesting Num
|
||||||
Nesting #[
|
Nesting enum {
|
||||||
FirstLevel #[
|
FirstLevel enum {
|
||||||
SecondLevel #[
|
SecondLevel enum {
|
||||||
Third Lvl<a>
|
Third Lvl<a>
|
||||||
]
|
}
|
||||||
Second #{
|
Second rec {
|
||||||
first: Num
|
first: Num
|
||||||
second: Num
|
second: Num
|
||||||
}
|
}
|
||||||
]
|
}
|
||||||
StillFirst Num<a>
|
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