variantが書けるようになった
こんな感じで。
type test : A | B (int) | C (char, int) ; export main: () { x : A; y : B (2); z : C ('a', 0); syscall(1, 0); };
パターンマッチはまだ実装していない。というか実はまだif文すら未実装。
Cのunionみたいにサイズが最大であるCに合わせてx,y,zそれぞれ3ワードずつ領域が確保される。1ワード分はコンストラクタID。
こんな感じで。
type test : A | B (int) | C (char, int) ; export main: () { x : A; y : B (2); z : C ('a', 0); syscall(1, 0); };
パターンマッチはまだ実装していない。というか実はまだif文すら未実装。
Cのunionみたいにサイズが最大であるCに合わせてx,y,zそれぞれ3ワードずつ領域が確保される。1ワード分はコンストラクタID。