元ネタ
今回の元ネタになっているのは、Rui Ueyamaさんの「低レイヤを知りたい人のためのCコンパイラ作成入門」であります。
なぜNimなのか?
C言語でそのままやってしまうと、私の場合、丸写しになってしまい、何となく理解したような気分になってしまうからです。またNimの場合、C言語のヘッダーファイルや関数を直接使うことが可能なので、後々便利かな?なんて素人の考えでNimにしました。
ということで、現在ステップ2までやったので、そこまでを記事にしようと思います。
今回の元ネタになっているのは、Rui Ueyamaさんの「低レイヤを知りたい人のためのCコンパイラ作成入門」であります。
なぜNimなのか?
C言語でそのままやってしまうと、私の場合、丸写しになってしまい、何となく理解したような気分になってしまうからです。またNimの場合、C言語のヘッダーファイルや関数を直接使うことが可能なので、後々便利かな?なんて素人の考えでNimにしました。
ということで、現在ステップ2までやったので、そこまでを記事にしようと思います。
もう新年を迎えて2週間も経ってしまいましたが、新年あけまして、おめでたくないですが、皆様にとって良い一年になりますように。
当ブログは去年の末におかげさまで閲覧数が10000を超えました。一般的なブログの閲覧数とは雲泥の差ではありますが、なんとなく嬉しいです。今後もバタバタしながらも、時間を見つけて記事を書いていこうと思います。
新年早々に感染爆発・緊急事態宣言とえげつない状況となってしまいましたが、我々ができることは手洗い、うがい、目洗い、マスク、自粛のみ。それ以外はどうしようもできないことなので、自分でできることは全てやって、だめならだめでしょうがない、という気持ちで生きていきましょう。
今年もどうぞよろしくお願いいたします。
typeを使って以下のように作成します。
------
列挙型
------
type
MyEnum = enum
A, B, C
------
構造体
------
type
MyStruct = ref object
fieldA: int
fieldB: string
そしてこれらは組み合わせて使うことも可能で、ちょっと複雑な感じになりますが、例えばCDプレーヤーとDVDプレーヤー(昭和感たっぷりで申し訳ございません)というヴァリアントを持ったDeviceという列挙型を作成するとします。playやstopといった同じ名前の機能を持っていています。
$ choosenim update stable
ちょっと時間がかかるのが気になりますが、無事にアップデートできました。