extract interfaces for interpreter and generator