Author: Yuji Ichioka (compiler)