日報 3 (20170505)

プログラム

以前から関心のあった Go のコード解析についてあれこれみていた。目的はコードの自動生成で、text/template ベースでコードを書き出すのではなく、構文木 (AST) ベースで書き出したいと思っていて、そのためには任意の構文木を自由自在に作り出せるようにしなければならないと考えている。

まずは Go コードを go/parser パッケージを使って構文木を生成するのと、その構文木を go/format パッケージでコードとして出力するところを押さえた。生成される構文木の内容は go/parser の Print() を使えば構成する構造体の中身を概ね見ることができる。たとえばこの情報をテンプレートとして外部に書き出しておいて、読み込んで可変コードを出力するなんてことができるのではないかと思った。このあたりの機能はさらっと見た限りちょっと見つけることができなくて、自分で作る必要があるかもしれない。

まだまだ全然わかっていないけれども、どういったものかというのだけはわかった。go generate コマンドでコードの自動生成を行ってくれるプログラムが色々あるので、その辺の中身を覗いていこうと思う。

プライベート

PUBG。周囲の探索が甘い。最後の数名になったら動く前に目を凝らして見渡すべきだ。やったはずだったんだけど、見逃して、やられた。

Like what you read? Give Yosuke Kumakura a round of applause.

From a quick cheer to a standing ovation, clap to show how much you enjoyed this story.